13145d4d9SDixsie Wolmersimport api from '@/store/api'; 23145d4d9SDixsie Wolmersimport i18n from '@/i18n'; 33145d4d9SDixsie Wolmers 43145d4d9SDixsie Wolmersconst PowerControlStore = { 53145d4d9SDixsie Wolmers namespaced: true, 63145d4d9SDixsie Wolmers state: { 73145d4d9SDixsie Wolmers powerCapValue: null, 8f4328edfSMichalX Szopinski powerCapUri: '', 93145d4d9SDixsie Wolmers powerConsumptionValue: null, 103145d4d9SDixsie Wolmers }, 113145d4d9SDixsie Wolmers getters: { 123145d4d9SDixsie Wolmers powerCapValue: (state) => state.powerCapValue, 13f4328edfSMichalX Szopinski powerCapUri: (state) => state.powerCapUri, 143145d4d9SDixsie Wolmers powerConsumptionValue: (state) => state.powerConsumptionValue, 153145d4d9SDixsie Wolmers }, 163145d4d9SDixsie Wolmers mutations: { 173145d4d9SDixsie Wolmers setPowerCapValue: (state, powerCapValue) => 183145d4d9SDixsie Wolmers (state.powerCapValue = powerCapValue), 19f4328edfSMichalX Szopinski setPowerCapUri: (state, powerCapUri) => (state.powerCapUri = powerCapUri), 203145d4d9SDixsie Wolmers setPowerConsumptionValue: (state, powerConsumptionValue) => 213145d4d9SDixsie Wolmers (state.powerConsumptionValue = powerConsumptionValue), 223145d4d9SDixsie Wolmers }, 233145d4d9SDixsie Wolmers actions: { 243145d4d9SDixsie Wolmers setPowerCapUpdatedValue({ commit }, value) { 253145d4d9SDixsie Wolmers commit('setPowerCapValue', value); 263145d4d9SDixsie Wolmers }, 27f4328edfSMichalX Szopinski async getChassisCollection() { 283145d4d9SDixsie Wolmers return await api 29f4328edfSMichalX Szopinski .get('/redfish/v1/') 30f4328edfSMichalX Szopinski .then((response) => api.get(response.data.Chassis['@odata.id'])) 31f4328edfSMichalX Szopinski .then(({ data: { Members } }) => 328132399cSEd Tanous Members.map((member) => member['@odata.id']), 33f4328edfSMichalX Szopinski ) 34f4328edfSMichalX Szopinski .catch((error) => console.log(error)); 35f4328edfSMichalX Szopinski }, 36f4328edfSMichalX Szopinski async getPowerControl({ dispatch, commit }) { 37f4328edfSMichalX Szopinski const collection = await dispatch('getChassisCollection'); 38f4328edfSMichalX Szopinski if (!collection || collection.length === 0) return; 39f4328edfSMichalX Szopinski return await api 40f4328edfSMichalX Szopinski .get(`${collection[0]}`) 41f4328edfSMichalX Szopinski .then((response) => api.get(response.data.Power['@odata.id'])) 423145d4d9SDixsie Wolmers .then((response) => { 433145d4d9SDixsie Wolmers const powerControl = response.data.PowerControl; 44f4328edfSMichalX Szopinski if (!powerControl || powerControl.length === 0) return; 452f2f64d2SDamian Celico const powerCapUri = response.data['@odata.id']; 463145d4d9SDixsie Wolmers const powerCap = powerControl[0].PowerLimit.LimitInWatts; 473145d4d9SDixsie Wolmers // If system is powered off, power consumption does not exist in the PowerControl 483145d4d9SDixsie Wolmers const powerConsumption = powerControl[0].PowerConsumedWatts || null; 49f4328edfSMichalX Szopinski commit('setPowerCapUri', powerCapUri); 503145d4d9SDixsie Wolmers commit('setPowerCapValue', powerCap); 513145d4d9SDixsie Wolmers commit('setPowerConsumptionValue', powerConsumption); 523145d4d9SDixsie Wolmers }) 533145d4d9SDixsie Wolmers .catch((error) => { 543145d4d9SDixsie Wolmers console.log('Power control', error); 553145d4d9SDixsie Wolmers }); 563145d4d9SDixsie Wolmers }, 57f4328edfSMichalX Szopinski async setPowerControl({ state }, powerCapValue) { 583145d4d9SDixsie Wolmers const data = { 593145d4d9SDixsie Wolmers PowerControl: [{ PowerLimit: { LimitInWatts: powerCapValue } }], 603145d4d9SDixsie Wolmers }; 613145d4d9SDixsie Wolmers return await api 62f4328edfSMichalX Szopinski .patch(state.powerCapUri, data) 633145d4d9SDixsie Wolmers .then(() => 64*de23ea23SSurya V i18n.global.t('pageServerPowerOperations.toast.successSaveSettings'), 653145d4d9SDixsie Wolmers ) 663145d4d9SDixsie Wolmers .catch((error) => { 673145d4d9SDixsie Wolmers console.log(error); 683145d4d9SDixsie Wolmers throw new Error( 69*de23ea23SSurya V i18n.global.t('pageServerPowerOperations.toast.errorSaveSettings'), 703145d4d9SDixsie Wolmers ); 713145d4d9SDixsie Wolmers }); 723145d4d9SDixsie Wolmers }, 733145d4d9SDixsie Wolmers }, 743145d4d9SDixsie Wolmers}; 753145d4d9SDixsie Wolmers 763145d4d9SDixsie Wolmersexport default PowerControlStore; 77