summaryrefslogtreecommitdiffstats
path: root/app/common
diff options
context:
space:
mode:
authorGunnar Mills <gmills@us.ibm.com>2019-04-17 14:30:39 -0500
committerGunnar Mills <gmills@us.ibm.com>2019-05-01 13:54:08 +0000
commit615a2f896951643ae32e35b308e9bff649caf331 (patch)
tree2ae488d6a68fc6229230f16b2e7ee6f742f6ff6c /app/common
parente5fb403d6bc723157a6167b84762fc66b0525b5b (diff)
downloadphosphor-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.js181
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({
OpenPOWER on IntegriCloud