| /** |
| * 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); |