Skip to content

Commit

Permalink
Merge "Closes-bug: #1420723 - Need to normalize the special character…
Browse files Browse the repository at this point in the history
…s on node name before appending to HTML element id in infra detail pages"
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed May 18, 2015
2 parents bbc7c56 + d5e2445 commit 388a842
Show file tree
Hide file tree
Showing 28 changed files with 193 additions and 102 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ analyticsNodesView = function () {
if(hashParams['node'] == null)
monitorInfraAnalyticsSummaryClass.populateAnalyticsNodes();
else
aNodeView.load({name:hashParams['node'], tab:hashParams['tab']});
aNodeView.load({displayName : hashParams['node'], tab:hashParams['tab'], name : constructValidDOMId(hashParams['node'])});
//layoutHandler.setURLHashParams({node:'Analytics Nodes'},{merge:false,triggerHashChange:false});
}
this.updateViewByHash = function(hashObj,lastHashObj) {
Expand Down Expand Up @@ -41,7 +41,9 @@ analyticsNodeView = function () {
}
/*End of Selenium Testing*/
this.load = function (obj) {
pushBreadcrumb([obj['name']]);
if(obj['detailView'] === undefined) {
pushBreadcrumb([obj['displayName']]);
}
aNodeInfo = obj;
if((aNodeInfo == null || aNodeInfo.ip == null || aNodeInfo.ip == '') && aNodeInfo.tab != null){
//issue details call and populate ip
Expand Down Expand Up @@ -84,7 +86,8 @@ analyticsNodeView = function () {
}
$("#analytics_tabstrip" + '_' + obj.name).contrailTabs({
activate:function (e, ui) {
aNodeInfo.name = e.target.id.split('_')[2];
aNodeInfo.name = e.target.id.replace('analytics_tabstrip_','');
aNodeInfo.displayName = getDisplayNameforHostName(aNodeInfo.name, 'analyticsNodeDS');
var newIP = getIPforHostName(aNodeInfo.name, 'analyticsNodeDS');
if(newIP != null) {
aNodeInfo.ip = newIP;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ monitorInfraAnalyticsDetailsClass = (function() {
//Compute the label/value pairs to be displayed in dashboard pane
//As details tab is the default tab,don't update the tab state in URL
if(obj.detailView === undefined) {
layoutHandler.setURLHashParams({tab:'',ip:obj['ip'], node: obj['name']},{triggerHashChange:false});
layoutHandler.setURLHashParams({tab:'',ip:obj['ip'], node: obj['displayName']},{triggerHashChange:false});
}
//showProgressMask('#analyticsnode-dashboard', true);
//Destroy chart if it exists
Expand All @@ -22,10 +22,10 @@ monitorInfraAnalyticsDetailsClass = (function() {
startWidgetLoading('dashboard' + '_' + obj.name);

$.ajax({
url: contrail.format(monitorInfraUrls['ANALYTICS_DETAILS'], obj['name'])
url: contrail.format(monitorInfraUrls['ANALYTICS_DETAILS'], encodeURIComponent(obj['displayName']))
}).done(function (result) {
aNodeData = result;
var parsedData = infraMonitorUtils.parseAnalyticNodesDashboardData([{name:obj['name'],value:result}])[0];
var parsedData = infraMonitorUtils.parseAnalyticNodesDashboardData([{name:obj['displayName'],value:result}])[0];
var noDataStr = "--";
var cpu = "N/A", memory = "N/A", aNodeDashboardInfo;
var endTime, startTime;
Expand Down Expand Up @@ -80,7 +80,7 @@ monitorInfraAnalyticsDetailsClass = (function() {
procStateList = getValueByJsonPath(aNodeData,"NodeStatus;process_info",[]);
analyticsProcessStatusList = getStatusesForAllAnalyticsProcesses(procStateList);
aNodeDashboardInfo = [
{lbl:'Hostname', value:obj['name']},
{lbl:'Hostname', value:obj['displayName']},
{lbl:'IP Address', value:(function(){
var ips = '';
iplist = getValueByJsonPath(aNodeData,"CollectorState;self_ip_list",[]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ monitorInfraAnalyticsGeneratorsClass = (function() {
}
this.populateGeneratorsTab = function(obj) {
if(obj.detailView === undefined) {
layoutHandler.setURLHashParams({tab:'generators',ip:obj['ip'], node: obj['name']},{triggerHashChange:false});
layoutHandler.setURLHashParams({tab:'generators',ip:obj['ip'], node: obj['displayName']},{triggerHashChange:false});
}
var transportCfg = {
url:contrail.format(monitorInfraUrls['ANALYTICS_GENERATORS'], obj['name'], 50),
url:contrail.format(monitorInfraUrls['ANALYTICS_GENERATORS'], encodeURIComponent(obj['displayName']), 50),
};
var generatorDS;
//Intialize the grid only for the first time
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ monitorInfraAnalyticsQEQueriesClass = (function() {

this.populateQEQueriesTab = function (obj) {
if(obj.detailView === undefined) {
layoutHandler.setURLHashParams({tab:'qequeries', node: obj['name']},{triggerHashChange:false});
layoutHandler.setURLHashParams({tab:'qequeries', node: obj['displayName']},{triggerHashChange:false});
}
//Intialize the grid only for the first time
if (!isGridInitialized('#gridQEQueries' + '_' + obj.name)) {
Expand Down Expand Up @@ -89,7 +89,7 @@ monitorInfraAnalyticsQEQueriesClass = (function() {
dataSource : {
remote: {
ajaxConfig: {
url: contrail.format(monitorInfraUrls['ANALYTICS_DETAILS'], obj['name']),
url: contrail.format(monitorInfraUrls['ANALYTICS_DETAILS'], encodeURIComponent(obj['displayName'])),
//timeout: timeout,
type: 'GET'
},
Expand All @@ -114,6 +114,12 @@ monitorInfraAnalyticsQEQueriesClass = (function() {
qequeriesGrid = $("#gridQEQueries" + '_' + obj.name).data("contrailGrid");
qequeriesGrid.showGridMessage('loading');
} else {
qequeriesGrid = $("#gridQEQueries" + '_' + obj.name).data("contrailGrid");
qequeriesGrid.setRemoteAjaxConfig({
url: contrail.format(monitorInfraUrls['ANALYTICS_DETAILS'], encodeURIComponent(obj['displayName'])),
//timeout: timeout,
type: 'GET'
});
reloadGrid(qequeriesGrid);
}
function onGeneratorRowSelChange() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
*/
monitorInfraAnalyticsSummaryClass = (function() {
var aNodesGrid;
var disabledFeat = globalObj['webServerInfo']['disabledFeatures'].disabled;
var showDetails = disabledFeat != null && disabledFeat.indexOf('disable_expand_details') !== -1 ? false : true;
this.populateAnalyticsNodes = function() {
infraMonitorUtils.clearTimers();
var aNodesTemplate = contrail.getTemplate4Id("analyticsnodes-template");
Expand All @@ -29,17 +31,19 @@ monitorInfraAnalyticsSummaryClass = (function() {
autoHeight : true,
enableAsyncPostRender: true,
forceFitColumns:true,
detail:{
detail:(showDetails ? {
template: $("#analyticsnode-template").html(),
onExpand: function (e,dc) {
$('#analytics_tabstrip_' + dc['name']).attr('style', 'margin:10px 150px 10px 150px');
aNodeView.populateAnalyticsNode({name:dc['name'], ip:dc['ip'], detailView : true});
$('#analytics_tabstrip_' + dc['name']).attr('style', 'margin:10px 10% 10px 10%');
//aNodeView.populateAnalyticsNode({name:dc['name'], ip:dc['ip'], detailView : true});
dc.detailView = true;
onAnalyticsNodeRowSelChange(dc);
$('#analytics-nodes-grid > .grid-body > .slick-viewport > .grid-canvas > .slick-row-detail').addClass('slick-grid-detail-content-height');
$('#analytics-nodes-grid > .grid-body > .slick-viewport > .grid-canvas > .slick-row-detail > .slick-cell').addClass('slick-grid-detail-sub-content-height');
},
onCollapse:function (e,dc) {
}
}
} : false)
},
dataSource: {
dataView: analyticsNodesDataSource,
Expand All @@ -61,20 +65,21 @@ monitorInfraAnalyticsSummaryClass = (function() {
columnHeader: {
columns:[
{
field:"name",
id:"name",
field:"displayName",
id:"displayName",
name:"Host name",
formatter:function(r,c,v,cd,dc) {
return cellTemplateLinks({cellText:'name',name:'name',statusBubble:true,rowData:dc});
return cellTemplateLinks({cellText:'displayName',name:'displayName',statusBubble:true,rowData:dc});
},
exportConfig: {
allow: true,
advFormatter: function(dc) {
return dc.name;
return dc.displayName;
}
},
events: {
onClick: function(e,dc){
dc.detailView = undefined;
onAnalyticsNodeRowSelChange(dc);
}
},
Expand Down Expand Up @@ -169,6 +174,12 @@ monitorInfraAnalyticsSummaryClass = (function() {
aNodesGrid.showGridMessage('errorGettingData');
});
$(analyticsNodeDS).on('change',function(){
//add display name
var rowItems = analyticsNodesDataSource.getItems();
for(var i = 0; i < rowItems.length;i++) {
rowItems[i].displayName = rowItems[i].displayName != null ? rowItems[i].displayName : rowItems[i].name;
rowItems[i].name = constructValidDOMId(rowItems[i].name);
}
updateChartsForSummary(analyticsNodesDataSource.getItems(),"analytics");
});
if(analyticsNodesResult['lastUpdated'] != null && (analyticsNodesResult['error'] == null || analyticsNodesResult['error']['errTxt'] == 'abort')){
Expand Down Expand Up @@ -206,7 +217,7 @@ function getGeneratorsInfoForAnalyticsNodes(analyticsDS) {
}

function onAnalyticsNodeRowSelChange(dc) {
aNodeView.load({name:dc['name'], ip:dc['ips']});
aNodeView.load({name:dc['name'], ip:dc['ips'], displayName : dc['displayName'], detailView : dc['detailView']});
}

function mergeCollectorDataAndPrimaryData(collectorData,primaryDS){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,8 @@

<script type="text/x-handlebars-template" id="analyticsnode-template">
<div class="contrail">
<div id="analytics_tabstrip_{{name}}">
<!--<h3 id="detail-title" class="smaller">Analytic Node Details</h3>-->
<div id="analytics_tabstrip_{{name}}" class="contrail-widget-tabs">
<ul>
<li><a href="#mon-infra-analytics-details-tab_{{name}}">Details</a></li>
<li><a href="#mon-infra-analytics-generators-tab_{{name}}">Generators</a></li>
Expand Down
15 changes: 8 additions & 7 deletions webroot/monitor/infra/common/ui/js/monitor_infra_utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -872,7 +872,7 @@ var infraMonitorUtils = {
var cboMsgType, cboMsgCategory, cboMsgLevel, cboTimeRange;
var lastMsgLogTime, lastLogLevel, userChangedQuery = false, defaultTimeRange = 5 * 60;//5 mins by default
if(obj.detailView === undefined && obj.page === null) {
layoutHandler.setURLHashParams({tab:'console', node: obj['name']},{triggerHashChange:false});
layoutHandler.setURLHashParams({tab:'console', node: obj['displayName']},{triggerHashChange:false});
}
if (nodeType == 'control') {
$('#ctrlNodeMessagesTab' + '_' + obj.name).html(consoleTabTemplate(obj));
Expand Down Expand Up @@ -2630,8 +2630,9 @@ function fetchCPUStats(deferredObj,primaryDS,dsName){

//Default tooltip contents to show for infra nodes
function getNodeTooltipContents(currObj,formatType) {
var displayName = currObj['displayName'] != null ? currObj['displayName'] : currObj['name'];
var tooltipContents = [
{label:'Host Name', value: currObj['name']},
{label:'Host Name', value: displayName},
{label:'Version', value:currObj['version']},
{label:'CPU', value:$.isNumeric(currObj['cpu']) ? currObj['cpu'] + '%' : currObj['cpu']},
{label:'Memory', value:$.isNumeric(currObj['memory']) ? formatMemory(currObj['memory']) : currObj['memory']}
Expand Down Expand Up @@ -2714,19 +2715,19 @@ var bgpMonitor = {
});
},
onvRouterDrillDown:function(currObj) {
layoutHandler.setURLHashParams({node:currObj['name'], tab:''}, {p:'mon_infra_vrouter'});
layoutHandler.setURLHashParams({node:currObj['displayName'] != null ? currObj['displayName'] : currObj['name'], tab:''}, {p:'mon_infra_vrouter'});
},
onControlNodeDrillDown:function(currObj) {
layoutHandler.setURLHashParams({node:currObj['name'], tab:''}, {p:'mon_infra_control'});
layoutHandler.setURLHashParams({node:currObj['displayName'] != null ? currObj['displayName'] : currObj['name'], tab:''}, {p:'mon_infra_control'});
},
onAnalyticNodeDrillDown:function(currObj) {
layoutHandler.setURLHashParams({node:currObj['name'], tab:''}, {p:'mon_infra_analytics'});
layoutHandler.setURLHashParams({node:currObj['displayName'] != null ? currObj['displayName'] : currObj['name'], tab:''}, {p:'mon_infra_analytics'});
},
onConfigNodeDrillDown:function(currObj) {
layoutHandler.setURLHashParams({node:currObj['name'], tab:''}, {p:'mon_infra_config'});
layoutHandler.setURLHashParams({node:currObj['displayName'] != null ? currObj['displayName'] : currObj['name'], tab:''}, {p:'mon_infra_config'});
},
onDbNodeDrillDown:function(currObj) {
layoutHandler.setURLHashParams({node:currObj['name'], tab:''}, {p:'mon_infra_database'});
layoutHandler.setURLHashParams({node:currObj['displayName'] != null ? currObj['displayName'] : currObj['name'], tab:''}, {p:'mon_infra_database'});
},
vRouterTooltipFn: function(currObj,formatType) {
if(currObj['children'] != null && currObj['children'].length == 1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ configNodesView = function () {
if(hashParams['node'] == null)
monitorInfraConfigSummaryClass.populateConfigNodes();
else
confNodeView.load({name:hashParams['node'], tab:hashParams['tab']});
confNodeView.load({displayName:hashParams['node'], tab:hashParams['tab'], name : constructValidDOMId(hashParams['node'])});
//layoutHandler.setURLHashParams({node:'Config Nodes'},{merge:false,triggerHashChange:false});
}
this.updateViewByHash = function(hashObj,lastHashObj) {
Expand Down Expand Up @@ -45,7 +45,9 @@ configNodeView = function () {
}
/*End of Selenium Testing*/
this.load = function (obj) {
pushBreadcrumb([obj['name']]);
if(obj['detailView'] === undefined) {
pushBreadcrumb([obj['displayName']]);
}
/*confNodeInfo = obj;
//Select tab
self.populateConfigNode(obj);
Expand Down Expand Up @@ -93,7 +95,8 @@ configNodeView = function () {
}
$("#config_tabstrip" + '_' + obj.name).contrailTabs({
activate:function (e, ui) {
confNodeInfo.name = e.target.id.split('_')[2];
confNodeInfo.name = e.target.id.replace('config_tabstrip_','');
confNodeInfo.displayName = getDisplayNameforHostName(confNodeInfo.name, 'configNodeDS');
var newIP = getIPforHostName(confNodeInfo.name, 'configNodeDS');
if(newIP != null) {
confNodeInfo.ip = newIP;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@ monitorInfraConfigDetailsClass = (function() {
//Compute the label/value pairs to be displayed in dashboard pane
//As details tab is the default tab,don't update the tab state in URL
if(obj.detailView === undefined) {
layoutHandler.setURLHashParams({tab:'', node:obj['name']},{triggerHashChange:false});
layoutHandler.setURLHashParams({tab:'', node:obj['displayName']},{triggerHashChange:false});
}
startWidgetLoading('config-sparklines' + '_' + obj.name);
toggleWidgetsVisibility(['apiServer-chart' + '_' + obj.name + '-box'], ['serviceMonitor-chart' + '_' + obj.name + '-box', 'schema-chart' + '_' + obj.name + '-box']);
var dashboardTemplate = contrail.getTemplate4Id('dashboard-template');
$('#confignode-dashboard' + '_' + obj.name).html(dashboardTemplate({title:'Configuration Node',colCount:2, showSettings:true, widgetBoxId:'dashboard' + '_' + obj.name, name:obj.name}));
startWidgetLoading('dashboard' + '_' + obj.name);
$.ajax({
url: contrail.format(monitorInfraUrls['CONFIG_DETAILS'] , obj['name'])
url: contrail.format(monitorInfraUrls['CONFIG_DETAILS'] , encodeURIComponent(obj['displayName']))
}).done(function (result) {
var noDataStr = "--";
$.ajax({
Expand Down Expand Up @@ -71,7 +71,7 @@ monitorInfraConfigDetailsClass = (function() {

});
confNodeData = result;
var parsedData = infraMonitorUtils.parseConfigNodesDashboardData([{name:obj['name'],value:confNodeData}])[0];
var parsedData = infraMonitorUtils.parseConfigNodesDashboardData([{name:obj['displayName'],value:confNodeData}])[0];
var cpu = "N/A",
memory = "N/A",
confNodeDashboardInfo, oneMinCPU, fiveMinCPU, fifteenMinCPU,
Expand All @@ -86,7 +86,7 @@ monitorInfraConfigDetailsClass = (function() {
}
configProcessStatusList = getStatusesForAllConfigProcesses(procStateList);
confNodeDashboardInfo = [
{lbl:'Hostname', value:obj['name']},
{lbl:'Hostname', value:obj['displayName']},
{lbl:'IP Address', value:(function (){
var ips = '';
try{
Expand Down

0 comments on commit 388a842

Please sign in to comment.