summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/store/modules/Health/PowerSupplyStore.js28
-rw-r--r--src/views/Health/HardwareStatus/HardwareStatusTablePowerSupplies.vue2
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');
});