diff --git a/webroot/common/ui/js/controller.constants.js b/webroot/common/ui/js/controller.constants.js index 140618b56..1b7105511 100644 --- a/webroot/common/ui/js/controller.constants.js +++ b/webroot/common/ui/js/controller.constants.js @@ -13,8 +13,8 @@ define([ this.URL_PROJECT_CONNECTED_GRAPH = '/api/tenant/monitoring/project-connected-graph?fqName={0}'; this.URL_PROJECT_CONFIG_GRAPH = '/api/tenant/monitoring/project-config-graph?fqName={0}'; - this.URL_PROJECT_INSTANCES_IN_CHUNKS = '/api/tenant/networking/virtual-machines/details?fqnUUID={0}&count={1}&type={2}&startAt={3}'; - this.URL_PROJECT_NETWORKS_IN_CHUNKS = '/api/tenant/networking/virtual-networks/details?count={0}&fqn={1}&startAt={2}'; + this.URL_PROJECT_INSTANCES_IN_CHUNKS = '/api/tenant/networking/virtual-machines/details?fqnUUID={0}&count={1}&nextCount={2}&type={3}&startAt={4}'; + this.URL_PROJECT_NETWORKS_IN_CHUNKS = '/api/tenant/networking/virtual-networks/details?count={0}&nextCount={1}&fqn={2}&startAt={3}'; this.URL_PROJECT_ALL_NETWORKS = '/api/tenants/networks/{0}'; this.URL_NETWORK_CONNECTED_GRAPH = '/api/tenant/monitoring/network-connected-graph?fqName={0}'; @@ -22,7 +22,7 @@ define([ this.URL_NETWORK_SUMMARY = 'api/tenant/networking/virtual-network/summary?fqNameRegExp={0}'; this.URL_ALL_NETWORKS_DETAILS = '/api/tenant/networking/virtual-networks/details'; - this.URL_NETWORKS_DETAILS_IN_CHUNKS = '/api/tenant/networking/virtual-networks/details?count={0}&startAt={1}'; + this.URL_NETWORKS_DETAILS_IN_CHUNKS = '/api/tenant/networking/virtual-networks/details?count={0}&nextCount={1}&startAt={2}'; this.URL_NETWORK_SUMMARY = '/api/tenant/networking/virtual-network/summary?fqNameRegExp={0}'; this.URL_NETWORK_TRAFFIC_STATS = '/api/tenant/networking/flow-series/vn?minsSince={0}&fqName={1}&sampleCnt={2}&useServerTime=true'; @@ -33,7 +33,7 @@ define([ this.URL_INSTANCE_CONFIG_GRAPH = '/api/tenant/monitoring/instance-config-graph?fqName={0}'; this.URL_INSTANCE_DETAIL = '/api/tenant/networking/virtual-machine?fqNameRegExp={0}?flat'; this.URL_INSTANCES_SUMMARY = '/api/tenant/networking/virtual-machines/summary'; - this.URL_INSTANCE_DETAILS_IN_CHUNKS = '/api/tenant/networking/virtual-machines/details?count={0}&startAt={1}'; + this.URL_INSTANCE_DETAILS_IN_CHUNKS = '/api/tenant/networking/virtual-machines/details?count={0}&nextCount={1}&startAt={2}'; this.URL_INSTANCE_TRAFFIC_STATS = '/api/tenant/networking/flow-series/vm?minsSince={0}&fqName={1}&sampleCnt={2}&ip={3}&vmName={4}&vmVnName={5}&useServerTime=true'; this.URL_INSTANCE_PORT_DISTRIBUTION = '/api/tenant/networking/network/stats/top?minsSince=10&fqName={0}&useServerTime=true&type=port&ip={1}'; @@ -157,6 +157,8 @@ define([ this.UCID_INSTANCE_TRAFFIC_STATS_LIST = this.UCID_PREFIX_MN_LISTS + "{0}:{1}:{2}:traffic-stats"; this.UCID_CONNECTED_NETWORK_TRAFFIC_STATS_LIST = this.UCID_PREFIX_MN_LISTS + "{0}:{1}:traffic-stats"; this.UCID_INSTANCE_INTERFACE_LIST = this.UCID_PREFIX_MN_LISTS + "{0}:{1}:interfaces"; + this.UCID_PROJECT_INTERFACE_LIST = this.UCID_PREFIX_MN_LISTS + "{0}:interfaces"; + this.UCID_ALL_INTERFACE_LIST = this.UCID_PREFIX_MN_LISTS + "all-interfaces"; this.UCID_INSTANCE_CPU_MEMORY_LIST = this.UCID_PREFIX_MN_LISTS + "{0}:{1}:cpu-memory"; this.UCID_NODE_CPU_MEMORY_LIST = 'node_details' + "{0}:cpu-memory"; diff --git a/webroot/common/ui/js/controller.grid.config.js b/webroot/common/ui/js/controller.grid.config.js index 9b4d6e061..2c2eaf420 100644 --- a/webroot/common/ui/js/controller.grid.config.js +++ b/webroot/common/ui/js/controller.grid.config.js @@ -43,9 +43,9 @@ define([ if(!contrail.checkIfExist(dc['vmName'])) { return '-'; } else if(!contrail.checkIfExist(dc['vnFQN']) || ctwu.isServiceVN(dc['vnFQN'])){ - return ''; + return cowf.formatElementName({name: 'instance', value: dc['vmName'], cssClass: 'cell-no-link'}); } else { - return cellTemplateLinks({cellText: 'vmName', tooltip: true, name: 'instance', rowData: dc}); + return cowf.formatElementName({name: 'instance', value: dc['vmName'], cssClass: 'cell-hyperlink-blue'}); } }, minWidth: 230, @@ -53,7 +53,6 @@ define([ events: { onClick: ctwu.onClickNetworkMonitorGrid }, - cssClass: 'cell-hyperlink-blue', exportConfig: { allow: true, stdFormatter: false @@ -77,13 +76,12 @@ define([ field: 'vRouter', name: 'Virtual Router', formatter: function (r, c, v, cd, dc) { - return cellTemplateLinks({cellText: 'vRouter', tooltip: true, name: 'vRouter', rowData: dc}); + return cowf.formatElementName({name: 'vRouter', value: dc['vRouter'], cssClass: 'cell-hyperlink-blue'}); }, minWidth: 100, events: { onClick: ctwu.onClickNetworkMonitorGrid }, - cssClass: 'cell-hyperlink-blue', exportConfig: { allow: true, stdFormatter: false @@ -143,13 +141,13 @@ define([ { field: 'ip', name: 'IP Address', - minWidth: 150, + minWidth: 100, searchable: true }, { field: 'vm_name', name: 'Instance Name', - minWidth: 200, + minWidth: 250, searchable: true }, { diff --git a/webroot/common/ui/js/controller.labels.js b/webroot/common/ui/js/controller.labels.js index de37e7361..bcdb6a52f 100644 --- a/webroot/common/ui/js/controller.labels.js +++ b/webroot/common/ui/js/controller.labels.js @@ -197,8 +197,7 @@ define([ this.DOMAINS_BREADCRUMB_DROPDOWN = "domains-breadcrumb-dropdown"; this.SASET_BREADCRUMB_DROPDOWN = "service-appliance-set-breadcrumb-dropdown"; - this.GLOBALSYS_BREADCRUMB_DROPDOWN = - "global-system-config-breadcrumb-dropdown"; + this.GLOBALSYS_BREADCRUMB_DROPDOWN = "global-system-config-breadcrumb-dropdown"; this.PROJECTS_ID = "projects"; this.PROJECT_GRAPH_ID = "project-graph"; @@ -210,6 +209,8 @@ define([ this.PROJECT_NETWORKS_ID = "project-networks"; this.PROJECT_NETWORK_GRID_ID = "project-network-grid"; this.PROJECT_INSTANCES_ID = "project-instances"; + this.PROJECT_INTERFACES_ID = "project-interfaces"; + this.PROJECT_INTERFACE_GRID_ID = "project-interface-grid"; this.PROJECTS_SCATTER_CHART_ID = "projects-scatter-chart"; this.PROJECT_FLOW_GRID_ID = "project-flow-grid"; this.PROJECT_FILTER_PROTOCOL_MULTISELECT_ID = "project-filter-protocol-multiselect-id"; diff --git a/webroot/common/ui/js/controller.parsers.js b/webroot/common/ui/js/controller.parsers.js index 4539bde75..60bae5b09 100644 --- a/webroot/common/ui/js/controller.parsers.js +++ b/webroot/common/ui/js/controller.parsers.js @@ -165,7 +165,7 @@ define([ values: [], color: cowc.D3_COLOR_CATEGORY5[3] }; - var chartData = [axis2, axis1]; + var chartData = [axis1, axis2]; for (var i = 0; i < responseArray.length; i++) { var ts = Math.floor(responseArray[i]['T'] / 1000); diff --git a/webroot/common/ui/js/controller.utils.js b/webroot/common/ui/js/controller.utils.js index f91f9002b..e0d890c7f 100644 --- a/webroot/common/ui/js/controller.utils.js +++ b/webroot/common/ui/js/controller.utils.js @@ -531,49 +531,50 @@ define([ return element + " (" + parent.join(":") + ")"; } } - } - + }; this.onClickNetworkMonitorGrid = function (e, selRowDataItem) { - var name = $(e.target).attr('name'), - fqName, uuid, vmName; - - if ($.inArray(name, ['project']) > -1) { - fqName = selRowDataItem['name']; - ctwu.setProjectURLHashParams(null, fqName, true) - - } else if ($.inArray(name, ['network']) > -1) { - fqName = selRowDataItem['name']; - ctwu.setNetworkURLHashParams(null, fqName, true) - - } else if ($.inArray(name, ['instance']) > -1) { - fqName = selRowDataItem['vnFQN']; - uuid = selRowDataItem['name']; - vmName = selRowDataItem['vmName']; - if(contrail.checkIfExist(fqName) && !ctwu.isServiceVN(fqName)) { - ctwu.setInstanceURLHashParams(null, fqName, uuid, vmName, true); - } - } else if ($.inArray(name, ['vRouter']) > -1) { - var urlObj = layoutHandler.getURLHashObj(); - if(urlObj['p'] == 'mon_infra_vrouter' && - urlObj['q']['view'] == 'details') { - $("#"+ctwl.VROUTER_DETAILS_TABS_ID).tabs({active:0}); - } else { - var hashObj = { - type: 'vrouter', - view: 'details', - focusedElement: { - node: selRowDataItem['vRouter'], - tab: 'details' - } - }; - layoutHandler.setURLHashParams(hashObj, - { - p: "mon_infra_vrouter", - merge: false, - triggerHashChange: true - } - ); + if (!$(e.target).hasClass('cell-no-link')) { + var name = $(e.target).attr('name'), + fqName, uuid, vmName; + + if ($.inArray(name, ['project']) > -1) { + fqName = selRowDataItem['name']; + ctwu.setProjectURLHashParams(null, fqName, true) + + } else if ($.inArray(name, ['network']) > -1) { + fqName = selRowDataItem['name']; + ctwu.setNetworkURLHashParams(null, fqName, true) + + } else if ($.inArray(name, ['instance']) > -1) { + fqName = selRowDataItem['vnFQN']; + uuid = selRowDataItem['name']; + vmName = selRowDataItem['vmName']; + if (contrail.checkIfExist(fqName) && !ctwu.isServiceVN(fqName)) { + ctwu.setInstanceURLHashParams(null, fqName, uuid, vmName, true); + } + } else if ($.inArray(name, ['vRouter']) > -1) { + var urlObj = layoutHandler.getURLHashObj(); + if (urlObj['p'] == 'mon_infra_vrouter' && + urlObj['q']['view'] == 'details') { + $("#" + ctwl.VROUTER_DETAILS_TABS_ID).tabs({active: 0}); + } else { + var hashObj = { + type: 'vrouter', + view: 'details', + focusedElement: { + node: selRowDataItem['vRouter'], + tab: 'details' + } + }; + layoutHandler.setURLHashParams(hashObj, + { + p: "mon_infra_vrouter", + merge: false, + triggerHashChange: true + } + ); + } } } }; diff --git a/webroot/common/ui/js/controller.view.config.js b/webroot/common/ui/js/controller.view.config.js index 8d13a7604..1f61e9e41 100644 --- a/webroot/common/ui/js/controller.view.config.js +++ b/webroot/common/ui/js/controller.view.config.js @@ -94,7 +94,8 @@ define([ viewConfig: { modelKey: ctwc.get(ctwc.UMID_INSTANCE_UVE, instanceUUID), instanceUUID: instanceUUID, - networkFQN: networkFQN + networkFQN: networkFQN, + elementId: ctwl.INSTANCE_INTERFACE_GRID_ID } }, { diff --git a/webroot/monitor/networking/api/network.mon.api.js b/webroot/monitor/networking/api/network.mon.api.js index 35509e4e8..ee811690f 100644 --- a/webroot/monitor/networking/api/network.mon.api.js +++ b/webroot/monitor/networking/api/network.mon.api.js @@ -816,24 +816,37 @@ function getVirtualMachinesSummary(req, res, appData) { function getVirtualInterfacesSummary(req, res, appData) { var reqPostData = req.body, kfilt = reqPostData['kfilt'], cfilt = reqPostData['cfilt'], + projectFQN = reqPostData['projectFQN'], url = '/analytics/uves/virtual-machine-interface', opServerPostData = {}; - if (kfilt != null && kfilt != '') { - opServerPostData['kfilt'] = kfilt.split(","); - } + if (projectFQN != null && typeof projectFQN !== "undefined") { + url += "/" + projectFQN + ":*"; - if (cfilt != null && cfilt != '') { - opServerPostData['cfilt'] = cfilt.split(","); - } + opServer.api.get(url, function (err, data) { + if (err || (null == data)) { + commonUtils.handleJSONResponse(err, res, null); + } else { + commonUtils.handleJSONResponse(null, res, data); + } + }); + } else { + if (kfilt != null && kfilt != '') { + opServerPostData['kfilt'] = kfilt.split(","); + } - opServer.api.post(url, opServerPostData, function (err, data) { - if (err || (null == data)) { - commonUtils.handleJSONResponse(err, res, null); - } else { - commonUtils.handleJSONResponse(null, res, data); + if (cfilt != null && cfilt != '') { + opServerPostData['cfilt'] = cfilt.split(","); } - }); + + opServer.api.post(url, opServerPostData, function (err, data) { + if (err || (null == data)) { + commonUtils.handleJSONResponse(err, res, null); + } else { + commonUtils.handleJSONResponse(null, res, data); + } + }); + } } function isServiceVN(vnName) { diff --git a/webroot/monitor/networking/test/ui/views/NetworkView.test.js b/webroot/monitor/networking/test/ui/views/NetworkView.test.js index bc1d121c4..2ea6f4c82 100644 --- a/webroot/monitor/networking/test/ui/views/NetworkView.test.js +++ b/webroot/monitor/networking/test/ui/views/NetworkView.test.js @@ -89,7 +89,7 @@ define([ responses.push(cotr.createFakeServerResponse({ method:"POST", - url: cttu.getRegExForUrl('/api/tenant/networking/virtual-machines/details?fqnUUID=ad8a9efc-9b7e-4425-9735-03bda0d2726e&count=10&type=vn'), + url: cttu.getRegExForUrl('/api/tenant/networking/virtual-machines/details?fqnUUID=ad8a9efc-9b7e-4425-9735-03bda0d2726e&count=10&nextCount=100&type=vn'), body: JSON.stringify(TestMockdata.virtualMachineDetailsByUUIDMockData) })); diff --git a/webroot/monitor/networking/ui/js/nm.grid.config.js b/webroot/monitor/networking/ui/js/nm.grid.config.js index b30fadfe6..cbcb5910e 100644 --- a/webroot/monitor/networking/ui/js/nm.grid.config.js +++ b/webroot/monitor/networking/ui/js/nm.grid.config.js @@ -11,7 +11,7 @@ define([ field: 'name', name: 'Network', formatter: function (r, c, v, cd, dc) { - return cellTemplateLinks({cellText: 'name', name: 'network', rowData: dc}); + return cowf.formatElementName({name: 'network', value: dc['name'], cssClass: 'cell-hyperlink-blue'}); }, events: { onClick: ctwu.onClickNetworkMonitorGrid @@ -21,7 +21,6 @@ define([ return d['name']; }, searchable: true, - cssClass: 'cell-hyperlink-blue', exportConfig: { allow: true, stdFormatter: false @@ -55,70 +54,18 @@ define([ } ]; - this.instanceInterfaceColumns = [ - { - field: 'ip', - name: 'IP Address', - minWidth: 150, - searchable: true - }, - { - field: 'vm_name', - name: 'Instance Name', - minWidth: 200, - searchable: true - }, - { - field: 'floatingIP', - name: 'Floating IPs In/Out', - formatter: function (r, c, v, cd, dc) { - return cowf.formatValueArray4Grid(dc['floatingIP']); - }, - minWidth: 200 - }, - { - field: '', - name: 'Traffic In/Out (Last 1 Hr)', - minWidth: 150, - formatter: function (r, c, v, cd, dc) { - return contrail.format("{0} / {1}", cowu.addUnits2Bytes(dc['inBytes60'], true), cowu.addUnits2Bytes(dc['outBytes60'], true)); - } - }, - { - field: '', - name: 'Throughput In/Out', - minWidth: 150, - formatter: function (r, c, v, cd, dc) { - return contrail.format("{0} / {1}", formatThroughput(dc['in_bw_usage'], true), formatThroughput(dc['out_bw_usage'], true)); - } - }, - { - name: 'Status', - minWidth: 100, - searchable: true, - formatter: function (r, c, v, cd, dc) { - if (dc.active) { - return ('
 Active'); - } else { - return ('
 Inactive'); - } - } - } - ]; - this.projectsColumns = [ { field: 'name', name: 'Project', formatter: function (r, c, v, cd, dc) { - return cellTemplateLinks({cellText: 'name', tooltip: true, name: 'project', rowData: dc}); + return cowf.formatElementName({name: 'project', value: dc['name'], cssClass: 'cell-hyperlink-blue'}); }, minWidth: 300, searchable: true, events: { onClick: ctwu.onClickNetworkMonitorGrid }, - cssClass: 'cell-hyperlink-blue', exportConfig: { allow: true, stdFormatter: false @@ -327,7 +274,7 @@ define([ return { remote: { ajaxConfig: { - url: ctwc.get(ctwc.URL_NETWORKS_DETAILS_IN_CHUNKS, 25, $.now()), + url: ctwc.get(ctwc.URL_NETWORKS_DETAILS_IN_CHUNKS, 25, 100, $.now()), type: 'POST', data: JSON.stringify({ data: [{ diff --git a/webroot/monitor/networking/ui/js/views/InstanceGridView.js b/webroot/monitor/networking/ui/js/views/InstanceGridView.js index 82c148994..acbd57902 100644 --- a/webroot/monitor/networking/ui/js/views/InstanceGridView.js +++ b/webroot/monitor/networking/ui/js/views/InstanceGridView.js @@ -17,7 +17,7 @@ define([ pagerOptions = viewConfig['pagerOptions']; var instanceRemoteConfig = { - url: parentUUID != null ? ctwc.get(ctwc.URL_PROJECT_INSTANCES_IN_CHUNKS, parentUUID, 10, parentType, $.now()) : ctwc.get(ctwc.URL_INSTANCE_DETAILS_IN_CHUNKS, 25, $.now()), + url: parentUUID != null ? ctwc.get(ctwc.URL_PROJECT_INSTANCES_IN_CHUNKS, parentUUID, 10, 100, parentType, $.now()) : ctwc.get(ctwc.URL_INSTANCE_DETAILS_IN_CHUNKS, 10, 250, $.now()), type: 'POST', data: JSON.stringify({ data: [{"type": ctwc.TYPE_VIRTUAL_MACHINE, "cfilt": ctwc.FILTERS_COLUMN_VM.join(',')}] diff --git a/webroot/monitor/networking/ui/js/views/InstanceListView.js b/webroot/monitor/networking/ui/js/views/InstanceListView.js index be80f3702..2c33199b4 100644 --- a/webroot/monitor/networking/ui/js/views/InstanceListView.js +++ b/webroot/monitor/networking/ui/js/views/InstanceListView.js @@ -45,7 +45,7 @@ define([ function getInstanceListModelConfig(parentUUID, parentType) { var ajaxConfig = { - url: parentUUID != null ? ctwc.get(ctwc.URL_PROJECT_INSTANCES_IN_CHUNKS, parentUUID, 25, parentType, $.now()) : ctwc.get(ctwc.URL_INSTANCE_DETAILS_IN_CHUNKS, 25, $.now()), + url: parentUUID != null ? ctwc.get(ctwc.URL_PROJECT_INSTANCES_IN_CHUNKS, parentUUID, 10, 100, parentType, $.now()) : ctwc.get(ctwc.URL_INSTANCE_DETAILS_IN_CHUNKS, 10, 250, $.now()), type: 'POST', data: JSON.stringify({ data: [{"type": ctwc.TYPE_VIRTUAL_MACHINE, "cfilt": ctwc.FILTERS_COLUMN_VM.join(',')}] diff --git a/webroot/monitor/networking/ui/js/views/InterfaceGridView.js b/webroot/monitor/networking/ui/js/views/InterfaceGridView.js index d54b5009d..2a659c2a7 100644 --- a/webroot/monitor/networking/ui/js/views/InterfaceGridView.js +++ b/webroot/monitor/networking/ui/js/views/InterfaceGridView.js @@ -13,44 +13,50 @@ define([ var self = this, viewConfig = this.attributes.viewConfig, modelMap = this.modelMap, + projectFQN = viewConfig['projectFQN'], networkFQN = viewConfig['networkFQN'], instanceUUID = viewConfig['instanceUUID'], - interfacesAjaxConfig, viewModel, interfaceNames; + elementId = viewConfig['elementId'], + interfacesAjaxConfig, viewModel, ucid; - var ucid = ctwc.get(ctwc.UCID_INSTANCE_INTERFACE_LIST, networkFQN, instanceUUID); - - if (modelMap != null && modelMap[viewConfig['modelKey']] != null) { + if (contrail.checkIfExist(projectFQN)) { + ucid = ctwc.get(ctwc.UCID_PROJECT_INTERFACE_LIST, networkFQN); + interfacesAjaxConfig = getInterfacesAjaxConfig(null, projectFQN); + self.renderView4Config(self.$el, this.model, getInterfaceGridViewConfig(interfacesAjaxConfig, ucid, elementId)); + } else if (modelMap != null && modelMap[viewConfig['modelKey']] != null) { + ucid = ctwc.get(ctwc.UCID_INSTANCE_INTERFACE_LIST, networkFQN, instanceUUID); //TODO: Create a model from data coming from ModelMap viewModel = modelMap[viewConfig['modelKey']]; if (!(viewModel.isRequestInProgress())) { interfacesAjaxConfig = getInterfacesAjaxConfig(viewModel.attributes); - self.renderView4Config(self.$el, this.model, getInterfaceGridViewConfig(interfacesAjaxConfig, ucid)); + self.renderView4Config(self.$el, this.model, getInterfaceGridViewConfig(interfacesAjaxConfig, ucid, elementId)); } viewModel.onAllRequestsComplete.subscribe(function () { interfacesAjaxConfig = getInterfacesAjaxConfig(viewModel.attributes); - self.renderView4Config(self.$el, this.model, getInterfaceGridViewConfig(interfacesAjaxConfig, ucid)); + self.renderView4Config(self.$el, this.model, getInterfaceGridViewConfig(interfacesAjaxConfig, ucid, elementId)); }); } } }); - function getInterfacesAjaxConfig(responseJSON) { + function getInterfacesAjaxConfig(responseJSON, projectFQN) { var ajaxConfig, - interfaceList = responseJSON['value']['UveVirtualMachineAgent']['interface_list']; + interfaceList = contrail.checkIfExist(responseJSON) ? responseJSON['value']['UveVirtualMachineAgent']['interface_list'] : []; ajaxConfig = { url: ctwc.URL_VM_INTERFACES, type: 'POST', data: JSON.stringify({ - kfilt: interfaceList.join(',') + kfilt: interfaceList.join(','), + projectFQN: projectFQN }) }; return ajaxConfig; }; - function getInterfaceGridViewConfig(interfacesAjaxConfig, ucid) { + function getInterfaceGridViewConfig(interfacesAjaxConfig, ucid, elementId) { return { elementId: cowu.formatElementId([ctwl.MONITOR_INTERFACE_LIST_VIEW_ID]), view: "SectionView", @@ -59,7 +65,7 @@ define([ { columns: [ { - elementId: ctwl.INSTANCE_INTERFACE_GRID_ID, + elementId: elementId, title: ctwl.TITLE_INTERFACES, view: "GridView", viewConfig: { diff --git a/webroot/monitor/networking/ui/js/views/NetworkGridView.js b/webroot/monitor/networking/ui/js/views/NetworkGridView.js index 3a0df661b..3f91c8517 100644 --- a/webroot/monitor/networking/ui/js/views/NetworkGridView.js +++ b/webroot/monitor/networking/ui/js/views/NetworkGridView.js @@ -16,7 +16,7 @@ define([ pagerOptions = viewConfig['pagerOptions']; var networkRemoteConfig = { - url: projectFQN != null ? ctwc.get(ctwc.URL_PROJECT_NETWORKS_IN_CHUNKS, 25, projectFQN, $.now()) : ctwc.get(ctwc.URL_NETWORKS_DETAILS_IN_CHUNKS, 25, $.now()), + url: projectFQN != null ? ctwc.get(ctwc.URL_PROJECT_NETWORKS_IN_CHUNKS, 10, 100, projectFQN, $.now()) : ctwc.get(ctwc.URL_NETWORKS_DETAILS_IN_CHUNKS, 10, 100, $.now()), type: 'POST', data: JSON.stringify({ data: [{ diff --git a/webroot/monitor/networking/ui/js/views/NetworkListView.js b/webroot/monitor/networking/ui/js/views/NetworkListView.js index e8770f90d..a7d4b5a05 100644 --- a/webroot/monitor/networking/ui/js/views/NetworkListView.js +++ b/webroot/monitor/networking/ui/js/views/NetworkListView.js @@ -27,7 +27,7 @@ define([ return { remote: { ajaxConfig: { - url: projectFQN != null ? ctwc.get(ctwc.URL_PROJECT_NETWORKS_IN_CHUNKS, 25, projectFQN, $.now()) : ctwc.get(ctwc.URL_NETWORKS_DETAILS_IN_CHUNKS, 25, $.now()), + url: projectFQN != null ? ctwc.get(ctwc.URL_PROJECT_NETWORKS_IN_CHUNKS, 10, 100, projectFQN, $.now()) : ctwc.get(ctwc.URL_NETWORKS_DETAILS_IN_CHUNKS, 10, 100, $.now()), type: "POST", data: JSON.stringify({ data: [{ @@ -64,8 +64,9 @@ define([ chartOptions: { xLabel: 'Interfaces', yLabel: 'Connected Networks', - forceX: [0, 5], + forceX: [0, 10], forceY: [0, 10], + xLabelFormat: d3.format(".01f"), dataParser: function (response) { return response; }, diff --git a/webroot/monitor/networking/ui/js/views/NetworkingGraphView.js b/webroot/monitor/networking/ui/js/views/NetworkingGraphView.js index 5e84cb0ec..06bca4985 100644 --- a/webroot/monitor/networking/ui/js/views/NetworkingGraphView.js +++ b/webroot/monitor/networking/ui/js/views/NetworkingGraphView.js @@ -582,7 +582,7 @@ define([ attrs: { rect: size, text: { - text: contrail.truncateText(nodeDetails['name'].split(":")[2], 50), + text: contrail.truncateText(nodeDetails['name'].split(":")[2], 20), 'ref-x': .5, 'ref-y': -20 } diff --git a/webroot/monitor/networking/ui/js/views/ProjectListView.js b/webroot/monitor/networking/ui/js/views/ProjectListView.js index 754978cc0..f096ca2a9 100644 --- a/webroot/monitor/networking/ui/js/views/ProjectListView.js +++ b/webroot/monitor/networking/ui/js/views/ProjectListView.js @@ -51,11 +51,12 @@ define([ chartOptions: { xLabel: 'Interfaces', yLabel: 'Networks', - forceX: [0, 5], + forceX: [0, 10], forceY: [0, 10], dataParser: function (response) { return response; }, + xLabelFormat: d3.format(".01f"), tooltipConfigCB: getProjectTooltipConfig, clickCB: onScatterChartClick, sizeFieldName: 'throughput', @@ -88,9 +89,7 @@ define([ }; var getProjectTooltipConfig = function(data) { - var projectFQNObj = data.name.split(':'), - info = [], - actions = []; + var projectFQNObj = data.name.split(':'); return { title: { diff --git a/webroot/monitor/networking/ui/js/views/ProjectTabView.js b/webroot/monitor/networking/ui/js/views/ProjectTabView.js index 362f5aeb0..36f9831e5 100644 --- a/webroot/monitor/networking/ui/js/views/ProjectTabView.js +++ b/webroot/monitor/networking/ui/js/views/ProjectTabView.js @@ -71,6 +71,25 @@ define([ parentType: ctwc.TYPE_PROJECT } }, + { + elementId: ctwl.PROJECT_INTERFACES_ID, + title: ctwl.TITLE_INTERFACES, + view: "InterfaceGridView", + viewPathPrefix: "monitor/networking/ui/js/views/", + app: cowc.APP_CONTRAIL_CONTROLLER, + tabConfig: { + activate: function(event, ui) { + if ($('#' + ctwl.PROJECT_INTERFACE_GRID_ID).data('contrailGrid')) { + $('#' + ctwl.PROJECT_INTERFACE_GRID_ID).data('contrailGrid').refreshView(); + } + }, + renderOnActivate: true + }, + viewConfig: { + projectFQN: projectFQN, + elementId: ctwl.PROJECT_INTERFACE_GRID_ID + } + }, { elementId: ctwl.PROJECT_PORTS_SCATTER_CHART_ID, title: ctwl.TITLE_PORT_DISTRIBUTION, diff --git a/webroot/reports/qe/ui/js/views/SystemLogsFormView.js b/webroot/reports/qe/ui/js/views/SystemLogsFormView.js index fbab44b59..209343e90 100644 --- a/webroot/reports/qe/ui/js/views/SystemLogsFormView.js +++ b/webroot/reports/qe/ui/js/views/SystemLogsFormView.js @@ -134,7 +134,7 @@ define([ }, { elementId: 'keywords', view: "FormInputView", - viewConfig: { path: 'keywords', dataBindValue: 'keywords', class: "span3", placeholder: "Comma separated keywords" } + viewConfig: { path: 'keywords', dataBindValue: 'keywords', class: "span6", placeholder: "Comma separated keywords" } } ] }, diff --git a/webroot/test/ui/ct.test.utils.js b/webroot/test/ui/ct.test.utils.js index f690a8765..e75338f81 100644 --- a/webroot/test/ui/ct.test.utils.js +++ b/webroot/test/ui/ct.test.utils.js @@ -30,7 +30,7 @@ define([ '/api/tenant/networking/network/stats/top?minsSince=10&fqName=default-domain:admin:frontend': /\/api\/tenant\/networking\/network\/stats\/top\?minsSince=10&fqName=default-domain:admin:frontend.*$/, '/api/tenant/monitoring/network-connected-graph?fqName=default-domain:admin:frontend': /\/api\/tenant\/monitoring\/network-connected-graph\?fqName=default-domain:admin:frontend.*$/, '/api/tenant/monitoring/network-config-graph?fqName=default-domain:admin:frontend': /\/api\/tenant\/monitoring\/network-config-graph\?fqName=default-domain:admin:frontend.*$/, - '/api/tenant/networking/virtual-machines/details?fqnUUID=ad8a9efc-9b7e-4425-9735-03bda0d2726e&count=10&type=vn': /\/api\/tenant\/networking\/virtual-machines\/details\?fqnUUID=ad8a9efc-9b7e-4425-9735-03bda0d2726e&count=10&type=vn.*$/, + '/api/tenant/networking/virtual-machines/details?fqnUUID=ad8a9efc-9b7e-4425-9735-03bda0d2726e&count=10&nextCount=100&type=vn': /\/api\/tenant\/networking\/virtual-machines\/details\?fqnUUID=ad8a9efc-9b7e-4425-9735-03bda0d2726e&count=10&nextCount=100&type=vn.*$/, '/api/tenant/networking/virtual-machines/summary': /\/api\/tenant\/networking\/virtual-machines\/summary.*$/, '/api/admin/reports/query?port=34560-34815&timeRange=600&table=FlowSeriesTable': /\/api\/admin\/reports\/query\?port=34560-34815&timeRange=600&table=FlowSeriesTable.*$/,