diff options
author | Sandeepa Singh <sandeepa.singh@ibm.com> | 2021-07-06 13:59:10 +0300 |
---|---|---|
committer | Derick Montague <derick.montague@ibm.com> | 2021-08-10 22:20:42 +0300 |
commit | 7affc529b7fba41193c4d48764707e9961cdd22d (patch) | |
tree | d198c2026a40faf07d622492297aed488b17fccb /src/store/modules/HardwareStatus/ChassisStore.js | |
parent | 828dda9b187684902710bb11621eca27bf0c6eec (diff) | |
download | webui-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/ChassisStore.js')
-rw-r--r-- | src/store/modules/HardwareStatus/ChassisStore.js | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/store/modules/HardwareStatus/ChassisStore.js b/src/store/modules/HardwareStatus/ChassisStore.js new file mode 100644 index 00000000..b5edef56 --- /dev/null +++ b/src/store/modules/HardwareStatus/ChassisStore.js @@ -0,0 +1,89 @@ +import api from '@/store/api'; +import i18n from '@/i18n'; + +const ChassisStore = { + namespaced: true, + state: { + chassis: [], + }, + getters: { + chassis: (state) => state.chassis, + }, + mutations: { + setChassisInfo: (state, data) => { + state.chassis = data.map((chassis) => { + const { + Id, + Status = {}, + PartNumber, + SerialNumber, + ChassisType, + Manufacturer, + PowerState, + LocationIndicatorActive, + AssetTag, + MaxPowerWatts, + MinPowerWatts, + Name, + } = chassis; + + return { + id: Id, + health: Status.Health, + partNumber: PartNumber, + serialNumber: SerialNumber, + chassisType: ChassisType, + manufacturer: Manufacturer, + powerState: PowerState, + statusState: Status.State, + healthRollup: Status.HealthRollup, + assetTag: AssetTag, + maxPowerWatts: MaxPowerWatts, + minPowerWatts: MinPowerWatts, + name: Name, + identifyLed: LocationIndicatorActive, + uri: chassis['@odata.id'], + }; + }); + }, + }, + actions: { + async getChassisInfo({ commit }) { + return await api + .get('/redfish/v1/Chassis') + .then(({ data: { Members = [] } }) => + Members.map((member) => api.get(member['@odata.id'])) + ) + .then((promises) => api.all(promises)) + .then((response) => { + const data = response.map(({ data }) => data); + commit('setChassisInfo', data); + }) + .catch((error) => console.log(error)); + }, + async updateIdentifyLedValue({ dispatch }, led) { + const uri = led.uri; + const updatedIdentifyLedValue = { + LocationIndicatorActive: led.identifyLed, + }; + return await api + .patch(uri, updatedIdentifyLedValue) + .then(() => dispatch('getChassisInfo')) + .catch((error) => { + dispatch('getChassisInfo'); + console.log('error', error); + if (led.identifyLed) { + throw new Error( + i18n.t('pageInventory.toast.errorEnableIdentifyLed') + ); + } else { + throw new Error( + i18n.t('pageInventory.toast.errorDisableIdentifyLed') + ); + } + }); + }, + }, +}; + +export default ChassisStore; |