diff options
| author | Gunnar Mills <gmills@us.ibm.com> | 2019-04-17 14:30:39 -0500 |
|---|---|---|
| committer | Gunnar Mills <gmills@us.ibm.com> | 2019-05-01 13:54:08 +0000 |
| commit | 615a2f896951643ae32e35b308e9bff649caf331 (patch) | |
| tree | 2ae488d6a68fc6229230f16b2e7ee6f742f6ff6c /app/common | |
| parent | e5fb403d6bc723157a6167b84762fc66b0525b5b (diff) | |
| download | phosphor-webui-615a2f896951643ae32e35b308e9bff649caf331.tar.gz phosphor-webui-615a2f896951643ae32e35b308e9bff649caf331.zip | |
Revert "WebUI: Sensors page modifications"
This reverts commit 2f481e4cb83f0c72a9f3aad11431e4abcf5d632c.
"/xyz/openbmc_project/sensors/power/" sensors (e.g. p0_vcs_power)
and "/xyz/openbmc_project/sensors/current/" sensors
(e.g. p0_vcs_current) are no longer on the GUI Sensors Page.
Since all sensors do not map to Thermal or Power, the
SensorCollection, /redfish/v1/Chassis/{ChassisId}/Sensors,
needs to be implemented before we move the GUI sensors page
over to Redfish.
The SensorCollection contains all sensors not covered elsewhere
in the model.
The SensorCollection will contain all sensors under
/current and all non-powersupply sensors under /power.
IBM is planning on working on the SensorCollection, it will be
sometime before the code is in because of this, reverting
moving the GUI sensor page over to Redfish.
Apologies on not catching this in the review.
For more information see:
https://redfishforum.com/thread/190/sensorcollection-contain-all-sensors-chassis
https://redfish.dmtf.org/schemas/SensorCollection.json
Tested: The current and power sensors are back on the Sensor page.
Change-Id: Ia818fc05b49a8181b71f8756a6066c27e94dc46e
Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
Diffstat (limited to 'app/common')
| -rw-r--r-- | app/common/services/api-utils.js | 181 |
1 files changed, 142 insertions, 39 deletions
diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js index 7643a4e..211f6d7 100644 --- a/app/common/services/api-utils.js +++ b/app/common/services/api-utils.js @@ -931,55 +931,158 @@ window.angular && (function(angular) { return deferred.promise; }, - getSensorsInfo: function(url) { - return $http({ - method: 'GET', - url: DataService.getHost() + url, - withCredentials: true - }) - .then( - function(response) { - return response.data; - }, - function(error) { - console.log(JSON.stringify(error)); - }); - }, - getAllChassisCollection: function() { - var deferred = $q.defer(); - var promises = []; + getAllSensorStatus: function(callback) { $http({ method: 'GET', - url: DataService.getHost() + '/redfish/v1/Chassis', + url: DataService.getHost() + + '/xyz/openbmc_project/sensors/enumerate', withCredentials: true }) .then( function(response) { - var members = response.data['Members']; - angular.forEach( - members, - function(member) { - promises.push($http({ - method: 'GET', - url: DataService.getHost() + - member['@odata.id'], - withCredentials: true - }).then(function(res) { - return res.data; - })); - }), - $q.all(promises).then( - function(results) { - deferred.resolve(results); + 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; + }); + + 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]} }, - function(errors) { - deferred.reject(errors); - }); + content.data[key])); + } + } + + callback(sensorData, dataClone); }, function(error) { - console.log(JSON.stringify(error)); + console.log(error); }); - return deferred.promise; }, getActivation: function(imageId) { return $http({ |

