summaryrefslogtreecommitdiff
path: root/src/store
diff options
context:
space:
mode:
authorSukanya Pandey <sukapan1@in.ibm.com>2020-12-16 17:38:01 +0300
committerDerick Montague <derick.montague@ibm.com>2021-02-02 01:32:54 +0300
commitbe6858c06bfbd1e06935ad01b743c1043f74488a (patch)
treeddd6bf979b7a045d4ac16cd723a773d161e92b18 /src/store
parentd50ba5f915e16be042617d6f472839a684f88ef9 (diff)
downloadwebui-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')
-rw-r--r--src/store/index.js2
-rw-r--r--src/store/modules/Control/PowerPolicyStore.js72
2 files changed, 74 insertions, 0 deletions
diff --git a/src/store/index.js b/src/store/index.js
index 151eb68c..fd8b1fcf 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -11,6 +11,7 @@ import FirmwareStore from './modules/Configuration/FirmwareStore';
import BootSettingsStore from './modules/Control/BootSettingsStore';
import ControlStore from './modules/Control/ControlStore';
import PowerControlStore from './modules/Control/PowerControlStore';
+import PowerPolicyStore from './modules/Control/PowerPolicyStore';
import NetworkSettingStore from './modules/Configuration/NetworkSettingsStore';
import EventLogStore from './modules/Health/EventLogStore';
import SensorsStore from './modules/Health/SensorsStore';
@@ -45,6 +46,7 @@ export default new Vuex.Store({
hostBootSettings: BootSettingsStore,
controls: ControlStore,
powerControl: PowerControlStore,
+ powerPolicy: PowerPolicyStore,
powerSupply: PowerSupplyStore,
networkSettings: NetworkSettingStore,
eventLog: EventLogStore,
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;