send command from the web
authorFelix <josuer08@gmail.com>
Wed, 27 Nov 2019 01:22:43 +0000 (01:22 +0000)
committerFelix <josuer08@gmail.com>
Wed, 27 Nov 2019 01:22:43 +0000 (01:22 +0000)
src/routes/index.js
src/views/index.ejs
src/views/starter.ejs
styles/starter.css

index d4f9b59ffd41841e9b21b2da53cc349945a29955..f65c4ef6f7bb2e8a991686dbf81cabd5536485aa 100644 (file)
@@ -225,7 +225,25 @@ router.get('/stopcontroller', (req, res) => {
     res.send(stdout);
   });
 });
-
+router.get('/sendcommand', (req, res) => {
+  var sys = require('sys')
+  var exec = require('child_process').exec;
+  var child;
+  request = JSON.parse(req.query.cmd); //recibiendo el comando
+  child = exec("cd /home/pi/scripts && echo \""+request+"\" > fifo", function(error, stdout, stderr) {
+    console.log("command received \n" + request+"\n");
+    res.send(stdout);
+  });
+});
+router.get('/cancel', (req, res) => {
+  var sys = require('sys')
+  var exec = require('child_process').exec;
+  var child;
+  child = exec("sudo kill -2 $(ps aux | grep GRE| grep sudo|awk {'print $2'})", function(error, stdout, stderr) {
+    console.log("cancelled");
+    res.send(stdout);
+  });
+});
 router.get('/startvsorc', (req, res) => {
   var sys = require('sys')
   var exec = require('child_process').exec;
index 4eeb92fce08452295d8599b6b262e888b0e21b1b..9999db8ec14e6d9b8a4fe92e50b42a2d9fd89451 100644 (file)
@@ -58,7 +58,7 @@
             }
           }
           xhr.send();
-        }, 2000)
+        }, 1000)
       </script>
     </div>
 
         //clearInterval(intervalController);
 
       }
-      setInterval(showtemp,3000);
+      setInterval(showtemp,10000);
       </script>
     </div>
 
index 01aca3a536c7c07d53bd5f840ad20abc799ad5d9..50c1ec63ab58588465f7aa769ff7656407532714 100644 (file)
           <button type="button" name="button" onclick="intfs()">Interfaces</button>
         </div>
       </div>
-
+      <div class="panel">
+        <textarea class="text" style="font-size: 12px;" rows="20" cols="7" id="vsorccommand" placeholder="Enviar comandos a la terminal"></textarea>
+        <div class="buttons">
+        <button type="button" name="button" onclick="sendcommand()">Send</button>
+        <!-- <button type="button" name="button" onclick="cancel()">Cancel</button> -->
+      </div>
+      </div>
     </div>
 
     <div class="side">
       <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="20" cols="7" id="a" placeholder="Salida del controlador"></textarea>
-      </div>
+
     </div>
 
     <script type="text/javascript">
 
 
 
-      let topo = document.getElementById('comandos') //Donde van escrito el DSL
-      let vsorcout = document.getElementById('vsorcout') //salida del vsorc
-      let controllerout = document.getElementById('controllerout') //salida del controlador
+      let topo = document.getElementById('comandos'); //Donde van escrito el DSL
+      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 timeVsorc = 1000;
-      let timeController = 1000;
+      let timeController = 2000;
       //Estos time son para especificar cada cuantos ms se pedira leer la data de los archivos aichivo y controllerout
 
       let intervalController = null;//Para tener el id del interval para obtener data del controller
         }
         xhr.send();
 
+      }
+      function cancel() {
+        let xhr = new XMLHttpRequest();
+        xhr.open('GET', '/cancel', true);
+        //console.log(xhr); //para ver en la consola
+        xhr.onload = function() {
+          if (xhr.status == 200) { //can use this.status instead
+            console.log("cancelled");
+          }
+        }
+        xhr.send();
+
       }
 
       function stopcontroller() {
 
         controllerout.scrollTop = controllerout.scrollHeight;
       }
+      function sendcommand() {
+        let xhr = new XMLHttpRequest();
+        cmd = JSON.stringify(comando.value);
+        xhr.open('GET', '/sendcommand?cmd=' + cmd, true);
+        xhr.onload = function() {
+          if (xhr.status == 200) { //can use this.status instead
+            //console.log(xhr.responseText);// para ver en la consola
+            console.log("command sended is "+cmd);
+          }
+        }
+        xhr.send();
+
+      }
 
       function startvsorc() {
         let xhr = new XMLHttpRequest();
 
         vsorcout.scrollTop = vsorcout.scrollHeight;
       }
+
+
       function pingall() {
         let xhr = new XMLHttpRequest();
         xhr.open('GET', '/pingall', true);
           if (xhr.status == 200) { //can use this.status instead
             //console.log(xhr.responseText);// para ver en la consola
             vsorcout.value+=xhr.response;
-            console.log("pingall");
+            console.log("iperf");
 
 
           }
         }
         xhr.send();
       }
+
       function placement() {
         let xhr = new XMLHttpRequest();
         xhr.open('GET', '/placement', true);
           if (xhr.status == 200) { //can use this.status instead
             //console.log(xhr.responseText);// para ver en la consola
             vsorcout.value+=xhr.response;
-            console.log("placement");
+            console.log("statusnodes");
 
 
           }
           if (xhr.status == 200) { //can use this.status instead
             //console.log(xhr.responseText);// para ver en la consola
             vsorcout.value+=xhr.response;
-            console.log("placement");
+            console.log("interfaces");
 
 
           }
index bec7a31f27bccaee79ca8e83f5fa5d718f366501..b23c5018080e971df21d0fc17bd90b6111b44ae8 100644 (file)
@@ -19,7 +19,7 @@ footer {
   border: 1px #AA55AA dashed;
 }
 .text{
-  width: 80%
+  width: 100%
 }
 .buttons {
 
@@ -55,3 +55,8 @@ textarea {
   border: 0;
   border-right: 2px black solid;
 }
+#vsorccommand {
+  width: 83%;
+  height: 2em;
+
+}