WebUI: Sensors page modifications
Modified sensors page to use Redfish as backend.
Also added threshold sensor values in page view.
Tested By:
Loaded webui page and tested all operations.
- Sensors page load and layout.
- Search Filter and Severity filters.
- Export functionality.
Change-Id: Ic799453ffcd17e9a69e073a12173b4e97a928458
Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
diff --git a/app/common/services/api-utils.js b/app/common/services/api-utils.js
index 211f6d7..7643a4e 100644
--- a/app/common/services/api-utils.js
+++ b/app/common/services/api-utils.js
@@ -931,158 +931,55 @@
return deferred.promise;
},
- getAllSensorStatus: function(callback) {
+ 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 = [];
$http({
method: 'GET',
- url: DataService.getHost() +
- '/xyz/openbmc_project/sensors/enumerate',
+ url: DataService.getHost() + '/redfish/v1/Chassis',
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;
- });
-
- 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]}
+ 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);
},
- content.data[key]));
- }
- }
-
- callback(sensorData, dataClone);
+ function(errors) {
+ deferred.reject(errors);
+ });
},
function(error) {
- console.log(error);
+ console.log(JSON.stringify(error));
});
+ return deferred.promise;
},
getActivation: function(imageId) {
return $http({