blob: 6698962764b954e5ef0c489301c401e7c060fdab [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
Iftekharul Islam99d199f2017-03-24 15:28:25 -05007 */
8
9window.angular && (function (angular) {
10 'use strict';
11
12 angular
13 .module('app.overview')
14 .controller('systemOverviewController', [
Gunnar Millseedefd32018-02-28 17:02:34 -060015 '$scope',
16 '$window',
17 'APIUtils',
Iftekharul Islam99d199f2017-03-24 15:28:25 -050018 'dataService',
Michael Davis428375e2017-08-01 15:48:34 -050019 '$q',
Andrew Geisslercf862002018-04-11 12:19:39 -070020 function($scope, $window, APIUtils, dataService, $q){
Iftekharul Islam99d199f2017-03-24 15:28:25 -050021 $scope.dataService = dataService;
Iftekharul Islamcd789502017-04-19 14:37:55 -050022 $scope.dropdown_selected = false;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050023 $scope.tmz = 'EDT';
24 $scope.logs = [];
25 $scope.mac_address = "";
26 $scope.bmc_info = {};
Gunnar Mills17708f22018-04-13 14:21:31 -050027 $scope.server_info = {};
Iftekharul Islam54c22e42017-06-28 11:06:16 -050028 $scope.bmc_firmware = "";
29 $scope.server_firmware = "";
CamVan Nguyen33275832018-03-13 18:38:37 -050030 $scope.power_consumption = "";
31 $scope.power_cap = "";
Michael Davis428375e2017-08-01 15:48:34 -050032 $scope.loading = false;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050033
34 loadOverviewData();
35 function loadOverviewData(){
Michael Davis428375e2017-08-01 15:48:34 -050036 $scope.loading = true;
37 var promises = {
38 logs: APIUtils.getLogs(),
39 firmware: APIUtils.getFirmwares(),
40 led: APIUtils.getLEDState(),
41 ethernet: APIUtils.getBMCEthernetInfo(),
CamVan Nguyen33275832018-03-13 18:38:37 -050042 bmc_info: APIUtils.getBMCInfo(),
Gunnar Mills17708f22018-04-13 14:21:31 -050043 server_info: APIUtils.getServerInfo(),
CamVan Nguyen33275832018-03-13 18:38:37 -050044 power_consumption: APIUtils.getPowerConsumption(),
45 power_cap: APIUtils.getPowerCap(),
Michael Davis428375e2017-08-01 15:48:34 -050046 };
47 $q.all(promises)
48 .then(function(data){
49 $scope.displayLogs(data.logs.data);
50 $scope.displayServerInfo(
Gunnar Mills17708f22018-04-13 14:21:31 -050051 data.server_info,
Michael Davis428375e2017-08-01 15:48:34 -050052 data.firmware.hostActiveVersion
53 );
54 $scope.displayLEDState(data.led);
55 $scope.displayBMCEthernetInfo(data.ethernet);
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050056 $scope.displayBMCInfo(
57 data.bmc_info,
58 data.firmware.bmcActiveVersion
59 );
CamVan Nguyen33275832018-03-13 18:38:37 -050060 $scope.displayPowerConsumption(data.power_consumption);
61 $scope.displayPowerCap(data.power_cap);
Michael Davis428375e2017-08-01 15:48:34 -050062 })
63 .finally(function(){
64 $scope.loading = false;
65 });
Iftekharul Islam54c22e42017-06-28 11:06:16 -050066 }
67 $scope.displayBMCEthernetInfo = function(data){
68 $scope.mac_address = data.MACAddress;
69 }
70
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050071 $scope.displayBMCInfo = function(data, bmcActiveVersion){
Iftekharul Islam54c22e42017-06-28 11:06:16 -050072 $scope.bmc_info = data;
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050073 $scope.bmc_firmware = bmcActiveVersion;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050074 }
75
76 $scope.displayLogs = function(data){
77 $scope.logs = data.filter(function(log){
78 return log.severity_flags.high == true;
79 });
80 }
81
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050082 $scope.displayServerInfo = function(data, hostActiveVersion){
Gunnar Mills17708f22018-04-13 14:21:31 -050083 $scope.server_info = data.data;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050084 $scope.server_firmware = hostActiveVersion;
85 }
86
87 $scope.displayLEDState = function(state){
88 if(state == APIUtils.LED_STATE.on){
89 dataService.LED_state = APIUtils.LED_STATE_TEXT.on;
90 }else{
91 dataService.LED_state = APIUtils.LED_STATE_TEXT.off;
92 }
93 }
94
95 $scope.toggleLED = function(){
96 var toggleState = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
97 APIUtils.LED_STATE.off : APIUtils.LED_STATE.on;
98 dataService.LED_state = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
99 APIUtils.LED_STATE_TEXT.off : APIUtils.LED_STATE_TEXT.on;
100 APIUtils.setLEDState(toggleState, function(status){
101 });
102 }
CamVan Nguyen23217da2018-03-22 00:22:50 -0500103
CamVan Nguyen33275832018-03-13 18:38:37 -0500104 $scope.displayPowerConsumption = function(data){
105 $scope.power_consumption = data;
106 }
107
108 $scope.displayPowerCap = function(data){
109 $scope.power_cap = data;
110 }
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500111 }
112 ]
113 );
114
CamVan Nguyen23217da2018-03-22 00:22:50 -0500115})(angular);