|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
angular.module('dashboard', [])
|
|
|
|
|
.controller('DashboardController', ['$scope', 'Container', 'Image', 'Settings', 'LineChart', function ($scope, Container, Image, Settings, LineChart) {
|
|
|
|
|
.controller('DashboardController', ['$scope', 'Config', 'Container', 'Image', 'Settings', 'LineChart',
|
|
|
|
|
function ($scope, Config, Container, Image, Settings, LineChart) {
|
|
|
|
|
|
|
|
|
|
$scope.containerData = {};
|
|
|
|
|
|
|
|
|
@ -17,30 +18,52 @@ angular.module('dashboard', [])
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Container.query({all: 1}, function (d) {
|
|
|
|
|
var running = 0;
|
|
|
|
|
var ghost = 0;
|
|
|
|
|
var stopped = 0;
|
|
|
|
|
function fetchDashboardData() {
|
|
|
|
|
Container.query({all: 1}, function (d) {
|
|
|
|
|
var running = 0;
|
|
|
|
|
var ghost = 0;
|
|
|
|
|
var stopped = 0;
|
|
|
|
|
|
|
|
|
|
// TODO: centralize that
|
|
|
|
|
var containers = d.filter(function (container) {
|
|
|
|
|
return container.Image !== 'swarm';
|
|
|
|
|
var containers = d;
|
|
|
|
|
if (hiddenLabels) {
|
|
|
|
|
containers = hideContainers(d);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < containers.length; i++) {
|
|
|
|
|
var item = containers[i];
|
|
|
|
|
if (item.Status === "Ghost") {
|
|
|
|
|
ghost += 1;
|
|
|
|
|
} else if (item.Status.indexOf('Exit') !== -1) {
|
|
|
|
|
stopped += 1;
|
|
|
|
|
} else {
|
|
|
|
|
running += 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$scope.containerData.running = running;
|
|
|
|
|
$scope.containerData.stopped = stopped;
|
|
|
|
|
$scope.containerData.ghost = ghost;
|
|
|
|
|
|
|
|
|
|
buildCharts(containers);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (var i = 0; i < containers.length; i++) {
|
|
|
|
|
var item = containers[i];
|
|
|
|
|
if (item.Status === "Ghost") {
|
|
|
|
|
ghost += 1;
|
|
|
|
|
} else if (item.Status.indexOf('Exit') !== -1) {
|
|
|
|
|
stopped += 1;
|
|
|
|
|
} else {
|
|
|
|
|
running += 1;
|
|
|
|
|
var hideContainers = function (containers) {
|
|
|
|
|
return containers.filter(function (container) {
|
|
|
|
|
var filterContainer = false;
|
|
|
|
|
hiddenLabels.forEach(function(label, index) {
|
|
|
|
|
if (_.has(container.Labels, label.name) &&
|
|
|
|
|
container.Labels[label.name] === label.value) {
|
|
|
|
|
filterContainer = true;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
if (!filterContainer) {
|
|
|
|
|
return container;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
$scope.containerData.running = running;
|
|
|
|
|
$scope.containerData.stopped = stopped;
|
|
|
|
|
$scope.containerData.ghost = ghost;
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
buildCharts(containers);
|
|
|
|
|
Config.$promise.then(function (c) {
|
|
|
|
|
hiddenLabels = c.hiddenLabels;
|
|
|
|
|
fetchDashboardData();
|
|
|
|
|
});
|
|
|
|
|
}]);
|
|
|
|
|