| 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, |
| Location, |
| 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, |
| locationNumber: Location?.PartLocation?.ServiceLabel, |
| 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; |