diff options
author | MichalX Szopinski <michalx.szopinski@intel.com> | 2021-07-12 13:59:30 +0300 |
---|---|---|
committer | Maciej Magdziarz <maciejx.magdziarz@intel.com> | 2021-12-28 11:48:11 +0300 |
commit | f4328edf86b284fe8836717251ce6696670dbdd5 (patch) | |
tree | a0b2688dd0defa4a079d027febbd3b08f5c5d230 | |
parent | 00cb42b615602bb6563ff02f91158eb2e3b603fc (diff) | |
download | webui-vue-f4328edf86b284fe8836717251ce6696670dbdd5.tar.xz |
Remove hardcoded chassis in Manage power usage
Simmilar modification to
https://gerrit.openbmc-project.xyz/c/openbmc/webui-vue/+/42988
which removes the hardcoded chassis name from url on Manage power usage
tab. With this modification we are displaying only informations about
first power device. This change also fixes the overwriting existing
power cap value on load.
Signed-off-by: MichalX Szopinski <michalx.szopinski@intel.com>
Change-Id: Ia164db9f2c50d98bc767c0f4729e9572a2d01da1
-rw-r--r-- | src/store/modules/ResourceManagement/PowerControlStore.js | 28 | ||||
-rw-r--r-- | src/views/ResourceManagement/Power.vue | 9 |
2 files changed, 30 insertions, 7 deletions
diff --git a/src/store/modules/ResourceManagement/PowerControlStore.js b/src/store/modules/ResourceManagement/PowerControlStore.js index 9dbddf05..94c570f8 100644 --- a/src/store/modules/ResourceManagement/PowerControlStore.js +++ b/src/store/modules/ResourceManagement/PowerControlStore.js @@ -5,15 +5,18 @@ const PowerControlStore = { namespaced: true, state: { powerCapValue: null, + powerCapUri: '', powerConsumptionValue: null, }, getters: { powerCapValue: (state) => state.powerCapValue, + powerCapUri: (state) => state.powerCapUri, powerConsumptionValue: (state) => state.powerConsumptionValue, }, mutations: { setPowerCapValue: (state, powerCapValue) => (state.powerCapValue = powerCapValue), + setPowerCapUri: (state, powerCapUri) => (state.powerCapUri = powerCapUri), setPowerConsumptionValue: (state, powerConsumptionValue) => (state.powerConsumptionValue = powerConsumptionValue), }, @@ -21,15 +24,29 @@ const PowerControlStore = { setPowerCapUpdatedValue({ commit }, value) { commit('setPowerCapValue', value); }, - async getPowerControl({ commit }) { + async getChassisCollection() { return await api - .get('/redfish/v1/Chassis/chassis/Power') + .get('/redfish/v1/') + .then((response) => api.get(response.data.Chassis['@odata.id'])) + .then(({ data: { Members } }) => + Members.map((member) => member['@odata.id']) + ) + .catch((error) => console.log(error)); + }, + async getPowerControl({ dispatch, commit }) { + const collection = await dispatch('getChassisCollection'); + if (!collection || collection.length === 0) return; + return await api + .get(`${collection[0]}`) + .then((response) => api.get(response.data.Power['@odata.id'])) .then((response) => { const powerControl = response.data.PowerControl; + if (!powerControl || powerControl.length === 0) return; + const powerCapUri = powerControl[0]['@odata.id']; 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('setPowerCapUri', powerCapUri); commit('setPowerCapValue', powerCap); commit('setPowerConsumptionValue', powerConsumption); }) @@ -37,13 +54,12 @@ const PowerControlStore = { console.log('Power control', error); }); }, - async setPowerControl(_, powerCapValue) { + async setPowerControl({ state }, powerCapValue) { const data = { PowerControl: [{ PowerLimit: { LimitInWatts: powerCapValue } }], }; - return await api - .patch('/redfish/v1/Chassis/chassis/Power', data) + .patch(state.powerCapUri, data) .then(() => i18n.t('pageServerPowerOperations.toast.successSaveSettings') ) diff --git a/src/views/ResourceManagement/Power.vue b/src/views/ResourceManagement/Power.vue index 8e4acdd3..cc0cc993 100644 --- a/src/views/ResourceManagement/Power.vue +++ b/src/views/ResourceManagement/Power.vue @@ -118,8 +118,15 @@ export default { return this.powerCapValue !== null; }, set(value) { - let newValue = value ? '' : null; this.$v.$reset(); + let newValue = null; + if (value) { + if (this.powerCapValue) { + newValue = this.powerCapValue; + } else { + newValue = ''; + } + } this.$store.dispatch('powerControl/setPowerCapUpdatedValue', newValue); }, }, |