diff options
author | Sukanya Pandey <sukapan1@in.ibm.com> | 2020-12-16 17:38:01 +0300 |
---|---|---|
committer | Derick Montague <derick.montague@ibm.com> | 2021-02-02 01:32:54 +0300 |
commit | be6858c06bfbd1e06935ad01b743c1043f74488a (patch) | |
tree | ddd6bf979b7a045d4ac16cd723a773d161e92b18 /src/store/modules/Control/PowerPolicyStore.js | |
parent | d50ba5f915e16be042617d6f472839a684f88ef9 (diff) | |
download | webui-vue-be6858c06bfbd1e06935ad01b743c1043f74488a.tar.xz |
Add power restore policy page
- This page will show how the system boots once power
is restored after a power disturbance.
- API used to fetch the JSON:
/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json
- API used to fetch the current policy and to save updated policy:
/redfish/v1/Systems/system/
Signed-off-by: Sukanya Pandey <sukapan1@in.ibm.com>
Change-Id: I203bd3c5d26071b882cce6b9950cdb3fb1deb212
Diffstat (limited to 'src/store/modules/Control/PowerPolicyStore.js')
-rw-r--r-- | src/store/modules/Control/PowerPolicyStore.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/store/modules/Control/PowerPolicyStore.js b/src/store/modules/Control/PowerPolicyStore.js new file mode 100644 index 00000000..4e76cdfe --- /dev/null +++ b/src/store/modules/Control/PowerPolicyStore.js @@ -0,0 +1,72 @@ +import api from '@/store/api'; +import i18n from '@/i18n'; + +const PowerControlStore = { + namespaced: true, + state: { + powerRestoreCurrentPolicy: null, + powerRestorePolicies: [], + }, + getters: { + powerRestoreCurrentPolicy: (state) => state.powerRestoreCurrentPolicy, + powerRestorePolicies: (state) => state.powerRestorePolicies, + }, + mutations: { + setPowerRestoreCurrentPolicy: (state, powerRestoreCurrentPolicy) => + (state.powerRestoreCurrentPolicy = powerRestoreCurrentPolicy), + setPowerRestorePolicies: (state, powerRestorePolicies) => + (state.powerRestorePolicies = powerRestorePolicies), + }, + actions: { + async getPowerRestorePolicies({ commit }) { + return await api + .get('/redfish/v1/JsonSchemas/ComputerSystem/ComputerSystem.json') + .then( + ({ + data: { + definitions: { PowerRestorePolicyTypes = {} }, + }, + }) => { + let powerPoliciesData = PowerRestorePolicyTypes.enum.map( + (powerState) => { + let desc = `${i18n.t( + `pagePowerRestorePolicy.policies.${powerState}` + )} - ${PowerRestorePolicyTypes.enumDescriptions[powerState]}`; + return { + state: powerState, + desc, + }; + } + ); + commit('setPowerRestorePolicies', powerPoliciesData); + } + ); + }, + async getPowerRestoreCurrentPolicy({ commit }) { + api + .get('/redfish/v1/Systems/system') + .then(({ data: { PowerRestorePolicy } }) => { + commit('setPowerRestoreCurrentPolicy', PowerRestorePolicy); + }) + .catch((error) => console.log(error)); + }, + async setPowerRestorePolicy({ commit }, powerPolicy) { + const data = { PowerRestorePolicy: powerPolicy }; + + return await api + .patch('/redfish/v1/Systems/system', data) + .then(() => + commit('setPowerRestoreCurrentPolicy', data.PowerRestorePolicy) + ) + .then(() => i18n.t('pagePowerRestorePolicy.toast.successSaveSettings')) + .catch((error) => { + console.log(error); + throw new Error( + i18n.t('pagePowerRestorePolicy.toast.errorSaveSettings') + ); + }); + }, + }, +}; + +export default PowerControlStore; |