X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fweb%2Ftroubleshoot%2Fsrc%2Fmain%2Fresources%2Fjs%2Fpage.js;h=09c4666d44757de4c338a70037e94c3c36aed6fa;hp=bcf911f0a5583a46bf14b5150ff20a01c1096bfc;hb=f08d2774c06e55e377191b027ec9131921977e70;hpb=e383b2e0b9072b7b5b3e3903b8a42ab3917b7f63 diff --git a/opendaylight/web/troubleshoot/src/main/resources/js/page.js b/opendaylight/web/troubleshoot/src/main/resources/js/page.js index bcf911f0a5..09c4666d44 100644 --- a/opendaylight/web/troubleshoot/src/main/resources/js/page.js +++ b/opendaylight/web/troubleshoot/src/main/resources/js/page.js @@ -1,8 +1,8 @@ -/* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, +/* + * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * */ @@ -63,13 +63,13 @@ $(one.f.menu.right.bottom).each(function(index, value) { /**Troubleshoot modules*/ one.f.troubleshooting = { rootUrl: "/controller/web/troubleshoot", - rightBottomDashlet: { + rightBottomDashlet: { get: function() { var $rightBottomDashlet = $("#right-bottom").find(".dashlet"); return $rightBottomDashlet; }, setDashletHeader: function(label) { - $("#right-bottom li a")[0].innerHTML = label; + $("#right-bottom li a")[0].innerHTML = label; } }, createTable: function(columnNames, body) { @@ -90,13 +90,13 @@ one.f.troubleshooting.existingNodes = { modal: "one_f_troubleshooting_existingNodes_id_modal", existingNodesDataGrid: "one_f_troubleshooting_existingNodes_id_datagrid", portsDataGrid: "one_f_troubleshooting_existingNodes_id_portsDataGrid", - flowsDataGrid: "one_f_troubleshooting_existingNodes_id_flowsDataGrid" - }, - // TODO: Make these values configurable. - autoRefreshInterval: { - flows: 10000, - ports: 10000, - refreshRateInterval: 5000 + flowsDataGrid: "one_f_troubleshooting_existingNodes_id_flowsDataGrid", + refreshFlowsButton:"one_f_troubleshooting_existingNodes_id_refreshFlowsButton", + refreshPortsButton:"one_f_troubleshooting_existingNodes_id_refreshPortsButton", + modal : { + nodeInfo : "one_f_troubleshooting_existingNodes_id_modal_nodeInfo", + cancelButton : "one_f_troubleshooting_existingNodes_id_modal_cancelButton", + } }, load: { main: function($dashlet) { @@ -122,13 +122,18 @@ one.f.troubleshooting.existingNodes = { if(one.f.troubleshooting === undefined){ return; } - clearTimeout(one.f.troubleshooting.existingNodes.registry.refreshTimer); $.getJSON(one.main.constants.address.prefix + "/troubleshoot/flowStats?nodeId=" + nodeId, function(content) { $rightBottomDashlet = one.f.troubleshooting.rightBottomDashlet.get(); one.f.troubleshooting.rightBottomDashlet.setDashletHeader("Flows"); one.lib.dashlet.empty($rightBottomDashlet); $rightBottomDashlet.append(one.lib.dashlet.header("Flow Details")); - + var button = one.lib.dashlet.button.single("Refresh", + one.f.troubleshooting.existingNodes.id.refreshFlowsButton, "btn-primary", "btn-mini"); + var $button = one.lib.dashlet.button.button(button); + $button.click(function() { + one.f.troubleshooting.existingNodes.load.flows(nodeId); + }); + $rightBottomDashlet.append($button); var $gridHTML = one.lib.dashlet.datagrid.init(one.f.troubleshooting.existingNodes.id.flowsDataGrid, { searchable: true, filterable: false, @@ -138,16 +143,6 @@ one.f.troubleshooting.existingNodes = { $rightBottomDashlet.append($gridHTML); var dataSource = one.f.troubleshooting.existingNodes.data.flowsGrid(content); $("#" + one.f.troubleshooting.existingNodes.id.flowsDataGrid).datagrid({dataSource: dataSource}); - - var numberOfFlows = content.nodeData.length; - var refreshRate = one.f.troubleshooting.existingNodes.autoRefreshInterval.flows; - if (numberOfFlows > 0) { - refreshRate += Math.floor(numberOfFlows / 500) * - one.f.troubleshooting.existingNodes.autoRefreshInterval.refreshRateInterval; - } - one.f.troubleshooting.existingNodes.registry.refreshTimer = setTimeout( - one.f.troubleshooting.existingNodes.load.flows, - refreshRate, nodeId); }); } catch(e) {} }, @@ -156,13 +151,18 @@ one.f.troubleshooting.existingNodes = { if(one.f.troubleshooting === undefined){ return; } - clearTimeout(one.f.troubleshooting.existingNodes.registry.refreshTimer); $.getJSON(one.main.constants.address.prefix + "/troubleshoot/portStats?nodeId=" + nodeId, function(content) { $rightBottomDashlet = one.f.troubleshooting.rightBottomDashlet.get(); one.f.troubleshooting.rightBottomDashlet.setDashletHeader("Ports"); one.lib.dashlet.empty($rightBottomDashlet); $rightBottomDashlet.append(one.lib.dashlet.header("Port Details")); - + var button = one.lib.dashlet.button.single("Refresh", + one.f.troubleshooting.existingNodes.id.refreshPortsButton, "btn-primary", "btn-mini"); + var $button = one.lib.dashlet.button.button(button); + $button.click(function() { + one.f.troubleshooting.existingNodes.load.ports(nodeId); + }); + $rightBottomDashlet.append($button); var $gridHTML = one.lib.dashlet.datagrid.init(one.f.troubleshooting.existingNodes.id.portsDataGrid, { searchable: true, filterable: false, @@ -172,19 +172,9 @@ one.f.troubleshooting.existingNodes = { $rightBottomDashlet.append($gridHTML); var dataSource = one.f.troubleshooting.existingNodes.data.portsGrid(content); $("#" + one.f.troubleshooting.existingNodes.id.portsDataGrid).datagrid({dataSource: dataSource}); - - var numberOfPorts = content.nodeData.length; - var refreshRate = one.f.troubleshooting.existingNodes.autoRefreshInterval.ports; - if (numberOfPorts > 0) { - refreshRate += Math.floor(numberOfPorts / 500) * - one.f.troubleshooting.existingNodes.autoRefreshInterval.refreshRateInterval; - } - one.f.troubleshooting.existingNodes.registry.refreshTimer = setTimeout( - one.f.troubleshooting.existingNodes.load.ports, - refreshRate, nodeId); }); } catch(e) {} - } + } }, ajax : function(url, callback) { $.getJSON(url, function(data) { @@ -205,7 +195,7 @@ one.f.troubleshooting.existingNodes = { }, { property: 'nodeId', - label: 'Static Route', + label: 'Node ID', sortable: true }, { @@ -217,16 +207,31 @@ one.f.troubleshooting.existingNodes = { data: data.nodeData, formatter: function(items) { $.each(items, function(index, item) { - item["statistics"] = "Flows" + + item.nodeName = "" + item.nodeName + "" + item["statistics"] = "Flows" + " Ports"; }); - }, delay: 0 }); return source; }, portsGrid: function(data) { + $.each(data.nodeData, function(index, item) { + item.rxPkts = one.lib.helper.parseInt(item.rxPkts); + item.txPkts = one.lib.helper.parseInt(item.txPkts); + item.rxBytes = one.lib.helper.parseInt(item.rxBytes); + item.txBytes = one.lib.helper.parseInt(item.txBytes); + item.rxDrops = one.lib.helper.parseInt(item.rxDrops); + item.txDrops = one.lib.helper.parseInt(item.txDrops); + item.rxErrors = one.lib.helper.parseInt(item.rxErrors); + item.txErrors = one.lib.helper.parseInt(item.txErrors); + item.rxFrameErrors = one.lib.helper.parseInt(item.rxFrameErrors); + item.rxOverRunErrors = one.lib.helper.parseInt(item.rxOverRunErrors); + item.rxCRCErrors = one.lib.helper.parseInt(item.rxCRCErrors); + item.collisions = one.lib.helper.parseInt(item.collisions); + }); var source = new StaticDataSource({ columns: [ { @@ -296,7 +301,7 @@ one.f.troubleshooting.existingNodes = { } ], data: data.nodeData, - delay: 200 + delay: 0 }); return source; }, @@ -324,6 +329,13 @@ one.f.troubleshooting.existingNodes = { return result; }, flowsGrid: function(data) { + $.each(data.nodeData, function(index, item) { + item.byteCount = one.lib.helper.parseInt(item.byteCount); + item.packetCount = one.lib.helper.parseInt(item.packetCount); + item.durationSeconds = one.lib.helper.parseInt(item.durationSeconds); + item.idleTimeout = one.lib.helper.parseInt(item.idleTimeout); + item.priority = one.lib.helper.parseInt(item.priority); + }); var source = new StaticDataSource({ columns: [ { @@ -356,6 +368,11 @@ one.f.troubleshooting.existingNodes = { label: 'DL Vlan', sortable: true }, + { + property: 'dlVlanPriority', + label: 'Vlan PCP', + sortable: true + }, { property: 'nwSrc', label: 'NW Src', @@ -366,6 +383,11 @@ one.f.troubleshooting.existingNodes = { label: 'NW Dst', sortable: true }, + { + property: 'nwTOS', + label: 'ToS Bits', + sortable: true + }, { property: 'nwProto', label: 'NW Proto', @@ -430,6 +452,7 @@ one.f.troubleshooting.existingNodes = { entry.push(value["dlVlan"]); entry.push(value["nwSrc"]); entry.push(value["nwDst"]); + entry.push(value["nwTOS"]); entry.push(value["nwProto"]); entry.push(value["tpSrc"]); entry.push(value["tpDst"]); @@ -443,6 +466,46 @@ one.f.troubleshooting.existingNodes = { result.push(tr); }); return result; + }, + nodeInfo : function(nodeId){ + $.getJSON(one.main.constants.address.prefix + "/troubleshoot/nodeInfo?nodeId=" + nodeId, function(content) { + var h3 = 'Node Information' + + var headers = [ 'Description','Specification']; + + var attributes = ['table-striped', 'table-bordered', 'table-condensed']; + var $table = one.lib.dashlet.table.table(attributes); + var $thead = one.lib.dashlet.table.header(headers); + $table.append($thead); + + var footer = []; + + var cancelButton = one.lib.dashlet.button.single("Cancel", + one.f.troubleshooting.existingNodes.id.modal.nodeInfo, "", ""); + var $cancelButton = one.lib.dashlet.button.button(cancelButton); + footer.push($cancelButton); + + var body = [] + $.each(content, function(key, value) { + var tr = {}; + var entry = []; + + entry.push(key); + entry.push(value); + + tr.entry = entry; + body.push(tr); + }); + var $tbody = one.lib.dashlet.table.body(body); + $table.append($tbody); + + var $modal = one.lib.modal.spawn(one.f.troubleshooting.existingNodes.id.modal.nodeInfo, h3, $table , footer); + $modal.modal(); + + $('#'+one.f.troubleshooting.existingNodes.id.modal.nodeInfo, $modal).click(function() { + $modal.modal('hide'); + }); + }); } } }; @@ -470,7 +533,7 @@ one.f.troubleshooting.uptime = { $("#" + one.f.troubleshooting.uptime.id.datagrid).datagrid({dataSource: dataSource}); }); }, - + ajax : { main : function(url, requestData, callback) { $.getJSON(url, requestData, function(data) { @@ -478,7 +541,7 @@ one.f.troubleshooting.uptime = { }); } }, - + data: { uptimeDataGrid: function(data) { var source = new StaticDataSource({ @@ -530,7 +593,7 @@ one.f.troubleshooting.statistics = { var $p = $(document.createElement('p')); $p.text('Please select a Flow or Ports statistics'); $p.addClass('text-center').addClass('text-info'); - + $dashlet.append($none) .append($p); }