<title></title>
<!-- <link rel="stylesheet" type="text/css" href="/styles/main.css" /> -->
<%include ../../partials/head%>
- <style media="screen">
- body{
- display: flex;
- flex-flow: row wrap;
- }
- main{
- flex-grow: 2;
- }
- aside{
- flex-grow: 1;
- }
- footer{
- position: absolute;
- top: 100%;
- }
-
- input[type="text"]{
- background-color: rgba(200,200,200,0.5);
- border: 0;
- border-bottom: 2px black solid;
- overflow: hidden;
- width: 15em;
- }
- button{
- border: 0;
- border-bottom: 2px black solid;
- overflow: hidden;
- width: 15em;
- background-color: white;
- }
- </style>
+ <link rel="stylesheet" type="text/css" href="/styles/starter.css" />
+ <link rel="stylesheet" href="/node_modules/xterm/css/xterm.css" />
+<!-- <link rel="stylesheet" href="/node_modules/xterm/dist/addons/fullscreen/fullscreen.css" /> -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/es6-promise/4.1.1/es6-promise.auto.min.js"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/1.0.0/fetch.min.js"></script>
+<script src="/node_modules/xterm/lib/xterm.js"></script>
+<script src="/node_modules/xterm-addon-fit/lib/xterm-addon-fit.js"></script>
+<script src="/node_modules/xterm-addon-attach/lib/xterm-addon-attach.js"></script>
+<!-- <script src="/node_modules/xterm/dist/addons/winptyCompat/winptyCompat.js"></script> -->
+
</head>
<header>
<%include ../../partials/header%>
+
</header>
+
<body>
<main>
- <button type="button" name="button" onclick="startcontroller()">Iniciar controlador</button>
- <button type="button" name="button" onclick="stopcontroller()">Detener controlador</button>
- <button type="button" name="button" onclick="startvsorc()">Iniciar VsoRc</button>
- <button type="button" name="button" onclick="stopvsorc()">Detener VsoRc</button>
- <textarea rows="20" cols="7" id="comandos"></textarea>
+ <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>
+ </div>
+ </div>
+
+ <div class="panel">
+ <textarea class="text" style="font-size: 12px;" disabled rows="20" cols="7" id="vsorcout" placeholder="Salida del sistema de consola"></textarea>
+ <div class="buttons">
+ <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>
+
+ <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')
- function stopcontroller() {
- let xhr = new XMLHttpRequest();
- xhr.open('GET', '/stopcontroller', true);
- xhr.onload = function() {
- if (xhr.status == 200) { //can use this.status instead
- //console.log(xhr.responseText);// para ver en la consola
- console.log("controller stoped");
+ 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 timeVsorc = 1000;
+ let timeController = 1000;
+ //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
+ 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.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ console.log("controller started");
+ }
}
+ xhr.send();
+
}
- xhr.send();
- }
+ function stopcontroller() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/stopcontroller', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ console.log("controller stoped");
+ }
+ }
+ xhr.send();
+ //clearInterval(intervalController);
+ controllerout.value='';
+ }
+ function getcontrollerdata() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/getcontrollerdata', 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;
+ console.log("getting controller data");
+ }
+ }
+ xhr.send();
- function startcontroller() {
- let xhr = new XMLHttpRequest();
- xhr.open('GET', '/startcontroller', true);
- //console.log(xhr); //para ver en la consola
- xhr.onload = function() {
- if (xhr.status == 200) { //can use this.status instead
+ controllerout.scrollTop = controllerout.scrollHeight;
+ }
- console.log("controller started");
+ function startvsorc() {
+ let xhr = new XMLHttpRequest();
+ topology = JSON.stringify(topo.value)
+ xhr.open('GET', '/startvsorc?topology=' + topology, true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+ console.log("vsorc started");
+ }
}
+ xhr.send();
+
}
- xhr.send();
- }
- function startvsorc() {
- let xhr = new XMLHttpRequest();
- topology = JSON.stringify(topo.value)
- xhr.open('
- GET', '/startvsorc?topology='+topology, true);
- xhr.onload = function() {
- if (xhr.status == 200) { //can use this.status instead
- //console.log(xhr.responseText);// para ver en la consola
- console.log("vsorc started");
- }
+ function stopvsorc() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/stopvsorc', true);
+ xhr.onload = function() {
+ if (xhr.status == 200) { //can use this.status instead
+ //console.log(xhr.responseText);// para ver en la consola
+
+ console.log("vsorc stopped");
}
+ }
+ xhr.send();
+ //clearInterval(intervalVsorc);
+ vsorcout.value='';
+ }
- xhr.send();
+ function getvsorcdata() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/getvsorcdata', 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("getting vsorc data");
+
+ }
}
- function stopvsorc() {
- let xhr = new XMLHttpRequest();
- xhr.open('GET', '/stopvsorc', true);
- xhr.onload = function() {
- if (xhr.status == 200) { //can use this.status instead
- //console.log(xhr.responseText);// para ver en la consola
- console.log("vsorc stopped");
- }
- }
- xhr.send();
+ xhr.send();
+
+ vsorcout.scrollTop = vsorcout.scrollHeight;
+ }
+ function pingall() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/pingall', 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("pingall");
+
+
}
- </script>
- </main>
- <aside class="">
- <div class="statuscontroller">
+ }
+ xhr.send();
+ }
- </div>
- <div class="statusproyect">
+ 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("pingall");
- </div>
- </aside>
+
+ }
+ }
+ xhr.send();
+ }
+ function placement() {
+ let xhr = new XMLHttpRequest();
+ xhr.open('GET', '/placement', 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("placement");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ 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("placement");
+
+
+ }
+ }
+ 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("placement");
+
+
+ }
+ }
+ xhr.send();
+ }
+
+ </script>
+ </main>
</body>
<footer>
<%include ../../partials/footer%>