xref: /openbmc/webui-vue/src/store/modules/HardwareStatus/MemoryStore.js (revision de23ea23d88451a2fa2774ec72053772603c23ae)
17affc529SSandeepa Singhimport api from '@/store/api';
281876788SSandeepa Singhimport i18n from '@/i18n';
37affc529SSandeepa Singh
47affc529SSandeepa Singhconst MemoryStore = {
57affc529SSandeepa Singh  namespaced: true,
67affc529SSandeepa Singh  state: {
77affc529SSandeepa Singh    dimms: [],
87affc529SSandeepa Singh  },
97affc529SSandeepa Singh  getters: {
107affc529SSandeepa Singh    dimms: (state) => state.dimms,
117affc529SSandeepa Singh  },
127affc529SSandeepa Singh  mutations: {
137affc529SSandeepa Singh    setMemoryInfo: (state, data) => {
147affc529SSandeepa Singh      state.dimms = data.map(({ data }) => {
1581876788SSandeepa Singh        const {
1681876788SSandeepa Singh          Id,
1781876788SSandeepa Singh          Status = {},
1861fdd942SSandeepa Singh          BaseModuleType,
1961fdd942SSandeepa Singh          BusWidthBits,
2061fdd942SSandeepa Singh          CapacityMiB,
2161fdd942SSandeepa Singh          DataWidthBits,
2261fdd942SSandeepa Singh          Enabled,
23af76e2bcSJason M. Bills          ErrorCorrection,
24af76e2bcSJason M. Bills          Manufacturer,
2561fdd942SSandeepa Singh          OperatingSpeedMhz,
2681876788SSandeepa Singh          PartNumber,
27af76e2bcSJason M. Bills          RankCount,
2881876788SSandeepa Singh          SerialNumber,
2981876788SSandeepa Singh          SparePartNumber,
3081876788SSandeepa Singh          Description,
3181876788SSandeepa Singh          MemoryType,
3281876788SSandeepa Singh          LocationIndicatorActive,
3381876788SSandeepa Singh          Location,
3481876788SSandeepa Singh        } = data;
357affc529SSandeepa Singh        return {
367affc529SSandeepa Singh          id: Id,
377affc529SSandeepa Singh          health: Status.Health,
3861fdd942SSandeepa Singh          baseModuleType: BaseModuleType,
3961fdd942SSandeepa Singh          busWidthBits: BusWidthBits,
4061fdd942SSandeepa Singh          capacityMiB: CapacityMiB,
4161fdd942SSandeepa Singh          dataWidthBits: DataWidthBits,
4261fdd942SSandeepa Singh          operatingSpeedMhz: OperatingSpeedMhz,
4361fdd942SSandeepa Singh          enabled: Enabled,
44af76e2bcSJason M. Bills          errorCorrection: ErrorCorrection,
45af76e2bcSJason M. Bills          manufacturer: Manufacturer,
467affc529SSandeepa Singh          partNumber: PartNumber,
47af76e2bcSJason M. Bills          rankCount: RankCount,
487affc529SSandeepa Singh          serialNumber: SerialNumber,
497affc529SSandeepa Singh          statusState: Status.State,
5081876788SSandeepa Singh          sparePartNumber: SparePartNumber,
5181876788SSandeepa Singh          description: Description,
5281876788SSandeepa Singh          memoryType: MemoryType,
5381876788SSandeepa Singh          identifyLed: LocationIndicatorActive,
5481876788SSandeepa Singh          uri: data['@odata.id'],
5581876788SSandeepa Singh          locationNumber: Location?.PartLocation?.ServiceLabel,
567affc529SSandeepa Singh        };
577affc529SSandeepa Singh      });
587affc529SSandeepa Singh    },
597affc529SSandeepa Singh  },
607affc529SSandeepa Singh  actions: {
617affc529SSandeepa Singh    async getDimms({ commit }) {
627affc529SSandeepa Singh      return await api
638841b7d4SSean Zhang        .get(`${await this.dispatch('global/getSystemPath')}/Memory`)
647affc529SSandeepa Singh        .then(({ data: { Members } }) => {
657affc529SSandeepa Singh          const promises = Members.map((item) => api.get(item['@odata.id']));
667affc529SSandeepa Singh          return api.all(promises);
677affc529SSandeepa Singh        })
687affc529SSandeepa Singh        .then((response) => commit('setMemoryInfo', response))
697affc529SSandeepa Singh        .catch((error) => console.log(error));
707affc529SSandeepa Singh    },
7181876788SSandeepa Singh    async updateIdentifyLedValue({ dispatch }, led) {
7281876788SSandeepa Singh      const uri = led.uri;
7381876788SSandeepa Singh      const updatedIdentifyLedValue = {
7481876788SSandeepa Singh        LocationIndicatorActive: led.identifyLed,
7581876788SSandeepa Singh      };
76f11a1901SNikhil Ashoka      return await api
77f11a1901SNikhil Ashoka        .patch(uri, updatedIdentifyLedValue)
78f11a1901SNikhil Ashoka        .then(() => {
79f11a1901SNikhil Ashoka          if (led.identifyLed) {
80*de23ea23SSurya V            return i18n.global.t(
81*de23ea23SSurya V              'pageInventory.toast.successEnableIdentifyLed',
82*de23ea23SSurya V            );
83f11a1901SNikhil Ashoka          } else {
84*de23ea23SSurya V            return i18n.global.t(
85*de23ea23SSurya V              'pageInventory.toast.successDisableIdentifyLed',
86*de23ea23SSurya V            );
87f11a1901SNikhil Ashoka          }
88f11a1901SNikhil Ashoka        })
89f11a1901SNikhil Ashoka        .catch((error) => {
9081876788SSandeepa Singh          dispatch('getDimms');
9181876788SSandeepa Singh          console.log('error', error);
9281876788SSandeepa Singh          if (led.identifyLed) {
93f11a1901SNikhil Ashoka            throw new Error(
94*de23ea23SSurya V              i18n.global.t('pageInventory.toast.errorEnableIdentifyLed'),
95f11a1901SNikhil Ashoka            );
9681876788SSandeepa Singh          } else {
9781876788SSandeepa Singh            throw new Error(
98*de23ea23SSurya V              i18n.global.t('pageInventory.toast.errorDisableIdentifyLed'),
9981876788SSandeepa Singh            );
10081876788SSandeepa Singh          }
10181876788SSandeepa Singh        });
10281876788SSandeepa Singh    },
1037affc529SSandeepa Singh  },
1047affc529SSandeepa Singh};
1057affc529SSandeepa Singh
1067affc529SSandeepa Singhexport default MemoryStore;
107