blob: 2382a2abfd187e0db1205a2b3b1abad5ef891b4f [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', [
CamVan Nguyen23217da2018-03-22 00:22:50 -050016 '$rootScope',
Gunnar Millseedefd32018-02-28 17:02:34 -060017 '$scope',
18 '$window',
19 'APIUtils',
Iftekharul Islam99d199f2017-03-24 15:28:25 -050020 'dataService',
Michael Davis428375e2017-08-01 15:48:34 -050021 '$q',
CamVan Nguyen23217da2018-03-22 00:22:50 -050022 function($rootScope, $scope, $window, APIUtils, dataService, $q){
Iftekharul Islam99d199f2017-03-24 15:28:25 -050023 $scope.dataService = dataService;
Iftekharul Islamcd789502017-04-19 14:37:55 -050024 $scope.dropdown_selected = false;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050025 $scope.tmz = 'EDT';
26 $scope.logs = [];
27 $scope.mac_address = "";
28 $scope.bmc_info = {};
29 $scope.bmc_firmware = "";
30 $scope.server_firmware = "";
Michael Davis428375e2017-08-01 15:48:34 -050031 $scope.loading = false;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050032
33 loadOverviewData();
34 function loadOverviewData(){
Michael Davis428375e2017-08-01 15:48:34 -050035 $scope.loading = true;
36 var promises = {
37 logs: APIUtils.getLogs(),
38 firmware: APIUtils.getFirmwares(),
39 led: APIUtils.getLEDState(),
40 ethernet: APIUtils.getBMCEthernetInfo(),
41 bmc_info: APIUtils.getBMCInfo()
42 };
43 $q.all(promises)
44 .then(function(data){
45 $scope.displayLogs(data.logs.data);
46 $scope.displayServerInfo(
Gunnar Millseedefd32018-02-28 17:02:34 -060047 data.firmware.data,
48 data.firmware.bmcActiveVersion,
Michael Davis428375e2017-08-01 15:48:34 -050049 data.firmware.hostActiveVersion
50 );
51 $scope.displayLEDState(data.led);
52 $scope.displayBMCEthernetInfo(data.ethernet);
53 $scope.displayBMCInfo(data.bmc_info);
54 })
55 .finally(function(){
56 $scope.loading = false;
57 });
Iftekharul Islam54c22e42017-06-28 11:06:16 -050058 }
59 $scope.displayBMCEthernetInfo = function(data){
60 $scope.mac_address = data.MACAddress;
61 }
62
63 $scope.displayBMCInfo = function(data){
64 $scope.bmc_info = data;
65 }
66
67 $scope.displayLogs = function(data){
68 $scope.logs = data.filter(function(log){
69 return log.severity_flags.high == true;
70 });
71 }
72
73 $scope.displayServerInfo = function(data, bmcActiveVersion, hostActiveVersion){
74 $scope.bmc_firmware = bmcActiveVersion;
75 $scope.server_firmware = hostActiveVersion;
76 }
77
78 $scope.displayLEDState = function(state){
79 if(state == APIUtils.LED_STATE.on){
80 dataService.LED_state = APIUtils.LED_STATE_TEXT.on;
81 }else{
82 dataService.LED_state = APIUtils.LED_STATE_TEXT.off;
83 }
84 }
85
86 $scope.toggleLED = function(){
87 var toggleState = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
88 APIUtils.LED_STATE.off : APIUtils.LED_STATE.on;
89 dataService.LED_state = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
90 APIUtils.LED_STATE_TEXT.off : APIUtils.LED_STATE_TEXT.on;
91 APIUtils.setLEDState(toggleState, function(status){
92 });
93 }
CamVan Nguyen23217da2018-03-22 00:22:50 -050094
95 var refreshDataListener = $rootScope.$on('refresh-data', function(event, args) {
96 loadOverviewData();
97 });
98
99 $scope.$on('$destroy', function() {
100 refreshDataListener();
101 });
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500102 }
103 ]
104 );
105
CamVan Nguyen23217da2018-03-22 00:22:50 -0500106})(angular);