<button type="button" name="button" onclick="pingall()">Ping all</button>
<button type="button" name="button" onclick="placement()">Placement</button>
<button type="button" name="button" onclick="iperf()">Iperf3</button>
+ <button type="button" name="button" onclick="net()">Network</button>
+ <button type="button" name="button" onclick="nodes()">Nodes</button>
+ <button type="button" name="button" onclick="status()">Status</button>
+ <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">
<textarea class="text" style="font-size: 12px;" disabled rows="20" cols="7" id="controllerout" placeholder="Salida del controlador"></textarea>
</div>
- <div class="terminal"></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 intervalController = null;
- let intervalVsorc = null
+ 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
- function startcontroller() {
+ 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);
+ function startcontroller() {
let xhr = new XMLHttpRequest();
xhr.open('GET', '/startcontroller', true);
//console.log(xhr); //para ver en la consola
}
}
xhr.send();
- intervalController=setInterval(getcontrollerdata, 500);
+
+ }
+ 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() {
}
}
xhr.send();
- clearInterval(intervalController);
+ //clearInterval(intervalController);
controllerout.value='';
}
function getcontrollerdata() {
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();
}
}
xhr.send();
- intervalVsorc = setInterval(getvsorcdata, 2000);
+
}
function stopvsorc() {
}
}
xhr.send();
- clearInterval(intervalVsorc);
+ //clearInterval(intervalVsorc);
vsorcout.value='';
}
vsorcout.scrollTop = vsorcout.scrollHeight;
}
+
+
function pingall() {
let xhr = new XMLHttpRequest();
xhr.open('GET', '/pingall', true);
}
xhr.send();
}
+
+ function iperf() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/iperf', true);
+ 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;
+ console.log("iperf");
+
+
+ }
+ }
+ xhr.send();
+ }
+
function placement() {
let xhr = new XMLHttpRequest();
xhr.open('GET', '/placement', true);
}
xhr.send();
}
- ///////////////////////////////////////////////////////////////////////CODIGO DE LA terminal
- // No idea what these are about. Just copied them from the demo code
- // Terminal.applyAddon(attach);
- // Terminal.applyAddon(fit);
- // Terminal.applyAddon(winptyCompat);
- // The terminal
-
- // const fitAddon = new FitAddon();
- // term.loadAddon(fitAddon);
-
-
- const term = new Terminal();
- // No idea what this does
- // term.winptyCompatInit();
- // This kinda makes sense
- const container = document.getElementById('terminal');
- term.open(container);
- // Open the websocket connection to the backend
- const protocol = (location.protocol === 'https:') ? 'wss://' : 'ws://';
- const port = location.port ? `:${location.port}` : '';
- const socketUrl = `${protocol}${location.hostname}${port}/shell`;
- const socket = new WebSocket(socketUrl);
- const attachAddon = new AttachAddon(socket);
- term.loadAddon(attachAddon);
- // Attach the socket to the terminal
- socket.onopen = (ev) => { term.attach(socket); };
- // Not going to worry about close/error for the websocket
- //////////////////////////////////////////////////////////////////////FIN DEL CODIGO DE LA TERMINAL
+
+ function net() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/net', true);
+ 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;
+ console.log("net");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function nodes() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/nodes', true);
+ 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;
+ console.log("nodes");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function status() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/statusnodes', true);
+ 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;
+ console.log("statusnodes");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ function intfs() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/intfs', true);
+ 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;
+ console.log("interfaces");
+
+
+ }
+ }
+ xhr.send();
+ }
+
</script>
</main>
</body>