diff --git a/src/serverroot/utils/common.utils.js b/src/serverroot/utils/common.utils.js index 72a01d259..d68cac7a4 100644 --- a/src/serverroot/utils/common.utils.js +++ b/src/serverroot/utils/common.utils.js @@ -26,6 +26,7 @@ var commonUtils = module.exports, dir = require('node-dir'), xml2js = require('xml2js'), js2xml = require('data2xml')(), + pd = require('pretty-data').pd, contrailPath = '/contrail'; if (!module.parent) { logutils.logger.warn(util.format( @@ -1378,6 +1379,117 @@ function getAllJsons (menuDir, callback) }); } +function createEmptyResourceObj () +{ + var obj = {}; + obj['resources'] = []; + obj['resources'][0] = {}; + obj['resources'][0]['resource'] = []; + return obj; +} + +function mergeResourceObjs (obj1, obj2) +{ + if (null == obj2['resources']) { + return obj1; + } + if (null == obj1['resources']) { + obj1 = createEmptyResourceObj(); + } + obj1['resources'][0]['resource'] = + obj1['resources'][0]['resource'].concat(obj2['resources'][0]['resource']); + return obj1; +} + +function mergeMenuItems (obj1, obj2) +{ + var found = false; + if (obj1['label'][0] == obj2['label'][0]) { + obj1 = mergeResourceObjs(obj1, obj2); + found = true; + var itemObj1 = obj1['items'][0]['item']; + var itemObj2 = obj2['items'][0]['item']; + var itemObj1Len = itemObj1.length; + var itemObj2Len = itemObj2.length; + + for (var i = 0; i < itemObj2Len; i++) { + for (var j = 0; j < itemObj1Len; j++) { + if (itemObj1[j]['label'][0] == itemObj2[i]['label'][0]) { + itemObj1[j] = mergeResourceObjs(itemObj1[j], itemObj2[i]); + break; + } + } + if (j == itemObj1Len) { + /* Not found so push it */ + itemObj1.push(itemObj2[i]); + } + } + } + return {obj: obj1, found: found}; +} + +function createResourceObject (obj) +{ + if ((null != obj['js']) || (null != obj['view']) || + (null != obj['class']) || (null != obj['rootDir']) || + (null != obj['css'])) {// || (null != obj['access'])) { + obj['resources'] = []; + obj['resources'][0] = {}; + obj['resources'][0]['resource'] = []; + obj['resources'][0]['resource'][0] = {}; + if (null != obj['rootDir']) { + obj['resources'][0]['resource'][0]['rootDir'] = obj['rootDir']; + delete obj['rootDir']; + } + if (null != obj['js']) { + obj['resources'][0]['resource'][0]['js'] = obj['js']; + delete obj['js']; + } + if (null != obj['view']) { + obj['resources'][0]['resource'][0]['view'] = obj['view']; + delete obj['view']; + } + if (null != obj['css']) { + obj['resources'][0]['resource'][0]['css'] = obj['css']; + delete obj['css']; + } + if (null != obj['class']) { + obj['resources'][0]['resource'][0]['class'] = obj['class']; + delete obj['class']; + } + /* + if (null != obj['access']) { + obj['resources'][0]['resource'][0]['access'] = obj['access']; + delete obj['access']; + } + */ + } + return obj; +} + +function checkAndCreateResourceObject (obj, isDeep) +{ + if (null != obj['resources']) { + return obj; + } + obj = createResourceObject(obj); + if (true == isDeep) { + if ((null != obj['items']) && (null != obj['items'][0]['item'])) { + var cnt = obj['items'][0]['item'].length; + for (var i = 0; i < cnt; i++) { + obj['items'][0]['item'][i] = + createResourceObject(obj['items'][0]['item'][i]); + } + } + } + return obj; +} + +function convertResourceObject (object) +{ + var obj = object['items'][0]['item']; +} + function mergeMenuObjects (menuObj1, menuObj2) { var found = false; @@ -1387,8 +1499,13 @@ function mergeMenuObjects (menuObj1, menuObj2) var itms1Len = itms1.length; var itms2Len = itms2.length; for (var k = 0; k < itms2Len; k++) { + found = false; for (var l = 0; l < itms1Len; l++) { + itms1[l] = checkAndCreateResourceObject(itms1[l], false); + itms2[k] = checkAndCreateResourceObject(itms2[k], false); if (itms1[l]['label'][0] == itms2[k]['label'][0]) { + itms1[l] = mergeResourceObjs(itms1[l], itms2[k]); + found = true; if ((null == itms2[k]['items']) || (null == itms2[k]['items'][0]) || (null == itms2[k]['items'][0]['item'])) { @@ -1400,28 +1517,32 @@ function mergeMenuObjects (menuObj1, menuObj2) itms1[l]['items'] = []; itms1[l]['items'][0] = {}; itms1[l]['items'][0] = itms2[k]['items'][0]; + continue; } var items1 = itms1[l]['items'][0]['item']; var items2 = itms2[k]['items'][0]['item']; + var items1Len = items1.length; var items2Len = items2.length; for (var i = 0; i < items2Len; i++) { for (var j = 0; j < items1Len; j++) { - if (items1[j]['label'][0] == items2[i]['label'][0]) { - items1[j]['items'][0]['item'] = - items1[j]['items'][0]['item'].concat(items2[j]['items'][0]['item']); - found = true; - break; - } + items1[j] = checkAndCreateResourceObject(items1[j], + true); + items2[i] = checkAndCreateResourceObject(items2[i], true); + var newObj = mergeMenuItems(items1[j], items2[i]); + items1[j] = newObj['obj']; + objFound = newObj['found']; + break; } - if (j == items1Len) { + if (false == objFound) { items1.push(items2[i]); } } + break; } - if (l == itms1Len) { - itms1.push(itms2[k]); - } + } + if (found == false) { + itms1.push(itms2[k]); } } return menuObj1; diff --git a/src/serverroot/web/api/test/infraoverview.api_mock.js b/src/serverroot/web/api/test/infraoverview.api_mock.js index 4685341be..aac8bcbc1 100644 --- a/src/serverroot/web/api/test/infraoverview.api_mock.js +++ b/src/serverroot/web/api/test/infraoverview.api_mock.js @@ -99,7 +99,8 @@ var configSummWGenData = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -188,7 +189,7 @@ var configSummWGenData = "start_count": 1, "stop_count": 0 } - ] + ]} } } }, @@ -311,7 +312,8 @@ var configSummWGenData = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -400,7 +402,7 @@ var configSummWGenData = "start_count": 1, "stop_count": 0 } - ], + ]}, "schema_xmer_cpu_share": [ { "history-10": { @@ -723,7 +725,8 @@ var configSummWGenData_OP = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -812,7 +815,7 @@ var configSummWGenData_OP = "start_count": 1, "stop_count": 0 } - ] + ]} } } } @@ -965,7 +968,8 @@ var configSummWGenData_OP = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -1054,7 +1058,7 @@ var configSummWGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "schema_xmer_cpu_share": [ { "history-10": { @@ -1283,7 +1287,8 @@ var configSummWOGenData = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -1372,7 +1377,7 @@ var configSummWOGenData = "start_count": 1, "stop_count": 0 } - ] + ]} } } }, @@ -1495,7 +1500,8 @@ var configSummWOGenData = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -1584,7 +1590,7 @@ var configSummWOGenData = "start_count": 1, "stop_count": 0 } - ], + ]}, "schema_xmer_cpu_share": [ { "history-10": { @@ -1813,7 +1819,8 @@ var configSummWOGenData_OP = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -1902,7 +1909,7 @@ var configSummWOGenData_OP = "start_count": 1, "stop_count": 0 } - ] + ]} } } } @@ -2027,7 +2034,8 @@ var configSummWOGenData_OP = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -2116,7 +2124,7 @@ var configSummWOGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "schema_xmer_cpu_share": [ { "history-10": { @@ -2367,7 +2375,8 @@ var configDetailsData = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -2456,7 +2465,7 @@ var configDetailsData = "start_count": 1, "stop_count": 0 } - ], + ]}, "schema_xmer_cpu_share": [ { "history-10": { @@ -3517,7 +3526,8 @@ var configDetailsData_OP = "module_id": "ApiServer" } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -3606,7 +3616,7 @@ var configDetailsData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "schema_xmer_cpu_share": [ { "history-10": { @@ -4015,7 +4025,8 @@ var analyticsSummWOGenData = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -4033,7 +4044,7 @@ var analyticsSummWOGenData = "last_exit_time": null, "last_start_time": "1391403656580041", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -4077,7 +4088,7 @@ var analyticsSummWOGenData = "last_exit_time": null, "last_start_time": "1391403658584898", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -4093,7 +4104,7 @@ var analyticsSummWOGenData = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -4428,7 +4439,8 @@ var analyticsSummWOGenData = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -4446,7 +4458,7 @@ var analyticsSummWOGenData = "last_exit_time": null, "last_start_time": "1391403662980923", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -4490,7 +4502,7 @@ var analyticsSummWOGenData = "last_exit_time": null, "last_start_time": "1391403664984650", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -4506,7 +4518,7 @@ var analyticsSummWOGenData = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -4855,7 +4867,8 @@ var analyticsSummWGenData = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -4873,7 +4886,7 @@ var analyticsSummWGenData = "last_exit_time": null, "last_start_time": "1391403656580041", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -4917,7 +4930,7 @@ var analyticsSummWGenData = "last_exit_time": null, "last_start_time": "1391403658584898", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -4933,7 +4946,7 @@ var analyticsSummWGenData = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -5269,7 +5282,8 @@ var analyticsSummWGenData = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -5287,7 +5301,7 @@ var analyticsSummWGenData = "last_exit_time": null, "last_start_time": "1391403662980923", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -5331,7 +5345,7 @@ var analyticsSummWGenData = "last_exit_time": null, "last_start_time": "1391403664984650", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -5347,7 +5361,7 @@ var analyticsSummWGenData = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -5695,7 +5709,8 @@ var analyticsSummWOGenData_OP = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -5713,7 +5728,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403656580041", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -5757,7 +5772,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403658584898", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -5773,7 +5788,7 @@ var analyticsSummWOGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -6110,7 +6125,8 @@ var analyticsSummWOGenData_OP = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -6128,7 +6144,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403662980923", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -6172,7 +6188,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403664984650", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -6188,7 +6204,7 @@ var analyticsSummWOGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -6791,7 +6807,8 @@ var analyticsSummWOGenData_OP = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -6809,7 +6826,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403656580041", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -6853,7 +6870,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403658584898", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -6869,7 +6886,7 @@ var analyticsSummWOGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -7204,7 +7221,8 @@ var analyticsSummWOGenData_OP = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -7222,7 +7240,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403662980923", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -7266,7 +7284,7 @@ var analyticsSummWOGenData_OP = "last_exit_time": null, "last_start_time": "1391403664984650", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -7282,7 +7300,7 @@ var analyticsSummWOGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -7745,7 +7763,8 @@ var analyticsSummWGenData_OP = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -7763,7 +7782,7 @@ var analyticsSummWGenData_OP = "last_exit_time": null, "last_start_time": "1391403656580041", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -7807,7 +7826,7 @@ var analyticsSummWGenData_OP = "last_exit_time": null, "last_start_time": "1391403658584898", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -7823,7 +7842,7 @@ var analyticsSummWGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { @@ -8275,7 +8294,8 @@ var analyticsSummWGenData_OP = } } ], - "process_state_list": [ + "NodeStatus":{ + "process_info": [ { "core_file_list": [], "exit_count": 0, @@ -8293,7 +8313,7 @@ var analyticsSummWGenData_OP = "last_exit_time": null, "last_start_time": "1391403662980923", "last_stop_time": null, - "process_name": "contrail-qe", + "process_name": "contrail-query-engine", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -8337,7 +8357,7 @@ var analyticsSummWGenData_OP = "last_exit_time": null, "last_start_time": "1391403664984650", "last_stop_time": null, - "process_name": "contrail-opserver", + "process_name": "contrail-analytics-api", "process_state": "PROCESS_STATE_RUNNING", "start_count": 1, "stop_count": 0 @@ -8353,7 +8373,7 @@ var analyticsSummWGenData_OP = "start_count": 1, "stop_count": 0 } - ], + ]}, "queryengine_cpu_share": [ { "history-10": { diff --git a/webroot/css/contrail.custom.css b/webroot/css/contrail.custom.css index 06a1a1cb5..6738b968a 100644 --- a/webroot/css/contrail.custom.css +++ b/webroot/css/contrail.custom.css @@ -1487,4 +1487,8 @@ color: #b94a48; } .rule-item .select2-container, .rule-item input { background : transparent; -} \ No newline at end of file +} + +#pageHeader.navbar .nav > li { + float:right; +} diff --git a/webroot/css/contrail.elements.css b/webroot/css/contrail.elements.css index 78cc16bbf..a5c49a683 100644 --- a/webroot/css/contrail.elements.css +++ b/webroot/css/contrail.elements.css @@ -3726,6 +3726,12 @@ td.td-actions a.td-action { background-color: #FFF; position: relative; } +.item-list-without-border > li { + border-bottom: none !important; + padding: 1px !important; + background-color: #FFF; + position: relative; +} .item-list > li .key { font-weight: normal; color: #3182bd; @@ -4014,3 +4020,25 @@ td.td-actions a.td-action { color:#3182bd; cursor:pointer; } +.chart-settings-hide { + height: 1px; + background-color: #dddddd; + margin-left: 70px; + margin-right: 20px; +} +.chart-settings-expand { + margin-left: 70px; + margin-right: 20px; + border: 1px solid #e5e5e5; + background-color: #e5e5e5; + border-radius: 3px; + padding:2px; +} + +.chart-settings img,.chart-settings-hide img { + vertical-align: top; + margin-right: auto; + margin-left: auto; + display: block; + cursor:pointer; +} diff --git a/webroot/html/dashboard.tmpl b/webroot/html/dashboard.tmpl index 4cf595fbd..d250a738d 100644 --- a/webroot/html/dashboard.tmpl +++ b/webroot/html/dashboard.tmpl @@ -48,13 +48,28 @@ -