199d199f3SIftekharul Islam/** 2cd789508SIftekharul Islam * Controller for systemOverview 399d199f3SIftekharul Islam * 499d199f3SIftekharul Islam * @module app/overview 599d199f3SIftekharul Islam * @exports systemOverviewController 699d199f3SIftekharul Islam * @name systemOverviewController 799d199f3SIftekharul Islam */ 899d199f3SIftekharul Islam 999d199f3SIftekharul Islamwindow.angular && (function (angular) { 1099d199f3SIftekharul Islam 'use strict'; 1199d199f3SIftekharul Islam 1299d199f3SIftekharul Islam angular 1399d199f3SIftekharul Islam .module('app.overview') 1499d199f3SIftekharul Islam .controller('systemOverviewController', [ 1599d199f3SIftekharul Islam '$scope', 1699d199f3SIftekharul Islam '$window', 1799d199f3SIftekharul Islam 'APIUtils', 1899d199f3SIftekharul Islam 'dataService', 19428375e8SMichael Davis '$q', 20cf862007SAndrew Geissler function($scope, $window, APIUtils, dataService, $q){ 2199d199f3SIftekharul Islam $scope.dataService = dataService; 22cd789508SIftekharul Islam $scope.dropdown_selected = false; 2354c22e4fSIftekharul Islam $scope.tmz = 'EDT'; 2454c22e4fSIftekharul Islam $scope.logs = []; 2517708f2aSGunnar Mills $scope.server_info = {}; 2654c22e4fSIftekharul Islam $scope.bmc_firmware = ""; 27ed96f8bbSGunnar Mills $scope.bmc_time = ""; 2854c22e4fSIftekharul Islam $scope.server_firmware = ""; 2933275839SCamVan Nguyen $scope.power_consumption = ""; 3033275839SCamVan Nguyen $scope.power_cap = ""; 31fbb63db4SCamVan Nguyen $scope.bmc_ip_addresses = []; 32428375e8SMichael Davis $scope.loading = false; 33ff2313dbSAndrew Geissler $scope.edit_server_name = false; 3454c22e4fSIftekharul Islam 3554c22e4fSIftekharul Islam loadOverviewData(); 3654c22e4fSIftekharul Islam function loadOverviewData(){ 37428375e8SMichael Davis $scope.loading = true; 3854c22e4fSIftekharul Islam 39*7db0e9acSCamVan Nguyen var getLogsPromise = 40*7db0e9acSCamVan Nguyen APIUtils.getLogs().then(function(data){ 41*7db0e9acSCamVan Nguyen $scope.logs = data.data.filter(function(log){ 4254c22e4fSIftekharul Islam return log.severity_flags.high == true; 4354c22e4fSIftekharul Islam }); 44*7db0e9acSCamVan Nguyen }, function(error){ 45*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 46*7db0e9acSCamVan Nguyen }) 4754c22e4fSIftekharul Islam 48*7db0e9acSCamVan Nguyen var getFirmwaresPromise = 49*7db0e9acSCamVan Nguyen APIUtils.getFirmwares().then(function(data){ 50*7db0e9acSCamVan Nguyen $scope.bmc_firmware = data.bmcActiveVersion; 51*7db0e9acSCamVan Nguyen $scope.server_firmware = data.hostActiveVersion; 52*7db0e9acSCamVan Nguyen }, function(error){ 53*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 54*7db0e9acSCamVan Nguyen }) 5554c22e4fSIftekharul Islam 56*7db0e9acSCamVan Nguyen var getLEDStatePromise = 57*7db0e9acSCamVan Nguyen APIUtils.getLEDState().then(function(data){ 58*7db0e9acSCamVan Nguyen if(data == APIUtils.LED_STATE.on){ 5954c22e4fSIftekharul Islam dataService.LED_state = APIUtils.LED_STATE_TEXT.on; 6054c22e4fSIftekharul Islam }else{ 6154c22e4fSIftekharul Islam dataService.LED_state = APIUtils.LED_STATE_TEXT.off; 6254c22e4fSIftekharul Islam } 63*7db0e9acSCamVan Nguyen }, function(error){ 64*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 65*7db0e9acSCamVan Nguyen }) 66*7db0e9acSCamVan Nguyen 67*7db0e9acSCamVan Nguyen var getBMCTimePromise = 68*7db0e9acSCamVan Nguyen APIUtils.getBMCTime().then(function(data){ 69*7db0e9acSCamVan Nguyen $scope.bmc_time = data.data.Elapsed / 1000; 70*7db0e9acSCamVan Nguyen }, function(error){ 71*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 72*7db0e9acSCamVan Nguyen }) 73*7db0e9acSCamVan Nguyen 74*7db0e9acSCamVan Nguyen var getServerInfoPromise = 75*7db0e9acSCamVan Nguyen APIUtils.getServerInfo().then(function(data){ 76*7db0e9acSCamVan Nguyen $scope.server_info = data.data; 77*7db0e9acSCamVan Nguyen }, function(error){ 78*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 79*7db0e9acSCamVan Nguyen }) 80*7db0e9acSCamVan Nguyen 81*7db0e9acSCamVan Nguyen var getPowerConsumptionPromise = 82*7db0e9acSCamVan Nguyen APIUtils.getPowerConsumption().then(function(data){ 83*7db0e9acSCamVan Nguyen $scope.power_consumption = data; 84*7db0e9acSCamVan Nguyen }, function(error){ 85*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 86*7db0e9acSCamVan Nguyen }) 87*7db0e9acSCamVan Nguyen 88*7db0e9acSCamVan Nguyen var getPowerCapPromise = 89*7db0e9acSCamVan Nguyen APIUtils.getPowerCap().then(function(data){ 90*7db0e9acSCamVan Nguyen $scope.power_cap = data; 91*7db0e9acSCamVan Nguyen }, function(error){ 92*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 93*7db0e9acSCamVan Nguyen }) 94*7db0e9acSCamVan Nguyen 95*7db0e9acSCamVan Nguyen var getNetworkInfoPromise = 96*7db0e9acSCamVan Nguyen APIUtils.getNetworkInfo().then(function(data){ 97*7db0e9acSCamVan Nguyen // TODO: openbmc/openbmc#3150 Support IPV6 when 98*7db0e9acSCamVan Nguyen // officially supported by the backend 99*7db0e9acSCamVan Nguyen $scope.bmc_ip_addresses = 100*7db0e9acSCamVan Nguyen data.formatted_data.ip_addresses.ipv4; 101*7db0e9acSCamVan Nguyen }, function(error){ 102*7db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 103*7db0e9acSCamVan Nguyen }) 104*7db0e9acSCamVan Nguyen 105*7db0e9acSCamVan Nguyen var promises = [ 106*7db0e9acSCamVan Nguyen getLogsPromise, 107*7db0e9acSCamVan Nguyen getFirmwaresPromise, 108*7db0e9acSCamVan Nguyen getLEDStatePromise, 109*7db0e9acSCamVan Nguyen getBMCTimePromise, 110*7db0e9acSCamVan Nguyen getServerInfoPromise, 111*7db0e9acSCamVan Nguyen getPowerConsumptionPromise, 112*7db0e9acSCamVan Nguyen getPowerCapPromise, 113*7db0e9acSCamVan Nguyen getNetworkInfoPromise, 114*7db0e9acSCamVan Nguyen ]; 115*7db0e9acSCamVan Nguyen 116*7db0e9acSCamVan Nguyen $q.all(promises).finally(function(){ 117*7db0e9acSCamVan Nguyen $scope.loading = false; 118*7db0e9acSCamVan Nguyen }); 11954c22e4fSIftekharul Islam } 12054c22e4fSIftekharul Islam 12154c22e4fSIftekharul Islam $scope.toggleLED = function(){ 12254c22e4fSIftekharul Islam var toggleState = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ? 12354c22e4fSIftekharul Islam APIUtils.LED_STATE.off : APIUtils.LED_STATE.on; 12454c22e4fSIftekharul Islam dataService.LED_state = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ? 12554c22e4fSIftekharul Islam APIUtils.LED_STATE_TEXT.off : APIUtils.LED_STATE_TEXT.on; 12654c22e4fSIftekharul Islam APIUtils.setLEDState(toggleState, function(status){ 12754c22e4fSIftekharul Islam }); 12854c22e4fSIftekharul Islam } 12923217daeSCamVan Nguyen 130ff2313dbSAndrew Geissler $scope.saveHostname = function(hostname) { 131ff2313dbSAndrew Geissler $scope.edit_server_name = false; 132ff2313dbSAndrew Geissler $scope.loading = true; 133ff2313dbSAndrew Geissler APIUtils.setHostname(hostname).then(function(data){ 134ff2313dbSAndrew Geissler APIUtils.getNetworkInfo().then(function(data){ 135ff2313dbSAndrew Geissler dataService.setNetworkInfo(data); 136ff2313dbSAndrew Geissler }); 137ff2313dbSAndrew Geissler }, 138ff2313dbSAndrew Geissler function(error){ 139ff2313dbSAndrew Geissler console.log(error); 140ff2313dbSAndrew Geissler }); 141ff2313dbSAndrew Geissler $scope.loading = false; 142ff2313dbSAndrew Geissler } 14399d199f3SIftekharul Islam } 14499d199f3SIftekharul Islam ] 14599d199f3SIftekharul Islam ); 14699d199f3SIftekharul Islam 14799d199f3SIftekharul Islam})(angular); 148