blob: 8d43613f9aafedae50d173a633f45bf53d58df04 [file] [log] [blame]
/**
* Controller for systemOverview
*
* @module app/overview
* @exports systemOverviewController
* @name systemOverviewController
*/
window.angular && (function(angular) {
'use strict';
angular.module('app.overview').controller('systemOverviewController', [
'$scope', '$window', 'APIUtils', 'dataService', 'Constants', '$q',
function($scope, $window, APIUtils, dataService, Constants, $q) {
$scope.dataService = dataService;
$scope.dropdown_selected = false;
$scope.logs = [];
$scope.server_info = {};
$scope.bmc_firmware = '';
$scope.bmc_time = '';
$scope.server_firmware = '';
$scope.power_consumption = '';
$scope.power_cap = '';
$scope.bmc_ip_addresses = [];
$scope.loading = false;
$scope.edit_hostname = false;
$scope.newHostname = '';
loadOverviewData();
function loadOverviewData() {
$scope.loading = true;
var getLogsPromise = APIUtils.getLogs().then(
function(data) {
$scope.logs = data.data.filter(function(log) {
return log.severity_flags.high == true;
});
},
function(error) {
console.log(JSON.stringify(error));
});
var getFirmwaresPromise = APIUtils.getFirmwares().then(
function(data) {
$scope.bmc_firmware = data.bmcActiveVersion;
$scope.server_firmware = data.hostActiveVersion;
},
function(error) {
console.log(JSON.stringify(error));
});
var getLEDStatePromise = APIUtils.getLEDState().then(
function(data) {
if (data == APIUtils.LED_STATE.on) {
dataService.LED_state = APIUtils.LED_STATE_TEXT.on;
} else {
dataService.LED_state = APIUtils.LED_STATE_TEXT.off;
}
},
function(error) {
console.log(JSON.stringify(error));
});
var getBMCTimePromise = APIUtils.getBMCTime().then(
function(data) {
$scope.bmc_time = data.data.Elapsed / 1000;
},
function(error) {
console.log(JSON.stringify(error));
});
var getServerInfoPromise = APIUtils.getServerInfo().then(
function(data) {
$scope.server_info = data.data;
},
function(error) {
console.log(JSON.stringify(error));
});
var getPowerConsumptionPromise = APIUtils.getPowerConsumption().then(
function(data) {
$scope.power_consumption = data;
},
function(error) {
console.log(JSON.stringify(error));
});
var getPowerCapPromise = APIUtils.getPowerCap().then(
function(data) {
if (data.data.PowerCapEnable == false) {
$scope.power_cap = Constants.POWER_CAP_TEXT.disabled;
} else {
$scope.power_cap =
data.data.PowerCap + ' ' + Constants.POWER_CAP_TEXT.unit;
}
},
function(error) {
console.log(JSON.stringify(error));
});
var getNetworkInfoPromise = APIUtils.getNetworkInfo().then(
function(data) {
// TODO: openbmc/openbmc#3150 Support IPV6 when
// officially supported by the backend
$scope.bmc_ip_addresses = data.formatted_data.ip_addresses.ipv4;
$scope.newHostname = data.hostname;
},
function(error) {
console.log(JSON.stringify(error));
});
var promises = [
getLogsPromise,
getFirmwaresPromise,
getLEDStatePromise,
getBMCTimePromise,
getServerInfoPromise,
getPowerConsumptionPromise,
getPowerCapPromise,
getNetworkInfoPromise,
];
$q.all(promises).finally(function() {
$scope.loading = false;
});
}
$scope.toggleLED = function() {
var toggleState =
(dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
APIUtils.LED_STATE.off :
APIUtils.LED_STATE.on;
dataService.LED_state =
(dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
APIUtils.LED_STATE_TEXT.off :
APIUtils.LED_STATE_TEXT.on;
APIUtils.setLEDState(toggleState, function(status) {});
};
$scope.saveHostname = function(hostname) {
$scope.edit_hostname = false;
$scope.loading = true;
APIUtils.setHostname(hostname).then(
function(data) {
APIUtils.getNetworkInfo().then(function(data) {
dataService.setNetworkInfo(data);
});
},
function(error) {
console.log(error);
});
$scope.loading = false;
};
$scope.getEventLogTitle = function(event) {
var title = event.type;
if ((event.eventID != 'None') && (event.description != 'None')) {
title = event.eventID + ': ' + event.description;
}
return title;
};
}
]);
})(angular);