summaryrefslogtreecommitdiff
path: root/src/store/modules/HardwareStatus/PowerSupplyStore.js
diff options
context:
space:
mode:
authorSandeepa Singh <sandeepa.singh@ibm.com>2021-07-06 13:59:10 +0300
committerDerick Montague <derick.montague@ibm.com>2021-08-10 22:20:42 +0300
commit7affc529b7fba41193c4d48764707e9961cdd22d (patch)
treed198c2026a40faf07d622492297aed488b17fccb /src/store/modules/HardwareStatus/PowerSupplyStore.js
parent828dda9b187684902710bb11621eca27bf0c6eec (diff)
downloadwebui-vue-7affc529b7fba41193c4d48764707e9961cdd22d.tar.xz
IA update: Update health section
This is the second update to information architecture changes and has the following changes: - Health section is updated to hardware status section - Hardware status page is updated to inventory and LEDs page - Route for sensors page has been updated Signed-off-by: Sandeepa Singh <sandeepa.singh@ibm.com> Change-Id: Ia1ba3a15a243a00f59a2ec646132436eb355a999
Diffstat (limited to 'src/store/modules/HardwareStatus/PowerSupplyStore.js')
-rw-r--r--src/store/modules/HardwareStatus/PowerSupplyStore.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/store/modules/HardwareStatus/PowerSupplyStore.js b/src/store/modules/HardwareStatus/PowerSupplyStore.js
new file mode 100644
index 00000000..f7be2809
--- /dev/null
+++ b/src/store/modules/HardwareStatus/PowerSupplyStore.js
@@ -0,0 +1,78 @@
+import api from '@/store/api';
+
+const PowerSupplyStore = {
+ namespaced: true,
+ state: {
+ powerSupplies: [],
+ },
+ getters: {
+ powerSupplies: (state) => state.powerSupplies,
+ },
+ mutations: {
+ setPowerSupply: (state, data) => {
+ state.powerSupplies = data.map((powerSupply) => {
+ const {
+ EfficiencyPercent,
+ FirmwareVersion,
+ LocationIndicatorActive,
+ MemberId,
+ Manufacturer,
+ Model,
+ Name,
+ PartNumber,
+ PowerInputWatts,
+ SerialNumber,
+ SparePartNumber,
+ Status = {},
+ } = powerSupply;
+ return {
+ id: MemberId,
+ health: Status.Health,
+ partNumber: PartNumber,
+ serialNumber: SerialNumber,
+ efficiencyPercent: EfficiencyPercent,
+ firmwareVersion: FirmwareVersion,
+ identifyLed: LocationIndicatorActive,
+ manufacturer: Manufacturer,
+ model: Model,
+ powerInputWatts: PowerInputWatts,
+ name: Name,
+ sparePartNumber: SparePartNumber,
+ statusState: Status.State,
+ };
+ });
+ },
+ },
+ actions: {
+ async getChassisCollection() {
+ return await api
+ .get('/redfish/v1/Chassis')
+ .then(({ data: { Members } }) =>
+ Members.map((member) => member['@odata.id'])
+ )
+ .catch((error) => console.log(error));
+ },
+ async getAllPowerSupplies({ dispatch, commit }) {
+ const collection = await dispatch('getChassisCollection');
+ if (!collection) return;
+ return await api
+ .all(collection.map((chassis) => dispatch('getChassisPower', chassis)))
+ .then((supplies) => {
+ let suppliesList = [];
+ supplies.forEach(
+ (supply) => (suppliesList = [...suppliesList, ...supply])
+ );
+ commit('setPowerSupply', suppliesList);
+ })
+ .catch((error) => console.log(error));
+ },
+ async getChassisPower(_, id) {
+ return await api
+ .get(`${id}/Power`)
+ .then(({ data: { PowerSupplies } }) => PowerSupplies || [])
+ .catch((error) => console.log(error));
+ },
+ },
+};
+
+export default PowerSupplyStore;