diff --git a/PFE06/files/user_1544913064515/nodes.txt b/PFE06/files/user_1544913064515/nodes.txt new file mode 100644 index 0000000..f669d77 --- /dev/null +++ b/PFE06/files/user_1544913064515/nodes.txt @@ -0,0 +1,13 @@ +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-008 + ip: '85.10.201.249' + arch: ARM \ No newline at end of file diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java index 0e27bcd..54a4edc 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java @@ -213,7 +213,6 @@ public class MainController { node.setName(element.getName()); node.setArch(element.getArch()); node.setIp(element.getIp()); - node.setNode_id((int)(nodeRepository.count() + 1)); nodeRepository.save(node); } } @@ -250,7 +249,6 @@ public class MainController { maj_c.setDate(date); maj_c.setNodes(nodes); maj_c.setFile(file); - maj_c.setMaj_id((int)(majRepository.count() + 1)); majRepository.save(maj_c); // ajouter la mise a jour dans la table HashSet majs = new HashSet(Arrays.asList(maj_c)); @@ -260,4 +258,53 @@ public class MainController { return "redirect:/session"; } + + @PostMapping(path="/runmaj") + public String runMaj(@RequestParam String name, @RequestParam String date, @RequestParam String nodes, @RequestParam String file){ + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + Customer customer = customerRepository.findByEmail(auth.getName()); + + Maj maj_c = new Maj(); + maj_c.setMaj(name); + maj_c.setDate(date); + maj_c.setNodes(nodes); + maj_c.setFile(file); + + Map data = new HashMap(); + data.put("name", maj_c.getMaj()); + data.put("date", maj_c.getDate()); + data.put("file", maj_c.getFile()); + data.put("nodes", maj_c.getNodes().split(";")); + Yaml yaml = new Yaml(); + FileWriter writer = null; + try { + writer = new FileWriter("toflash/" + customer.getEmail().split("@")[0] + "_" + maj_c.getMaj() + ".yaml"); + } catch (IOException e) { + e.printStackTrace(); + } + yaml.dump(data, writer); + + return "redirect:/session"; + } + + @PostMapping(path="/startsavedmaj") + @ResponseStatus(value = HttpStatus.OK) + public void startSavedMaj(@RequestParam String majname){ + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + Customer customer = customerRepository.findByEmail(auth.getName()); + Maj maj = majRepository.findByMaj(majname); + Map data = new HashMap(); + data.put("name", maj.getMaj()); + data.put("date", maj.getDate()); + data.put("file", maj.getFile()); + data.put("nodes", maj.getNodes().split(";")); + Yaml yaml = new Yaml(); + FileWriter writer = null; + try { + writer = new FileWriter("toflash/" + customer.getEmail().split("@")[0] + "_" + maj.getMaj() + ".yaml"); + } catch (IOException e) { + e.printStackTrace(); + } + yaml.dump(data, writer); + } } \ No newline at end of file diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java b/PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java index 020ee6d..8dccb36 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java @@ -5,4 +5,5 @@ import org.springframework.stereotype.Repository; @Repository public interface MajRepository extends JpaRepository { + Maj findByMaj(String maj); } diff --git a/PFE06/src/main/resources/static/js/session.js b/PFE06/src/main/resources/static/js/session.js index f07b57a..38eb91a 100644 --- a/PFE06/src/main/resources/static/js/session.js +++ b/PFE06/src/main/resources/static/js/session.js @@ -1,49 +1,86 @@ $(document).ready(function() { - /********** Configuration file ***********/ - - var configName = document.getElementById("config_name"); - var configSend = document.getElementById("config_send"); - var file = document.getElementById("configInputFile"); - var readyToSend = false; - var formData = new FormData(); + /********** Start saved maj ************/ - file.addEventListener('change', function() { - delete formData; - formData = new FormData(); - configName.innerHTML = this.files[0].name; - formData.append("file", this.files[0]); - readyToSend = true; - }, false) + var startMaj = document.getElementById("start_maj"); - configSend.addEventListener('click', function() { + startMaj.addEventListener('click', function() { var modalContent = document.getElementById("modal-content"); var modalTitle = document.getElementById("modal-title"); - if(readyToSend) { + var majNameSelect = document.getElementById("maj_name").value; + if(majNameSelect !== "" && majNameSelect !== "--") { var request = new XMLHttpRequest(); - request.open("POST", "/config"); + request.open("POST", "/startsavedmaj"); + var formData = new FormData(); + formData.append("majname", majNameSelect); request.onreadystatechange = function() { if(this.readyState === XMLHttpRequest.DONE && this.status === 200) { var modalButton = document.getElementById("modal-button"); - modalButton.addEventListener('click', function(e) { + modalButton.addEventListener('click', function() { location.reload(); }) - modalContent.innerHTML = "Upload terminé !"; modalTitle.innerHTML = "Félicitations"; + modalContent.innerHTML = "La mise à jour a bien été paramétrée"; $("#warningFilesNumber").modal(); } } - request.send(formData); } else { - modalContent.innerHTML = "Veuillez sélectionner un fichier !"; - $("#warningFilesNumber").modal() + modalTitle.innerHTML = "Attention !"; + modalContent.innerHTML = "Veuillez choisir le nom d'une mise à jour"; + $("#warningFilesNumber").modal(); } - }) + + /********** Configuration file ***********/ + + var configName = document.getElementById("config_name"); + var configSend = document.getElementById("config_send"); + var file = document.getElementById("configInputFile"); + var readyToSend = false; + var formData = new FormData(); + + if(file != null) { + file.addEventListener('change', function () { + delete formData; + formData = new FormData(); + configName.innerHTML = this.files[0].name; + formData.append("file", this.files[0]); + readyToSend = true; + }, false) + + configSend.addEventListener('click', function () { + var modalContent = document.getElementById("modal-content"); + var modalTitle = document.getElementById("modal-title"); + if (readyToSend) { + var request = new XMLHttpRequest(); + request.open("POST", "/config"); + + request.onreadystatechange = function () { + if (this.readyState === XMLHttpRequest.DONE && this.status === 200) { + var modalButton = document.getElementById("modal-button"); + modalButton.addEventListener('click', function (e) { + location.reload(); + }) + modalContent.innerHTML = "Upload terminé !"; + modalTitle.innerHTML = "Félicitations"; + $("#warningFilesNumber").modal(); + } + } + + request.send(formData); + } + else { + modalContent.innerHTML = "Veuillez sélectionner un fichier !"; + $("#warningFilesNumber").modal() + } + + }) + } + /********** Tableau **********/ var tableNodes = $('#nodes-table').DataTable( { @@ -65,67 +102,73 @@ $(document).ready(function() { nodeSet.delete(rowData[0]); } ); - document.getElementById("save_maj").addEventListener('click', function() { - - var form = document.createElement('form'); - form.setAttribute('action', 'savemaj'); - form.setAttribute('method', 'post'); + var sendInfoMaj = function(action) { + console.log(action); + var form = document.createElement('form'); + form.setAttribute('action', action); + form.setAttribute('method', 'post'); - var modalContent = document.getElementById("modal-content"); - var majName = document.getElementById("majName").value; - var majDate = document.getElementById("majDate").value; - var majFile = document.getElementById("file_choice").value; + var modalContent = document.getElementById("modal-content"); + var majName = document.getElementById("majName").value; + var majDate = document.getElementById("majDate").value; + var majFile = document.getElementById("file_choice").value; - if(nodeSet.size == 0) { - $("#warningFilesNumber").modal(); - } + if(nodeSet.size == 0) { + $("#warningFilesNumber").modal(); + } - else if(majName == "") { - modalContent.innerHTML = "Veuillez choisir un nom pour la mise à jour"; - $("#warningFilesNumber").modal(); - } + else if(majName === "") { + modalContent.innerHTML = "Veuillez choisir un nom pour la mise à jour"; + $("#warningFilesNumber").modal(); + } - else if(majDate == "") { - modalContent.innerHTML = "Veuillez choisir une date pour la mise à jour" - $("#warningFilesNumber").modal(); - } + else if(majDate === "") { + modalContent.innerHTML = "Veuillez choisir une date pour la mise à jour" + $("#warningFilesNumber").modal(); + } - else if(majFile == "" || majFile == "--") { - modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour" - $("#warningFilesNumber").modal(); - } + else if(majFile === "" || majFile === "--") { + modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour" + $("#warningFilesNumber").modal(); + } - else { - var nodes = Array.from(nodeSet); - - var inputvar1 = document.createElement('input'); - inputvar1.setAttribute('type', 'hidden'); - inputvar1.setAttribute('name', 'name'); - inputvar1.setAttribute('value', majName); - form.appendChild(inputvar1); - - var inputvar2 = document.createElement('input'); - inputvar2.setAttribute('type', 'hidden'); - inputvar2.setAttribute('name', 'date'); - inputvar2.setAttribute('value', majDate); - form.appendChild(inputvar2); - - var inputvar3 = document.createElement('input'); - inputvar3.setAttribute('type', 'hidden'); - inputvar3.setAttribute('name', 'nodes'); - inputvar3.setAttribute('value', nodes.join(";")); - form.appendChild(inputvar3); - - var inputvar4 = document.createElement('input'); - inputvar4.setAttribute('type', 'hidden'); - inputvar4.setAttribute('name', 'file'); - inputvar4.setAttribute('value', majFile); - form.appendChild(inputvar4); - - document.body.appendChild(form); - form.submit(); - } + else { + var nodes = Array.from(nodeSet); + + var inputvar1 = document.createElement('input'); + inputvar1.setAttribute('type', 'hidden'); + inputvar1.setAttribute('name', 'name'); + inputvar1.setAttribute('value', majName); + form.appendChild(inputvar1); + + var inputvar2 = document.createElement('input'); + inputvar2.setAttribute('type', 'hidden'); + inputvar2.setAttribute('name', 'date'); + inputvar2.setAttribute('value', majDate); + form.appendChild(inputvar2); + + var inputvar3 = document.createElement('input'); + inputvar3.setAttribute('type', 'hidden'); + inputvar3.setAttribute('name', 'nodes'); + inputvar3.setAttribute('value', nodes.join(";")); + form.appendChild(inputvar3); + + var inputvar4 = document.createElement('input'); + inputvar4.setAttribute('type', 'hidden'); + inputvar4.setAttribute('name', 'file'); + inputvar4.setAttribute('value', majFile); + form.appendChild(inputvar4); + + document.body.appendChild(form); + form.submit(); + } + } + document.getElementById("save_maj").addEventListener('click', function() { + sendInfoMaj('savemaj'); + }); + document.getElementById("run_maj").addEventListener('click', function() { + sendInfoMaj('runmaj'); }); } ); diff --git a/PFE06/src/main/resources/templates/session.html b/PFE06/src/main/resources/templates/session.html index 1cc81c5..15a967c 100644 --- a/PFE06/src/main/resources/templates/session.html +++ b/PFE06/src/main/resources/templates/session.html @@ -76,9 +76,9 @@ nodes:

Relancer une mise à jour

- + +
@@ -107,7 +107,7 @@ nodes: diff --git a/PFE06/toflash/pfe_admin_maj.yaml b/PFE06/toflash/pfe_admin_maj.yaml new file mode 100644 index 0000000..9c80ea8 --- /dev/null +++ b/PFE06/toflash/pfe_admin_maj.yaml @@ -0,0 +1,4 @@ +date: '2222-02-22' +file: pfelogo.png +nodes: [AT-001, ATTTT-008] +name: admin_maj diff --git a/PFE06/toflash/pfe_coucou.yaml b/PFE06/toflash/pfe_coucou.yaml new file mode 100644 index 0000000..f6a6544 --- /dev/null +++ b/PFE06/toflash/pfe_coucou.yaml @@ -0,0 +1,4 @@ +date: '0022-02-22' +file: pfelogo.png +nodes: [AT-001, AT-002, AT-003, ATTTT-008] +name: coucou -- libgit2 0.21.2