Clean config.js and remove container
Change-Id: Ieeb6980232c02ec72a6a0caa707dddbacb008a6f
This commit is contained in:
parent
5d87fdaacd
commit
844d9e0e6e
@ -26,11 +26,12 @@ angular.module('bansho', [
|
|||||||
}])
|
}])
|
||||||
|
|
||||||
// Reinitialise objects on url change
|
// Reinitialise objects on url change
|
||||||
.run(['$rootScope', 'templateManager', 'reinitDrupalTiles', 'reinitDrupalInfo', 'componentsConfig',
|
.run(['$rootScope', 'templateManager', 'sharedData', 'reinitDrupalTiles', 'reinitDrupalInfo', 'componentsConfig',
|
||||||
function ($rootScope, templateManager, reinitDrupalTiles, reinitDrupalInfo, componentsConfig) {
|
function ($rootScope, templateManager, sharedData, reinitDrupalTiles, reinitDrupalInfo, componentsConfig) {
|
||||||
componentsConfig.load();
|
componentsConfig.load();
|
||||||
$rootScope.$on('$locationChangeStart', function () {
|
$rootScope.$on('$locationChangeStart', function () {
|
||||||
templateManager.clearIntervals();
|
sharedData.clear(false);
|
||||||
|
templateManager.clearIntervals(false);
|
||||||
reinitDrupalTiles();
|
reinitDrupalTiles();
|
||||||
reinitDrupalInfo();
|
reinitDrupalInfo();
|
||||||
});
|
});
|
||||||
|
@ -233,42 +233,42 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"inputSource": {
|
"inputSource": {
|
||||||
"hostOpenProblems": {
|
"statusHostsOpenProblems": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "hosts",
|
"endpoint": "hosts",
|
||||||
"filter": "allHostOpenProblems"
|
"filter": "allHostOpenProblems"
|
||||||
},
|
},
|
||||||
"serviceOpenProblems": {
|
"statusServicesOpenProblems": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "services",
|
"endpoint": "services",
|
||||||
"filter": "allServiceOpenProblems"
|
"filter": "allServiceOpenProblems"
|
||||||
},
|
},
|
||||||
"serviceOpenProblemsOnly": {
|
"statusServicesOpenProblemsOnly": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "services",
|
"endpoint": "services",
|
||||||
"filter": "allServiceOpenProblemsOnly"
|
"filter": "allServiceOpenProblemsOnly"
|
||||||
},
|
},
|
||||||
"hostsProblems": {
|
"statusHostsProblems": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "hosts",
|
"endpoint": "hosts",
|
||||||
"filter": "allHostsProblems"
|
"filter": "allHostsProblems"
|
||||||
},
|
},
|
||||||
"servicesProblems": {
|
"statusServicesProblems": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "services",
|
"endpoint": "services",
|
||||||
"filter": "allServicesProblems"
|
"filter": "allServicesProblems"
|
||||||
},
|
},
|
||||||
"events": {
|
"statusEvents": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "events",
|
"endpoint": "events",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"hosts": {
|
"statusHosts": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "hosts",
|
"endpoint": "hosts",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"services": {
|
"statusServices": {
|
||||||
"provider": "status",
|
"provider": "status",
|
||||||
"endpoint": "services",
|
"endpoint": "services",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
@ -278,67 +278,67 @@
|
|||||||
"endpoint": "services",
|
"endpoint": "services",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"hostsConfig": {
|
"configHost": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "hosts",
|
"endpoint": "hosts",
|
||||||
"filter": "allHostConfigWithoutTemplate"
|
"filter": "allHostConfigWithoutTemplate"
|
||||||
},
|
},
|
||||||
"hostsConfigTemplate": {
|
"configHostTemplate": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "hosts",
|
"endpoint": "hosts",
|
||||||
"filter": "allHostConfigTemplate"
|
"filter": "allHostConfigTemplate"
|
||||||
},
|
},
|
||||||
"commands": {
|
"configCommands": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "commands",
|
"endpoint": "commands",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"businessImpactModulations": {
|
"configBusinessImpactModulations": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "businessimpactmodulations",
|
"endpoint": "businessimpactmodulations",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"checkModulations": {
|
"configCheckModulations": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "checkmodulations",
|
"endpoint": "checkmodulations",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"contactGroups": {
|
"configContactGroups": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "contactgroups",
|
"endpoint": "contactgroups",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"contacts": {
|
"configContacts": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "contacts",
|
"endpoint": "contacts",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"hostGroups": {
|
"configHostGroups": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "hostgroups",
|
"endpoint": "hostgroups",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"macroModulations": {
|
"configMacroModulations": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "macromodulations",
|
"endpoint": "macromodulations",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"notificationWays": {
|
"configNotificationWays": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "notificationways",
|
"endpoint": "notificationways",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"realms": {
|
"configRealms": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "realms",
|
"endpoint": "realms",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"serviceGroups": {
|
"configServiceGroups": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "servicegroups",
|
"endpoint": "servicegroups",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
},
|
},
|
||||||
"timePeriods": {
|
"configTimePeriods": {
|
||||||
"provider": "config",
|
"provider": "config",
|
||||||
"endpoint": "timeperiods",
|
"endpoint": "timeperiods",
|
||||||
"filter": "all"
|
"filter": "all"
|
||||||
|
@ -12,11 +12,11 @@
|
|||||||
"navigation": {
|
"navigation": {
|
||||||
"openProblems": {
|
"openProblems": {
|
||||||
"title": "Open Problems",
|
"title": "Open Problems",
|
||||||
"provider": "nbServicesHostsOpenProblems"
|
"inputSource": "statusServicesOpenProblems"
|
||||||
},
|
},
|
||||||
"allProblems": {
|
"allProblems": {
|
||||||
"title": "All Problems",
|
"title": "All Problems",
|
||||||
"provider": "nbServicesHostsProblems"
|
"inputSource": "statusServicesOpenProblems"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -31,8 +31,8 @@
|
|||||||
"type": "host-tree",
|
"type": "host-tree",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": [
|
"inputSource": [
|
||||||
"hostOpenProblems",
|
"statusHostsOpenProblems",
|
||||||
"serviceOpenProblemsOnly"
|
"statusServicesOpenProblemsOnly"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,7 +48,7 @@
|
|||||||
"type": "host-tree",
|
"type": "host-tree",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": [
|
"inputSource": [
|
||||||
"servicesProblems"
|
"statusServicesProblems"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,11 +76,11 @@
|
|||||||
"navigation": {
|
"navigation": {
|
||||||
"openProblems": {
|
"openProblems": {
|
||||||
"title": "Open Problems",
|
"title": "Open Problems",
|
||||||
"provider": "nbServicesHostsOpenProblems"
|
"inputSource": "statusServicesOpenProblems"
|
||||||
},
|
},
|
||||||
"allProblems": {
|
"allProblems": {
|
||||||
"title": "All Problems",
|
"title": "All Problems",
|
||||||
"provider": "nbServicesHostsOpenProblemsDoubleCount"
|
"inputSource": "statusServicesOpenProblems"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -146,14 +146,14 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"title": "Open Hosts Problems",
|
"title": "Open Hosts Problems",
|
||||||
"item": "host",
|
"item": "host",
|
||||||
"provider": "nbHostsOpenProblems"
|
"inputSource": "statusHostsOpenProblems"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"inputSource": "hostOpenProblems",
|
"inputSource": "statusHostsOpenProblems",
|
||||||
"headerFollow": false,
|
"headerFollow": false,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"checkColumn": true,
|
"checkColumn": true,
|
||||||
@ -208,14 +208,14 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"title": "Open Service Problems",
|
"title": "Open Service Problems",
|
||||||
"item": "service",
|
"item": "service",
|
||||||
"provider": "nbServicesOpenProblemsOnly"
|
"inputSource": "statusServicesOpenProblemsOnly"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 1,
|
"datasourceId": 1,
|
||||||
"inputSource": "serviceOpenProblemsOnly",
|
"inputSource": "statusServicesOpenProblemsOnly",
|
||||||
"headerFollow": false,
|
"headerFollow": false,
|
||||||
"isWrappable": true,
|
"isWrappable": true,
|
||||||
"checkColumn": true,
|
"checkColumn": true,
|
||||||
@ -276,8 +276,7 @@
|
|||||||
{
|
{
|
||||||
"type": "panel",
|
"type": "panel",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"panelId": "allProblems",
|
"panelId": "allProblems"
|
||||||
"provider": "nbServicesHostsOpenProblems"
|
|
||||||
},
|
},
|
||||||
"components": [
|
"components": [
|
||||||
{
|
{
|
||||||
@ -335,14 +334,14 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"title": "Hosts Problems",
|
"title": "Hosts Problems",
|
||||||
"item": "host",
|
"item": "host",
|
||||||
"provider": "nbHostsOpenProblems"
|
"inputSource": "statusHostsProblems"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 2,
|
"datasourceId": 2,
|
||||||
"inputSource": "hostsProblems",
|
"inputSource": "statusHostsProblems",
|
||||||
"headerFollow": false,
|
"headerFollow": false,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"checkColumn": true,
|
"checkColumn": true,
|
||||||
@ -397,14 +396,14 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"title": "Services Problems",
|
"title": "Services Problems",
|
||||||
"item": "service",
|
"item": "service",
|
||||||
"provider": "nbServicesOpenProblems"
|
"inputSource": "statusServicesProblems"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 3,
|
"datasourceId": 3,
|
||||||
"inputSource": "servicesProblems",
|
"inputSource": "statusServicesProblems",
|
||||||
"headerFollow": false,
|
"headerFollow": false,
|
||||||
"isWrappable": true,
|
"isWrappable": true,
|
||||||
"checkColumn": true,
|
"checkColumn": true,
|
||||||
@ -531,7 +530,7 @@
|
|||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"inputSource": "hosts",
|
"inputSource": "statusHosts",
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
@ -653,7 +652,7 @@
|
|||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"inputSource": "services",
|
"inputSource": "statusServices",
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"checkColumn": true,
|
"checkColumn": true,
|
||||||
@ -766,7 +765,7 @@
|
|||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"inputSource": "events",
|
"inputSource": "statusEvents",
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -835,38 +834,32 @@
|
|||||||
"type": "panel",
|
"type": "panel",
|
||||||
"components": [
|
"components": [
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-host-main",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "host-main",
|
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "host-live",
|
"type": "tile-host-live",
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "host-load",
|
"type": "tile-host-load",
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "host-cpu",
|
"type": "tile-host-cpu",
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "host-services-list",
|
"type": "tile-host-services-list",
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "info",
|
"type": "tile-info",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configHost",
|
||||||
"Configuration": "configHost"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -955,7 +948,7 @@
|
|||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"inputSource": "hostsConfig",
|
"inputSource": "configHost",
|
||||||
"headerFollow": false,
|
"headerFollow": false,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
@ -1051,7 +1044,7 @@
|
|||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"inputSource": "hostsConfigTemplate",
|
"inputSource": "configHostTemplate",
|
||||||
"headerFollow": false,
|
"headerFollow": false,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
@ -1123,7 +1116,7 @@
|
|||||||
"type": "table",
|
"type": "table",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"inputSource": "commands",
|
"inputSource": "configCommands",
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
@ -1180,18 +1173,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configCommands",
|
||||||
"Configuration": "configCommand"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1231,7 +1218,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "businessImpactModulations",
|
"inputSource": "configBusinessImpactModulations",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -1289,18 +1276,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configBusinessImpactModulations",
|
||||||
"Configuration": "configBusinessImpactModulation"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1340,7 +1321,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "checkModulations",
|
"inputSource": "configCheckModulations",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -1398,18 +1379,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configCheckModulations",
|
||||||
"Configuration": "configCheckModulation"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1449,7 +1424,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "contactGroups",
|
"inputSource": "configContactGroups",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -1529,18 +1504,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configContactGroups",
|
||||||
"Configuration": "configContactGroup"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1580,7 +1549,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "contacts",
|
"inputSource": "configContacts",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -1668,18 +1637,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configContacts",
|
||||||
"Configuration": "configContact"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1719,7 +1682,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "hostGroups",
|
"inputSource": "configHostGroups",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -1801,18 +1764,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configHostGroups",
|
||||||
"Configuration": "configHostGroup"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1852,7 +1809,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "macroModulations",
|
"inputSource": "configMacroModulations",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -1901,18 +1858,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configMacroModulations",
|
||||||
"Configuration": "configMacroModulation"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -1952,7 +1903,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "notificationWays",
|
"inputSource": "configNotificationWays",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -2024,18 +1975,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configNotificationWays",
|
||||||
"Configuration": "configNotificationWay"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -2079,7 +2024,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "realms",
|
"inputSource": "configRealms",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -2137,18 +2082,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configRealms",
|
||||||
"Command": "configRealm"
|
"title": "Command"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -2188,7 +2127,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "serviceGroups",
|
"inputSource": "configServiceGroups",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -2259,18 +2198,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"inputSource": "configServiceGroups",
|
||||||
"Configuration": "configServiceGroup"
|
"title": "Configuration"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -2310,7 +2243,7 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"datasourceId": 0,
|
"datasourceId": 0,
|
||||||
"headerFollow": true,
|
"headerFollow": true,
|
||||||
"inputSource": "timePeriods",
|
"inputSource": "configTimePeriods",
|
||||||
"isWrappable": false,
|
"isWrappable": false,
|
||||||
"noRepeatCell": "",
|
"noRepeatCell": "",
|
||||||
"checkColumn": false,
|
"checkColumn": false,
|
||||||
@ -2368,18 +2301,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-info",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "info",
|
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"title": "Configuration",
|
||||||
"Configuration": "configTimePeriod"
|
"inputSource": "configTimePeriods"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -2495,36 +2422,30 @@
|
|||||||
"type": "panel",
|
"type": "panel",
|
||||||
"components": [
|
"components": [
|
||||||
{
|
{
|
||||||
"type": "container",
|
"type": "tile-service-main",
|
||||||
"components": [
|
|
||||||
{
|
|
||||||
"type": "service-main",
|
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "service-live",
|
"type": "tile-service-live",
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "service-info",
|
"type": "tile-service-info",
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "service-graphs",
|
"type": "tile-service-metrics",
|
||||||
"attributes": {}
|
"attributes": {}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "info",
|
"type": "tile-info",
|
||||||
"attributes": {
|
"attributes": {
|
||||||
"inputSource": {
|
"title": "Service configuration",
|
||||||
"Service configuration": "configService"
|
"inputSource": "configServices"
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
<article>
|
|
||||||
<section class="main__content tabpanel">
|
|
||||||
<bansho-components components="components"></bansho-components>
|
|
||||||
</section>
|
|
||||||
</article>
|
|
||||||
|
|
@ -1,154 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container', [])
|
|
||||||
.directive('banshoContainer', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
scope: {
|
|
||||||
options: '='
|
|
||||||
},
|
|
||||||
templateUrl: 'components/custom_directive/container/container.html',
|
|
||||||
controller: ['$scope', 'templateManager', 'surveilStatus', 'surveilConfig', 'iframeUrl',
|
|
||||||
function ($scope, templateManager, surveilStatus, surveilConfig, iframeUrl) {
|
|
||||||
$scope.param = { };
|
|
||||||
|
|
||||||
$scope.addDirectiveParamRequirements = function (param) {
|
|
||||||
if ($scope.param[param] === undefined) {
|
|
||||||
fillParams[param]();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var fillParams = {
|
|
||||||
"configBusinessImpactModulation": function () {
|
|
||||||
surveilConfig.getBusinessImpactModulation(templateManager.getPageParam('business_impact_modulation_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configBusinessImpactModulation = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configCheckModulation": function () {
|
|
||||||
surveilConfig.getCheckModulation(templateManager.getPageParam('checkmodulation_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configCheckModulation = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configContactGroup": function () {
|
|
||||||
surveilConfig.getContactGroup(templateManager.getPageParam('contactgroup_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configContactGroup = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configContact": function () {
|
|
||||||
surveilConfig.getContact(templateManager.getPageParam('contact_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configContact = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configHostGroup": function () {
|
|
||||||
surveilConfig.getHostGroup(templateManager.getPageParam('hostgroup_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configHostGroup = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configMacroModulation": function () {
|
|
||||||
surveilConfig.getMacroModulationName(templateManager.getPageParam('macromodulation_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configMacroModulation = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configNotificationWay": function () {
|
|
||||||
surveilConfig.getNotificationWay(templateManager.getPageParam('notificationway_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configNotificationWay = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configRealm": function () {
|
|
||||||
surveilConfig.getRealm(templateManager.getPageParam('realm_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configRealm = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configServiceGroup": function () {
|
|
||||||
surveilConfig.getServiceGroup(templateManager.getPageParam('servicegroup_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configServiceGroup = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configTimePeriod": function () {
|
|
||||||
surveilConfig.getTimePeriod(templateManager.getPageParam('timeperiod_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configTimePeriod = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configService": function () {
|
|
||||||
surveilConfig.getService(templateManager.getPageParam('host_name'),templateManager.getPageParam('service_description'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configService = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configHost": function () {
|
|
||||||
surveilConfig.getHost(templateManager.getPageParam('host_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configHost = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"configCommand": function () {
|
|
||||||
surveilConfig.getCommand(templateManager.getPageParam('command_name'))
|
|
||||||
.then(function (data) {
|
|
||||||
$scope.param.configCommand = data[0];
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"host": function () {
|
|
||||||
var hostname = templateManager.getPageParam('host_name');
|
|
||||||
|
|
||||||
surveilStatus.getHost(templateManager.getPageParam('host_name')).then(function (data) {
|
|
||||||
surveilStatus.getService(templateManager.getPageParam('host_name')).then(function (services) {
|
|
||||||
$scope.param.host = data[0];
|
|
||||||
$scope.param.host.services = [];
|
|
||||||
angular.forEach(services, function (service) {
|
|
||||||
if (service.service_description === 'cpu') {
|
|
||||||
$scope.param.host.cpu = service;
|
|
||||||
} else if (service.service_description === 'load') {
|
|
||||||
$scope.param.host.load = service;
|
|
||||||
$scope.param.host.load.iframeUrl = iframeUrl.getIFrameUrl("metric_load1", hostname, "load");
|
|
||||||
} else {
|
|
||||||
$scope.param.host.services.push(service);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"hostMetrics": function () {
|
|
||||||
var hostname = templateManager.getPageParam('host_name');
|
|
||||||
|
|
||||||
surveilStatus.getHostMetricNames(hostname).then(function (metrics) {
|
|
||||||
$scope.param.host.metrics = metrics;
|
|
||||||
angular.forEach(metrics, function (metric) {
|
|
||||||
surveilStatus.getHostMetric(hostname, metric).then(function (data) {
|
|
||||||
// TODO: waiting for ORBER BY DESC support in InfluxDB
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
"service": function () {
|
|
||||||
var hostname = templateManager.getPageParam('host_name'),
|
|
||||||
serviceDescription = templateManager.getPageParam('service_description');
|
|
||||||
|
|
||||||
surveilStatus.getService(hostname, serviceDescription).then(function (data) {
|
|
||||||
$scope.param.service = data[0];
|
|
||||||
surveilStatus.getServiceMetricNames(hostname, serviceDescription).then(function(metric_names) {
|
|
||||||
$scope.param.service.iframeUrls = {};
|
|
||||||
angular.forEach(metric_names, function (metricName) {
|
|
||||||
$scope.param.service.iframeUrls[metricName] = iframeUrl.getIFrameUrl("metric_" + metricName, hostname, serviceDescription);
|
|
||||||
surveilStatus.getServiceMetric(hostname, serviceDescription).then(function(data) {
|
|
||||||
// TODO: waiting for ORBER BY DESC support in InfluxDB
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
$scope.components = $scope.options.components;
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,15 +0,0 @@
|
|||||||
<div data-ng-show="param.host.cpu" class="subcomponent__live subcomponent__small">
|
|
||||||
<h2>Cpu</h2>
|
|
||||||
<table class="data-table">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>State</td>
|
|
||||||
<td><bansho-service-state-icon state="param.host.cpu.state"></bansho-service-state-icon> {{param.host.cpu.state}}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Output</td>
|
|
||||||
<td>{{param.host.cpu.plugin_output}}</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoHostCpu', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/host_cpu/host_cpu.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('host');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoHostLive', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/host_live/host_live.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('host');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,16 +0,0 @@
|
|||||||
<div data-ng-show="param.host.load" class="subcomponent__live subcomponent__small">
|
|
||||||
<h2>Load</h2>
|
|
||||||
<iframe src="{{param.host.load.iframeUrl}}" width="450" height="200" frameborder="0"></iframe>
|
|
||||||
<table class="data-table">
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>State</td>
|
|
||||||
<td><bansho-service-state-icon state="param.host.load.state"></bansho-service-state-icon> {{param.host.load.state}}</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Output</td>
|
|
||||||
<td>{{param.host.load.plugin_output}}</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoHostLoad', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/host_load/host_load.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('host');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,9 +0,0 @@
|
|||||||
<div class="subcomponent__live subcomponent__title">
|
|
||||||
<header class="main__content__header clearfix">
|
|
||||||
<h1 class="main__content__title">
|
|
||||||
{{param.host.host_host_name}}
|
|
||||||
<span class="subtitle" ng-show="param.host.host_config_alias">(param.host.host_config_alias)</span>
|
|
||||||
<span class="subtitle">{{param.host.host_address}}</span>
|
|
||||||
</h1>
|
|
||||||
</header>
|
|
||||||
</div>
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoHostMain', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/host_main/host_main.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('host');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoHostServicesList', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/host_services_list/host_services_list.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('host');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,13 +0,0 @@
|
|||||||
<span data-ng-repeat="(key, inputSource) in inputSources">
|
|
||||||
<div data-ng-show="param[inputSource]" class="subcomponent__live">
|
|
||||||
<h2>{{key}}</h2>
|
|
||||||
<table class="data-table">
|
|
||||||
<tbody data-ng-repeat="(key, value) in param[inputSource]">
|
|
||||||
<tr>
|
|
||||||
<td>{{key}}</td>
|
|
||||||
<td>{{value}}</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
@ -1,21 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoInfo', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/info/info.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
angular.forEach(scope.components, function(component) {
|
|
||||||
if (component.type === 'info') {
|
|
||||||
scope.inputSources = component.attributes.inputSource;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
angular.forEach(scope.inputSources, function (inputSource) {
|
|
||||||
scope.$parent.addDirectiveParamRequirements(inputSource);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,6 +0,0 @@
|
|||||||
<div data-ng-repeat="(metric, iframeUrl) in param.service.iframeUrls" class="subcomponent__live subcomponent__small">
|
|
||||||
<h2>Graph - {{metric}}</h2>
|
|
||||||
<iframe src="{{iframeUrl}}" width="450" height="200" frameborder="0"></iframe>
|
|
||||||
<table class="data-table">
|
|
||||||
</table>
|
|
||||||
</div>
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoServiceGraphs', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/service_graphs/service_graphs.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('service');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoServiceInfo', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/service_info/service_info.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('service');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoServiceLive', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/service_live/service_live.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('service');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoServiceMain', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/service_main/service_main.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('service');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -1,3 +0,0 @@
|
|||||||
<div>
|
|
||||||
<h2>Metrics</h2>
|
|
||||||
</div>
|
|
@ -1,13 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
angular.module('bansho.container')
|
|
||||||
.directive('banshoServiceMetrics', function () {
|
|
||||||
return {
|
|
||||||
restrict: 'E',
|
|
||||||
templateUrl: 'components/custom_directive/container/service_metrics/service_metrics.html',
|
|
||||||
link: function (scope) {
|
|
||||||
scope.param = scope.$parent.param;
|
|
||||||
scope.$parent.addDirectiveParamRequirements('service');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
angular.module('bansho.customDirective', [
|
angular.module('bansho.customDirective', [
|
||||||
'bansho.actionbar',
|
'bansho.actionbar',
|
||||||
'bansho.textArea',
|
|
||||||
'bansho.container',
|
|
||||||
'bansho.hostTree',
|
'bansho.hostTree',
|
||||||
'bansho.stateIcon',
|
'bansho.stateIcon',
|
||||||
'bansho.table',
|
'bansho.table',
|
||||||
'bansho.tabpanel',
|
'bansho.tabpanel',
|
||||||
'bansho.tactical',
|
'bansho.tactical',
|
||||||
|
'bansho.textArea',
|
||||||
|
'bansho.tile',
|
||||||
'bansho.title'
|
'bansho.title'
|
||||||
]);
|
]);
|
||||||
|
@ -13,7 +13,7 @@ angular.module('bansho.hostTree', ['bansho.datasource'])
|
|||||||
function ($scope, sharedData) {
|
function ($scope, sharedData) {
|
||||||
$scope.sources = {};
|
$scope.sources = {};
|
||||||
angular.forEach($scope.options.attributes.inputSource, function (source) {
|
angular.forEach($scope.options.attributes.inputSource, function (source) {
|
||||||
$scope.sources[source] = sharedData.getDataFromInputSource(source, function (data) {
|
$scope.sources[source] = sharedData.getDataFromInputSource(source, false, null, false, function (data) {
|
||||||
$scope.sources[source] = data;
|
$scope.sources[source] = data;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -17,7 +17,7 @@ angular.module('bansho.tabpanel', [])
|
|||||||
};
|
};
|
||||||
|
|
||||||
angular.forEach(scope.navigation, function (panel) {
|
angular.forEach(scope.navigation, function (panel) {
|
||||||
panel.right = sharedData.getData(panel.provider, function (data) {
|
panel.right = sharedData.getDataFromInputSource(panel.inputSource, true, null, false, function (data) {
|
||||||
panel.right = data;
|
panel.right = data;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -50,7 +50,7 @@ angular.module('bansho.table', ['bansho.datasource',
|
|||||||
$scope.entries = data;
|
$scope.entries = data;
|
||||||
});
|
});
|
||||||
datasource.refreshTableData($scope.datasourceId);
|
datasource.refreshTableData($scope.datasourceId);
|
||||||
templateManager.addInterval(function refreshTable () {
|
templateManager.addInterval(false, function refreshTable () {
|
||||||
datasource.refreshTableData($scope.datasourceId);
|
datasource.refreshTableData($scope.datasourceId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Current health</th>
|
<th>Current health</th>
|
||||||
<th> </th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -7,12 +7,11 @@ angular.module('bansho.tactical.current_health', ['bansho.surveil',
|
|||||||
return {
|
return {
|
||||||
restrict: 'E',
|
restrict: 'E',
|
||||||
templateUrl: 'components/custom_directive/tactical/current_health/current_health.html',
|
templateUrl: 'components/custom_directive/tactical/current_health/current_health.html',
|
||||||
link: function (scope, element) {
|
controller: ['$scope', '$element', function (scope, element) {
|
||||||
$rootScope.$watch('themeClassSize', function(sizeclass) {
|
$rootScope.$watch('themeClassSize', function(sizeclass) {
|
||||||
scope.themeClassSize = sizeclass;
|
scope.themeClassSize = sizeclass;
|
||||||
$compile(element.contents())(scope);
|
//$compile(element.contents())(scope);
|
||||||
});
|
});
|
||||||
}
|
}]
|
||||||
|
|
||||||
};
|
};
|
||||||
}]);
|
}]);
|
||||||
|
@ -21,20 +21,22 @@ angular.module('bansho.tactical', ['bansho.surveil',
|
|||||||
$scope.currentHealth = $scope.options.attributes.currentHealth;
|
$scope.currentHealth = $scope.options.attributes.currentHealth;
|
||||||
$scope.topAlertProducers = $scope.options.attributes.topAlertProducers;
|
$scope.topAlertProducers = $scope.options.attributes.topAlertProducers;
|
||||||
|
|
||||||
$scope.totalHosts = sharedData.getData('nbHosts', function (data) {
|
$scope.totalHosts = sharedData.getDataFromInputSource('statusHosts', true, null, false, function (data) {
|
||||||
$scope.totalHosts = data;
|
$scope.totalHosts = data;
|
||||||
|
$scope.hostsRatio = ($scope.totalHosts - $scope.hostProblems) / $scope.totalHosts * 100;
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.hostProblems = sharedData.getData('nbHostsOpenProblems', function (data) {
|
$scope.hostProblems = sharedData.getDataFromInputSource('statusHostsOpenProblems', true, null, false, function (data) {
|
||||||
$scope.hostProblems = data;
|
$scope.hostProblems = data;
|
||||||
$scope.hostsRatio = ($scope.totalHosts - $scope.hostProblems) / $scope.totalHosts * 100;
|
$scope.hostsRatio = ($scope.totalHosts - $scope.hostProblems) / $scope.totalHosts * 100;
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.totalServices = sharedData.getData('nbServices', function (data) {
|
$scope.totalServices = sharedData.getDataFromInputSource('statusServices', true, null, false, function (data) {
|
||||||
$scope.totalServices = data;
|
$scope.totalServices = data;
|
||||||
|
$scope.servicesRatio = ($scope.totalServices - $scope.serviceProblems) / $scope.totalServices * 100;
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.serviceProblems = sharedData.getData('nbServicesOpenProblems', function (data) {
|
$scope.serviceProblems = sharedData.getDataFromInputSource('statusServicesOpenProblems', true, null, false, function (data) {
|
||||||
$scope.serviceProblems = data;
|
$scope.serviceProblems = data;
|
||||||
$scope.servicesRatio = ($scope.totalServices - $scope.serviceProblems) / $scope.totalServices * 100;
|
$scope.servicesRatio = ($scope.totalServices - $scope.serviceProblems) / $scope.totalServices * 100;
|
||||||
});
|
});
|
||||||
|
15
app/components/custom_directive/tile/host_cpu/host_cpu.html
Normal file
15
app/components/custom_directive/tile/host_cpu/host_cpu.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<div data-ng-show="cpu" class="subcomponent__live subcomponent__small">
|
||||||
|
<h2>Cpu</h2>
|
||||||
|
<table class="data-table">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>State</td>
|
||||||
|
<td><bansho-service-state-icon state="cpu.service_state"></bansho-service-state-icon> {{cpu.service_state}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Output</td>
|
||||||
|
<td>{{cpu.service_plugin_output}}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
19
app/components/custom_directive/tile/host_cpu/host_cpu.js
Normal file
19
app/components/custom_directive/tile/host_cpu/host_cpu.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileHostCpu', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/host_cpu/host_cpu.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', function ($scope, sharedData, templateManager) {
|
||||||
|
sharedData.getDataFromInputSource('statusServices', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (services) {
|
||||||
|
angular.forEach(services, function (service) {
|
||||||
|
if (service.service_service_description === 'cpu') {
|
||||||
|
$scope.cpu = service;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -4,13 +4,13 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>State</td>
|
<td>State</td>
|
||||||
<td bansho-host-state-icon state="param.host.host_state">
|
<td bansho-host-state-icon state="host[0].host_state">
|
||||||
<span class="data-table__data">{{param.host.host_state}}</span>
|
<span class="data-table__data">{{host[0].host_state}}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Output</td>
|
<td>Output</td>
|
||||||
<td>{{param.host.host_plugin_output}}</td>
|
<td>{{host[0].host_plugin_output}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
15
app/components/custom_directive/tile/host_live/host_live.js
Normal file
15
app/components/custom_directive/tile/host_live/host_live.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileHostLive', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/host_live/host_live.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', function (scope, sharedData, templateManager) {
|
||||||
|
scope.host = sharedData.getDataFromInputSource('statusHosts', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (host) {
|
||||||
|
scope.host = host;
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -0,0 +1,16 @@
|
|||||||
|
<div data-ng-show="load" class="subcomponent__live subcomponent__small">
|
||||||
|
<h2>Load</h2>
|
||||||
|
<iframe src="{{iframeUrl}}" width="450" height="200" frameborder="0"></iframe>
|
||||||
|
<table class="data-table">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>State</td>
|
||||||
|
<td><bansho-service-state-icon state="load.service_state"></bansho-service-state-icon> {{load.service_state}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Output</td>
|
||||||
|
<td>{{load.service_plugin_output}}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
20
app/components/custom_directive/tile/host_load/host_load.js
Normal file
20
app/components/custom_directive/tile/host_load/host_load.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileHostLoad', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/host_load/host_load.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', 'iframeUrl', function ($scope, sharedData, templateManager, iframeUrl) {
|
||||||
|
sharedData.getDataFromInputSource('statusServices', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (services) {
|
||||||
|
angular.forEach(services, function (service) {
|
||||||
|
if (service.service_service_description === 'load') {
|
||||||
|
$scope.load = service;
|
||||||
|
$scope.iframeUrl = iframeUrl.getIFrameUrl("metric_load1", service.host_host_name, "load");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -0,0 +1,9 @@
|
|||||||
|
<div class="subcomponent__live subcomponent__title">
|
||||||
|
<header class="main__content__header clearfix">
|
||||||
|
<h1 class="main__content__title">
|
||||||
|
{{host[0].host_host_name}}
|
||||||
|
<span class="subtitle" data-ng-show="host[0].host_config_alias">(host[0].host_config_alias)</span>
|
||||||
|
<span class="subtitle">{{host[0].host_address}}</span>
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
</div>
|
15
app/components/custom_directive/tile/host_main/host_main.js
Normal file
15
app/components/custom_directive/tile/host_main/host_main.js
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileHostMain', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/host_main/host_main.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', function (scope, sharedData, templateManager) {
|
||||||
|
scope.host = sharedData.getDataFromInputSource('statusHosts', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (host) {
|
||||||
|
scope.host = host;
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -1,4 +1,4 @@
|
|||||||
<div ng-show="param.host.services.length >= 1" class="subcomponent__live">
|
<div ng-show="services.length >= 1" class="subcomponent__live">
|
||||||
<h2>Services</h2>
|
<h2>Services</h2>
|
||||||
<table class="data-table">
|
<table class="data-table">
|
||||||
<thead>
|
<thead>
|
||||||
@ -9,7 +9,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="service in param.host.services">
|
<tr ng-repeat="service in services">
|
||||||
<td><a href="#/view?view=service&host_name={{service.service_host_name}}&service_description={{service.service_service_description}}">{{service.service_service_description}}</a>
|
<td><a href="#/view?view=service&host_name={{service.service_host_name}}&service_description={{service.service_service_description}}">{{service.service_service_description}}</a>
|
||||||
<td>{{service.service_acknowledged ? "Yes" : "No"}}</td>
|
<td>{{service.service_acknowledged ? "Yes" : "No"}}</td>
|
||||||
<td bansho-service-state-icon state="service.service_state">
|
<td bansho-service-state-icon state="service.service_state">
|
@ -0,0 +1,21 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileHostServicesList', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/host_services_list/host_services_list.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', 'iframeUrl', function ($scope, sharedData, templateManager, iframeUrl) {
|
||||||
|
sharedData.getDataFromInputSource('statusServices', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (services) {
|
||||||
|
$scope.services = [];
|
||||||
|
angular.forEach(services, function (service) {
|
||||||
|
if (service.service_service_description !== 'load' &&
|
||||||
|
service.service_service_description !== 'cpu') {
|
||||||
|
$scope.services.push(service);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
11
app/components/custom_directive/tile/info/info.html
Normal file
11
app/components/custom_directive/tile/info/info.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<div data-ng-show="data[0]" class="subcomponent__live">
|
||||||
|
<h2>{{title}}</h2>
|
||||||
|
<table class="data-table">
|
||||||
|
<tbody data-ng-repeat="(key, value) in data[0]">
|
||||||
|
<tr>
|
||||||
|
<td>{{key}}</td>
|
||||||
|
<td>{{value}}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
20
app/components/custom_directive/tile/info/info.js
Normal file
20
app/components/custom_directive/tile/info/info.js
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileInfo', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
scope: {
|
||||||
|
options: '='
|
||||||
|
},
|
||||||
|
templateUrl: 'components/custom_directive/tile/info/info.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', 'iframeUrl', function ($scope, sharedData, templateManager, iframeUrl) {
|
||||||
|
$scope.title = $scope.options.attributes.title;
|
||||||
|
sharedData.getDataFromInputSource($scope.options.attributes.inputSource, false,
|
||||||
|
templateManager.getAllPageParams(), false, function (data) {
|
||||||
|
$scope.data = data;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -4,15 +4,15 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Last check</td>
|
<td>Last check</td>
|
||||||
<td>{{param.service.service_last_check|timeElapsed}}</td>
|
<td>{{service[0].service_last_check|timeElapsed}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Last state change</td>
|
<td>Last state change</td>
|
||||||
<td>{{param.service.service_last_state_change|timeElapsed}}</td>
|
<td>{{service[0].service_last_state_change|timeElapsed}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Acknowledged</td>
|
<td>Acknowledged</td>
|
||||||
<td>{{param.service.service_acknowledged ? "Yes" : "No"}}</td>
|
<td>{{service[0].service_acknowledged ? "Yes" : "No"}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
@ -0,0 +1,15 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileServiceInfo', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/service_info/service_info.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', function ($scope, sharedData, templateManager, iframeUrl) {
|
||||||
|
sharedData.getDataFromInputSource('statusServices', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (service) {
|
||||||
|
$scope.service = service;
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -4,13 +4,13 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td>State</td>
|
<td>State</td>
|
||||||
<td bansho-service-state-icon state="param.service.service_state">
|
<td bansho-service-state-icon state="service[0].service_state">
|
||||||
<span class="data-table__data">{{param.service.service_state}}</span>
|
<span class="data-table__data">{{service[0].service_state}}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Output</td>
|
<td>Output</td>
|
||||||
<td>{{param.service.service_plugin_output}}</td>
|
<td>{{service[0].service_plugin_output}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
@ -0,0 +1,15 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileServiceLive', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/service_live/service_live.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', function ($scope, sharedData, templateManager, iframeUrl) {
|
||||||
|
sharedData.getDataFromInputSource('statusServices', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (service) {
|
||||||
|
$scope.service = service;
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -1,7 +1,7 @@
|
|||||||
<div class="subcomponent__live subcomponent__title">
|
<div class="subcomponent__live subcomponent__title">
|
||||||
<h1>{{param.service.service_service_description}}
|
<h1>{{service[0].service_service_description}}
|
||||||
<span class="subtitle">
|
<span class="subtitle">
|
||||||
<a class="data-table__data" href="#/view?view=host&host_name={{param.service.service_host_name}}">{{param.service.host_host_name}}</a>
|
<a class="data-table__data" href="#/view?view=host&host_name={{service[0].service_host_name}}">{{service[0].host_host_name}}</a>
|
||||||
</span>
|
</span>
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
@ -0,0 +1,15 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileServiceMain', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/service_main/service_main.html',
|
||||||
|
controller: ['$scope', 'sharedData', 'templateManager', function ($scope, sharedData, templateManager, iframeUrl) {
|
||||||
|
sharedData.getDataFromInputSource('statusServices', false,
|
||||||
|
templateManager.getAllPageParams(), false, function (service) {
|
||||||
|
$scope.service = service;
|
||||||
|
});
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
@ -0,0 +1,4 @@
|
|||||||
|
<div data-ng-repeat="metric in metrics" class="subcomponent__live subcomponent__small">
|
||||||
|
<h2>Graph - {{metric.title}}</h2>
|
||||||
|
<iframe src="{{metric.iframeUrl}}" width="450" height="200" frameborder="0"></iframe>
|
||||||
|
</div>
|
@ -0,0 +1,29 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
angular.module('bansho.tile')
|
||||||
|
.directive('banshoTileServiceMetrics', function () {
|
||||||
|
return {
|
||||||
|
restrict: 'E',
|
||||||
|
templateUrl: 'components/custom_directive/tile/service_metrics/service_metrics.html',
|
||||||
|
controller: ['$scope', 'templateManager', 'surveilStatus', 'iframeUrl',
|
||||||
|
function ($scope, templateManager, surveilStatus, iframeUrl) {
|
||||||
|
var hostname = templateManager.getPageParam('host_name'),
|
||||||
|
serviceDescription = templateManager.getPageParam('service_description');
|
||||||
|
|
||||||
|
$scope.metrics = [];
|
||||||
|
surveilStatus.getServiceMetricNames(hostname, serviceDescription).then(function (metricNames) {
|
||||||
|
angular.forEach(metricNames, function (metricName) {
|
||||||
|
$scope.metrics.push({
|
||||||
|
title: metricName,
|
||||||
|
iframeUrl: iframeUrl.getIFrameUrl("metric_" + metricName, hostname, serviceDescription)
|
||||||
|
});
|
||||||
|
|
||||||
|
surveilStatus.getServiceMetric(hostname, serviceDescription, metricName).then(function (data) {
|
||||||
|
// TODO: waiting for ORBER BY DESC support in InfluxDB
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
});
|
1
app/components/custom_directive/tile/tile.js
Normal file
1
app/components/custom_directive/tile/tile.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
angular.module('bansho.tile', []);
|
@ -11,7 +11,8 @@ angular.module('bansho.title', [])
|
|||||||
link: function (scope) {
|
link: function (scope) {
|
||||||
if (scope.options.attributes.item) {
|
if (scope.options.attributes.item) {
|
||||||
scope.item = scope.options.attributes.item;
|
scope.item = scope.options.attributes.item;
|
||||||
scope.data = sharedData.getData(scope.options.attributes.provider, function (data) {
|
|
||||||
|
scope.data = sharedData.getDataFromInputSource(scope.options.attributes.inputSource, true, null, false, function (data) {
|
||||||
scope.data = data;
|
scope.data = data;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ angular.module('bansho.datasource', ['bansho.surveil'])
|
|||||||
filter = componentsConfig.mergeFilters([config[datasourceId].queryFilter, filter]);
|
filter = componentsConfig.mergeFilters([config[datasourceId].queryFilter, filter]);
|
||||||
}
|
}
|
||||||
|
|
||||||
promise = providerServices[inputSource.provider].getData([], filter, inputSource.endpoint, conf.queryPaging);
|
promise = providerServices[inputSource.provider].getDataFromInputSource([], inputSource, null, {count: false}, conf.queryPaging);
|
||||||
|
|
||||||
promise.then(function (newData) {
|
promise.then(function (newData) {
|
||||||
data[datasourceId] = newData;
|
data[datasourceId] = newData;
|
||||||
@ -132,112 +132,59 @@ angular.module('bansho.datasource', ['bansho.surveil'])
|
|||||||
};
|
};
|
||||||
}])
|
}])
|
||||||
|
|
||||||
.service('sharedData', ['templateManager', 'surveilStatus', 'componentsConfig',
|
.service('sharedData', ['templateManager', 'surveilStatus', 'surveilConfig', 'componentsConfig',
|
||||||
function (templateManager, surveilStatus, componentsConfig) {
|
function (templateManager, surveilStatus, surveilConfig, componentsConfig) {
|
||||||
var providerServices = {
|
var providers = {
|
||||||
status: surveilStatus
|
status: surveilStatus,
|
||||||
|
config: surveilConfig
|
||||||
},
|
},
|
||||||
sharedData = {},
|
data = {};
|
||||||
listeners = {},
|
|
||||||
providers = {
|
|
||||||
'nbServicesHostsProblems': function () {
|
|
||||||
surveilStatus.getNbHostsProblems().then(function (nbHosts) {
|
|
||||||
surveilStatus.getNbServicesProblems().then(function (nbServices) {
|
|
||||||
sharedData.nbServicesHostsProblems = nbHosts + nbServices;
|
|
||||||
notifyListeners('nbServicesHostsProblems');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
'nbHostsOpenProblems': function () {
|
|
||||||
surveilStatus.getNbHostOpenProblems().then(function (nbHostProblems) {
|
|
||||||
sharedData.nbHostsOpenProblems = nbHostProblems;
|
|
||||||
notifyListeners('nbHostsOpenProblems');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
'nbServicesOpenProblems': function () {
|
|
||||||
surveilStatus.getNbServiceOpenProblems().then(function (nbServiceProblems) {
|
|
||||||
sharedData.nbServicesOpenProblems = nbServiceProblems;
|
|
||||||
notifyListeners('nbServicesOpenProblems');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
'nbHosts': function () {
|
|
||||||
surveilStatus.getNbHosts().then(function (nbHosts) {
|
|
||||||
sharedData.nbHosts = nbHosts;
|
|
||||||
notifyListeners('nbHosts');
|
|
||||||
});
|
|
||||||
|
|
||||||
},
|
|
||||||
'nbServices': function () {
|
|
||||||
surveilStatus.getNbServices().then(function (nbServices) {
|
|
||||||
sharedData.nbServices = nbServices;
|
|
||||||
notifyListeners('nbServices');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
'nbServicesOpenProblemsOnly': function () {
|
|
||||||
surveilStatus.getNbServiceOpenProblemsOnly().then(function (nbServices) {
|
|
||||||
sharedData.nbServicesOpenProblemsOnly = nbServices;
|
|
||||||
notifyListeners('nbServicesOpenProblemsOnly');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
'nbServicesHostsOpenProblems': function () {
|
|
||||||
surveilStatus.getNbHostsProblems().then(function (nbHosts) {
|
|
||||||
surveilStatus.getNbServiceOpenProblemsOnly().then(function (nbServices) {
|
|
||||||
sharedData.nbServicesHostsOpenProblems = nbHosts + nbServices;
|
|
||||||
notifyListeners('nbServicesHostsOpenProblems');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
'nbServicesHostsOpenProblemsDoubleCount': function () {
|
|
||||||
surveilStatus.getNbHostsProblems().then(function (nbHosts) {
|
|
||||||
surveilStatus.getNbServiceOpenProblems().then(function (nbServices) {
|
|
||||||
sharedData.nbServicesHostsOpenProblemsDoubleCount = nbHosts + nbServices;
|
|
||||||
notifyListeners('nbServicesHostsOpenProblemsDoubleCount');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var notifyListeners = function (key) {
|
var notifyListeners = function (key) {
|
||||||
angular.forEach(listeners[key], function (onChange) {
|
angular.forEach(data[key].onChange, function (onChange) {
|
||||||
onChange(sharedData[key]);
|
onChange(data[key].value);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getData: function (key, onChange) {
|
clear: function (isGlobalCleared) {
|
||||||
if (listeners[key] === undefined) {
|
angular.forEach(data, function (datasource, key) {
|
||||||
listeners[key] = [onChange];
|
if (!isGlobalCleared && !datasource.isGlobal || isGlobalCleared) {
|
||||||
templateManager.addInterval(providers[key]);
|
delete data[key];
|
||||||
providers[key]();
|
|
||||||
} else {
|
|
||||||
listeners[key].push(onChange);
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
return sharedData[key];
|
|
||||||
},
|
},
|
||||||
getDataFromInputSource: function (source, onChange) {
|
getDataFromInputSource: function (source, isCount, keys, isGlobal, onChange) {
|
||||||
if (listeners[source] === undefined) {
|
var listenerKey = source + isCount + JSON.stringify(keys);
|
||||||
listeners[source] = [onChange];
|
if (data[listenerKey] === undefined) {
|
||||||
|
data[listenerKey] = {
|
||||||
|
onChange: [onChange],
|
||||||
|
isGlobal: isGlobal,
|
||||||
|
value: null
|
||||||
|
};
|
||||||
|
|
||||||
var inputSource = componentsConfig.getInputSource(source);
|
var inputSource = componentsConfig.getInputSource(source);
|
||||||
|
|
||||||
providers[source] = function () {
|
var update = function () {
|
||||||
providerServices[inputSource.provider].getData([], componentsConfig.getFilter(inputSource.filter).filter, inputSource.endpoint)
|
providers[inputSource.provider].getDataFromInputSource([], inputSource, keys, {count: isCount})
|
||||||
.then(function (newData) {
|
.then(function (newData) {
|
||||||
sharedData[source] = newData;
|
data[listenerKey].value = newData;
|
||||||
notifyListeners(source);
|
notifyListeners(listenerKey);
|
||||||
}, function (error) {
|
}, function (error) {
|
||||||
throw new Error('getTableData : Query failed' + error);
|
throw new Error('getTableData : Query failed' + error);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
update();
|
||||||
templateManager.addInterval(providers[source]);
|
templateManager.addInterval(isGlobal, update);
|
||||||
providers[source]();
|
|
||||||
} else {
|
} else {
|
||||||
listeners[source].push(onChange);
|
if (isGlobal) {
|
||||||
|
data[listenerKey].isGlobal = true;
|
||||||
|
}
|
||||||
|
data[listenerKey].onChange.push(onChange);
|
||||||
|
notifyListeners(listenerKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
return sharedData[source];
|
return data[listenerKey].value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}]);
|
}]);
|
||||||
|
@ -29,21 +29,21 @@ angular.module('bansho.surveil')
|
|||||||
return promise.promise;
|
return promise.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// All the valid endpoint with their
|
||||||
var validEndpoint = {
|
var validEndpoint = {
|
||||||
"businessimpactmodulations": true,
|
"businessimpactmodulations": "business_impact_modulation_name",
|
||||||
"checkmodulations": true,
|
"checkmodulations": "checkmodulation_name",
|
||||||
"commands": true,
|
"commands": "command_name",
|
||||||
"contacts": true,
|
"contacts": "contact_name",
|
||||||
"contactgroups": true,
|
"contactgroups": "contact_group_name",
|
||||||
"hosts": true,
|
"hosts": "host_name",
|
||||||
"hostgroups": true,
|
"hostgroups": "hostgroup_name",
|
||||||
"macromodulations": true,
|
"macromodulations": "macromodulations_name",
|
||||||
"notificationways": true,
|
"notificationways": "notificationway_name",
|
||||||
"realms": true,
|
"realms": "realm_name",
|
||||||
"services": true,
|
"services": "service_description",
|
||||||
"servicegroups": true,
|
"servicegroups": "servicegroup_name",
|
||||||
"timeperiods": true
|
"timeperiods": "timeperiods_name"
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var queryEndpoint = function (endpoint, fields, filters, paging, callback) {
|
var queryEndpoint = function (endpoint, fields, filters, paging, callback) {
|
||||||
@ -65,113 +65,39 @@ angular.module('bansho.surveil')
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
getData: getData,
|
getData: getData,
|
||||||
getBusinessImpactModulation: function (businessimpactmodulationName) {
|
getDataFromInputSource: function (fields, inputSource, keys, operations, paging) {
|
||||||
var promise = $q.defer(), query = {"businessimpactmodulations": {"is": {"business_impact_modulation_name": [ businessimpactmodulationName ] } } };
|
// Todo merge filter function
|
||||||
getData([], query, "businessimpactmodulations")
|
var promise = $q.defer(),
|
||||||
.then(function (data) {
|
filter = componentsConfig.getFilter(inputSource.filter).filter,
|
||||||
promise.resolve(data);
|
endpoint = inputSource.endpoint;
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getCheckModulation: function (checkmodulationName) {
|
|
||||||
var promise = $q.defer(), query = {"checkmodulations": {"is": {"checkmodulation_name": [ checkmodulationName ] } } };
|
|
||||||
getData([], query, "checkmodulations")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getCommand: function (commandName) {
|
|
||||||
var promise = $q.defer(), query = {"commands": {"is": {"command_name": [ commandName ] } } };
|
|
||||||
getData([], query, "commands")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getContactGroup: function (contactgroupName) {
|
|
||||||
var promise = $q.defer(), query = {"contactgroups": {"is": {"contactgroup_name": [ contactgroupName ] } } };
|
|
||||||
getData([], query, "contactgroups")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getContact: function (contactName) {
|
|
||||||
var promise = $q.defer(), query = {"contacts": {"is": {"contact_name": [ contactName ] } } };
|
|
||||||
getData([], query, "contacts")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getHost: function (hostName) {
|
|
||||||
var promise = $q.defer(), query = {"hosts": {"is": {"host_name": [ hostName ] } } };
|
|
||||||
getData([], query, "hosts")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getHostGroup: function (hostgroupName) {
|
|
||||||
var promise = $q.defer(), query = {"hostgroups": {"is": {"hostgroup_name": [ hostgroupName ] } } };
|
|
||||||
getData([], query, "hostgroups")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getMacroModulationName: function (macromodulationName) {
|
|
||||||
var promise = $q.defer(), query = {"macromodulations": {"is": {"macromodulation_name": [ macromodulationName ] } } };
|
|
||||||
getData([], query, "macromodulations")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNotificationWay: function (notificationwayName) {
|
|
||||||
var promise = $q.defer(), query = {"notificationways": {"is": {"notificationway_name": [notificationwayName] } } };
|
|
||||||
getData([], query, "notificationways")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getRealm: function (realmName) {
|
|
||||||
var promise = $q.defer(), query = {"realms": {"is": {"realm_name": [realmName] } } };
|
|
||||||
getData([], query, "realms")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getServiceGroup: function (servicegroupName) {
|
|
||||||
var promise = $q.defer(), query = {"servicegroups": {"is": {"servicegroup_name": [servicegroupName] } } };
|
|
||||||
getData([], query, "servicegroups")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getService: function (hostname, serviceDescription) {
|
|
||||||
var promise = $q.defer(), query = { "hosts": { "is": { "host_name": [hostname] } }, "services": {"is": {"host_name": [hostname] } } };
|
|
||||||
|
|
||||||
if (serviceDescription) {
|
if (endpoint === "services" &&
|
||||||
query.services = { "is": { "service_description": [ serviceDescription ] } };
|
keys && keys.host_name) {
|
||||||
|
filter = {
|
||||||
|
"hosts": {"is": {"host_name": [keys.host_name]}},
|
||||||
|
"services": {"is": {"host_name": [keys.host_name]}}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (keys.service_description) {
|
||||||
|
filter.services.is.service_description = [keys.service_description];
|
||||||
|
}
|
||||||
|
} else if (keys && keys[validEndpoint[endpoint]]) {
|
||||||
|
var key = validEndpoint[endpoint],
|
||||||
|
value = keys[key];
|
||||||
|
|
||||||
|
filter = {};
|
||||||
|
filter[endpoint] = {"is": {}};
|
||||||
|
filter[endpoint].is[key] = [value];
|
||||||
}
|
}
|
||||||
|
|
||||||
getData([], query, "services")
|
queryEndpoint(endpoint, fields, filter, paging, function (data) {
|
||||||
.then(function (data) {
|
if (operations && operations.count) {
|
||||||
promise.resolve(data);
|
promise.resolve(data.length);
|
||||||
});
|
} else {
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getTimePeriod: function (timeperiodName) {
|
|
||||||
var promise = $q.defer(), query = {"timeperiods": {"is": {"timeperiod_name": [timeperiodName] } } };
|
|
||||||
getData([], query, "timeperiods")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
promise.resolve(data);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
return promise.promise;
|
return promise.promise;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -58,20 +58,6 @@ angular.module('bansho.surveil')
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var getData = function (fields, filters, endpoint, paging) {
|
|
||||||
var promise = $q.defer();
|
|
||||||
|
|
||||||
if (!queryEndpoint[endpoint]) {
|
|
||||||
throw new Error('getData in surveilStatus : Invalid endpoint ' + endpoint);
|
|
||||||
}
|
|
||||||
|
|
||||||
queryEndpoint[endpoint](fields, filters, paging, function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
|
|
||||||
return promise.promise;
|
|
||||||
};
|
|
||||||
|
|
||||||
var queryHostsServices = function (fields, filters, paging, callback) {
|
var queryHostsServices = function (fields, filters, paging, callback) {
|
||||||
var hostQuery = surveilQuery(fields, filters.hosts, paging),
|
var hostQuery = surveilQuery(fields, filters.hosts, paging),
|
||||||
serviceQuery = surveilQuery(fields, filters.services, paging);
|
serviceQuery = surveilQuery(fields, filters.services, paging);
|
||||||
@ -158,83 +144,50 @@ angular.module('bansho.surveil')
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return {
|
var validEndpoint = {
|
||||||
getData: getData,
|
"events": "event_name",
|
||||||
getHost: function (hostname) {
|
"hosts": "host_name",
|
||||||
var promise = $q.defer(), query = {"hosts": {"is": {"host_name": [ hostname ] } } };
|
"services": "service_description"
|
||||||
getData([], query, "hosts")
|
};
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNbHosts: function () {
|
|
||||||
var promise = $q.defer();
|
|
||||||
getData([], componentsConfig.getFilter("all").filter, "hosts")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data.length);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNbHostOpenProblems: function () {
|
|
||||||
var promise = $q.defer();
|
|
||||||
getData([], componentsConfig.getFilter("allHostOpenProblems").filter, "hosts")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data.length);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNbHostsProblems: function () {
|
|
||||||
var promise = $q.defer();
|
|
||||||
getData([], componentsConfig.getFilter("allHostsProblems").filter, "hosts")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data.length);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getService: function (hostname, serviceDescription) {
|
|
||||||
var promise = $q.defer(), query = { "hosts": { "is": { "host_name": [hostname] } }, "services": {"is": {"host_name": [hostname] } } };
|
|
||||||
|
|
||||||
if (serviceDescription) {
|
return {
|
||||||
query.services = { "is": { "service_description": [ serviceDescription ] } };
|
getDataFromInputSource: function (fields, inputSource, keys, operations, paging) {
|
||||||
|
// Todo merge filter function
|
||||||
|
var promise = $q.defer(),
|
||||||
|
filter = componentsConfig.getFilter(inputSource.filter).filter,
|
||||||
|
endpoint = inputSource.endpoint;
|
||||||
|
|
||||||
|
if (endpoint === "services" &&
|
||||||
|
keys && keys.host_name) {
|
||||||
|
filter = {
|
||||||
|
"hosts": {"is": {"host_name": [keys.host_name]}},
|
||||||
|
"services": {"is": {"host_name": [keys.host_name]}}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (keys.service_description) {
|
||||||
|
filter.services.is.service_description = [keys.service_description];
|
||||||
|
}
|
||||||
|
} else if (keys && keys[validEndpoint[endpoint]]) {
|
||||||
|
var key = validEndpoint[endpoint],
|
||||||
|
value = keys[key];
|
||||||
|
|
||||||
|
filter = {};
|
||||||
|
filter[endpoint] = {"is": {}};
|
||||||
|
filter[endpoint].is[key] = [value];
|
||||||
}
|
}
|
||||||
|
|
||||||
getData([], query, "services")
|
if (!queryEndpoint[endpoint]) {
|
||||||
.then(function (data) {
|
throw new Error('getData in surveilStatus : Invalid endpoint ' + endpoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
queryEndpoint[endpoint](fields, filter, paging, function (data) {
|
||||||
|
if (operations && operations.count) {
|
||||||
|
promise.resolve(data.length);
|
||||||
|
} else {
|
||||||
promise.resolve(data);
|
promise.resolve(data);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNbServices: function () {
|
|
||||||
var promise = $q.defer();
|
|
||||||
getData([], componentsConfig.getFilter("allServices").filter, "services")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data.length);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNbServiceOpenProblems: function () {
|
|
||||||
var promise = $q.defer();
|
|
||||||
getData([], componentsConfig.getFilter("allServiceOpenProblems").filter, "services")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data.length);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNbServiceOpenProblemsOnly: function () {
|
|
||||||
var promise = $q.defer();
|
|
||||||
getData([], componentsConfig.getFilter("allServiceOpenProblemsOnly").filter, "services")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data.length);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
|
||||||
},
|
|
||||||
getNbServicesProblems: function () {
|
|
||||||
var promise = $q.defer();
|
|
||||||
getData([], componentsConfig.getFilter("allServicesProblems").filter, "services")
|
|
||||||
.then(function (data) {
|
|
||||||
promise.resolve(data.length);
|
|
||||||
});
|
|
||||||
return promise.promise;
|
return promise.promise;
|
||||||
},
|
},
|
||||||
getHostMetric: function (host, metric) {
|
getHostMetric: function (host, metric) {
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
aria-expanded="true"
|
aria-expanded="true"
|
||||||
aria-controls="notificationsPanel">
|
aria-controls="notificationsPanel">
|
||||||
<span class="visuallyhidden">Voir les notifications</span>
|
<span class="visuallyhidden">Voir les notifications</span>
|
||||||
<i class="ico-bell-alt" data-notifications="{{allProblems}}"></i>
|
<i class="ico-bell-alt" data-notifications="{{nbServices + nbHosts}}"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div class="topbar__panel--fromleft collapse" id="notificationsPanel">
|
<div class="topbar__panel--fromleft collapse" id="notificationsPanel">
|
||||||
|
@ -21,8 +21,14 @@ angular.module('bansho.topbar', ['bansho.surveil'])
|
|||||||
};
|
};
|
||||||
|
|
||||||
authService.registerOnLogin(function () {
|
authService.registerOnLogin(function () {
|
||||||
$scope.allProblems = sharedData.getData('nbServicesHostsOpenProblems', function (data) {
|
$scope.nbHosts = sharedData.getDataFromInputSource('statusHostsOpenProblems', true, null, true, function (nbHosts) {
|
||||||
$scope.allProblems = data;
|
$scope.nbHosts = nbHosts;
|
||||||
|
$scope.allProblems = $scope.nbServices + $scope.nbHosts;
|
||||||
|
});
|
||||||
|
|
||||||
|
sharedData.getDataFromInputSource('statusServicesOpenProblems', true, null, true, function (nbServices) {
|
||||||
|
$scope.nbServices = nbServices;
|
||||||
|
$scope.allProblems = $scope.nbServices + $scope.nbHosts;
|
||||||
});
|
});
|
||||||
|
|
||||||
$scope.components = configManager.getConfigData('topbar').components;
|
$scope.components = configManager.getConfigData('topbar').components;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<!--[if gt IE 8]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
|
<!--[if gt IE 8]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge/>
|
||||||
<title>Bansho</title>
|
<title>Bansho</title>
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<link href='http://fonts.googleapis.com/css?family=Roboto:400,700,400italic' rel='stylesheet' type='text/css'>
|
<link href='http://fonts.googleapis.com/css?family=Roboto:400,700,400italic' rel='stylesheet' type='text/css'>
|
||||||
@ -95,18 +95,17 @@
|
|||||||
<script src="components/custom_directive/tactical/current_health/current_health.js"></script>
|
<script src="components/custom_directive/tactical/current_health/current_health.js"></script>
|
||||||
<script src="components/custom_directive/tactical/top_alert_producers/top_alert_producers.js"></script>
|
<script src="components/custom_directive/tactical/top_alert_producers/top_alert_producers.js"></script>
|
||||||
|
|
||||||
<script src="components/custom_directive/container/container.js"></script>
|
<script src="components/custom_directive/tile/tile.js"></script>
|
||||||
<script src="components/custom_directive/container/info/info.js"></script>
|
<script src="components/custom_directive/tile/info/info.js"></script>
|
||||||
<script src="components/custom_directive/container/host_cpu/host_cpu.js"></script>
|
<script src="components/custom_directive/tile/host_cpu/host_cpu.js"></script>
|
||||||
<script src="components/custom_directive/container/host_load/host_load.js"></script>
|
<script src="components/custom_directive/tile/host_load/host_load.js"></script>
|
||||||
<script src="components/custom_directive/container/host_main/host_main.js"></script>
|
<script src="components/custom_directive/tile/host_main/host_main.js"></script>
|
||||||
<script src="components/custom_directive/container/host_live/host_live.js"></script>
|
<script src="components/custom_directive/tile/host_live/host_live.js"></script>
|
||||||
<script src="components/custom_directive/container/host_services_list/host_services_list.js"></script>
|
<script src="components/custom_directive/tile/host_services_list/host_services_list.js"></script>
|
||||||
<script src="components/custom_directive/container/service_main/service_main.js"></script>
|
<script src="components/custom_directive/tile/service_main/service_main.js"></script>
|
||||||
<script src="components/custom_directive/container/service_live/service_live.js"></script>
|
<script src="components/custom_directive/tile/service_live/service_live.js"></script>
|
||||||
<script src="components/custom_directive/container/service_info/service_info.js"></script>
|
<script src="components/custom_directive/tile/service_info/service_info.js"></script>
|
||||||
<script src="components/custom_directive/container/service_graphs/service_graphs.js"></script>
|
<script src="components/custom_directive/tile/service_metrics/service_metrics.js"></script>
|
||||||
<script src="components/custom_directive/container/service_metrics/service_metrics.js"></script>
|
|
||||||
|
|
||||||
<script src="components/custom_directive/actionbar/actionbar.js"></script>
|
<script src="components/custom_directive/actionbar/actionbar.js"></script>
|
||||||
<script src="components/custom_directive/actionbar/component_acknowledge/acknowledge.js"></script>
|
<script src="components/custom_directive/actionbar/component_acknowledge/acknowledge.js"></script>
|
||||||
|
@ -18,19 +18,24 @@ angular.module('bansho.view')
|
|||||||
getLayoutComponents: function () {
|
getLayoutComponents: function () {
|
||||||
return layout.components;
|
return layout.components;
|
||||||
},
|
},
|
||||||
addInterval: function (callback) {
|
addInterval: function (isGlobal, callback) {
|
||||||
if (refreshInterval !== NO_REFRESH) {
|
if (refreshInterval !== NO_REFRESH) {
|
||||||
intervals.push($interval(callback, refreshInterval * 1000));
|
intervals.push({isGlobal: isGlobal, interval: $interval(callback, refreshInterval * 1000)});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
clearIntervals: function () {
|
clearIntervals: function (isGlobalCleared) {
|
||||||
angular.forEach(intervals, function (i) {
|
angular.forEach(intervals, function (i) {
|
||||||
$interval.cancel(i);
|
if (!isGlobalCleared && !i.isGlobal || isGlobalCleared) {
|
||||||
|
$interval.cancel(i.interval);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
setPageParam: function (key, value) {
|
setPageParam: function (key, value) {
|
||||||
pageParam[key] = value;
|
pageParam[key] = value;
|
||||||
},
|
},
|
||||||
|
getAllPageParams: function () {
|
||||||
|
return pageParam;
|
||||||
|
},
|
||||||
getPageParam: function (key) {
|
getPageParam: function (key) {
|
||||||
if (pageParam[key] === undefined) {
|
if (pageParam[key] === undefined) {
|
||||||
throw new Error("ERROR :'" + key + "' GET parameter must be set in url");
|
throw new Error("ERROR :'" + key + "' GET parameter must be set in url");
|
||||||
|
Loading…
Reference in New Issue
Block a user