xref: /openbmc/phosphor-webui/app/overview/controllers/system-overview-controller.js (revision e56bb445daf292b95bed419b3114f969aa5e6866)
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