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; 33*e56bb445SGunnar Mills $scope.edit_hostname = false; 3454c22e4fSIftekharul Islam 3554c22e4fSIftekharul Islam loadOverviewData(); 3654c22e4fSIftekharul Islam function loadOverviewData(){ 37428375e8SMichael Davis $scope.loading = true; 3854c22e4fSIftekharul Islam 397db0e9acSCamVan Nguyen var getLogsPromise = 407db0e9acSCamVan Nguyen APIUtils.getLogs().then(function(data){ 417db0e9acSCamVan Nguyen $scope.logs = data.data.filter(function(log){ 4254c22e4fSIftekharul Islam return log.severity_flags.high == true; 4354c22e4fSIftekharul Islam }); 447db0e9acSCamVan Nguyen }, function(error){ 457db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 467db0e9acSCamVan Nguyen }) 4754c22e4fSIftekharul Islam 487db0e9acSCamVan Nguyen var getFirmwaresPromise = 497db0e9acSCamVan Nguyen APIUtils.getFirmwares().then(function(data){ 507db0e9acSCamVan Nguyen $scope.bmc_firmware = data.bmcActiveVersion; 517db0e9acSCamVan Nguyen $scope.server_firmware = data.hostActiveVersion; 527db0e9acSCamVan Nguyen }, function(error){ 537db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 547db0e9acSCamVan Nguyen }) 5554c22e4fSIftekharul Islam 567db0e9acSCamVan Nguyen var getLEDStatePromise = 577db0e9acSCamVan Nguyen APIUtils.getLEDState().then(function(data){ 587db0e9acSCamVan 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 } 637db0e9acSCamVan Nguyen }, function(error){ 647db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 657db0e9acSCamVan Nguyen }) 667db0e9acSCamVan Nguyen 677db0e9acSCamVan Nguyen var getBMCTimePromise = 687db0e9acSCamVan Nguyen APIUtils.getBMCTime().then(function(data){ 697db0e9acSCamVan Nguyen $scope.bmc_time = data.data.Elapsed / 1000; 707db0e9acSCamVan Nguyen }, function(error){ 717db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 727db0e9acSCamVan Nguyen }) 737db0e9acSCamVan Nguyen 747db0e9acSCamVan Nguyen var getServerInfoPromise = 757db0e9acSCamVan Nguyen APIUtils.getServerInfo().then(function(data){ 767db0e9acSCamVan Nguyen $scope.server_info = data.data; 777db0e9acSCamVan Nguyen }, function(error){ 787db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 797db0e9acSCamVan Nguyen }) 807db0e9acSCamVan Nguyen 817db0e9acSCamVan Nguyen var getPowerConsumptionPromise = 827db0e9acSCamVan Nguyen APIUtils.getPowerConsumption().then(function(data){ 837db0e9acSCamVan Nguyen $scope.power_consumption = data; 847db0e9acSCamVan Nguyen }, function(error){ 857db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 867db0e9acSCamVan Nguyen }) 877db0e9acSCamVan Nguyen 887db0e9acSCamVan Nguyen var getPowerCapPromise = 897db0e9acSCamVan Nguyen APIUtils.getPowerCap().then(function(data){ 907db0e9acSCamVan Nguyen $scope.power_cap = data; 917db0e9acSCamVan Nguyen }, function(error){ 927db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 937db0e9acSCamVan Nguyen }) 947db0e9acSCamVan Nguyen 957db0e9acSCamVan Nguyen var getNetworkInfoPromise = 967db0e9acSCamVan Nguyen APIUtils.getNetworkInfo().then(function(data){ 977db0e9acSCamVan Nguyen // TODO: openbmc/openbmc#3150 Support IPV6 when 987db0e9acSCamVan Nguyen // officially supported by the backend 997db0e9acSCamVan Nguyen $scope.bmc_ip_addresses = 1007db0e9acSCamVan Nguyen data.formatted_data.ip_addresses.ipv4; 1017db0e9acSCamVan Nguyen }, function(error){ 1027db0e9acSCamVan Nguyen console.log(JSON.stringify(error)); 1037db0e9acSCamVan Nguyen }) 1047db0e9acSCamVan Nguyen 1057db0e9acSCamVan Nguyen var promises = [ 1067db0e9acSCamVan Nguyen getLogsPromise, 1077db0e9acSCamVan Nguyen getFirmwaresPromise, 1087db0e9acSCamVan Nguyen getLEDStatePromise, 1097db0e9acSCamVan Nguyen getBMCTimePromise, 1107db0e9acSCamVan Nguyen getServerInfoPromise, 1117db0e9acSCamVan Nguyen getPowerConsumptionPromise, 1127db0e9acSCamVan Nguyen getPowerCapPromise, 1137db0e9acSCamVan Nguyen getNetworkInfoPromise, 1147db0e9acSCamVan Nguyen ]; 1157db0e9acSCamVan Nguyen 1167db0e9acSCamVan Nguyen $q.all(promises).finally(function(){ 1177db0e9acSCamVan Nguyen $scope.loading = false; 1187db0e9acSCamVan 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) { 131*e56bb445SGunnar Mills $scope.edit_hostname = 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