From a13d6d0f28e9b521888fc14e4fe50dc7989e4234 Mon Sep 17 00:00:00 2001 From: Unknown Date: Fri, 14 Dec 2018 19:15:52 +0100 Subject: [PATCH] Fichier de configuration YAML --- PFE06/app.conf | 15 +++++++++++++++ PFE06/files/pfe_1544811092964/pfelogo.png | Bin 0 -> 30019 bytes PFE06/pom.xml | 5 +++++ PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PFE06/src/main/java/com/PFE/ServerManager/ConfYAML.java | 35 +++++++++++++++++++++++++++++++++++ PFE06/src/main/java/com/PFE/ServerManager/CustomerRepository.java | 2 -- PFE06/src/main/java/com/PFE/ServerManager/MainController.java | 5 +++++ PFE06/src/main/java/com/PFE/ServerManager/Node.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ PFE06/src/main/java/com/PFE/ServerManager/NodeRepository.java | 8 ++++++++ PFE06/src/main/java/com/PFE/ServerManager/NodeYAML.java | 33 +++++++++++++++++++++++++++++++++ PFE06/src/main/resources/application.properties | 8 +++++--- PFE06/src/main/resources/data.sql | 9 +++------ PFE06/src/main/resources/static/favicon.ico | Bin 0 -> 152126 bytes PFE06/src/main/resources/templates/session.html | 23 ++++------------------- 14 files changed, 239 insertions(+), 30 deletions(-) create mode 100644 PFE06/app.conf create mode 100644 PFE06/files/pfe_1544811092964/pfelogo.png create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/ConfYAML.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/Node.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/NodeRepository.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/NodeYAML.java create mode 100644 PFE06/src/main/resources/static/favicon.ico diff --git a/PFE06/app.conf b/PFE06/app.conf new file mode 100644 index 0000000..7a237a1 --- /dev/null +++ b/PFE06/app.conf @@ -0,0 +1,15 @@ +adminEmail: pfe@pfe.fr +adminPassword: pfepfe +nodes: + - name: AT-001 + ip: '85.10.201.246' + arch: ARM + - name: AT-002 + ip: '85.10.201.247' + arch: ARM + - name: AT-003 + ip: '85.10.201.248' + arch: ARM + - name: ATTTT-004 + ip: '85.10.201.249' + arch: ARM \ No newline at end of file diff --git a/PFE06/files/pfe_1544811092964/pfelogo.png b/PFE06/files/pfe_1544811092964/pfelogo.png new file mode 100644 index 0000000..2e2d597 Binary files /dev/null and b/PFE06/files/pfe_1544811092964/pfelogo.png differ diff --git a/PFE06/pom.xml b/PFE06/pom.xml index 76d007a..d4b6ad9 100644 --- a/PFE06/pom.xml +++ b/PFE06/pom.xml @@ -30,6 +30,11 @@ spring-boot-starter-data-jpa + org.yaml + snakeyaml + 1.21 + + org.springframework.boot spring-boot-starter-web diff --git a/PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java b/PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java new file mode 100644 index 0000000..9adac08 --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java @@ -0,0 +1,72 @@ +package com.PFE.ServerManager; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Component; +import org.yaml.snakeyaml.TypeDescription; +import org.yaml.snakeyaml.Yaml; +import org.yaml.snakeyaml.constructor.Constructor; + +import javax.annotation.PostConstruct; +import java.io.*; +import java.util.*; + + +@Component +public class AppConfig { + + @Autowired + CustomerRepository customerRepository; + + @Autowired + RoleRepository roleRepository; + + @Autowired + MajRepository majRepository; + + @Autowired + BCryptPasswordEncoder bCryptPasswordEncoder; + + @Autowired + NodeRepository nodeRepository; + + @PostConstruct + public void init() { + System.out.println("============= Configuration de l'application ============="); + + Yaml yaml = new Yaml(new Constructor(ConfYAML.class)); + InputStream inputStream = null; + try { + inputStream = new FileInputStream(new File("app.conf")); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + ConfYAML conf = yaml.load(inputStream); + + Customer n = new Customer(); + n.setEmail(conf.getAdminEmail()); + n.setPassword(bCryptPasswordEncoder.encode(conf.getAdminPassword())); + n.setId((int)(customerRepository.count() + 1)); + n.setActive(1); + + Customer temp = customerRepository.findByEmail(conf.getAdminEmail()); + Role userRole = roleRepository.findByRole("ADMIN"); + n.setRoles(new HashSet(Arrays.asList(userRole))); + + if(temp == null) { + customerRepository.save(n); + } + + Iterator iter = conf.getNodes().iterator(); + while (iter.hasNext()) { + NodeYAML element = iter.next(); + Node node = new Node(); + node.setName(element.getName()); + node.setArch(element.getArch()); + node.setIp(element.getIp()); + node.setNode_id((int)(nodeRepository.count() + 1)); + nodeRepository.save(node); + } + + } +} \ No newline at end of file diff --git a/PFE06/src/main/java/com/PFE/ServerManager/ConfYAML.java b/PFE06/src/main/java/com/PFE/ServerManager/ConfYAML.java new file mode 100644 index 0000000..1dfe4fb --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/ConfYAML.java @@ -0,0 +1,35 @@ +package com.PFE.ServerManager; + +import java.util.List; + +public class ConfYAML { + + private String adminEmail; + private String adminPassword; + private List nodes; + + public void setAdminEmail(String adminEmail) { + this.adminEmail = adminEmail; + } + + public void setAdminPassword(String adminPassword) { + this.adminPassword = adminPassword; + } + + public void setNodes(List nodes) { + this.nodes = nodes; + } + + public String getAdminEmail() { + return adminEmail; + } + + public String getAdminPassword() { + return adminPassword; + } + + public List getNodes() { + return nodes; + } + +} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/CustomerRepository.java b/PFE06/src/main/java/com/PFE/ServerManager/CustomerRepository.java index 5ec049e..c3ada3a 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/CustomerRepository.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/CustomerRepository.java @@ -10,7 +10,5 @@ import org.springframework.stereotype.Repository; //Need to check if "extends JpaRepository is more useful" @Repository public interface CustomerRepository extends JpaRepository { - Customer findByEmail(String email); - } diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java index fb0b8a2..a390723 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java @@ -23,6 +23,9 @@ import javax.servlet.annotation.MultipartConfig; public class MainController { @Autowired + NodeRepository nodeRepository; + + @Autowired CustomerRepository customerRepository; @Autowired @@ -69,6 +72,8 @@ public class MainController { modelAndView.addObject("customerName", customer.getEmail().split("@")[0]); modelAndView.addObject("customerRole", customer.getRole()); modelAndView.addObject("customerMaj", customer.getMaj()); + List nodes = nodeRepository.findAll(); + modelAndView.addObject("nodes", nodes); File file = new File("files"); File[] dirs = file.listFiles(); diff --git a/PFE06/src/main/java/com/PFE/ServerManager/Node.java b/PFE06/src/main/java/com/PFE/ServerManager/Node.java new file mode 100644 index 0000000..54b3f75 --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/Node.java @@ -0,0 +1,54 @@ +package com.PFE.ServerManager; + +import javax.persistence.*; + +@Entity +@Table(name = "node") +public class Node { + @Id + @Column(name = "node_id", columnDefinition = "serial") + @GeneratedValue(strategy = GenerationType.AUTO) + private Integer node_id; + + @Column(name = "name") + private String name; + + @Column(name = "ip") + private String ip; + + @Column(name = "arch") + private String arch; + + public void setNode_id(Integer node_id) { + this.node_id = node_id; + } + + public void setName(String name) { + this.name = name; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public void setArch(String arch) { + this.arch = arch; + } + + public Integer getNode_id() { + return node_id; + } + + public String getName() { + return name; + } + + public String getIp() { + return ip; + } + + public String getArch() { + return arch; + } + +} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/NodeRepository.java b/PFE06/src/main/java/com/PFE/ServerManager/NodeRepository.java new file mode 100644 index 0000000..dc6f7f3 --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/NodeRepository.java @@ -0,0 +1,8 @@ +package com.PFE.ServerManager; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface NodeRepository extends JpaRepository { +} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/NodeYAML.java b/PFE06/src/main/java/com/PFE/ServerManager/NodeYAML.java new file mode 100644 index 0000000..597d786 --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/NodeYAML.java @@ -0,0 +1,33 @@ +package com.PFE.ServerManager; + +public class NodeYAML { + + private String name; + private String ip; + private String arch; + + public void setName(String name) { + this.name = name; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public void setArch(String arch) { + this.arch = arch; + } + + public String getName() { + return name; + } + + public String getIp() { + return ip; + } + + public String getArch() { + return arch; + } + +} diff --git a/PFE06/src/main/resources/application.properties b/PFE06/src/main/resources/application.properties index c5a5af8..2a4e67e 100644 --- a/PFE06/src/main/resources/application.properties +++ b/PFE06/src/main/resources/application.properties @@ -8,10 +8,12 @@ spring.jpa.hibernate.ddl-auto=create #"update" met à jour la base données #Postgres config : -spring.datasource.url=jdbc:postgresql://localhost:5432/sql_only +spring.datasource.url=jdbc:postgresql://localhost:3306/sql_only spring.datasource.username=postgres -spring.datasource.password=glopglop - +spring.datasource.password=admin +#spring.datasource.url=jdbc:postgresql://localhost:5432/sql_only +#spring.datasource.username=postgres +#spring.datasource.password=glopglop # montre les communications JPA avec la BDD spring.jpa.show-sql = true diff --git a/PFE06/src/main/resources/data.sql b/PFE06/src/main/resources/data.sql index 4cd4081..74b54d1 100644 --- a/PFE06/src/main/resources/data.sql +++ b/PFE06/src/main/resources/data.sql @@ -1,7 +1,4 @@ /* ce fichier doit ĂȘtre placĂ© dans les ressources afin d'ĂȘtre utilisĂ© */ -INSERT INTO "role" VALUES (1,'ADMIN'); -INSERT INTO "role" VALUES (2,'USER'); -INSERT INTO "customer" VALUES (1,1,'admin@admin.fr','$2a$10$GflhaD2IYuErynuOlxS2W.Gp1kXksVdiSviYN/lDYCsuH.lVm6Ph2'); /*pseudo : admin // password : admin // role : ADMIN*/ -INSERT INTO "customer_role" VALUES (1,1); -INSERT INTO "customer" VALUES (2,1,'user@user.fr','$2a$10$0Fnls/gTQS1zA6rj1ZlxfuyyKNpCBDA1tcCqQMroPDIj1fRyhgv/O'); /*pseudo : user // password : user // role : USER*/ -INSERT INTO "customer_role" VALUES (2,2); \ No newline at end of file + +INSERT INTO "role" VALUES (1, 'ADMIN'); +INSERT INTO "role" VALUES (2, 'USER'); \ No newline at end of file diff --git a/PFE06/src/main/resources/static/favicon.ico b/PFE06/src/main/resources/static/favicon.ico new file mode 100644 index 0000000..c4fa0ee Binary files /dev/null and b/PFE06/src/main/resources/static/favicon.ico differ diff --git a/PFE06/src/main/resources/templates/session.html b/PFE06/src/main/resources/templates/session.html index df0e0d3..f5ab581 100644 --- a/PFE06/src/main/resources/templates/session.html +++ b/PFE06/src/main/resources/templates/session.html @@ -61,25 +61,10 @@ - - AT-001 - 85.10.201.246 - ARM - - - AT-002 - 85.10.201.245 - ARM - - - AT-003 - 85.10.201.244 - ARM - - - ST-002 - 85.10.201.243 - ARM + + name + ip + arch -- libgit2 0.21.2