From dca9b0a5baddfec7ea0ea5e4bdb63c2dd0be27b2 Mon Sep 17 00:00:00 2001 From: MichalX Szopinski Date: Fri, 7 May 2021 13:14:50 +0200 Subject: Remove hardcoded chassis in power supplies According to our conversation on community meeting we want to remove all hardcoded chassis names in request URL. This change corrects the "Power supplies" table in "Hardware Status" view. Signed-off-by: MichalX Szopinski Change-Id: I5219c68b71477adee5f6785c58808eeaa5d35986 --- src/store/modules/Health/PowerSupplyStore.js | 28 ++++++++++++++++++---- .../HardwareStatusTablePowerSupplies.vue | 2 +- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/store/modules/Health/PowerSupplyStore.js b/src/store/modules/Health/PowerSupplyStore.js index 565715fa..cc82f2ef 100644 --- a/src/store/modules/Health/PowerSupplyStore.js +++ b/src/store/modules/Health/PowerSupplyStore.js @@ -38,14 +38,34 @@ const PowerSupplyStore = { }, }, actions: { - async getPowerSupply({ commit }) { + async getChassisCollection() { return await api - .get('/redfish/v1/Chassis/chassis/Power') - .then(({ data: { PowerSupplies } }) => - commit('setPowerSupply', PowerSupplies) + .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)); + }, }, }; diff --git a/src/views/Health/HardwareStatus/HardwareStatusTablePowerSupplies.vue b/src/views/Health/HardwareStatus/HardwareStatusTablePowerSupplies.vue index 3de69198..ba1537b7 100644 --- a/src/views/Health/HardwareStatus/HardwareStatusTablePowerSupplies.vue +++ b/src/views/Health/HardwareStatus/HardwareStatusTablePowerSupplies.vue @@ -165,7 +165,7 @@ export default { }, }, created() { - this.$store.dispatch('powerSupply/getPowerSupply').finally(() => { + this.$store.dispatch('powerSupply/getAllPowerSupplies').finally(() => { // Emit initial data fetch complete to parent component this.$root.$emit('hardware-status-power-supplies-complete'); }); -- cgit v1.2.3