X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Fdashboard%2Fjs%2Fmain.js;h=be63ed1e5757fd5678007df6bc504dc14072310e;hp=3fdd4889e1276b554afa6235cb45e93f06f42334;hb=0719f4efe35a1ef06fe2751228e63d38b855967c;hpb=0d8066654408ea1994d599c12c61b13709055a2d diff --git a/src/emuvim/dashboard/js/main.js b/src/emuvim/dashboard/js/main.js index 3fdd488..be63ed1 100755 --- a/src/emuvim/dashboard/js/main.js +++ b/src/emuvim/dashboard/js/main.js @@ -1,18 +1,45 @@ -var API_HOST = "http://127.0.0.1:5001"; +/* + Copyright (c) 2017 SONATA-NFV and Paderborn University + ALL RIGHTS RESERVED. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Neither the name of the SONATA-NFV, Paderborn University + nor the names of its contributors may be used to endorse or promote + products derived from this software without specific prior written + permission. + + This work has been performed in the framework of the SONATA project, + funded by the European Commission under Grant number 671517 through + the Horizon 2020 and 5G-PPP programmes. The authors would like to + acknowledge the contributions of their colleagues of the SONATA + partner consortium (www.sonata-nfv.eu). +*/ +var API_HOST = ""; // set to a remote url if dashboard is not served by REST API server var ERROR_ALERT = false; var TIMESTAMP = 0; var CONNECTED = false; var LATENESS_UPDATE_INTERVAL = 50; -var DATA_UPDATE_INTERVAL = 1000 * 10; +var DATA_UPDATE_INTERVAL = 1000 * 10; // 30 seconds var LAST_UPDATE_TIMESTAMP_CONTAINER = 0; var LAST_UPDATE_TIMESTAMP_DATACENTER = 0; function update_lateness_loop() { lateness_datacenter= (Date.now() - LAST_UPDATE_TIMESTAMP_DATACENTER) / 1000; - $("#lbl_lateness_datacenter").text("Lateness: " + Number(lateness_datacenter).toPrecision(3) + "s"); + $("#lbl_lateness_datacenter").text("Lateness: " + Number(lateness_datacenter).toPrecision(2) + "s"); lateness_container= (Date.now() - LAST_UPDATE_TIMESTAMP_CONTAINER) / 1000; - $("#lbl_lateness_container").text("Lateness: " + Number(lateness_container).toPrecision(3) + "s"); + $("#lbl_lateness_container").text("Lateness: " + Number(lateness_container).toPrecision(2) + "s"); // loop while connected if(CONNECTED) setTimeout(update_lateness_loop, LATENESS_UPDATE_INTERVAL) @@ -26,11 +53,13 @@ function errorAjaxConnection() { ERROR_ALERT = true; // show message - alert("ERROR!\nAPI request failed.\n\n Please check the backend connection.", function() { - // callback - ERROR_ALERT = false; - }); + //alert("API request failed. Is the emulator running?", function() { + // // callback + // ERROR_ALERT = false; + //}); } + CONNECTED = false; + console.error("API request failed. Is the emulator running?") } @@ -45,7 +74,7 @@ function update_table_datacenter(data) $.each(data, function(i, item) { var row_str = ""; row_str += ''; - row_str += '' + item.label + '1'; + row_str += '' + item.label + ''; row_str += '' + item.internalname + ''; row_str += '' + item.switch + ''; row_str += '' + item.n_running_containers + ''; @@ -66,43 +95,27 @@ function update_table_container(data) // clear table $("#table_container").empty(); // header - $("#table_container").append('DatacenterContainerImagedocker0--Networking--
'); + $("#table_container").append('DatacenterContainerImagedocker0Status'); // fill table $.each(data, function(i, item) { var row_str = ""; - row_str += ''; + row_str += ''; row_str += '' + item[1].datacenter + ''; row_str += '' + item[0] + ''; row_str += '' + item[1].image + ''; - row_str += '' + item[1].docker_network + ''; - row_str += ''; - //row_str += build_network_table(item[1].network, item[0]); - row_str += '
'; - row_str += ''; - $("#table_container").append(row_str); - build_network_table(item[1].network, item[0]); + row_str += '' + item[1].docker_network + ''; + if(item[1].state.Status == "running") + row_str += 'running'; + else + row_str += 'stopped'; + row_str += ''; + $("#table_container").append(row_str); }); $("#lbl_container_count").text(data.length); - $("#table_network").append('
datacenter portinterfaceipmac
') // update lateness counter LAST_UPDATE_TIMESTAMP_CONTAINER = Date.now(); } -function build_network_table(network_list, id) -{ - console.debug('network list ' + id) - console.debug(network_list) - var row_str = ""; - network_list.forEach(function(interface) { - row_str += ''; - row_str += '' + interface.dc_portname + ''; - row_str += '' + interface.intf_name + ''; - row_str += '' + interface.ip + ''; - row_str += '' + interface.mac + ''; - row_str += ''; - }); - $("#network_list_" + id).append(row_str) -} function fetch_datacenter() { @@ -122,14 +135,6 @@ function fetch_container() } -function fetch_d3graph() -{ - // do HTTP request and trigger gui update on success - var request_url = API_HOST + "/restapi/network/d3jsgraph"; - console.debug("fetching from: " + request_url); - //$.getJSON(request_url, update_graph); -} - function fetch_loop() { // only fetch if we are connected @@ -150,7 +155,7 @@ function connect() { console.info("connect()"); // get host address - API_HOST = "http://" + $("#text_api_host").val(); + //API_HOST = "http://" + $("#text_api_host").val(); console.debug("API address: " + API_HOST); // reset data LAST_UPDATE_TIMESTAMP_DATACENTER = Date.now(); @@ -160,36 +165,19 @@ function connect() update_lateness_loop(); // restart data fetch loop fetch_loop(); - // gui updates - $("#btn_disconnect").removeClass("disabled"); - $("#btn_connect").addClass("disabled"); -} - -function disconnect() -{ - console.info("disconnect()"); - CONNECTED = false; - // gui updates - $("#btn_connect").removeClass("disabled"); - $("#btn_disconnect").addClass("disabled"); } $(document).ready(function(){ console.info("document ready"); // setup global connection error handling - /* + $.ajaxSetup({ "error": errorAjaxConnection }); - // add listeners - $("#btn_connect").click(connect); - $("#btn_disconnect").click(disconnect); - */ - setTimeout(fetch_datacenter, 500);//fetch_datacenter(); - setTimeout(fetch_container, 1000);//fetch_container(); - + // connect + connect(); // additional refresh on window focus $(window).focus(function () {