blob: 5ce57dc0dd2e9e7ab31a8de3c1ee5a70c705ac18 [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 = "";
Gunnar Millsed96f8b2018-04-19 15:33:40 -050029 $scope.bmc_time = "";
Iftekharul Islam54c22e42017-06-28 11:06:16 -050030 $scope.server_firmware = "";
CamVan Nguyen33275832018-03-13 18:38:37 -050031 $scope.power_consumption = "";
32 $scope.power_cap = "";
CamVan Nguyenfbb63db2018-05-02 13:33:51 -050033 $scope.bmc_ip_addresses = [];
Michael Davis428375e2017-08-01 15:48:34 -050034 $scope.loading = false;
Andrew Geisslerff2313d2018-05-03 13:03:11 -070035 $scope.edit_server_name = false;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050036
37 loadOverviewData();
38 function loadOverviewData(){
Michael Davis428375e2017-08-01 15:48:34 -050039 $scope.loading = true;
40 var promises = {
41 logs: APIUtils.getLogs(),
42 firmware: APIUtils.getFirmwares(),
43 led: APIUtils.getLEDState(),
44 ethernet: APIUtils.getBMCEthernetInfo(),
CamVan Nguyen33275832018-03-13 18:38:37 -050045 bmc_info: APIUtils.getBMCInfo(),
Gunnar Millsed96f8b2018-04-19 15:33:40 -050046 bmc_time: APIUtils.getBMCTime(),
Gunnar Mills17708f22018-04-13 14:21:31 -050047 server_info: APIUtils.getServerInfo(),
CamVan Nguyen33275832018-03-13 18:38:37 -050048 power_consumption: APIUtils.getPowerConsumption(),
49 power_cap: APIUtils.getPowerCap(),
CamVan Nguyenfbb63db2018-05-02 13:33:51 -050050 network_info: APIUtils.getNetworkInfo(),
Michael Davis428375e2017-08-01 15:48:34 -050051 };
52 $q.all(promises)
53 .then(function(data){
54 $scope.displayLogs(data.logs.data);
55 $scope.displayServerInfo(
Gunnar Mills17708f22018-04-13 14:21:31 -050056 data.server_info,
Michael Davis428375e2017-08-01 15:48:34 -050057 data.firmware.hostActiveVersion
58 );
59 $scope.displayLEDState(data.led);
60 $scope.displayBMCEthernetInfo(data.ethernet);
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050061 $scope.displayBMCInfo(
62 data.bmc_info,
63 data.firmware.bmcActiveVersion
64 );
Gunnar Millsed96f8b2018-04-19 15:33:40 -050065 $scope.displayBMCTime(data.bmc_time);
CamVan Nguyen33275832018-03-13 18:38:37 -050066 $scope.displayPowerConsumption(data.power_consumption);
67 $scope.displayPowerCap(data.power_cap);
CamVan Nguyenfbb63db2018-05-02 13:33:51 -050068 $scope.displayNetworkInfo(data.network_info);
Michael Davis428375e2017-08-01 15:48:34 -050069 })
70 .finally(function(){
71 $scope.loading = false;
72 });
Iftekharul Islam54c22e42017-06-28 11:06:16 -050073 }
74 $scope.displayBMCEthernetInfo = function(data){
75 $scope.mac_address = data.MACAddress;
76 }
77
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050078 $scope.displayBMCInfo = function(data, bmcActiveVersion){
Iftekharul Islam54c22e42017-06-28 11:06:16 -050079 $scope.bmc_info = data;
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050080 $scope.bmc_firmware = bmcActiveVersion;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050081 }
82
Gunnar Millsed96f8b2018-04-19 15:33:40 -050083 $scope.displayBMCTime = function(data){
84 $scope.bmc_time = data.data.Elapsed / 1000;
85 }
86
Iftekharul Islam54c22e42017-06-28 11:06:16 -050087 $scope.displayLogs = function(data){
88 $scope.logs = data.filter(function(log){
89 return log.severity_flags.high == true;
90 });
91 }
92
Gunnar Mills5dbcfb12018-04-13 14:56:41 -050093 $scope.displayServerInfo = function(data, hostActiveVersion){
Gunnar Mills17708f22018-04-13 14:21:31 -050094 $scope.server_info = data.data;
Iftekharul Islam54c22e42017-06-28 11:06:16 -050095 $scope.server_firmware = hostActiveVersion;
96 }
97
98 $scope.displayLEDState = function(state){
99 if(state == APIUtils.LED_STATE.on){
100 dataService.LED_state = APIUtils.LED_STATE_TEXT.on;
101 }else{
102 dataService.LED_state = APIUtils.LED_STATE_TEXT.off;
103 }
104 }
105
106 $scope.toggleLED = function(){
107 var toggleState = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
108 APIUtils.LED_STATE.off : APIUtils.LED_STATE.on;
109 dataService.LED_state = (dataService.LED_state == APIUtils.LED_STATE_TEXT.on) ?
110 APIUtils.LED_STATE_TEXT.off : APIUtils.LED_STATE_TEXT.on;
111 APIUtils.setLEDState(toggleState, function(status){
112 });
113 }
CamVan Nguyen23217da2018-03-22 00:22:50 -0500114
CamVan Nguyen33275832018-03-13 18:38:37 -0500115 $scope.displayPowerConsumption = function(data){
116 $scope.power_consumption = data;
117 }
118
119 $scope.displayPowerCap = function(data){
120 $scope.power_cap = data;
121 }
CamVan Nguyenfbb63db2018-05-02 13:33:51 -0500122
123 $scope.displayNetworkInfo = function(data){
124 // TODO: openbmc/openbmc#3150 Support IPV6 when officially
125 // supported by the backend
126 $scope.bmc_ip_addresses =
127 data.formatted_data.ip_addresses.ipv4;
128 }
Andrew Geisslerff2313d2018-05-03 13:03:11 -0700129
130 $scope.saveHostname = function(hostname) {
131 $scope.edit_server_name = false;
132 $scope.loading = true;
133 APIUtils.setHostname(hostname).then(function(data){
134 APIUtils.getNetworkInfo().then(function(data){
135 dataService.setNetworkInfo(data);
136 });
137 },
138 function(error){
139 console.log(error);
140 });
141 $scope.loading = false;
142 }
Iftekharul Islam99d199f2017-03-24 15:28:25 -0500143 }
144 ]
145 );
146
CamVan Nguyen23217da2018-03-22 00:22:50 -0500147})(angular);