Run js-beautify and fixjsstyle on code
Found this pointer on stackoverflow:
https://stackoverflow.com/a/31660434/5508494
End goal is to get the code formatted well enough that
clang format will run correctly against it.
Change-Id: I80053e78d253d8eee49233e42d55e5807ae8fdc8
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/app/common/directives/app-header.js b/app/common/directives/app-header.js
index 93d8fa8..31f683c 100644
--- a/app/common/directives/app-header.js
+++ b/app/common/directives/app-header.js
@@ -1,94 +1,98 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('appHeader', ['APIUtils', function (APIUtils) {
- return {
- 'restrict': 'E',
- 'template': require('./app-header.html'),
- 'scope': {
- 'path': '='
- },
- 'controller': ['$rootScope', '$scope','dataService', 'userModel', '$location', '$route',
- function($rootScope, $scope, dataService, userModel, $location, $route){
- $scope.dataService = dataService;
+ angular
+ .module('app.common.directives')
+ .directive('appHeader', ['APIUtils', function(APIUtils) {
+ return {
+ 'restrict': 'E',
+ 'template': require('./app-header.html'),
+ 'scope': {
+ 'path': '='
+ },
+ 'controller': ['$rootScope', '$scope', 'dataService', 'userModel', '$location', '$route',
+ function($rootScope, $scope, dataService, userModel, $location, $route) {
+ $scope.dataService = dataService;
- $scope.loadServerHealth = function(){
- APIUtils.getLogs().then(function(result){
- dataService.updateServerHealth(result.data);
- });
- }
-
- $scope.loadServerStatus = function(){
- if(!userModel.isLoggedIn()){
- return;
- }
- APIUtils.getHostState().then(function(status){
- if(status == 'xyz.openbmc_project.State.Host.HostState.Off'){
- dataService.setPowerOffState();
- }else if(status == 'xyz.openbmc_project.State.Host.HostState.Running'){
- dataService.setPowerOnState();
- }else{
- dataService.setErrorState();
- }
- }, function(error){
- dataService.activateErrorModal();
- });
- }
-
- $scope.loadNetworkInfo = function(){
- if(!userModel.isLoggedIn()){
- return;
- }
- APIUtils.getNetworkInfo().then(function(data){
- dataService.setNetworkInfo(data);
- });
- }
-
- function loadData(){
- $scope.loadServerStatus();
- $scope.loadNetworkInfo();
- $scope.loadServerHealth();
- }
-
- loadData();
-
- $scope.logout = function(){
- userModel.logout(function(status, error){
- if(status){
- $location.path('/logout');
- }else{
- console.log(error);
- }
- });
- }
-
- $scope.refresh = function(){
- //reload current page controllers and header
- loadData();
- $route.reload();
- //Add flash class to header timestamp on click of refresh
- var myEl = angular.element( document.querySelector( '.header__refresh' ) );
- myEl.addClass('flash');
- setTimeout(function () {
- myEl.removeClass("flash");
- },2000);
-
- }
-
- var loginListener = $rootScope.$on('user-logged-in', function(event, arg){
- loadData();
- });
-
- $scope.$on('$destroy', function(){
- loginListener();
- });
-
- $scope.multiRecent = function(){
- $scope.multi_server_recent = !$scope.multi_server_recent;
- };
- }]
+ $scope.loadServerHealth = function() {
+ APIUtils.getLogs().then(function(result) {
+ dataService.updateServerHealth(result.data);
+ });
};
- }]);
+
+ $scope.loadServerStatus = function() {
+ if (!userModel.isLoggedIn()) {
+ return;
+ }
+ APIUtils.getHostState().then(function(status) {
+ if (status == 'xyz.openbmc_project.State.Host.HostState.Off') {
+ dataService.setPowerOffState();
+ }
+ else if (status == 'xyz.openbmc_project.State.Host.HostState.Running') {
+ dataService.setPowerOnState();
+ }
+ else {
+ dataService.setErrorState();
+ }
+ }, function(error) {
+ dataService.activateErrorModal();
+ });
+ };
+
+ $scope.loadNetworkInfo = function() {
+ if (!userModel.isLoggedIn()) {
+ return;
+ }
+ APIUtils.getNetworkInfo().then(function(data) {
+ dataService.setNetworkInfo(data);
+ });
+ };
+
+ function loadData() {
+ $scope.loadServerStatus();
+ $scope.loadNetworkInfo();
+ $scope.loadServerHealth();
+ }
+
+ loadData();
+
+ $scope.logout = function() {
+ userModel.logout(function(status, error) {
+ if (status) {
+ $location.path('/logout');
+ }
+ else {
+ console.log(error);
+ }
+ });
+ };
+
+ $scope.refresh = function() {
+ //reload current page controllers and header
+ loadData();
+ $route.reload();
+ //Add flash class to header timestamp on click of refresh
+ var myEl = angular.element(document.querySelector('.header__refresh'));
+ myEl.addClass('flash');
+ setTimeout(function() {
+ myEl.removeClass('flash');
+ }, 2000);
+
+ };
+
+ var loginListener = $rootScope.$on('user-logged-in', function(event, arg) {
+ loadData();
+ });
+
+ $scope.$on('$destroy', function() {
+ loginListener();
+ });
+
+ $scope.multiRecent = function() {
+ $scope.multi_server_recent = !$scope.multi_server_recent;
+ };
+ }
+ ]
+ };
+ }]);
})(window.angular);
diff --git a/app/common/directives/app-navigation.js b/app/common/directives/app-navigation.js
index 02d3f2d..80d09ec 100644
--- a/app/common/directives/app-navigation.js
+++ b/app/common/directives/app-navigation.js
@@ -1,68 +1,75 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('appNavigation', function () {
- return {
- 'restrict': 'E',
- 'template': require('./app-navigation.html'),
- 'scope': {
- 'path': '=',
- 'showNavigation': '='
- },
- 'controller': ['$scope', '$location', 'dataService', function($scope, $location, dataService){
- $scope.dataService = dataService;
- $scope.showSubMenu = false;
- $scope.change = function(firstLevel){
- if(firstLevel != $scope.firstLevel) {
- $scope.firstLevel = firstLevel;
- $scope.showSubMenu = true;
- }else{
- $scope.showSubMenu = !$scope.showSubMenu;
- }
- };
- $scope.closeSubnav = function(){
- $scope.showSubMenu = false;
- };
- $scope.$watch('path', function(){
- var urlRoot = $location.path().split("/")[1];
- if(urlRoot != ""){
- $scope.firstLevel = urlRoot;
- }else{
- $scope.firstLevel = 'overview';
- }
- $scope.showSubMenu = false;
- });
- $scope.$watch('showNavigation', function(){
- var paddingTop = 0;
- var urlRoot = $location.path().split("/")[1];
- if(urlRoot != ""){
- $scope.firstLevel = urlRoot;
- }else{
- $scope.firstLevel = 'overview';
- }
+ angular
+ .module('app.common.directives')
+ .directive('appNavigation', function() {
+ return {
+ 'restrict': 'E',
+ 'template': require('./app-navigation.html'),
+ 'scope': {
+ 'path': '=',
+ 'showNavigation': '='
+ },
+ 'controller': ['$scope', '$location', 'dataService', function($scope, $location, dataService) {
+ $scope.dataService = dataService;
+ $scope.showSubMenu = false;
+ $scope.change = function(firstLevel) {
+ if (firstLevel != $scope.firstLevel) {
+ $scope.firstLevel = firstLevel;
+ $scope.showSubMenu = true;
+ }
+ else {
+ $scope.showSubMenu = !$scope.showSubMenu;
+ }
+ };
+ $scope.closeSubnav = function() {
+ $scope.showSubMenu = false;
+ };
+ $scope.$watch('path', function() {
+ var urlRoot = $location.path().split('/')[1];
+ if (urlRoot != '') {
+ $scope.firstLevel = urlRoot;
+ }
+ else {
+ $scope.firstLevel = 'overview';
+ }
+ $scope.showSubMenu = false;
+ });
+ $scope.$watch('showNavigation', function() {
+ var paddingTop = 0;
+ var urlRoot = $location.path().split('/')[1];
+ if (urlRoot != '') {
+ $scope.firstLevel = urlRoot;
+ }
+ else {
+ $scope.firstLevel = 'overview';
+ }
- if($scope.showNavigation){
- paddingTop = document.getElementById('header__wrapper').offsetHeight;
- }
- dataService.bodyStyle = {'padding-top': paddingTop + 'px'};
- $scope.navStyle = {'top': paddingTop + 'px'};
- });
- }],
- link: function(scope, element, attributes) {
- var rawNavElement = angular.element(element)[0];
- angular.element(window.document).bind('click', function(event){
- if (rawNavElement.contains(event.target))
- return;
-
- if(scope.showSubMenu){
- scope.$apply(function(){
- scope.showSubMenu = false;
- });
- }
- });
- }
+ if ($scope.showNavigation) {
+ paddingTop = document.getElementById('header__wrapper').offsetHeight;
+ }
+ dataService.bodyStyle = {
+ 'padding-top': paddingTop + 'px'
};
- });
+ $scope.navStyle = {
+ 'top': paddingTop + 'px'
+ };
+ });
+ }],
+ link: function(scope, element, attributes) {
+ var rawNavElement = angular.element(element)[0];
+ angular.element(window.document).bind('click', function(event) {
+ if (rawNavElement.contains(event.target))
+ return;
+
+ if (scope.showSubMenu) {
+ scope.$apply(function() {
+ scope.showSubMenu = false;
+ });
+ }
+ });
+ }
+ };
+ });
})(window.angular);
diff --git a/app/common/directives/confirm.js b/app/common/directives/confirm.js
index 5bb699a..a542783 100644
--- a/app/common/directives/confirm.js
+++ b/app/common/directives/confirm.js
@@ -1,39 +1,44 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('confirm', ['$timeout', function($timeout){
- return {
- 'restrict': 'E',
- 'template': require('./confirm.html'),
- 'scope': {
- 'title': '@',
- 'message': '@',
- 'confirm': '=',
- 'callback': '='
- },
- 'controller': ['$scope',function($scope){
- $scope.cancel = function(){
- $scope.confirm = false;
- $scope.$parent.confirm = false;
- };
- $scope.accept = function(){
- $scope.callback();
- $scope.cancel();
- }
- }],
- link: function(scope, e) {
- scope.$watch('confirm', function(){
- if(scope.confirm){
- $timeout(function(){
- angular.element(e[0].parentNode).css({'min-height': e[0].querySelector('.inline__confirm').offsetHeight + 'px'});
- }, 0);
- }else{
- angular.element(e[0].parentNode).css({'min-height': 0+ 'px'});
- }
- });
- }
- };
- }]);
+ angular
+ .module('app.common.directives')
+ .directive('confirm', ['$timeout', function($timeout) {
+ return {
+ 'restrict': 'E',
+ 'template': require('./confirm.html'),
+ 'scope': {
+ 'title': '@',
+ 'message': '@',
+ 'confirm': '=',
+ 'callback': '='
+ },
+ 'controller': ['$scope', function($scope) {
+ $scope.cancel = function() {
+ $scope.confirm = false;
+ $scope.$parent.confirm = false;
+ };
+ $scope.accept = function() {
+ $scope.callback();
+ $scope.cancel();
+ };
+ }],
+ link: function(scope, e) {
+ scope.$watch('confirm', function() {
+ if (scope.confirm) {
+ $timeout(function() {
+ angular.element(e[0].parentNode).css({
+ 'min-height': e[0].querySelector('.inline__confirm').offsetHeight + 'px'
+ });
+ }, 0);
+ }
+ else {
+ angular.element(e[0].parentNode).css({
+ 'min-height': 0 + 'px'
+ });
+ }
+ });
+ }
+ };
+ }]);
})(window.angular);
diff --git a/app/common/directives/errors.js b/app/common/directives/errors.js
index 2c9b109..8123694 100644
--- a/app/common/directives/errors.js
+++ b/app/common/directives/errors.js
@@ -1,18 +1,18 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('errors', ['APIUtils', function (APIUtils) {
- return {
- 'restrict': 'E',
- 'template': require('./errors.html'),
- 'scope': {
- 'path': '='
- },
- 'controller': ['$scope','dataService', function($scope, dataService){
- $scope.dataService = dataService;
- }]
- };
- }]);
+ angular
+ .module('app.common.directives')
+ .directive('errors', ['APIUtils', function(APIUtils) {
+ return {
+ 'restrict': 'E',
+ 'template': require('./errors.html'),
+ 'scope': {
+ 'path': '='
+ },
+ 'controller': ['$scope', 'dataService', function($scope, dataService) {
+ $scope.dataService = dataService;
+ }]
+ };
+ }]);
})(window.angular);
diff --git a/app/common/directives/file.js b/app/common/directives/file.js
index 11adf8a..8ed6c2e 100644
--- a/app/common/directives/file.js
+++ b/app/common/directives/file.js
@@ -1,21 +1,21 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('file', function () {
- return {
- scope: {
- file: '='
- },
- link: function (scope, el, attrs) {
- el.bind('change', function (event) {
- var file = event.target.files[0];
- scope.file = file ? file : undefined;
- scope.$apply();
- });
- }
- };
- });
+ angular
+ .module('app.common.directives')
+ .directive('file', function() {
+ return {
+ scope: {
+ file: '='
+ },
+ link: function(scope, el, attrs) {
+ el.bind('change', function(event) {
+ var file = event.target.files[0];
+ scope.file = file ? file : undefined;
+ scope.$apply();
+ });
+ }
+ };
+ });
-})(window.angular);
\ No newline at end of file
+})(window.angular);
diff --git a/app/common/directives/firmware-list.js b/app/common/directives/firmware-list.js
index 4cdf6d7..163df82 100644
--- a/app/common/directives/firmware-list.js
+++ b/app/common/directives/firmware-list.js
@@ -1,32 +1,32 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('firmwareList', ['APIUtils', function (APIUtils) {
- return {
- 'restrict': 'E',
- 'template': require('./firmware-list.html'),
- 'scope': {
- 'title': '@',
- 'firmwares': '=',
- 'filterBy': '=',
- 'version': '='
- },
- 'controller': ['$rootScope', '$scope','dataService', '$location', '$timeout', function($rootScope, $scope, dataService, $location, $timeout){
- $scope.dataService = dataService;
- $scope.activate = function(imageId, imageVersion, imageType){
- $scope.$parent.activateImage(imageId, imageVersion, imageType);
- }
+ angular
+ .module('app.common.directives')
+ .directive('firmwareList', ['APIUtils', function(APIUtils) {
+ return {
+ 'restrict': 'E',
+ 'template': require('./firmware-list.html'),
+ 'scope': {
+ 'title': '@',
+ 'firmwares': '=',
+ 'filterBy': '=',
+ 'version': '='
+ },
+ 'controller': ['$rootScope', '$scope', 'dataService', '$location', '$timeout', function($rootScope, $scope, dataService, $location, $timeout) {
+ $scope.dataService = dataService;
+ $scope.activate = function(imageId, imageVersion, imageType) {
+ $scope.$parent.activateImage(imageId, imageVersion, imageType);
+ };
- $scope.delete = function(imageId, imageVersion){
- $scope.$parent.deleteImage(imageId, imageVersion);
- }
+ $scope.delete = function(imageId, imageVersion) {
+ $scope.$parent.deleteImage(imageId, imageVersion);
+ };
- $scope.changePriority = function(imageId, imageVersion, from, to){
- $scope.$parent.changePriority(imageId, imageVersion, from, to);
- }
- }]
- };
- }]);
+ $scope.changePriority = function(imageId, imageVersion, from, to) {
+ $scope.$parent.changePriority(imageId, imageVersion, from, to);
+ };
+ }]
+ };
+ }]);
})(window.angular);
diff --git a/app/common/directives/index.js b/app/common/directives/index.js
index 1fed678..33155f4 100644
--- a/app/common/directives/index.js
+++ b/app/common/directives/index.js
@@ -1,9 +1,9 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives', [
- 'app.common.services'
- ]);
+ angular
+ .module('app.common.directives', [
+ 'app.common.services'
+ ]);
})(window.angular);
diff --git a/app/common/directives/loader.js b/app/common/directives/loader.js
index b37a898..8edc128 100644
--- a/app/common/directives/loader.js
+++ b/app/common/directives/loader.js
@@ -1,16 +1,16 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('loader', function () {
- return {
- 'restrict': 'E',
- 'template': require('./loader.html'),
- scope: {
- loading: '='
- }
- };
- });
+ angular
+ .module('app.common.directives')
+ .directive('loader', function() {
+ return {
+ 'restrict': 'E',
+ 'template': require('./loader.html'),
+ scope: {
+ loading: '='
+ }
+ };
+ });
})(window.angular);
diff --git a/app/common/directives/log-event.js b/app/common/directives/log-event.js
index e858239..c48a3ee 100644
--- a/app/common/directives/log-event.js
+++ b/app/common/directives/log-event.js
@@ -1,41 +1,43 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('logEvent', ['APIUtils', function (APIUtils) {
- return {
- 'restrict': 'E',
- 'template': require('./log-event.html'),
- 'scope': {
- 'event': '=',
- 'tmz': '=',
- 'multiSelected': '='
- },
- 'controller': ['$rootScope', '$scope','dataService', '$location', '$timeout', function($rootScope, $scope, dataService, $location, $timeout){
- $scope.dataService = dataService;
- $scope.copySuccess = function (event) {
- event.copied = true;
- $timeout(function(){
- event.copied = false;
- }, 5000);
- };
- $scope.copyFailed = function (err) {
- console.error('Error!', err);
- };
- $scope.resolveEvent = function(event){
- APIUtils.resolveLogs([{Id: event.Id}]).then(function(){
- event.Resolved = 1;
- });
- }
+ angular
+ .module('app.common.directives')
+ .directive('logEvent', ['APIUtils', function(APIUtils) {
+ return {
+ 'restrict': 'E',
+ 'template': require('./log-event.html'),
+ 'scope': {
+ 'event': '=',
+ 'tmz': '=',
+ 'multiSelected': '='
+ },
+ 'controller': ['$rootScope', '$scope', 'dataService', '$location', '$timeout', function($rootScope, $scope, dataService, $location, $timeout) {
+ $scope.dataService = dataService;
+ $scope.copySuccess = function(event) {
+ event.copied = true;
+ $timeout(function() {
+ event.copied = false;
+ }, 5000);
+ };
+ $scope.copyFailed = function(err) {
+ console.error('Error!', err);
+ };
+ $scope.resolveEvent = function(event) {
+ APIUtils.resolveLogs([{
+ Id: event.Id
+ }]).then(function() {
+ event.Resolved = 1;
+ });
+ };
- $scope.accept = function(){
- $scope.event.selected = true;
- $timeout(function(){
- $scope.$parent.accept();
- }, 10);
- }
- }]
- };
- }]);
+ $scope.accept = function() {
+ $scope.event.selected = true;
+ $timeout(function() {
+ $scope.$parent.accept();
+ }, 10);
+ };
+ }]
+ };
+ }]);
})(window.angular);
diff --git a/app/common/directives/log-filter.js b/app/common/directives/log-filter.js
index 370e666..69bb8e3 100644
--- a/app/common/directives/log-filter.js
+++ b/app/common/directives/log-filter.js
@@ -1,50 +1,51 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('logFilter', ['APIUtils', function (APIUtils) {
- return {
- 'restrict': 'E',
- 'template': require('./log-filter.html'),
- 'controller': ['$rootScope', '$scope','dataService', '$location', function($rootScope, $scope, dataService, $location){
- $scope.dataService = dataService;
- $scope.toggleSeverityAll = function(){
- $scope.selectedSeverity.all = !$scope.selectedSeverity.all;
+ angular
+ .module('app.common.directives')
+ .directive('logFilter', ['APIUtils', function(APIUtils) {
+ return {
+ 'restrict': 'E',
+ 'template': require('./log-filter.html'),
+ 'controller': ['$rootScope', '$scope', 'dataService', '$location', function($rootScope, $scope, dataService, $location) {
+ $scope.dataService = dataService;
+ $scope.toggleSeverityAll = function() {
+ $scope.selectedSeverity.all = !$scope.selectedSeverity.all;
- if($scope.selectedSeverity.all){
- $scope.selectedSeverity.low = false;
- $scope.selectedSeverity.medium = false;
- $scope.selectedSeverity.high = false;
- }
- }
+ if ($scope.selectedSeverity.all) {
+ $scope.selectedSeverity.low = false;
+ $scope.selectedSeverity.medium = false;
+ $scope.selectedSeverity.high = false;
+ }
+ };
- $scope.toggleSeverity = function(severity){
- $scope.selectedSeverity[severity] = !$scope.selectedSeverity[severity];
+ $scope.toggleSeverity = function(severity) {
+ $scope.selectedSeverity[severity] = !$scope.selectedSeverity[severity];
- if(['high', 'medium', 'low'].indexOf(severity) > -1){
- if($scope.selectedSeverity[severity] == false &&
- (!$scope.selectedSeverity.low &&
- !$scope.selectedSeverity.medium &&
- !$scope.selectedSeverity.high
- )){
- $scope.selectedSeverity.all = true;
- return;
- }
- }
+ if (['high', 'medium', 'low'].indexOf(severity) > -1) {
+ if ($scope.selectedSeverity[severity] == false &&
+ (!$scope.selectedSeverity.low &&
+ !$scope.selectedSeverity.medium &&
+ !$scope.selectedSeverity.high
+ )) {
+ $scope.selectedSeverity.all = true;
+ return;
+ }
+ }
- if($scope.selectedSeverity.low &&
- $scope.selectedSeverity.medium &&
- $scope.selectedSeverity.high){
- $scope.selectedSeverity.all = true;
- $scope.selectedSeverity.low = false;
- $scope.selectedSeverity.medium = false;
- $scope.selectedSeverity.high = false;
- }else{
- $scope.selectedSeverity.all = false;
- }
- }
- }]
- };
- }]);
+ if ($scope.selectedSeverity.low &&
+ $scope.selectedSeverity.medium &&
+ $scope.selectedSeverity.high) {
+ $scope.selectedSeverity.all = true;
+ $scope.selectedSeverity.low = false;
+ $scope.selectedSeverity.medium = false;
+ $scope.selectedSeverity.high = false;
+ }
+ else {
+ $scope.selectedSeverity.all = false;
+ }
+ };
+ }]
+ };
+ }]);
})(window.angular);
diff --git a/app/common/directives/log-search-control.js b/app/common/directives/log-search-control.js
index c610c18..f262f5f 100644
--- a/app/common/directives/log-search-control.js
+++ b/app/common/directives/log-search-control.js
@@ -1,44 +1,46 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('logSearchControl', ['APIUtils', function (APIUtils) {
- return {
- 'restrict': 'E',
- 'template': require('./log-search-control.html'),
- 'controller': ['$rootScope', '$scope','dataService', '$location', function($rootScope, $scope, dataService, $location){
- $scope.dataService = dataService;
- $scope.doSearchOnEnter = function (event) {
- var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
- if (event.keyCode === 13 &&
- search.length >= 2) {
- $scope.clearSearchItem();
- $scope.addSearchItem(search);
- }else{
- if(search.length == 0){
- $scope.clearSearchItem();
- }
- }
- };
+ angular
+ .module('app.common.directives')
+ .directive('logSearchControl', ['APIUtils', function(APIUtils) {
+ return {
+ 'restrict': 'E',
+ 'template': require('./log-search-control.html'),
+ 'controller': ['$rootScope', '$scope', 'dataService', '$location', function($rootScope, $scope, dataService, $location) {
+ $scope.dataService = dataService;
+ $scope.doSearchOnEnter = function(event) {
+ var search = $scope.customSearch.replace(/^\s+/g, '').replace(/\s+$/g, '');
+ if (event.keyCode === 13 &&
+ search.length >= 2) {
+ $scope.clearSearchItem();
+ $scope.addSearchItem(search);
+ }
+ else {
+ if (search.length == 0) {
+ $scope.clearSearchItem();
+ }
+ }
+ };
- $scope.clear = function(){
- $scope.customSearch = "";
- $scope.clearSearchItem();
- }
+ $scope.clear = function() {
+ $scope.customSearch = '';
+ $scope.clearSearchItem();
+ };
- $scope.doSearchOnClick = function() {
- var search = $scope.customSearch.replace(/^\s+/g,'').replace(/\s+$/g,'');
- if (search.length >= 2) {
- $scope.clearSearchItem();
- $scope.addSearchItem(search);
- }else{
- if(search.length == 0){
- $scope.clearSearchItem();
- }
- }
- }
- }]
- };
- }]);
+ $scope.doSearchOnClick = function() {
+ var search = $scope.customSearch.replace(/^\s+/g, '').replace(/\s+$/g, '');
+ if (search.length >= 2) {
+ $scope.clearSearchItem();
+ $scope.addSearchItem(search);
+ }
+ else {
+ if (search.length == 0) {
+ $scope.clearSearchItem();
+ }
+ }
+ };
+ }]
+ };
+ }]);
})(window.angular);
diff --git a/app/common/directives/paginate.js b/app/common/directives/paginate.js
index e69de29..8b13789 100644
--- a/app/common/directives/paginate.js
+++ b/app/common/directives/paginate.js
@@ -0,0 +1 @@
+
diff --git a/app/common/directives/toggle-flag.js b/app/common/directives/toggle-flag.js
index 9c342b0..4a4e454 100644
--- a/app/common/directives/toggle-flag.js
+++ b/app/common/directives/toggle-flag.js
@@ -1,31 +1,31 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.directives')
- .directive('toggleFlag', function ($document) {
- return {
- restrict: 'A',
- link: function (scope, element, attrs) {
+ angular
+ .module('app.common.directives')
+ .directive('toggleFlag', function($document) {
+ return {
+ restrict: 'A',
+ link: function(scope, element, attrs) {
- function elementClick(e) {
- e.stopPropagation();
- }
+ function elementClick(e) {
+ e.stopPropagation();
+ }
- function documentClick(e) {
- scope[attrs.toggleFlag] = false;
- scope.$apply();
- }
+ function documentClick(e) {
+ scope[attrs.toggleFlag] = false;
+ scope.$apply();
+ }
- element.on('click', elementClick);
- $document.on('click', documentClick);
+ element.on('click', elementClick);
+ $document.on('click', documentClick);
- // remove event handlers when directive is destroyed
- scope.$on('$destroy', function () {
- element.off('click', elementClick);
- $document.off('click', documentClick);
- });
- }
- };
- });
-})(window.angular);
\ No newline at end of file
+ // remove event handlers when directive is destroyed
+ scope.$on('$destroy', function() {
+ element.off('click', elementClick);
+ $document.off('click', documentClick);
+ });
+ }
+ };
+ });
+})(window.angular);
diff --git a/app/common/filters/index.js b/app/common/filters/index.js
index 5c719fa..f3de907 100644
--- a/app/common/filters/index.js
+++ b/app/common/filters/index.js
@@ -1,25 +1,25 @@
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.filters', [])
- .filter('unResolvedCount', function () {
- return function (data) {
- data = data.filter(function(item){
- return item.Resolved == 0;
- });
- return data.length;
- }
- })
- .filter('quiescedToError', function () {
- return function (state) {
- if(state.toLowerCase() == 'quiesced'){
- return 'Error';
- }else{
- return state;
- }
- }
- })
- ;
+ angular
+ .module('app.common.filters', [])
+ .filter('unResolvedCount', function() {
+ return function(data) {
+ data = data.filter(function(item) {
+ return item.Resolved == 0;
+ });
+ return data.length;
+ }
+ })
+ .filter('quiescedToError', function() {
+ return function(state) {
+ if (state.toLowerCase() == 'quiesced') {
+ return 'Error';
+ }
+ else {
+ return state;
+ }
+ }
+ });
})(window.angular);
diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index 13f1406..a024142 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -6,1134 +6,1233 @@
* @name APIUtils
*/
-window.angular && (function (angular) {
- 'use strict';
- angular
- .module('app.common.services')
- .factory('APIUtils', ['$http', 'Constants', '$q', 'dataService',function($http, Constants, $q, DataService){
- var getScaledValue = function(value, scale){
- scale = scale + "";
- scale = parseInt(scale, 10);
- var power = Math.abs(parseInt(scale,10));
+window.angular && (function(angular) {
+ 'use strict';
+ angular
+ .module('app.common.services')
+ .factory('APIUtils', ['$http', 'Constants', '$q', 'dataService', function($http, Constants, $q, DataService) {
+ var getScaledValue = function(value, scale) {
+ scale = scale + '';
+ scale = parseInt(scale, 10);
+ var power = Math.abs(parseInt(scale, 10));
- if(scale > 0){
- value = value * Math.pow(10, power);
- }else if(scale < 0){
- value = value / Math.pow(10, power);
+ if (scale > 0) {
+ value = value * Math.pow(10, power);
+ }
+ else if (scale < 0) {
+ value = value / Math.pow(10, power);
+ }
+ return value;
+ };
+ var SERVICE = {
+ API_CREDENTIALS: Constants.API_CREDENTIALS,
+ API_RESPONSE: Constants.API_RESPONSE,
+ CHASSIS_POWER_STATE: Constants.CHASSIS_POWER_STATE,
+ HOST_STATE_TEXT: Constants.HOST_STATE,
+ HOST_STATE: Constants.HOST_STATE,
+ LED_STATE: Constants.LED_STATE,
+ LED_STATE_TEXT: Constants.LED_STATE_TEXT,
+ HOST_SESSION_STORAGE_KEY: Constants.API_CREDENTIALS.host_storage_key,
+ getChassisState: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/chassis0/attr/CurrentPowerState',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.data);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ getHostState: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/host0/attr/CurrentHostState',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.data);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ getNetworkInfo: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/network/enumerate',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ var hostname = '';
+ var macAddress = '';
+
+ function parseNetworkData(content) {
+ var data = {
+ interface_ids: [],
+ interfaces: {},
+ ip_addresses: {
+ ipv4: [],
+ ipv6: []
+ },
+ };
+ var interfaceId = '',
+ keyParts = [],
+ interfaceHash = '',
+ interfaceType = '';
+ for (var key in content.data) {
+ if (key.match(/network\/eth\d+$/ig)) {
+ interfaceId = key.split('/').pop();
+ if (data.interface_ids.indexOf(interfaceId) == -1) {
+ data.interface_ids.push(interfaceId);
+ data.interfaces[interfaceId] = {
+ interfaceIname: '',
+ DomainName: '',
+ MACAddress: '',
+ Nameservers: [],
+ DHCPEnabled: 0,
+ ipv4: {
+ ids: [],
+ values: []
+ },
+ ipv6: {
+ ids: [],
+ values: []
+ }
+ };
+ data.interfaces[interfaceId].MACAddress = content.data[key].MACAddress;
+ data.interfaces[interfaceId].DomainName = content.data[key].DomainName.join(' ');
+ data.interfaces[interfaceId].Nameservers = content.data[key].Nameservers;
+ data.interfaces[interfaceId].DHCPEnabled = content.data[key].DHCPEnabled;
+ }
+ }
+ else if (key.match(/network\/eth\d+\/ipv[4|6]\/[a-z0-9]+$/ig)) {
+ keyParts = key.split('/');
+ interfaceHash = keyParts.pop();
+ interfaceType = keyParts.pop();
+ interfaceId = keyParts.pop();
+
+ if (data.interfaces[interfaceId][interfaceType].ids.indexOf(interfaceHash) == -1) {
+ data.interfaces[interfaceId][interfaceType].ids.push(interfaceHash);
+ data.interfaces[interfaceId][interfaceType].values.push(content.data[key]);
+ data.ip_addresses[interfaceType].push(content.data[key]['Address']);
+ }
+ }
+ }
+ return data;
}
- return value;
- };
- var SERVICE = {
- API_CREDENTIALS: Constants.API_CREDENTIALS,
- API_RESPONSE: Constants.API_RESPONSE,
- CHASSIS_POWER_STATE: Constants.CHASSIS_POWER_STATE,
- HOST_STATE_TEXT: Constants.HOST_STATE,
- HOST_STATE: Constants.HOST_STATE,
- LED_STATE: Constants.LED_STATE,
- LED_STATE_TEXT: Constants.LED_STATE_TEXT,
- HOST_SESSION_STORAGE_KEY: Constants.API_CREDENTIALS.host_storage_key,
- getChassisState: function(){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/state/chassis0/attr/CurrentPowerState",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.data);
- }, function(error){
- console.log(error);
- deferred.reject(error);
+
+ if (content.data.hasOwnProperty('/xyz/openbmc_project/network/config') &&
+ content.data['/xyz/openbmc_project/network/config'].hasOwnProperty('HostName')
+ ) {
+ hostname = content.data['/xyz/openbmc_project/network/config'].HostName;
+ }
+
+ if (content.data.hasOwnProperty('/xyz/openbmc_project/network/eth0') &&
+ content.data['/xyz/openbmc_project/network/eth0'].hasOwnProperty('MACAddress')
+ ) {
+ macAddress = content.data['/xyz/openbmc_project/network/eth0'].MACAddress;
+ }
+
+ deferred.resolve({
+ data: content.data,
+ hostname: hostname,
+ mac_address: macAddress,
+ formatted_data: parseNetworkData(content)
+ });
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ getLEDState: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/led/groups/enclosure_identify',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.data.Asserted);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ login: function(username, password, callback) {
+ $http({
+ method: 'POST',
+ url: DataService.getHost() + '/login',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': [username, password]
+ })
+ }).then(function(response) {
+ if (callback) {
+ callback(response.data);
+ }
+ }, function(error) {
+ if (callback) {
+ if (error && error.status && error.status == 'error') {
+ callback(error);
+ }
+ else {
+ callback(error, true);
+ }
+ }
+ console.log(error);
+ });
+ },
+ testPassword: function(username, password) {
+ // Calls /login without the current session to verify the given password is correct
+ // ignore the interceptor logout on a bad password
+ DataService.ignoreHttpError = true;
+ return $http({
+ method: 'POST',
+ url: DataService.getHost() + '/login',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: false,
+ data: JSON.stringify({
+ 'data': [username, password]
+ })
+ }).then(function(response) {
+ return response.data;
+ });
+ },
+ logout: function(callback) {
+ $http({
+ method: 'POST',
+ url: DataService.getHost() + '/logout',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': []
+ })
+ }).then(function(response) {
+ if (callback) {
+ callback(response.data);
+ }
+ }, function(error) {
+ if (callback) {
+ callback(null, error);
+ }
+ console.log(error);
+ });
+ },
+ changePassword: function(user, newPassword) {
+ var deferred = $q.defer();
+ $http({
+ method: 'POST',
+ url: DataService.getHost() + '/xyz/openbmc_project/user/' + user + '/action/SetPassword',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': [newPassword]
+ }),
+ responseType: 'arraybuffer'
+ }).then(function(response, status, headers) {
+ deferred.resolve({
+ data: response,
+ status: status,
+ headers: headers
+ });
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ chassisPowerOn: function(callback) {
+ $http({
+ method: 'POST',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/host0',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': []
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ if (callback) {
+ return callback(content.data.CurrentPowerState);
+ }
+ }, function(error) {
+ if (callback) {
+ callback(error);
+ }
+ else {
+ console.log(error);
+ }
+ });
+ },
+ chassisPowerOff: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/chassis0/attr/RequestedPowerTransition',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': 'xyz.openbmc_project.State.Chassis.Transition.Off'
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.status);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ setLEDState: function(state, callback) {
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/led/groups/enclosure_identify/attr/Asserted',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': state
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ if (callback) {
+ return callback(content.status);
+ }
+ }, function(error) {
+ if (callback) {
+ callback(error);
+ }
+ else {
+ console.log(error);
+ }
+ });
+ },
+ bmcReboot: function(callback) {
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/bmc0/attr/RequestedBmcTransition',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': 'xyz.openbmc_project.State.BMC.Transition.Reboot'
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ if (callback) {
+ return callback(content.status);
+ }
+ }, function(error) {
+ if (callback) {
+ callback(error);
+ }
+ else {
+ console.log(error);
+ }
+ });
+ },
+ hostPowerOn: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/host0/attr/RequestedHostTransition',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': 'xyz.openbmc_project.State.Host.Transition.On'
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.status);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ hostPowerOff: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/host0/attr/RequestedHostTransition',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': 'xyz.openbmc_project.State.Host.Transition.Off'
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.status);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ hostReboot: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/host0/attr/RequestedHostTransition',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': 'xyz.openbmc_project.State.Host.Transition.Reboot'
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.status);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+
+ return deferred.promise;
+ },
+ hostShutdown: function(callback) {
+ $http({
+ method: 'POST',
+ url: DataService.getHost() + '/xyz/openbmc_project/state/host0',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': []
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ if (callback) {
+ return callback(content);
+ }
+ }, function(error) {
+ if (callback) {
+ callback(error);
+ }
+ else {
+ console.log(error);
+ }
+ });
+ },
+ getLogs: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/logging/enumerate',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ var dataClone = JSON.parse(JSON.stringify(content.data));
+ var data = [];
+ var severityCode = '';
+ var priority = '';
+ var health = '';
+ var relatedItems = [];
+
+ for (var key in content.data) {
+ if (content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Id')) {
+ var severityFlags = {
+ low: false,
+ medium: false,
+ high: false
+ };
+ var healthFlags = {
+ critical: false,
+ warning: false,
+ good: false
+ };
+ severityCode = content.data[key].Severity.split('.').pop();
+ priority = Constants.SEVERITY_TO_PRIORITY_MAP[severityCode];
+ severityFlags[priority.toLowerCase()] = true;
+ health = Constants.SEVERITY_TO_HEALTH_MAP[severityCode];
+ healthFlags[health.toLowerCase()] = true;
+ relatedItems = [];
+ content.data[key].associations.forEach(function(item) {
+ relatedItems.push(item[2]);
});
- return deferred.promise;
- },
- getHostState: function(){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/state/host0/attr/CurrentHostState",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.data);
- }, function(error){
- console.log(error);
- deferred.reject(error);
+
+ data.push(Object.assign({
+ path: key,
+ copied: false,
+ priority: priority,
+ severity_code: severityCode,
+ severity_flags: severityFlags,
+ health_flags: healthFlags,
+ additional_data: content.data[key].AdditionalData.join('\n'),
+ type: content.data[key].Message,
+ selected: false,
+ search_text: ('#' + content.data[key].Id + ' ' + severityCode + ' ' + content.data[key].Severity + ' ' + content.data[key].AdditionalData.join(' ')).toLowerCase(),
+ meta: false,
+ confirm: false,
+ related_items: relatedItems,
+ data: {
+ key: key,
+ value: content.data[key]
+ }
+ }, content.data[key]));
+ }
+ }
+ deferred.resolve({
+ data: data,
+ original: dataClone
+ });
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+
+ return deferred.promise;
+ },
+ getAllSensorStatus: function(callback) {
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/sensors/enumerate',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ var dataClone = JSON.parse(JSON.stringify(content.data));
+ var sensorData = [];
+ var severity = {};
+ var title = '';
+ var tempKeyParts = [];
+ var order = 0;
+ var customOrder = 0;
+
+ function getSensorStatus(reading) {
+ var severityFlags = {
+ critical: false,
+ warning: false,
+ normal: false
+ },
+ severityText = '',
+ order = 0;
+
+ if (reading.hasOwnProperty('CriticalLow') &&
+ reading.Value < reading.CriticalLow
+ ) {
+ severityFlags.critical = true;
+ severityText = 'critical';
+ order = 2;
+ }
+ else if (reading.hasOwnProperty('CriticalHigh') &&
+ reading.Value > reading.CriticalHigh
+ ) {
+ severityFlags.critical = true;
+ severityText = 'critical';
+ order = 2;
+ }
+ else if (reading.hasOwnProperty('CriticalLow') &&
+ reading.hasOwnProperty('WarningLow') &&
+ reading.Value >= reading.CriticalLow && reading.Value <= reading.WarningLow) {
+ severityFlags.warning = true;
+ severityText = 'warning';
+ order = 1;
+ }
+ else if (reading.hasOwnProperty('WarningHigh') &&
+ reading.hasOwnProperty('CriticalHigh') &&
+ reading.Value >= reading.WarningHigh && reading.Value <= reading.CriticalHigh) {
+ severityFlags.warning = true;
+ severityText = 'warning';
+ order = 1;
+ }
+ else {
+ severityFlags.normal = true;
+ severityText = 'normal';
+ }
+ return {
+ flags: severityFlags,
+ severityText: severityText,
+ order: order
+ };
+ }
+
+ for (var key in content.data) {
+ if (content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Unit')) {
+
+ severity = getSensorStatus(content.data[key]);
+
+ if (!content.data[key].hasOwnProperty('CriticalLow')) {
+ content.data[key].CriticalLow = '--';
+ content.data[key].CriticalHigh = '--';
+ }
+
+ if (!content.data[key].hasOwnProperty('WarningLow')) {
+ content.data[key].WarningLow = '--';
+ content.data[key].WarningHigh = '--';
+ }
+
+ tempKeyParts = key.split('/');
+ title = tempKeyParts.pop();
+ title = tempKeyParts.pop() + '_' + title;
+ title = title.split('_').map(function(item) {
+ return item.toLowerCase().charAt(0).toUpperCase() + item.slice(1);
+ }).reduce(function(prev, el) {
+ return prev + ' ' + el;
});
- return deferred.promise;
- },
- getNetworkInfo: function(){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/network/enumerate",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
+
+ content.data[key].Value = getScaledValue(content.data[key].Value, content.data[key].Scale);
+ content.data[key].CriticalLow = getScaledValue(content.data[key].CriticalLow, content.data[key].Scale);
+ content.data[key].CriticalHigh = getScaledValue(content.data[key].CriticalHigh, content.data[key].Scale);
+ content.data[key].WarningLow = getScaledValue(content.data[key].WarningLow, content.data[key].Scale);
+ content.data[key].WarningHigh = getScaledValue(content.data[key].WarningHigh, content.data[key].Scale);
+ if (Constants.SENSOR_SORT_ORDER.indexOf(content.data[key].Unit) > -1) {
+ customOrder = Constants.SENSOR_SORT_ORDER.indexOf(content.data[key].Unit);
+ }
+ else {
+ customOrder = Constants.SENSOR_SORT_ORDER_DEFAULT;
+ }
+
+ sensorData.push(Object.assign({
+ path: key,
+ selected: false,
+ confirm: false,
+ copied: false,
+ title: title,
+ unit: Constants.SENSOR_UNIT_MAP[content.data[key].Unit],
+ severity_flags: severity.flags,
+ status: severity.severityText,
+ order: severity.order,
+ custom_order: customOrder,
+ search_text: (title + ' ' + content.data[key].Value + ' ' +
+ Constants.SENSOR_UNIT_MAP[content.data[key].Unit] + ' ' +
+ severity.severityText + ' ' +
+ content.data[key].CriticalLow + ' ' +
+ content.data[key].CriticalHigh + ' ' +
+ content.data[key].WarningLow + ' ' +
+ content.data[key].WarningHigh + ' '
+ ).toLowerCase(),
+ original_data: {
+ key: key,
+ value: content.data[key]
+ }
+ }, content.data[key]));
+ }
+ }
+
+ callback(sensorData, dataClone);
+ }, function(error) {
+ console.log(error);
+ });
+ },
+ getActivation: function(imageId) {
+ return $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/software/' + imageId + '/attr/Activation',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ return response.data;
+ });
+ },
+ getFirmwares: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/software/enumerate',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ var data = [];
+ var activationStatus = '';
+ var isExtended = false;
+ var bmcActiveVersion = '';
+ var hostActiveVersion = '';
+ var imageType = '';
+ var extendedVersions = [];
+ var functionalImages = [];
+
+ function getFormatedExtendedVersions(extendedVersion) {
+ var versions = [];
+ extendedVersion = extendedVersion.split(',');
+
+ extendedVersion.forEach(function(item) {
+ var parts = item.split('-');
+ var numberIndex = 0;
+ for (var i = 0; i < parts.length; i++) {
+ if (/[0-9]/.test(parts[i])) {
+ numberIndex = i;
+ break;
+ }
+ }
+ var titlePart = parts.splice(0, numberIndex);
+ titlePart = titlePart.join('');
+ titlePart = titlePart[0].toUpperCase() + titlePart.substr(1, titlePart.length);
+ var versionPart = parts.join('-');
+ versions.push({
+ title: titlePart,
+ version: versionPart
+ });
+ });
+
+ return versions;
+ }
+
+ // Get the list of functional images so we can compare
+ // later if an image is functional
+ if (content.data[Constants.FIRMWARE.FUNCTIONAL_OBJPATH]) {
+ functionalImages = content.data[Constants.FIRMWARE.FUNCTIONAL_OBJPATH].endpoints;
+ }
+ for (var key in content.data) {
+ if (content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Version')) {
+ // If the image is "Functional" use that for the
+ // activation status, else use the value of "Activation"
+ // github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Software/Activation.interface.yaml
+ activationStatus = content.data[key].Activation.split('.').pop();
+ if (functionalImages.includes(key)) {
+ activationStatus = 'Functional';
+ }
+
+ imageType = content.data[key].Purpose.split('.').pop();
+ isExtended = content.data[key].hasOwnProperty('ExtendedVersion') && content.data[key].ExtendedVersion != '';
+ if (isExtended) {
+ extendedVersions = getFormatedExtendedVersions(content.data[key].ExtendedVersion);
+ }
+ data.push(Object.assign({
+ path: key,
+ activationStatus: activationStatus,
+ imageId: key.split('/').pop(),
+ imageType: imageType,
+ isExtended: isExtended,
+ extended: {
+ show: false,
+ versions: extendedVersions
},
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- var hostname = "";
- var macAddress = "";
+ data: {
+ key: key,
+ value: content.data[key]
+ }
+ }, content.data[key]));
- function parseNetworkData(content){
- var data = {
- interface_ids: [],
- interfaces: {},
- ip_addresses: {ipv4 : [],
- ipv6 : []},
- };
- var interfaceId = '', keyParts = [], interfaceHash = '', interfaceType = '';
- for(var key in content.data){
- if(key.match(/network\/eth\d+$/ig)){
- interfaceId = key.split("/").pop();
- if(data.interface_ids.indexOf(interfaceId) == -1){
- data.interface_ids.push(interfaceId);
- data.interfaces[interfaceId] = {
- interfaceIname: '',
- DomainName:'',
- MACAddress:'',
- Nameservers: [],
- DHCPEnabled: 0,
- ipv4:
- {
- ids: [],
- values: []
- },
- ipv6:
- {
- ids: [],
- values: []
- }
- };
- data.interfaces[interfaceId].MACAddress = content.data[key].MACAddress;
- data.interfaces[interfaceId].DomainName = content.data[key].DomainName.join(" ");
- data.interfaces[interfaceId].Nameservers = content.data[key].Nameservers;
- data.interfaces[interfaceId].DHCPEnabled = content.data[key].DHCPEnabled;
- }
- }else if(key.match(/network\/eth\d+\/ipv[4|6]\/[a-z0-9]+$/ig)){
- keyParts = key.split("/");
- interfaceHash = keyParts.pop();
- interfaceType = keyParts.pop();
- interfaceId = keyParts.pop();
+ if (activationStatus == 'Functional' && imageType == 'BMC') {
+ bmcActiveVersion = content.data[key].Version;
+ }
- if(data.interfaces[interfaceId][interfaceType].ids.indexOf(interfaceHash) == -1){
- data.interfaces[interfaceId][interfaceType].ids.push(interfaceHash);
- data.interfaces[interfaceId][interfaceType].values.push(content.data[key]);
- data.ip_addresses[interfaceType].push(content.data[key]['Address']);
- }
- }
- }
- return data;
+ if (activationStatus == 'Functional' && imageType == 'Host') {
+ hostActiveVersion = content.data[key].Version;
+ }
+ }
+ }
+
+ deferred.resolve({
+ data: data,
+ bmcActiveVersion: bmcActiveVersion,
+ hostActiveVersion: hostActiveVersion
+ });
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+
+ return deferred.promise;
+ },
+ changePriority: function(imageId, priority) {
+ var deferred = $q.defer();
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/software/' + imageId + '/attr/Priority',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': priority
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+
+ return deferred.promise;
+ },
+ deleteImage: function(imageId) {
+ var deferred = $q.defer();
+ $http({
+ method: 'POST',
+ url: DataService.getHost() + '/xyz/openbmc_project/software/' + imageId + '/action/Delete',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': []
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+
+ return deferred.promise;
+ },
+ activateImage: function(imageId) {
+ var deferred = $q.defer();
+ $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/software/' + imageId + '/attr/RequestedActivation',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': Constants.FIRMWARE.ACTIVATE_FIRMWARE
+ })
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+
+ return deferred.promise;
+ },
+ uploadImage: function(file) {
+ return $http({
+ method: 'POST',
+ timeout: 5 * 60 * 1000,
+ url: DataService.getHost() + '/upload/image',
+ headers: {
+ 'Content-Type': 'application/octet-stream'
+ },
+ withCredentials: true,
+ data: file
+ }).then(function(response) {
+ return response.data;
+ });
+ },
+ downloadImage: function(host, filename) {
+ return $http({
+ method: 'POST',
+ url: DataService.getHost() + '/xyz/openbmc_project/software/action/DownloadViaTFTP',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': [filename, host]
+ }),
+ responseType: 'arraybuffer'
+ }).then(function(response) {
+ return response.data;
+ });
+ },
+ getBMCEthernetInfo: function() {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/inventory/system/chassis/motherboard/boxelder/bmc/ethernet',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.data);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+
+ return deferred.promise;
+ },
+ getBMCInfo: function(callback) {
+ var deferred = $q.defer();
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/inventory/system/chassis/motherboard/boxelder/bmc',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ deferred.resolve(content.data);
+ }, function(error) {
+ console.log(error);
+ deferred.reject(error);
+ });
+ return deferred.promise;
+ },
+ getServerInfo: function() {
+ // TODO: openbmc/openbmc#3117 Need a way via REST to get
+ // interfaces so we can get the system object(s) by the looking
+ // for the system interface.
+ return $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/inventory/system',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ return response.data;
+ });
+ },
+ getBMCTime: function() {
+ return $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/time/bmc',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ return response.data;
+ });
+ },
+ getHardwares: function(callback) {
+ $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/inventory/enumerate',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
+ var hardwareData = [];
+ var keyIndexMap = {};
+ var title = '';
+ var data = [];
+ var searchText = '';
+ var componentIndex = -1;
+ var tempParts = [];
+
+
+ function isSubComponent(key) {
+
+ for (var i = 0; i < Constants.HARDWARE.parent_components.length; i++) {
+ if (key.split(Constants.HARDWARE.parent_components[i]).length == 2) return true;
+ }
+
+ return false;
+ }
+
+ function titlelize(title) {
+ title = title.replace(/([A-Z0-9]+)/g, ' $1').replace(/^\s+/, '');
+ for (var i = 0; i < Constants.HARDWARE.uppercase_titles.length; i++) {
+ if (title.toLowerCase().indexOf((Constants.HARDWARE.uppercase_titles[i] + ' ')) > -1) {
+ return title.toUpperCase();
+ }
+ }
+
+ return title;
+ }
+
+ function camelcaseToLabel(obj) {
+ var transformed = [],
+ label = '',
+ value = '';
+ for (var key in obj) {
+ label = key.replace(/([A-Z0-9]+)/g, ' $1').replace(/^\s+/, '');
+ if (obj[key] !== '') {
+ value = obj[key];
+ if (value == 1 || value == 0) {
+ value = (value == 1) ? 'Yes' : 'No';
+ }
+ transformed.push({
+ key: label,
+ value: value
+ });
+ }
+ }
+
+ return transformed;
+ }
+
+ function getSearchText(data) {
+ var searchText = '';
+ for (var i = 0; i < data.length; i++) {
+ searchText += ' ' + data[i].key + ' ' + data[i].value;
+ }
+
+ return searchText;
+ }
+
+ for (var key in content.data) {
+ if (content.data.hasOwnProperty(key) &&
+ key.indexOf(Constants.HARDWARE.component_key_filter) == 0) {
+
+ data = camelcaseToLabel(content.data[key]);
+ searchText = getSearchText(data);
+ title = key.split('/').pop();
+
+ title = titlelize(title);
+
+ if (!isSubComponent(key)) {
+ hardwareData.push(Object.assign({
+ path: key,
+ title: title,
+ selected: false,
+ expanded: false,
+ search_text: title.toLowerCase() + ' ' + searchText.toLowerCase(),
+ sub_components: [],
+ original_data: {
+ key: key,
+ value: content.data[key]
}
+ }, {
+ items: data
+ }));
- if(content.data.hasOwnProperty('/xyz/openbmc_project/network/config') &&
- content.data['/xyz/openbmc_project/network/config'].hasOwnProperty('HostName')
- ){
- hostname = content.data['/xyz/openbmc_project/network/config'].HostName;
- }
+ keyIndexMap[key] = hardwareData.length - 1;
+ }
+ else {
+ var tempParts = key.split('/');
+ tempParts.pop();
+ tempParts = tempParts.join('/');
+ componentIndex = keyIndexMap[tempParts];
+ data = content.data[key];
+ data.title = title;
+ hardwareData[componentIndex].sub_components.push(data);
+ hardwareData[componentIndex].search_text += ' ' + title.toLowerCase();
- if(content.data.hasOwnProperty('/xyz/openbmc_project/network/eth0') &&
- content.data['/xyz/openbmc_project/network/eth0'].hasOwnProperty('MACAddress')
- ){
- macAddress = content.data['/xyz/openbmc_project/network/eth0'].MACAddress;
- }
-
- deferred.resolve({
- data: content.data,
- hostname: hostname,
- mac_address: macAddress,
- formatted_data: parseNetworkData(content)
+ // Sort the subcomponents alphanumeric so they are displayed on the
+ // inventory page in order (e.g. core 0, core 1, core 2, ... core 12, core 13)
+ hardwareData[componentIndex].sub_components.sort(function(a, b) {
+ return a.title.localeCompare(b.title, 'en', {
+ numeric: true
});
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
- return deferred.promise;
- },
- getLEDState: function(){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/led/groups/enclosure_identify",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.data.Asserted);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
- return deferred.promise;
- },
- login: function(username, password, callback){
- $http({
- method: 'POST',
- url: DataService.getHost() + "/login",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": [username, password]})
- }).then(function(response){
- if(callback){
- callback(response.data);
- }
- }, function(error){
- if(callback){
- if(error && error.status && error.status == 'error'){
- callback(error);
- }else{
- callback(error, true);
- }
- }
- console.log(error);
- });
- },
- testPassword: function(username, password){
- // Calls /login without the current session to verify the given password is correct
- // ignore the interceptor logout on a bad password
- DataService.ignoreHttpError = true;
- return $http({
- method: 'POST',
- url: DataService.getHost() + "/login",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: false,
- data: JSON.stringify({"data": [username, password]})
- }).then(function(response){
- return response.data;
- });
- },
- logout: function(callback){
- $http({
- method: 'POST',
- url: DataService.getHost() + "/logout",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": []})
- }).then(function(response){
- if(callback){
- callback(response.data);
- }
- }, function(error){
- if(callback){
- callback(null, error);
- }
- console.log(error);
- });
- },
- changePassword: function(user, newPassword){
- var deferred = $q.defer();
- $http({
- method: 'POST',
- url: DataService.getHost() + "/xyz/openbmc_project/user/" + user + "/action/SetPassword",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": [newPassword]}),
- responseType: 'arraybuffer'
- }).then(function(response, status, headers){
- deferred.resolve({
- data: response,
- status: status,
- headers: headers
});
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
- return deferred.promise;
+ }
+ }
+ }
+
+ if (callback) {
+ callback(hardwareData, content.data);
+ }
+ else {
+ return {
+ data: hardwareData,
+ original_data: content.data
+ };
+ }
+ });
+ },
+ deleteLogs: function(logs) {
+ var defer = $q.defer();
+ var promises = [];
+
+ function finished() {
+ defer.resolve();
+ }
+
+ logs.forEach(function(item) {
+ promises.push($http({
+ method: 'POST',
+ url: DataService.getHost() + '/xyz/openbmc_project/logging/entry/' + item.Id + '/action/Delete',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
},
- chassisPowerOn: function(callback){
- $http({
- method: 'POST',
- url: DataService.getHost() + "/xyz/openbmc_project/state/host0",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": []})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- if(callback){
- return callback(content.data.CurrentPowerState);
- }
- }, function(error){
- if(callback){
- callback(error);
- }else{
- console.log(error);
- }
- });
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': []
+ })
+ }));
+ });
+
+ $q.all(promises).then(finished);
+
+ return defer.promise;
+ },
+ resolveLogs: function(logs) {
+ var defer = $q.defer();
+ var promises = [];
+
+ function finished() {
+ defer.resolve();
+ }
+
+ logs.forEach(function(item) {
+ promises.push($http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/logging/entry/' + item.Id + '/attr/Resolved',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
},
- chassisPowerOff: function(){
- var deferred = $q.defer();
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/state/chassis0/attr/RequestedPowerTransition",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": "xyz.openbmc_project.State.Chassis.Transition.Off"})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.status);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
- return deferred.promise;
- },
- setLEDState: function(state, callback){
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/led/groups/enclosure_identify/attr/Asserted",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": state})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- if(callback){
- return callback(content.status);
- }
- }, function(error){
- if(callback){
- callback(error);
- }else{
- console.log(error);
- }
- });
- },
- bmcReboot: function(callback){
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/state/bmc0/attr/RequestedBmcTransition",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": "xyz.openbmc_project.State.BMC.Transition.Reboot"})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- if(callback){
- return callback(content.status);
- }
- }, function(error){
- if(callback){
- callback(error);
- }else{
- console.log(error);
- }
- });
- },
- hostPowerOn: function(){
- var deferred = $q.defer();
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.On"})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.status);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
- return deferred.promise;
- },
- hostPowerOff: function(){
- var deferred = $q.defer();
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.Off"})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.status);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
- return deferred.promise;
- },
- hostReboot: function(){
- var deferred = $q.defer();
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/state/host0/attr/RequestedHostTransition",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": "xyz.openbmc_project.State.Host.Transition.Reboot"})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.status);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': '1'
+ })
+ }));
+ });
- return deferred.promise;
- },
- hostShutdown: function(callback){
- $http({
- method: 'POST',
- url: DataService.getHost() + "/xyz/openbmc_project/state/host0",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": []})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- if(callback){
- return callback(content);
- }
- }, function(error){
- if(callback){
- callback(error);
- }else{
- console.log(error);
- }
- });
- },
- getLogs: function(){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/logging/enumerate",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- var dataClone = JSON.parse(JSON.stringify(content.data));
- var data = [];
- var severityCode = '';
- var priority = '';
- var health = '';
- var relatedItems = [];
+ $q.all(promises).then(finished);
- for(var key in content.data){
- if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Id')){
- var severityFlags = {low: false, medium: false, high: false};
- var healthFlags = {critical: false, warning: false, good: false};
- severityCode = content.data[key].Severity.split(".").pop();
- priority = Constants.SEVERITY_TO_PRIORITY_MAP[severityCode];
- severityFlags[priority.toLowerCase()] = true;
- health = Constants.SEVERITY_TO_HEALTH_MAP[severityCode];
- healthFlags[health.toLowerCase()] = true;
- relatedItems = [];
- content.data[key].associations.forEach(function(item){
- relatedItems.push(item[2]);
- });
+ return defer.promise;
+ },
+ getPowerConsumption: function() {
+ return $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/sensors/power/total_power',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
- data.push(Object.assign({
- path: key,
- copied: false,
- priority: priority,
- severity_code: severityCode,
- severity_flags: severityFlags,
- health_flags: healthFlags,
- additional_data: content.data[key].AdditionalData.join("\n"),
- type: content.data[key].Message,
- selected: false,
- search_text: ("#" + content.data[key].Id + " " + severityCode + " " + content.data[key].Severity + " " + content.data[key].AdditionalData.join(" ")).toLowerCase(),
- meta: false,
- confirm: false,
- related_items: relatedItems,
- data: {key: key, value: content.data[key]}
- }, content.data[key]));
- }
- }
- deferred.resolve({data: data, original: dataClone});
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
+ return getScaledValue(content.data.Value,
+ content.data.Scale) + ' ' +
+ Constants.POWER_CONSUMPTION_TEXT[content.data.Unit];
+ }, function(error) {
+ if ('Not Found' == error.statusText) {
+ return Constants.POWER_CONSUMPTION_TEXT.notavailable;
+ }
+ else {
+ throw error;
+ }
+ });
+ },
+ getPowerCap: function() {
+ return $http({
+ method: 'GET',
+ url: DataService.getHost() + '/xyz/openbmc_project/control/host0/power_cap',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true
+ }).then(function(response) {
+ var json = JSON.stringify(response.data);
+ var content = JSON.parse(json);
- return deferred.promise;
- },
- getAllSensorStatus: function(callback){
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/sensors/enumerate",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- var dataClone = JSON.parse(JSON.stringify(content.data));
- var sensorData = [];
- var severity = {};
- var title = "";
- var tempKeyParts = [];
- var order = 0;
- var customOrder = 0;
+ return (false == content.data.PowerCapEnable) ?
+ Constants.POWER_CAP_TEXT.disabled :
+ content.data.PowerCap + ' ' + Constants.POWER_CAP_TEXT.unit;
+ });
+ },
+ setHostname: function(hostname) {
+ return $http({
+ method: 'PUT',
+ url: DataService.getHost() + '/xyz/openbmc_project/network/config/attr/HostName',
+ headers: {
+ 'Accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ withCredentials: true,
+ data: JSON.stringify({
+ 'data': hostname
+ })
+ }).then(function(response) {
+ return response.data;
+ });
+ },
+ };
+ return SERVICE;
+ }]);
- function getSensorStatus(reading){
- var severityFlags = {critical: false, warning: false, normal: false}, severityText = '', order = 0;
-
- if(reading.hasOwnProperty('CriticalLow') &&
- reading.Value < reading.CriticalLow
- ){
- severityFlags.critical = true;
- severityText = 'critical';
- order = 2;
- }else if(reading.hasOwnProperty('CriticalHigh') &&
- reading.Value > reading.CriticalHigh
- ){
- severityFlags.critical = true;
- severityText = 'critical';
- order = 2;
- }else if(reading.hasOwnProperty('CriticalLow') &&
- reading.hasOwnProperty('WarningLow') &&
- reading.Value >= reading.CriticalLow && reading.Value <= reading.WarningLow){
- severityFlags.warning = true;
- severityText = 'warning';
- order = 1;
- }else if(reading.hasOwnProperty('WarningHigh') &&
- reading.hasOwnProperty('CriticalHigh') &&
- reading.Value >= reading.WarningHigh && reading.Value <= reading.CriticalHigh){
- severityFlags.warning = true;
- severityText = 'warning';
- order = 1;
- }else{
- severityFlags.normal = true;
- severityText = 'normal';
- }
- return { flags: severityFlags, severityText: severityText, order: order};
- }
-
- for(var key in content.data){
- if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Unit')){
-
- severity = getSensorStatus(content.data[key]);
-
- if(!content.data[key].hasOwnProperty('CriticalLow')){
- content.data[key].CriticalLow = "--";
- content.data[key].CriticalHigh = "--";
- }
-
- if(!content.data[key].hasOwnProperty('WarningLow')){
- content.data[key].WarningLow = "--";
- content.data[key].WarningHigh = "--";
- }
-
- tempKeyParts = key.split("/");
- title = tempKeyParts.pop();
- title = tempKeyParts.pop() + '_' + title;
- title = title.split("_").map(function(item){
- return item.toLowerCase().charAt(0).toUpperCase() + item.slice(1);
- }).reduce(function(prev, el){
- return prev + " " + el;
- });
-
- content.data[key].Value = getScaledValue(content.data[key].Value, content.data[key].Scale);
- content.data[key].CriticalLow = getScaledValue(content.data[key].CriticalLow, content.data[key].Scale);
- content.data[key].CriticalHigh = getScaledValue(content.data[key].CriticalHigh, content.data[key].Scale);
- content.data[key].WarningLow = getScaledValue(content.data[key].WarningLow, content.data[key].Scale);
- content.data[key].WarningHigh = getScaledValue(content.data[key].WarningHigh, content.data[key].Scale);
- if(Constants.SENSOR_SORT_ORDER.indexOf(content.data[key].Unit) > -1){
- customOrder = Constants.SENSOR_SORT_ORDER.indexOf(content.data[key].Unit);
- }else{
- customOrder = Constants.SENSOR_SORT_ORDER_DEFAULT;
- }
-
- sensorData.push(Object.assign({
- path: key,
- selected: false,
- confirm: false,
- copied: false,
- title: title,
- unit: Constants.SENSOR_UNIT_MAP[content.data[key].Unit],
- severity_flags: severity.flags,
- status: severity.severityText,
- order: severity.order,
- custom_order: customOrder,
- search_text: (title + " " + content.data[key].Value + " " +
- Constants.SENSOR_UNIT_MAP[content.data[key].Unit] + " " +
- severity.severityText + " " +
- content.data[key].CriticalLow + " " +
- content.data[key].CriticalHigh + " " +
- content.data[key].WarningLow + " " +
- content.data[key].WarningHigh + " "
- ).toLowerCase(),
- original_data: {key: key, value: content.data[key]}
- }, content.data[key]));
- }
- }
-
- callback(sensorData, dataClone);
- }, function(error){
- console.log(error);
- });
- },
- getActivation: function(imageId){
- return $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/software/" + imageId + "/attr/Activation",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- return response.data;
- });
- },
- getFirmwares: function(){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/software/enumerate",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- var data = [];
- var activationStatus = "";
- var isExtended = false;
- var bmcActiveVersion = "";
- var hostActiveVersion = "";
- var imageType = "";
- var extendedVersions = [];
- var functionalImages = [];
-
- function getFormatedExtendedVersions(extendedVersion){
- var versions = [];
- extendedVersion = extendedVersion.split(",");
-
- extendedVersion.forEach(function(item){
- var parts = item.split("-");
- var numberIndex = 0;
- for(var i = 0; i < parts.length; i++){
- if(/[0-9]/.test(parts[i])){
- numberIndex = i;
- break;
- }
- }
- var titlePart = parts.splice(0, numberIndex);
- titlePart = titlePart.join("");
- titlePart = titlePart[0].toUpperCase() + titlePart.substr(1, titlePart.length);
- var versionPart = parts.join("-");
- versions.push({
- title: titlePart,
- version: versionPart
- });
- });
-
- return versions;
- }
-
- // Get the list of functional images so we can compare
- // later if an image is functional
- if (content.data[Constants.FIRMWARE.FUNCTIONAL_OBJPATH])
- {
- functionalImages = content.data[Constants.FIRMWARE.FUNCTIONAL_OBJPATH].endpoints;
- }
- for(var key in content.data){
- if(content.data.hasOwnProperty(key) && content.data[key].hasOwnProperty('Version')){
- // If the image is "Functional" use that for the
- // activation status, else use the value of "Activation"
- // github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Software/Activation.interface.yaml
- activationStatus = content.data[key].Activation.split(".").pop();
- if (functionalImages.includes(key))
- {
- activationStatus = "Functional";
- }
-
- imageType = content.data[key].Purpose.split(".").pop();
- isExtended = content.data[key].hasOwnProperty('ExtendedVersion') && content.data[key].ExtendedVersion != "";
- if(isExtended){
- extendedVersions = getFormatedExtendedVersions(content.data[key].ExtendedVersion);
- }
- data.push(Object.assign({
- path: key,
- activationStatus: activationStatus,
- imageId: key.split("/").pop(),
- imageType: imageType,
- isExtended: isExtended,
- extended: {
- show: false,
- versions: extendedVersions
- },
- data: {key: key, value: content.data[key]}
- }, content.data[key]));
-
- if(activationStatus == 'Functional' && imageType == 'BMC'){
- bmcActiveVersion = content.data[key].Version;
- }
-
- if(activationStatus == 'Functional' && imageType == 'Host'){
- hostActiveVersion = content.data[key].Version;
- }
- }
- }
-
- deferred.resolve({
- data: data,
- bmcActiveVersion: bmcActiveVersion,
- hostActiveVersion: hostActiveVersion
- });
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
-
- return deferred.promise;
- },
- changePriority: function(imageId, priority){
- var deferred = $q.defer();
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/software/" + imageId + "/attr/Priority",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": priority})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
-
- return deferred.promise;
- },
- deleteImage: function(imageId){
- var deferred = $q.defer();
- $http({
- method: 'POST',
- url: DataService.getHost() + "/xyz/openbmc_project/software/" + imageId + "/action/Delete",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": []})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
-
- return deferred.promise;
- },
- activateImage: function(imageId){
- var deferred = $q.defer();
- $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/software/" + imageId + "/attr/RequestedActivation",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": Constants.FIRMWARE.ACTIVATE_FIRMWARE})
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
-
- return deferred.promise;
- },
- uploadImage: function(file){
- return $http({
- method: 'POST',
- timeout: 5 * 60 * 1000,
- url: DataService.getHost() + "/upload/image",
- headers: {
- 'Content-Type': 'application/octet-stream'
- },
- withCredentials: true,
- data: file
- }).then(function(response){
- return response.data;
- });
- },
- downloadImage: function(host, filename){
- return $http({
- method: 'POST',
- url: DataService.getHost() + "/xyz/openbmc_project/software/action/DownloadViaTFTP",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": [filename, host]}),
- responseType: 'arraybuffer'
- }).then(function(response){
- return response.data;
- });
- },
- getBMCEthernetInfo: function(){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/inventory/system/chassis/motherboard/boxelder/bmc/ethernet",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.data);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
-
- return deferred.promise;
- },
- getBMCInfo: function(callback){
- var deferred = $q.defer();
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/inventory/system/chassis/motherboard/boxelder/bmc",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- deferred.resolve(content.data);
- }, function(error){
- console.log(error);
- deferred.reject(error);
- });
- return deferred.promise;
- },
- getServerInfo: function(){
- // TODO: openbmc/openbmc#3117 Need a way via REST to get
- // interfaces so we can get the system object(s) by the looking
- // for the system interface.
- return $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/inventory/system",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- return response.data;
- });
- },
- getBMCTime: function(){
- return $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/time/bmc",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- return response.data;
- });
- },
- getHardwares: function(callback){
- $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/inventory/enumerate",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
- var hardwareData = [];
- var keyIndexMap = {};
- var title = "";
- var data = [];
- var searchText = "";
- var componentIndex = -1;
- var tempParts = [];
-
-
- function isSubComponent(key){
-
- for(var i = 0; i < Constants.HARDWARE.parent_components.length; i++){
- if(key.split(Constants.HARDWARE.parent_components[i]).length == 2) return true;
- }
-
- return false;
- }
-
- function titlelize(title){
- title = title.replace(/([A-Z0-9]+)/g, " $1").replace(/^\s+/, "");
- for(var i = 0; i < Constants.HARDWARE.uppercase_titles.length; i++){
- if(title.toLowerCase().indexOf((Constants.HARDWARE.uppercase_titles[i] + " ")) > -1){
- return title.toUpperCase();
- }
- }
-
- return title;
- }
-
- function camelcaseToLabel(obj){
- var transformed = [], label = "", value = "";
- for(var key in obj){
- label = key.replace(/([A-Z0-9]+)/g, " $1").replace(/^\s+/, "");
- if(obj[key] !== ""){
- value = obj[key];
- if(value == 1 || value == 0){
- value = (value == 1) ? 'Yes' : 'No';
- }
- transformed.push({key:label, value: value});
- }
- }
-
- return transformed;
- }
-
- function getSearchText(data){
- var searchText = "";
- for(var i = 0; i < data.length; i++){
- searchText += " " + data[i].key + " " + data[i].value;
- }
-
- return searchText;
- }
-
- for(var key in content.data){
- if(content.data.hasOwnProperty(key) &&
- key.indexOf(Constants.HARDWARE.component_key_filter) == 0){
-
- data = camelcaseToLabel(content.data[key]);
- searchText = getSearchText(data);
- title = key.split("/").pop();
-
- title = titlelize(title);
-
- if(!isSubComponent(key)){
- hardwareData.push(Object.assign({
- path: key,
- title: title,
- selected: false,
- expanded: false,
- search_text: title.toLowerCase() + " " + searchText.toLowerCase(),
- sub_components: [],
- original_data: {key: key, value: content.data[key]}
- }, {items: data}));
-
- keyIndexMap[key] = hardwareData.length - 1;
- }else{
- var tempParts = key.split("/");
- tempParts.pop();
- tempParts = tempParts.join("/");
- componentIndex = keyIndexMap[tempParts];
- data = content.data[key];
- data.title = title;
- hardwareData[componentIndex].sub_components.push(data);
- hardwareData[componentIndex].search_text += " " + title.toLowerCase();
-
- // Sort the subcomponents alphanumeric so they are displayed on the
- // inventory page in order (e.g. core 0, core 1, core 2, ... core 12, core 13)
- hardwareData[componentIndex].sub_components.sort(function (a, b) {
- return a.title.localeCompare(b.title, 'en', { numeric: true });
- });
- }
- }
- }
-
- if(callback){
- callback(hardwareData, content.data);
- }else{
- return { data: hardwareData, original_data: content.data};
- }
- });
- },
- deleteLogs: function(logs) {
- var defer = $q.defer();
- var promises = [];
-
- function finished(){
- defer.resolve();
- }
-
- logs.forEach(function(item){
- promises.push($http({
- method: 'POST',
- url: DataService.getHost() + "/xyz/openbmc_project/logging/entry/"+item.Id+"/action/Delete",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": []})
- }));
- });
-
- $q.all(promises).then(finished);
-
- return defer.promise;
- },
- resolveLogs: function(logs) {
- var defer = $q.defer();
- var promises = [];
-
- function finished(){
- defer.resolve();
- }
-
- logs.forEach(function(item){
- promises.push($http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/logging/entry/"+item.Id+"/attr/Resolved",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": "1"})
- }));
- });
-
- $q.all(promises).then(finished);
-
- return defer.promise;
- },
- getPowerConsumption: function(){
- return $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/sensors/power/total_power",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
-
- return getScaledValue(content.data.Value,
- content.data.Scale) + ' ' +
- Constants.POWER_CONSUMPTION_TEXT[content.data.Unit];
- }, function(error){
- if ('Not Found' == error.statusText) {
- return Constants.POWER_CONSUMPTION_TEXT.notavailable;
- } else {
- throw error;
- }
- });
- },
- getPowerCap: function(){
- return $http({
- method: 'GET',
- url: DataService.getHost() + "/xyz/openbmc_project/control/host0/power_cap",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true
- }).then(function(response){
- var json = JSON.stringify(response.data);
- var content = JSON.parse(json);
-
- return (false == content.data.PowerCapEnable) ?
- Constants.POWER_CAP_TEXT.disabled :
- content.data.PowerCap + ' ' + Constants.POWER_CAP_TEXT.unit;
- });
- },
- setHostname: function(hostname){
- return $http({
- method: 'PUT',
- url: DataService.getHost() + "/xyz/openbmc_project/network/config/attr/HostName",
- headers: {
- 'Accept': 'application/json',
- 'Content-Type': 'application/json'
- },
- withCredentials: true,
- data: JSON.stringify({"data": hostname})
- }).then(function(response){
- return response.data;
- });
- },
- };
- return SERVICE;
- }]);
-
- })(window.angular);
+})(window.angular);
diff --git a/app/common/services/apiInterceptor.js b/app/common/services/apiInterceptor.js
index de344cd..b3f2ff4 100644
--- a/app/common/services/apiInterceptor.js
+++ b/app/common/services/apiInterceptor.js
@@ -7,60 +7,61 @@
*/
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.services')
- .service('apiInterceptor', ['$q', '$rootScope', 'dataService', function($q, $rootScope, dataService){
- return {
- 'request': function(config){
- dataService.loading = true;
- // If caller has not defined a timeout, set to default of 20s
- if (config.timeout == null){
- config.timeout = 20000;
- }
- return config;
- },
- 'response': function(response){
- dataService.loading = false;
+ angular
+ .module('app.common.services')
+ .service('apiInterceptor', ['$q', '$rootScope', 'dataService', function($q, $rootScope, dataService) {
+ return {
+ 'request': function(config) {
+ dataService.loading = true;
+ // If caller has not defined a timeout, set to default of 20s
+ if (config.timeout == null) {
+ config.timeout = 20000;
+ }
+ return config;
+ },
+ 'response': function(response) {
+ dataService.loading = false;
- //not interested in template requests
- if(!/^https?\:/i.test(response.config.url)){
- return response;
- }
+ //not interested in template requests
+ if (!/^https?\:/i.test(response.config.url)) {
+ return response;
+ }
- dataService.last_updated = new Date();
- if(!response){
- dataService.server_unreachable = true;
- }else{
- dataService.server_unreachable = false;
- }
+ dataService.last_updated = new Date();
+ if (!response) {
+ dataService.server_unreachable = true;
+ }
+ else {
+ dataService.server_unreachable = false;
+ }
- if(response && response.status == 'error' &&
- dataService.path != '/login'){
- $rootScope.$emit('timedout-user', {});
- }
+ if (response && response.status == 'error' &&
+ dataService.path != '/login') {
+ $rootScope.$emit('timedout-user', {});
+ }
- return response;
- },
- 'responseError': function(rejection){
- if (dataService.ignoreHttpError === false)
- {
- // If unauthorized, log out
- if (rejection.status == 401){
- if (dataService.path != '/login'){
- $rootScope.$emit('timedout-user', {});
- }
- } else if (rejection.status == -1){
- dataService.server_unreachable = true;
- }
+ return response;
+ },
+ 'responseError': function(rejection) {
+ if (dataService.ignoreHttpError === false) {
+ // If unauthorized, log out
+ if (rejection.status == 401) {
+ if (dataService.path != '/login') {
+ $rootScope.$emit('timedout-user', {});
+ }
+ }
+ else if (rejection.status == -1) {
+ dataService.server_unreachable = true;
+ }
- dataService.loading = false;
- }
- return $q.reject(rejection);
- }
- };
- }]);
+ dataService.loading = false;
+ }
+ return $q.reject(rejection);
+ }
+ };
+ }]);
})(window.angular);
diff --git a/app/common/services/constants.js b/app/common/services/constants.js
index 8b51341..d749ea8 100644
--- a/app/common/services/constants.js
+++ b/app/common/services/constants.js
@@ -7,161 +7,161 @@
*/
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.services', [])
- .service('Constants', function () {
- return {
- API_CREDENTIALS: {
- host_storage_key: 'API_HOST_KEY',
- default_protocol: 'https'
- },
- API_RESPONSE: {
- ERROR_STATUS: 'error',
- ERROR_MESSAGE: '401 Unauthorized',
- SUCCESS_STATUS: 'ok',
- SUCCESS_MESSAGE: '200 OK'
- },
- CHASSIS_POWER_STATE: {
- on: 'On',
- on_code: 'xyz.openbmc_project.State.Chassis.PowerState.On',
- off: 'Off',
- off_code: 'xyz.openbmc_project.State.Chassis.PowerState.Off'
- },
- HOST_STATE_TEXT: {
- on: 'Running',
- on_code: 'xyz.openbmc_project.State.Host.HostState.Running',
- off: 'Off',
- off_code: 'xyz.openbmc_project.State.Host.HostState.Off',
- error: 'Quiesced',
- error_code: 'xyz.openbmc_project.State.Host.HostState.Quiesced',
- unreachable: 'Unreachable'
- },
- HOST_STATE: {
- on: 1,
- off: -1,
- error: 0,
- unreachable: -2
- },
- LED_STATE: {
- on: true,
- off: false
- },
- LED_STATE_TEXT: {
- on: 'on',
- off: 'off'
- },
- SEVERITY_TO_HEALTH_MAP:{
- Emergency: 'Critical',
- Alert: 'Critical',
- Critical: 'Critical',
- Error: 'Warning',
- Warning: 'Warning',
- Notice: 'Good',
- Debug: 'Good',
- Informational: 'Good'
- },
- SEVERITY_TO_PRIORITY_MAP:{
- Emergency: 'High',
- Alert: 'High',
- Critical: 'High',
- Error: 'High',
- Warning: 'Medium',
- Notice: 'Low',
- Debug: 'Low',
- Informational: 'Low'
- },
- PAGINATION: {
- LOG_ITEMS_PER_PAGE: 25
- },
- HARDWARE: {
- component_key_filter: '/xyz/openbmc_project/inventory/system',
- parent_components: [
- /xyz\/openbmc_project\/inventory\/system\/chassis\/motherboard\/cpu\d+\//
- ],
- uppercase_titles: [
- 'cpu', 'dimm'
- ]
- },
- SENSOR_UNIT_MAP: {
- 'xyz.openbmc_project.Sensor.Value.Unit.RPMS': 'rpms',
- 'xyz.openbmc_project.Sensor.Value.Unit.DegreesC': 'C',
- 'xyz.openbmc_project.Sensor.Value.Unit.Volts': 'volts',
- 'xyz.openbmc_project.Sensor.Value.Unit.Meters': 'meters',
- 'xyz.openbmc_project.Sensor.Value.Unit.Watts': 'watts',
- 'xyz.openbmc_project.Sensor.Value.Unit.Amperes': 'amperes',
- 'xyz.openbmc_project.Sensor.Value.Unit.Joules': 'joules'
- },
- SERVER_HEALTH: {
- critical: 'Critical',
- warning: 'Warning',
- good: 'Good',
- unknown: 'Unknown'
- },
- SENSOR_SORT_ORDER: [
- 'xyz.openbmc_project.Sensor.Value.Unit.DegreesC',
- 'xyz.openbmc_project.Sensor.Value.Unit.RPMS',
- 'xyz.openbmc_project.Sensor.Value.Unit.Meters',
- 'xyz.openbmc_project.Sensor.Value.Unit.Volts',
- 'xyz.openbmc_project.Sensor.Value.Unit.Amperes',
- 'xyz.openbmc_project.Sensor.Value.Unit.Joules',
- 'xyz.openbmc_project.Sensor.Value.Unit.Meters'
- ],
- SENSOR_SORT_ORDER_DEFAULT: 8,
- FIRMWARE: {
- ACTIVATE_FIRMWARE: 'xyz.openbmc_project.Software.Activation.RequestedActivations.Active',
- FUNCTIONAL_OBJPATH: '/xyz/openbmc_project/software/functional'
- },
- POLL_INTERVALS: {
- ACTIVATION: 5000,
- DOWNLOAD_IMAGE: 5000,
- POWER_OP: 5000,
- },
- TIMEOUT: {
- ACTIVATION: 1000 * 60 * 10, // 10 mins
- DOWNLOAD_IMAGE: 1000 * 60 * 2, // 2 mins
- CHASSIS_OFF: 1000 * 60 * 5, // 5 mins
- HOST_ON: 1000 * 60 * 5, // 5 mins
- HOST_OFF: 1000 * 60 * 5, // 5 mins
- },
- MESSAGES: {
- POLL: {
- CHASSIS_OFF_TIMEOUT: 'Time out. Chassis did not reach power off state in allotted time.',
- HOST_ON_TIMEOUT: 'Time out. System did not reach Running state in allotted time.',
- HOST_OFF_TIMEOUT: 'Time out. System did not reach Off state in allotted time.',
- HOST_QUIESCED: 'System is in Error state.',
- DOWNLOAD_IMAGE_TIMEOUT: 'Time out. Did not download image in allotted time.',
- },
- POWER_OP: {
- POWER_ON_FAILED: 'Power On Failed',
- WARM_REBOOT_FAILED: 'Warm Reboot Failed',
- COLD_REBOOT_FAILED: 'Cold Reboot Failed',
- ORDERLY_SHUTDOWN_FAILED: 'Orderly Shutdown Failed',
- IMMEDIATE_SHUTDOWN_FAILED: 'Immediate Shutdown Failed',
- },
- SENSOR: {
- NO_SENSOR_DATA: 'There are no sensors found.',
- CRITICAL_NO_SENSOR_DATA: 'There are no sensors in Critical state.',
- WARNING_NO_SENSOR_DATA: 'There are no sensors in Warning state.',
- NORMAL_NO_SENSOR_DATA: 'There are no sensors in Normal state.'
- },
- ERROR_MODAL: {
- TITLE: 'Unexpected error',
- DESCRIPTION: 'Oops! An unexpected error occurred. Record specific details of the issue, then contact your company support services.'
- },
- ERROR_MESSAGE_DESC_TEMPLATE: '{{status}} - {{description}}',
- },
- POWER_CAP_TEXT: {
- unit: 'W',
- disabled: 'Not Enabled'
- },
- POWER_CONSUMPTION_TEXT: {
- 'xyz.openbmc_project.Sensor.Value.Unit.Watts': 'W',
- notavailable: 'Not Available'
- },
- };
- });
+ angular
+ .module('app.common.services', [])
+ .service('Constants', function() {
+ return {
+ API_CREDENTIALS: {
+ host_storage_key: 'API_HOST_KEY',
+ default_protocol: 'https'
+ },
+ API_RESPONSE: {
+ ERROR_STATUS: 'error',
+ ERROR_MESSAGE: '401 Unauthorized',
+ SUCCESS_STATUS: 'ok',
+ SUCCESS_MESSAGE: '200 OK'
+ },
+ CHASSIS_POWER_STATE: {
+ on: 'On',
+ on_code: 'xyz.openbmc_project.State.Chassis.PowerState.On',
+ off: 'Off',
+ off_code: 'xyz.openbmc_project.State.Chassis.PowerState.Off'
+ },
+ HOST_STATE_TEXT: {
+ on: 'Running',
+ on_code: 'xyz.openbmc_project.State.Host.HostState.Running',
+ off: 'Off',
+ off_code: 'xyz.openbmc_project.State.Host.HostState.Off',
+ error: 'Quiesced',
+ error_code: 'xyz.openbmc_project.State.Host.HostState.Quiesced',
+ unreachable: 'Unreachable'
+ },
+ HOST_STATE: {
+ on: 1,
+ off: -1,
+ error: 0,
+ unreachable: -2
+ },
+ LED_STATE: {
+ on: true,
+ off: false
+ },
+ LED_STATE_TEXT: {
+ on: 'on',
+ off: 'off'
+ },
+ SEVERITY_TO_HEALTH_MAP: {
+ Emergency: 'Critical',
+ Alert: 'Critical',
+ Critical: 'Critical',
+ Error: 'Warning',
+ Warning: 'Warning',
+ Notice: 'Good',
+ Debug: 'Good',
+ Informational: 'Good'
+ },
+ SEVERITY_TO_PRIORITY_MAP: {
+ Emergency: 'High',
+ Alert: 'High',
+ Critical: 'High',
+ Error: 'High',
+ Warning: 'Medium',
+ Notice: 'Low',
+ Debug: 'Low',
+ Informational: 'Low'
+ },
+ PAGINATION: {
+ LOG_ITEMS_PER_PAGE: 25
+ },
+ HARDWARE: {
+ component_key_filter: '/xyz/openbmc_project/inventory/system',
+ parent_components: [
+ /xyz\/openbmc_project\/inventory\/system\/chassis\/motherboard\/cpu\d+\//
+ ],
+ uppercase_titles: [
+ 'cpu', 'dimm'
+ ]
+ },
+ SENSOR_UNIT_MAP: {
+ 'xyz.openbmc_project.Sensor.Value.Unit.RPMS': 'rpms',
+ 'xyz.openbmc_project.Sensor.Value.Unit.DegreesC': 'C',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Volts': 'volts',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Meters': 'meters',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Watts': 'watts',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Amperes': 'amperes',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Joules': 'joules'
+ },
+ SERVER_HEALTH: {
+ critical: 'Critical',
+ warning: 'Warning',
+ good: 'Good',
+ unknown: 'Unknown'
+ },
+ SENSOR_SORT_ORDER: [
+ 'xyz.openbmc_project.Sensor.Value.Unit.DegreesC',
+ 'xyz.openbmc_project.Sensor.Value.Unit.RPMS',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Meters',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Volts',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Amperes',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Joules',
+ 'xyz.openbmc_project.Sensor.Value.Unit.Meters'
+ ],
+ SENSOR_SORT_ORDER_DEFAULT: 8,
+ FIRMWARE: {
+ ACTIVATE_FIRMWARE: 'xyz.openbmc_project.Software.Activation.RequestedActivations.Active',
+ FUNCTIONAL_OBJPATH: '/xyz/openbmc_project/software/functional'
+ },
+ POLL_INTERVALS: {
+ ACTIVATION: 5000,
+ DOWNLOAD_IMAGE: 5000,
+ POWER_OP: 5000,
+ },
+ TIMEOUT: {
+ ACTIVATION: 1000 * 60 * 10, // 10 mins
+ DOWNLOAD_IMAGE: 1000 * 60 * 2, // 2 mins
+ CHASSIS_OFF: 1000 * 60 * 5, // 5 mins
+ HOST_ON: 1000 * 60 * 5, // 5 mins
+ HOST_OFF: 1000 * 60 * 5, // 5 mins
+ },
+ MESSAGES: {
+ POLL: {
+ CHASSIS_OFF_TIMEOUT: 'Time out. Chassis did not reach power off state in allotted time.',
+ HOST_ON_TIMEOUT: 'Time out. System did not reach Running state in allotted time.',
+ HOST_OFF_TIMEOUT: 'Time out. System did not reach Off state in allotted time.',
+ HOST_QUIESCED: 'System is in Error state.',
+ DOWNLOAD_IMAGE_TIMEOUT: 'Time out. Did not download image in allotted time.',
+ },
+ POWER_OP: {
+ POWER_ON_FAILED: 'Power On Failed',
+ WARM_REBOOT_FAILED: 'Warm Reboot Failed',
+ COLD_REBOOT_FAILED: 'Cold Reboot Failed',
+ ORDERLY_SHUTDOWN_FAILED: 'Orderly Shutdown Failed',
+ IMMEDIATE_SHUTDOWN_FAILED: 'Immediate Shutdown Failed',
+ },
+ SENSOR: {
+ NO_SENSOR_DATA: 'There are no sensors found.',
+ CRITICAL_NO_SENSOR_DATA: 'There are no sensors in Critical state.',
+ WARNING_NO_SENSOR_DATA: 'There are no sensors in Warning state.',
+ NORMAL_NO_SENSOR_DATA: 'There are no sensors in Normal state.'
+ },
+ ERROR_MODAL: {
+ TITLE: 'Unexpected error',
+ DESCRIPTION: 'Oops! An unexpected error occurred. Record specific details of the issue, then contact your company support services.'
+ },
+ ERROR_MESSAGE_DESC_TEMPLATE: '{{status}} - {{description}}',
+ },
+ POWER_CAP_TEXT: {
+ unit: 'W',
+ disabled: 'Not Enabled'
+ },
+ POWER_CONSUMPTION_TEXT: {
+ 'xyz.openbmc_project.Sensor.Value.Unit.Watts': 'W',
+ notavailable: 'Not Available'
+ },
+ };
+ });
})(window.angular);
diff --git a/app/common/services/dataService.js b/app/common/services/dataService.js
index d39e757..79a3a0e 100644
--- a/app/common/services/dataService.js
+++ b/app/common/services/dataService.js
@@ -7,141 +7,144 @@
*/
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.services')
- .service('dataService', ['Constants', function (Constants) {
- this.server_health = Constants.SERVER_HEALTH.unknown;
- this.server_state = 'Unreachable';
- this.server_status = -2;
- this.chassis_state = 'On';
- this.LED_state = Constants.LED_STATE_TEXT.off;
- this.last_updated = new Date();
+ angular
+ .module('app.common.services')
+ .service('dataService', ['Constants', function(Constants) {
+ this.server_health = Constants.SERVER_HEALTH.unknown;
+ this.server_state = 'Unreachable';
+ this.server_status = -2;
+ this.chassis_state = 'On';
+ this.LED_state = Constants.LED_STATE_TEXT.off;
+ this.last_updated = new Date();
- this.loading = false;
- this.server_unreachable = false;
- this.loading_message = "";
- this.showNavigation = false;
- this.bodyStyle = {};
- this.path = '';
- this.sensorData = [];
+ this.loading = false;
+ this.server_unreachable = false;
+ this.loading_message = '';
+ this.showNavigation = false;
+ this.bodyStyle = {};
+ this.path = '';
+ this.sensorData = [];
- this.hostname = "";
- this.mac_address = "";
- this.remote_window_active = false;
+ this.hostname = '';
+ this.mac_address = '';
+ this.remote_window_active = false;
- this.displayErrorModal = false;
- this.errorModalDetails = {};
+ this.displayErrorModal = false;
+ this.errorModalDetails = {};
- this.ignoreHttpError = false;
- this.getServerId = function(){
- return this.host.replace(/^https?\:\/\//ig,"");
- }
+ this.ignoreHttpError = false;
+ this.getServerId = function() {
+ return this.host.replace(/^https?\:\/\//ig, '');
+ };
- this.reloadServerId = function(){
- this.server_id = this.getServerId();
- }
+ this.reloadServerId = function() {
+ this.server_id = this.getServerId();
+ };
- this.getHost = function(){
- if(sessionStorage.getItem(Constants.API_CREDENTIALS.host_storage_key) !== null){
- return sessionStorage.getItem(Constants.API_CREDENTIALS.host_storage_key);
- }else{
- return Constants.API_CREDENTIALS.default_protocol + "://" +
- window.location.hostname +
- (window.location.port ? ":" + window.location.port : "");
- }
- }
+ this.getHost = function() {
+ if (sessionStorage.getItem(Constants.API_CREDENTIALS.host_storage_key) !== null) {
+ return sessionStorage.getItem(Constants.API_CREDENTIALS.host_storage_key);
+ }
+ else {
+ return Constants.API_CREDENTIALS.default_protocol + '://' +
+ window.location.hostname +
+ (window.location.port ? ':' + window.location.port : '');
+ }
+ };
- this.setHost = function(hostWithPort){
- hostWithPort = hostWithPort.replace(/^https?\:\/\//ig, '');
- var hostURL = Constants.API_CREDENTIALS.default_protocol + "://" + hostWithPort;
- sessionStorage.setItem(Constants.API_CREDENTIALS.host_storage_key, hostURL);
- this.host = hostURL;
- this.reloadServerId();
- }
+ this.setHost = function(hostWithPort) {
+ hostWithPort = hostWithPort.replace(/^https?\:\/\//ig, '');
+ var hostURL = Constants.API_CREDENTIALS.default_protocol + '://' + hostWithPort;
+ sessionStorage.setItem(Constants.API_CREDENTIALS.host_storage_key, hostURL);
+ this.host = hostURL;
+ this.reloadServerId();
+ };
- this.getUser = function(){
- return sessionStorage.getItem('LOGIN_ID');
- }
+ this.getUser = function() {
+ return sessionStorage.getItem('LOGIN_ID');
+ };
- this.host = this.getHost();
- this.server_id = this.getServerId();
+ this.host = this.getHost();
+ this.server_id = this.getServerId();
- this.setNetworkInfo = function(data){
- this.hostname = data.hostname;
- this.mac_address = data.mac_address;
- }
+ this.setNetworkInfo = function(data) {
+ this.hostname = data.hostname;
+ this.mac_address = data.mac_address;
+ };
- this.setPowerOnState = function(){
- this.server_state = Constants.HOST_STATE_TEXT.on;
- this.server_status = Constants.HOST_STATE.on;
- }
+ this.setPowerOnState = function() {
+ this.server_state = Constants.HOST_STATE_TEXT.on;
+ this.server_status = Constants.HOST_STATE.on;
+ };
- this.setPowerOffState = function(){
- this.server_state = Constants.HOST_STATE_TEXT.off;
- this.server_status = Constants.HOST_STATE.off;
- }
+ this.setPowerOffState = function() {
+ this.server_state = Constants.HOST_STATE_TEXT.off;
+ this.server_status = Constants.HOST_STATE.off;
+ };
- this.setErrorState = function(){
- this.server_state = Constants.HOST_STATE_TEXT.error;
- this.server_status = Constants.HOST_STATE.error;
- }
+ this.setErrorState = function() {
+ this.server_state = Constants.HOST_STATE_TEXT.error;
+ this.server_status = Constants.HOST_STATE.error;
+ };
- this.setUnreachableState = function(){
- this.server_state = Constants.HOST_STATE_TEXT.unreachable;
- this.server_status = Constants.HOST_STATE.unreachable;
- }
+ this.setUnreachableState = function() {
+ this.server_state = Constants.HOST_STATE_TEXT.unreachable;
+ this.server_status = Constants.HOST_STATE.unreachable;
+ };
- this.setRemoteWindowActive = function(){
- this.remote_window_active = true;
- }
+ this.setRemoteWindowActive = function() {
+ this.remote_window_active = true;
+ };
- this.setRemoteWindowInactive = function(){
- this.remote_window_active = false;
- }
+ this.setRemoteWindowInactive = function() {
+ this.remote_window_active = false;
+ };
- this.updateServerHealth = function(logs){
- var criticals = logs.filter(function(item){
- return item.health_flags.critical == true;
- });
+ this.updateServerHealth = function(logs) {
+ var criticals = logs.filter(function(item) {
+ return item.health_flags.critical == true;
+ });
- if(criticals.length){
- this.server_health = Constants.SERVER_HEALTH.critical;
- return;
- }
+ if (criticals.length) {
+ this.server_health = Constants.SERVER_HEALTH.critical;
+ return;
+ }
- var warnings = logs.filter(function(item){
- return item.health_flags.warning == true;
- });
+ var warnings = logs.filter(function(item) {
+ return item.health_flags.warning == true;
+ });
- if(warnings.length){
- this.server_health = Constants.SERVER_HEALTH.warning;
- return;
- }
+ if (warnings.length) {
+ this.server_health = Constants.SERVER_HEALTH.warning;
+ return;
+ }
- this.server_health = Constants.SERVER_HEALTH.good;
- }
+ this.server_health = Constants.SERVER_HEALTH.good;
+ };
- this.activateErrorModal = function(data){
- if(data && data.hasOwnProperty('title')){
- this.errorModalDetails.title = data.title;
- }else{
- this.errorModalDetails.title = Constants.MESSAGES.ERROR_MODAL.TITLE;
- }
+ this.activateErrorModal = function(data) {
+ if (data && data.hasOwnProperty('title')) {
+ this.errorModalDetails.title = data.title;
+ }
+ else {
+ this.errorModalDetails.title = Constants.MESSAGES.ERROR_MODAL.TITLE;
+ }
- if(data && data.hasOwnProperty('description')){
- this.errorModalDetails.description = data.description;
- }else{
- this.errorModalDetails.description = Constants.MESSAGES.ERROR_MODAL.DESCRIPTION;
- }
- this.displayErrorModal = true;
- }
+ if (data && data.hasOwnProperty('description')) {
+ this.errorModalDetails.description = data.description;
+ }
+ else {
+ this.errorModalDetails.description = Constants.MESSAGES.ERROR_MODAL.DESCRIPTION;
+ }
+ this.displayErrorModal = true;
+ };
- this.deactivateErrorModal = function(){
- this.displayErrorModal = false;
- }
- }]);
+ this.deactivateErrorModal = function() {
+ this.displayErrorModal = false;
+ };
+ }]);
})(window.angular);
diff --git a/app/common/services/index.js b/app/common/services/index.js
index a33003a..d234069 100644
--- a/app/common/services/index.js
+++ b/app/common/services/index.js
@@ -5,13 +5,13 @@
* @exports app/common/services/index
*/
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.services', [
- // Dependencies
- // Basic resources
- ]);
+ angular
+ .module('app.common.services', [
+ // Dependencies
+ // Basic resources
+ ]);
})(window.angular);
diff --git a/app/common/services/userModel.js b/app/common/services/userModel.js
index e25d3f9..cd943f9 100644
--- a/app/common/services/userModel.js
+++ b/app/common/services/userModel.js
@@ -7,53 +7,59 @@
*/
-window.angular && (function (angular) {
- 'use strict';
+window.angular && (function(angular) {
+ 'use strict';
- angular
- .module('app.common.services')
- .service('userModel', ['APIUtils',function(APIUtils){
- return {
- login : function(username, password, callback){
- APIUtils.login(username, password, function(response, error){
- if(response &&
- (response.status == APIUtils.API_RESPONSE.SUCCESS_STATUS
- || response.status === undefined)){
- sessionStorage.setItem('LOGIN_ID', username);
- callback(true);
- }else if(response && response.data && response.data.data
- && response.data.data.description){
- callback(false, response.data.data.description);
- }else if(response && response.message){
- callback(false, response.message);
- }else if(error){
- callback(false, 'Server unreachable');
- }else{
- callback(false, 'Internal error');
- }
- });
- },
- isLoggedIn : function(){
- if(sessionStorage.getItem('LOGIN_ID') === null){
- return false;
- }
- return true;
- },
- logout : function(callback){
- APIUtils.logout(function(response, error){
- if(response &&
- response.status == APIUtils.API_RESPONSE.SUCCESS_STATUS){
- sessionStorage.removeItem('LOGIN_ID');
- sessionStorage.removeItem(APIUtils.HOST_SESSION_STORAGE_KEY);
- callback(true);
- }else if(response.status == APIUtils.API_RESPONSE.ERROR_STATUS){
- callback(false);
- }else{
- callback(false, error);
- }
- });
- }
- };
- }]);
+ angular
+ .module('app.common.services')
+ .service('userModel', ['APIUtils', function(APIUtils) {
+ return {
+ login: function(username, password, callback) {
+ APIUtils.login(username, password, function(response, error) {
+ if (response &&
+ (response.status == APIUtils.API_RESPONSE.SUCCESS_STATUS ||
+ response.status === undefined)) {
+ sessionStorage.setItem('LOGIN_ID', username);
+ callback(true);
+ }
+ else if (response && response.data && response.data.data &&
+ response.data.data.description) {
+ callback(false, response.data.data.description);
+ }
+ else if (response && response.message) {
+ callback(false, response.message);
+ }
+ else if (error) {
+ callback(false, 'Server unreachable');
+ }
+ else {
+ callback(false, 'Internal error');
+ }
+ });
+ },
+ isLoggedIn: function() {
+ if (sessionStorage.getItem('LOGIN_ID') === null) {
+ return false;
+ }
+ return true;
+ },
+ logout: function(callback) {
+ APIUtils.logout(function(response, error) {
+ if (response &&
+ response.status == APIUtils.API_RESPONSE.SUCCESS_STATUS) {
+ sessionStorage.removeItem('LOGIN_ID');
+ sessionStorage.removeItem(APIUtils.HOST_SESSION_STORAGE_KEY);
+ callback(true);
+ }
+ else if (response.status == APIUtils.API_RESPONSE.ERROR_STATUS) {
+ callback(false);
+ }
+ else {
+ callback(false, error);
+ }
+ });
+ }
+ };
+ }]);
})(window.angular);