import api from '@/store/api'; import i18n from '@/i18n'; const PowerControlStore = { namespaced: true, state: { powerCapValue: null, powerConsumptionValue: null, }, getters: { powerCapValue: (state) => state.powerCapValue, powerConsumptionValue: (state) => state.powerConsumptionValue, }, mutations: { setPowerCapValue: (state, powerCapValue) => (state.powerCapValue = powerCapValue), setPowerConsumptionValue: (state, powerConsumptionValue) => (state.powerConsumptionValue = powerConsumptionValue), }, actions: { setPowerCapUpdatedValue({ commit }, value) { commit('setPowerCapValue', value); }, async getPowerControl({ commit }) { return await api .get('/redfish/v1/Chassis/chassis/Power') .then((response) => { const powerControl = response.data.PowerControl; const powerCap = powerControl[0].PowerLimit.LimitInWatts; // If system is powered off, power consumption does not exist in the PowerControl const powerConsumption = powerControl[0].PowerConsumedWatts || null; commit('setPowerCapValue', powerCap); commit('setPowerConsumptionValue', powerConsumption); }) .catch((error) => { console.log('Power control', error); }); }, async setPowerControl(_, powerCapValue) { const data = { PowerControl: [{ PowerLimit: { LimitInWatts: powerCapValue } }], }; return await api .patch('/redfish/v1/Chassis/chassis/Power', data) .then(() => i18n.t('pageServerPowerOperations.toast.successSaveSettings') ) .catch((error) => { console.log(error); throw new Error( i18n.t('pageServerPowerOperations.toast.errorSaveSettings') ); }); }, }, }; export default PowerControlStore;