blob: 251279e68ad6f5d021baada4ce42ae3c56b80466 [file] [log] [blame]
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -07001import api from '@/store/api';
2
3const ChassisStore = {
4 namespaced: true,
5 state: {
Derick Montague602e98a2020-10-21 16:20:00 -05006 chassis: [],
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -07007 },
8 getters: {
Derick Montague602e98a2020-10-21 16:20:00 -05009 chassis: (state) => state.chassis,
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070010 },
11 mutations: {
12 setChassisInfo: (state, data) => {
Derick Montague602e98a2020-10-21 16:20:00 -050013 state.chassis = data.map((chassis) => {
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070014 const {
15 Id,
16 Status = {},
17 PartNumber,
18 SerialNumber,
19 ChassisType,
20 Manufacturer,
Derick Montague602e98a2020-10-21 16:20:00 -050021 PowerState,
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070022 } = chassis;
23
24 return {
25 id: Id,
26 health: Status.Health,
27 partNumber: PartNumber,
28 serialNumber: SerialNumber,
29 chassisType: ChassisType,
30 manufacturer: Manufacturer,
31 powerState: PowerState,
32 statusState: Status.State,
Derick Montague602e98a2020-10-21 16:20:00 -050033 healthRollup: Status.HealthRollup,
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070034 };
35 });
Derick Montague602e98a2020-10-21 16:20:00 -050036 },
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070037 },
38 actions: {
39 async getChassisInfo({ commit }) {
40 return await api
41 .get('/redfish/v1/Chassis')
42 .then(({ data: { Members = [] } }) =>
Derick Montague602e98a2020-10-21 16:20:00 -050043 Members.map((member) => api.get(member['@odata.id']))
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070044 )
Derick Montague602e98a2020-10-21 16:20:00 -050045 .then((promises) => api.all(promises))
46 .then((response) => {
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070047 const data = response.map(({ data }) => data);
48 commit('setChassisInfo', data);
49 })
Derick Montague602e98a2020-10-21 16:20:00 -050050 .catch((error) => console.log(error));
51 },
52 },
Yoshie Muranaka09e8b5d2020-06-08 07:36:59 -070053};
54
55export default ChassisStore;