blob: 812218c5a80c0c7b7a7ffad16de622f3e3ed4c1e [file] [log] [blame]
Iftekharul Islam99d199f2017-03-24 15:28:25 -05001/**
Iftekharul Islamcd789502017-04-19 14:37:55 -05002 * Controller for systemOverview
Iftekharul Islam99d199f2017-03-24 15:28:25 -05003 *
4 * @module app/overview
5 * @exports systemOverviewController
6 * @name systemOverviewController
7 * @version 0.1.0
8 */
9
10window.angular && (function (angular) {
11 'use strict';
12
13 angular
14 .module('app.overview')
15 .controller('systemOverviewController', [
Gunnar Millseedefd32018-02-28 17:02:34 -060016 '$scope',
17 '$window',
18 'APIUtils',
Iftekharul Islam99d199f2017-03-24 15:28:25 -050019 'dataService',
Michael Davis428375e2017-08-01 15:48:34 -050020 '$q',
Andrew Geisslercf862002018-04-11 12:19:39 -070021 function($scope, $window, APIUtils, dataService, $q){
Iftekharul Islam99d199f2017-03-24 15:28:25 -050022 $scope.dataService = dataService;
Iftekharul Islamcd789502017-04-19 14:37:55 -050023 $scope.dropdown_selected = false;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050024 $scope.tmz = 'EDT';
25 $scope.logs = [];
26 $scope.mac_address = "";
27 $scope.bmc_info = {};
Gunnar Mills17708f22018-04-13 14:21:31 -050028 $scope.server_info = {};
Iftekharul Islam54c22e42017-06-28 11:06:16 -050029 $scope.bmc_firmware = "";
30 $scope.server_firmware = "";
CamVan Nguyen33275832018-03-13 18:38:37 -050031 $scope.power_consumption = "";
32 $scope.power_cap = "";
Michael Davis428375e2017-08-01 15:48:34 -050033 $scope.loading = false;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050034
35 loadOverviewData();
36 function loadOverviewData(){
Michael Davis428375e2017-08-01 15:48:34 -050037 $scope.loading = true;
38 var promises = {
39 logs: APIUtils.getLogs(),
40 firmware: APIUtils.getFirmwares(),
41 led: APIUtils.getLEDState(),
42 ethernet: APIUtils.getBMCEthernetInfo(),
CamVan Nguyen33275832018-03-13 18:38:37 -050043 bmc_info: APIUtils.getBMCInfo(),
Gunnar Mills17708f22018-04-13 14:21:31 -050044 server_info: APIUtils.getServerInfo(),
CamVan Nguyen33275832018-03-13 18:38:37 -050045 power_consumption: APIUtils.getPowerConsumption(),
46 power_cap: APIUtils.getPowerCap(),
Michael Davis428375e2017-08-01 15:48:34 -050047 };
48 $q.all(promises)
49 .then(function(data){
50 $scope.displayLogs(data.logs.data);
51 $scope.displayServerInfo(
Gunnar Mills17708f22018-04-13 14:21:31 -050052 data.server_info,
Gunnar Millseedefd32018-02-28 17:02:34 -060053 data.firmware.bmcActiveVersion,
Michael Davis428375e2017-08-01 15:48:34 -050054 data.firmware.hostActiveVersion
55 );
56 $scope.displayLEDState(data.led);
57 $scope.displayBMCEthernetInfo(data.ethernet);
58 $scope.displayBMCInfo(data.bmc_info);
CamVan Nguyen33275832018-03-13 18:38:37 -050059 $scope.displayPowerConsumption(data.power_consumption);
60 $scope.displayPowerCap(data.power_cap);
Michael Davis428375e2017-08-01 15:48:34 -050061 })
62 .finally(function(){
63 $scope.loading = false;
64 });
Iftekharul Islam54c22e42017-06-28 11:06:16 -050065 }
66 $scope.displayBMCEthernetInfo = function(data){
67 $scope.mac_address = data.MACAddress;
68 }
69
70 $scope.displayBMCInfo = function(data){
71 $scope.bmc_info = data;
72 }
73
74 $scope.displayLogs = function(data){
75 $scope.logs = data.filter(function(log){
76 return log.severity_flags.high == true;
77 });
78 }
79
80 $scope.displayServerInfo = function(data, bmcActiveVersion, hostActiveVersion){
Gunnar Mills17708f22018-04-13 14:21:31 -050081 $scope.server_info = data.data;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050082 $scope.bmc_firmware = bmcActiveVersion;
83 $scope.server_firmware = hostActiveVersion;
84 }
85
86 $scope.displayLEDState = function(state){
87 if(state == APIUtils.LED_STATE.on){
88 dataService.LED_state = APIUtils.LED_STATE_TEXT.on;
89 }else{
90 dataService.LED_state = APIUtils.LED_STATE_TEXT.off;
91 }
92 }
93
94 $scope.toggleLED = function(){
95 var toggleState = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
96 APIUtils.LED_STATE.off : APIUtils.LED_STATE.on;
97 dataService.LED_state = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
98 APIUtils.LED_STATE_TEXT.off : APIUtils.LED_STATE_TEXT.on;
99 APIUtils.setLEDState(toggleState, function(status){
100 });
101 }
CamVan Nguyen23217da2018-03-22 00:22:50 -0500102
CamVan Nguyen33275832018-03-13 18:38:37 -0500103 $scope.displayPowerConsumption = function(data){
104 $scope.power_consumption = data;
105 }
106
107 $scope.displayPowerCap = function(data){
108 $scope.power_cap = data;
109 }
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500110 }
111 ]
112 );
113
CamVan Nguyen23217da2018-03-22 00:22:50 -0500114})(angular);