cambios camacho v1
authorFelix <josuer08@gmail.com>
Fri, 29 Nov 2019 01:50:49 +0000 (01:50 +0000)
committerFelix <josuer08@gmail.com>
Fri, 29 Nov 2019 01:50:49 +0000 (01:50 +0000)
fifo [deleted file]
js/topology/topology.js
npm-debug.log
src/routes/index.js
src/views/index.ejs
src/views/starter.ejs
styles/starter.css

diff --git a/fifo b/fifo
deleted file mode 100644 (file)
index e69de29..0000000
index 0f6e1f1ba426019396ffcf5359281ef406f0cd9a..45040e107c1709d4bfd6353d5f94950520fc3a07 100644 (file)
@@ -74,8 +74,9 @@ $(function () {
         }
 
         lst = top.hosts;
+        console.log(top.hosts);
         for (var i = 0; i < lst.length; i++) {
-            nodes.push({ "id": lst[i].mac, "type": "host" });
+            nodes.push({ "id": lst[i].mac, "type": "host","ip": lst[i].ipv4});
             links.push({
                 "source": lst[i].port.dpid, "target": lst[i].mac, "value": 2,
                 "port": { "source": lst[i].port.port_no, "target": 0 }
@@ -153,6 +154,12 @@ $(function () {
             .attr("class", "label")
             .attr("dy", size + 14)
             .text(function (d) { return d.id; });
+
+
+       node.append("text")
+            .attr("class", "label")
+            .attr("dy", size + 26)
+            .text(function (d) { if (d.type === "host")return (d.ip); });
             // .text(function (d) { return d.id.replace(/^0+/, ''); });
 
 
index a2cfa34731f57141a69381f9c9a151dc3122b6ce..54b150b6732b90ca9fb0a5cef0ca442b1cae7ca4 100644 (file)
@@ -8,7 +8,7 @@
 7 verbose unsafe-perm in lifecycle true
 8 info web@1.0.0 Failed to exec start script
 9 error web@1.0.0 start: `node src/index.js`
-9 error Exit status 1
+9 error Exit status 143
 10 error Failed at the web@1.0.0 start script.
 10 error This is most likely a problem with the web package,
 10 error not with npm itself.
index f65c4ef6f7bb2e8a991686dbf81cabd5536485aa..0084754861ae7c4e74a69dc46c054abe8280a06d 100644 (file)
@@ -24,7 +24,8 @@ router.get("/stats", (req, res) => {
 router.get("/topology", (req, res) => {
   res.render("topology")
 });
-
+let isVsorcUP = false;
+let isControllerUP = false;
 router.get("/topologyMaker", (req, res) => {
   res.render("topologyMaker")
 });
@@ -90,6 +91,16 @@ router.get('/net', (req, res) => {
   });
 });
 
+router.get('/rpiping', (req, res) => {
+  var sys = require('sys')
+  var exec = require('child_process').exec;
+  var child;
+  child = exec("cd /home/pi/scripts && ./rpiping.sh", function(error, stdout, stderr) {
+    console.log("rpiping");
+    res.send(stdout);
+  });
+});
+
 router.get('/nodes', (req, res) => {
   var sys = require('sys')
   var exec = require('child_process').exec;
@@ -150,21 +161,32 @@ router.get('/placement', (req, res) => {
 });
 
 router.get('/getvsorcdata', (req, res) => {
+
   var sys = require('sys')
   var exec = require('child_process').exec;
   var child;
-  child = exec("cd /home/pi/scripts && cat aichivo 2>&1", function(error, stdout, stderr) {
+  var child2;
+  child2 = exec("ps aux | grep GRE| grep sudo | grep -v tail| awk {'print $2'}", function(error, stdout, stderr) {
+    console.log("view status vsorc");
+    if (stdout === ""){
+      isVsorcUP = false;
+    }else {
+      isVsorcUP = true;
+    }
+  });
+  child = exec("cd /home/pi/scripts && cat aichivo 2>/dev/null", function(error, stdout, stderr) {
     console.log("getting vsorc data");
-    res.send(stdout);
+    res.send(stdout+"^"+isVsorcUP);
   });
+
 });
 router.get('/getcontrollerdata', (req, res) => {
   var sys = require('sys')
   var exec = require('child_process').exec;
   var child;
-  child = exec("cd /home/pi/scripts && cat controllerout 2>&1", function(error, stdout, stderr) {
+  child = exec("cd /home/pi/scripts && cat controllerout 2>/dev/null", function(error, stdout, stderr) {
     console.log("getting controller data");
-    res.send(stdout);
+    res.send(stdout+"^"+isControllerUP);
   });
 });
 router.get('/listswitch', (req, res) => {
@@ -205,6 +227,7 @@ router.get('/status', (req, res) => {
 
 
 router.get('/startcontroller', (req, res) => {
+  isControllerUP = true;
   var sys = require('sys')
   var exec = require('child_process').exec;
   var child;
@@ -217,6 +240,7 @@ router.get('/startcontroller', (req, res) => {
 });
 
 router.get('/stopcontroller', (req, res) => {
+  isControllerUP = false;
   var sys = require('sys')
   var exec = require('child_process').exec;
   var child;
@@ -245,12 +269,14 @@ router.get('/cancel', (req, res) => {
   });
 });
 router.get('/startvsorc', (req, res) => {
+
   var sys = require('sys')
   var exec = require('child_process').exec;
   var child0;//needs a mkfifo named fifo to exist
   var child1;
   var child2;
   var child3;
+  var child4;
   var answer;
   request = JSON.parse(req.query.topology)
   console.log("Topology is : \n"+ request);
@@ -259,7 +285,7 @@ router.get('/startvsorc', (req, res) => {
     console.log(stdout + stderr);
     answer+=stdout;
   });
-  child1 = exec("cd /home/pi/scripts && mkfifo fifo && touch aichivo", function(error, stdout, stderr) {
+  child1 = exec("cd /home/pi/scripts && mkfifo fifo && rm aichivo && touch aichivo", function(error, stdout, stderr) {
     console.log(stdout + stderr);
     answer+=stdout;
   });
@@ -267,6 +293,8 @@ router.get('/startvsorc', (req, res) => {
     console.log(stdout + stderr);
     answer+=stdout;
   });
+
+
   //child3 uses tail so it can read from fifo even after a EOF
   child3 = exec("cd /home/pi/scripts && tail -n +1 -f fifo | sudo ./clusterGRE.py > aichivo 2>&1 &", function(error, stdout, stderr) {
     console.log(stdout + stderr);
@@ -276,6 +304,7 @@ router.get('/startvsorc', (req, res) => {
 });
 
 router.get('/stopvsorc', (req,res) =>{
+
   var sys = require('sys')
   var exec = require('child_process').exec;
   var child1;
@@ -283,25 +312,25 @@ router.get('/stopvsorc', (req,res) =>{
   var child3;
   var payload
   console.log("erasing...");
-  child1 = exec("cd /home/pi/scripts && exec 3>&- && rm fifo && rm aichivo", function(error, stdout, stderr) {
+  child1 = exec("cd /home/pi/scripts && exec 3>&- ", function(error, stdout, stderr) {
     console.log(stdout);
 
     payload+="rm done\n\n"+stdout;
   });//esto cierra el fifo, lo cual cierra el programa
 
-  //sudo kill $(ps aux | grep GRE| grep sudo|awk {'print $2'}) && cd /home/pi && ./multissh.sh sudo -E mn -c; sudo -E mn -c
-  console.log("killing all...");
-  child2 = exec("sudo kill $(ps aux | grep GRE| grep sudo|awk {'print $2'})", function(error, stdout, stderr) {
+  //antes, en ves de echo exit > fifo, estaba sudo kill $(ps aux | grep GRE| grep sudo|awk {'print $2'})
+  console.log("Exiting...");
+  child2 = exec("cd /home/pi/scripts && echo exit > fifo && rm fifo", function(error, stdout, stderr) {
     console.log(stdout);
     payload+="killed\n\n"+stdout;
   });
-  console.log("Multisshing and cleaning...");
-  child3 = exec("cd /home/pi/scripts && ./multissh.sh sudo -E mn -c; sudo -E mn -c", function(error, stdout, stderr) {
-    console.log(stdout);
-    console.log("multisshed");
-    payload+="Multisshed\n\n"+stdout;
-
-  });
+  // console.log("Multisshing and cleaning...");
+  // child3 = exec("cd /home/pi/scripts && ./multissh.sh sudo -E mn -c; sudo -E mn -c", function(error, stdout, stderr) {
+  //   console.log(stdout);
+  //   console.log("multisshed");
+  //   payload+="Multisshed\n\n"+stdout;
+  //
+  // });
   res.send(payload);
 });
 module.exports = router;
index 9999db8ec14e6d9b8a4fe92e50b42a2d9fd89451..0d3b5f0743d7187c2b23885b6fa9fcafc45a4f2f 100644 (file)
     <div class="wrapper TEMP">
       <div class="navbar navbar-dark bg-light"><span>Temperatura de los equipos</span></div>
       <div id="temp">
-        <textarea class="text" rows="20" cols="7" id="temperatura" placeholder="Definicion de la red como: h1:s1"></textarea>
+        <textarea class="text" rows="20" cols="7" id="temperatura"></textarea>
       </div>
       <script>
       function showtemp() {
index 50c1ec63ab58588465f7aa769ff7656407532714..07d5f07c532b8afeb9f955de0d57db1267941d99 100644 (file)
 </header>
 
 <body>
-
   <main>
     <div class="side">
 
       <div class="panel">
         <textarea class="text" rows="20" cols="7" id="comandos" placeholder="Definicion de la red como: h1:s1"></textarea>
         <div class="buttons">
-          <button type="button" name="button" onclick="startvsorc()">Iniciar VSoRC</button>
-          <button type="button" name="button" onclick="stopvsorc()">Detener VSoRC</button>
-          <button type="button" name="button" onclick="startcontroller()">Iniciar controlador</button>
-          <button type="button" name="button" onclick="stopcontroller()">Detener controlador</button>
+          <button id="btnstartvsorc" type="button" name="button" onclick="startvsorc()">Iniciar VSoRC</button>
+          <button id="btnstopvsorc" type="button" name="button" onclick="stopvsorc()">Detener VSoRC</button>
+          <button id="btnstartcontroller" type="button" name="button" onclick="startcontroller()">Iniciar controlador</button>
+          <button id="btnstopcontroller" type="button" name="button" onclick="stopcontroller()">Detener controlador</button>
         </div>
       </div>
 
       <div class="panel">
         <textarea class="text" style="font-size: 12px;" disabled rows="20" cols="7" id="controllerout" placeholder="Salida del controlador"></textarea>
       </div>
+      <div class="panel">
+        <textarea class="text" style="font-size: 12px;" disabled rows="16" cols="7" id="raspberrys" placeholder="Raspberry Pi UP!"></textarea>
+      </div>
+
 
     </div>
 
       let comando = document.getElementById('vsorccommand'); //Donde va escrito el comando para la terminal
       let vsorcout = document.getElementById('vsorcout'); //salida del vsorc
       let controllerout = document.getElementById('controllerout'); //salida del controlador
+      let raspberry = document.getElementById('raspberrys'); //monitor de las rpi disponibles
 
       let timeVsorc = 1000;
-      let timeController = 2000;
-      //Estos time son para especificar cada cuantos ms se pedira leer la data de los archivos aichivo y controllerout
+      let timeController = 1000;
+      let timeping = 5000;
+      //Estos time son para especificar cada cuantos ms se pedira leer la data de los archivos aichivo, controllerout y que raspberry estan activas
 
       let intervalController = null;//Para tener el id del interval para obtener data del controller
       let intervalVsorc = null; //Para tener el id del interval para obtener data del vsorc
 
       intervalVsorc = setInterval(getvsorcdata, timeVsorc);
       intervalController=setInterval(getcontrollerdata, timeController);
+      setInterval(rpiping,timeping);
+      function rpiping() {
+        let xhr = new XMLHttpRequest();
+        xhr.open('GET', '/rpiping', true);
+        xhr.onload = function() {
+          if (xhr.status == 200) { //can use this.status instead
+            //console.log(xhr.responseText);// para ver en la consola
+            raspberry.value=xhr.response;
+            console.log("getting controller data");
+          }
+        }
+        xhr.send();
 
+      }
       function startcontroller() {
         let xhr = new XMLHttpRequest();
         xhr.open('GET', '/startcontroller', true);
         xhr.onload = function() {
           if (xhr.status == 200) { //can use this.status instead
             //console.log(xhr.responseText);// para ver en la consola
-            controllerout.value=xhr.response;
+            let controllerstat = xhr.response.split('^');
+            if(controllerstat[1] === "true"){
+            document.getElementById('btnstopcontroller').disabled = false;
+            document.getElementById('btnstartcontroller').disabled = true;
+            }else{
+              document.getElementById('btnstopcontroller').disabled = true;
+              document.getElementById('btnstartcontroller').disabled = false;
+            }
+            controllerout.value=controllerstat[0];
             console.log("getting controller data");
           }
         }
         xhr.onload = function() {
           if (xhr.status == 200) { //can use this.status instead
             //console.log(xhr.responseText);// para ver en la consola
-            vsorcout.value=xhr.response;
+
+            //strip
+            //cambiar boton con vaina[1]
+            //vsorcout = vaina[0]
+            let vsorcstat = xhr.response.split('^');
+            if(vsorcstat[1] === "true"){
+            document.getElementById('btnstopvsorc').disabled = false;
+            document.getElementById('btnstartvsorc').disabled = true;
+            }else{
+              document.getElementById('btnstopvsorc').disabled = true;
+              document.getElementById('btnstartvsorc').disabled = false;
+            }
+
+            vsorcout.value=vsorcstat[0];
+
             console.log("getting vsorc data");
 
 
index b23c5018080e971df21d0fc17bd90b6111b44ae8..23b0a26e63f6d433b2d95be3c494e4f5b94e3c2f 100644 (file)
@@ -39,6 +39,10 @@ button {
   background-color: white;
   transition: background-color 0.3s ease-in, color 0.3s ease-in;
 }
+ button:disabled {
+  color:rgba(255,0,0, 0.3);
+  background-color: grey;
+}
 
 button:hover {
   background-color: darkgrey;
@@ -60,3 +64,9 @@ textarea {
   height: 2em;
 
 }
+#raspberrys{
+  height: 19em;
+}
+#controllerout{
+  height: 23em;
+}