diff options
-rw-r--r-- | src/store/modules/Health/PowerSupplyStore.js | 28 | ||||
-rw-r--r-- | src/views/Health/HardwareStatus/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'); }); |