blob: e6bcfb961869ea24c3e30d085a06a33c2231fec2 [file] [log] [blame]
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -06001import api from '@/store/api';
2import i18n from '@/i18n';
3
Sandeepa Singhb4406162021-07-26 15:05:39 +05304const PoliciesStore = {
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -06005 namespaced: true,
6 state: {
7 sshProtocolEnabled: false,
8 ipmiProtocolEnabled: false,
Nikhil Ashokaaee27142022-01-27 19:10:31 +05309 rtadEnabled: 'Disabled',
10 vtpmEnabled: 'Disabled',
kirankumarb072dabfc12023-03-29 11:19:31 +053011 sessionTimeoutValue: null,
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060012 },
13 getters: {
14 sshProtocolEnabled: (state) => state.sshProtocolEnabled,
15 ipmiProtocolEnabled: (state) => state.ipmiProtocolEnabled,
Nikhil Ashokaaee27142022-01-27 19:10:31 +053016 rtadEnabled: (state) => state.rtadEnabled,
17 vtpmEnabled: (state) => state.vtpmEnabled,
kirankumarb072dabfc12023-03-29 11:19:31 +053018 getSessionTimeoutValue: (state) => state.sessionTimeoutValue,
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060019 },
20 mutations: {
21 setSshProtocolEnabled: (state, sshProtocolEnabled) =>
22 (state.sshProtocolEnabled = sshProtocolEnabled),
23 setIpmiProtocolEnabled: (state, ipmiProtocolEnabled) =>
24 (state.ipmiProtocolEnabled = ipmiProtocolEnabled),
Nikhil Ashokaaee27142022-01-27 19:10:31 +053025 setRtadEnabled: (state, rtadEnabled) => (state.rtadEnabled = rtadEnabled),
26 setVtpmEnabled: (state, vtpmEnabled) => (state.vtpmEnabled = vtpmEnabled),
kirankumarb072dabfc12023-03-29 11:19:31 +053027 setSessionTimeoutValue(state, sessionTimeoutValue) {
28 state.sessionTimeoutValue = sessionTimeoutValue;
29 },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060030 },
31 actions: {
32 async getNetworkProtocolStatus({ commit }) {
33 return await api
34 .get('/redfish/v1/Managers/bmc/NetworkProtocol')
35 .then((response) => {
36 const sshProtocol = response.data.SSH.ProtocolEnabled;
37 const ipmiProtocol = response.data.IPMI.ProtocolEnabled;
38 commit('setSshProtocolEnabled', sshProtocol);
39 commit('setIpmiProtocolEnabled', ipmiProtocol);
40 })
41 .catch((error) => console.log(error));
42 },
Nikhil Ashokaaee27142022-01-27 19:10:31 +053043 async getBiosStatus({ commit }) {
44 return await api
45 .get('/redfish/v1/Systems/system/Bios')
46 .then((response) => {
47 commit('setRtadEnabled', response.data.Attributes.pvm_rtad);
48 commit('setVtpmEnabled', response.data.Attributes.pvm_vtpm);
49 })
50 .catch((error) => console.log(error));
51 },
kirankumarb072dabfc12023-03-29 11:19:31 +053052 async getSessionTimeout({ commit }) {
53 return await api
54 .get('/redfish/v1/SessionService')
55 .then((response) => {
56 const sessionTimeoutValue = response.data.SessionTimeout;
57 commit('setSessionTimeoutValue', sessionTimeoutValue);
58 })
59 .catch((error) => console.log(error));
60 },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060061 async saveIpmiProtocolState({ commit }, protocolEnabled) {
62 commit('setIpmiProtocolEnabled', protocolEnabled);
63 const ipmi = {
64 IPMI: {
65 ProtocolEnabled: protocolEnabled,
66 },
67 };
68 return await api
69 .patch('/redfish/v1/Managers/bmc/NetworkProtocol', ipmi)
70 .then(() => {
71 if (protocolEnabled) {
Sandeepa Singhb4406162021-07-26 15:05:39 +053072 return i18n.t('pagePolicies.toast.successIpmiEnabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060073 } else {
Sandeepa Singhb4406162021-07-26 15:05:39 +053074 return i18n.t('pagePolicies.toast.successIpmiDisabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060075 }
76 })
77 .catch((error) => {
78 console.log(error);
79 commit('setIpmiProtocolEnabled', !protocolEnabled);
80 if (protocolEnabled) {
Sandeepa Singhb4406162021-07-26 15:05:39 +053081 throw new Error(i18n.t('pagePolicies.toast.errorIpmiEnabled'));
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060082 } else {
Sandeepa Singhb4406162021-07-26 15:05:39 +053083 throw new Error(i18n.t('pagePolicies.toast.errorIpmiDisabled'));
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060084 }
85 });
86 },
87 async saveSshProtocolState({ commit }, protocolEnabled) {
88 commit('setSshProtocolEnabled', protocolEnabled);
89 const ssh = {
90 SSH: {
91 ProtocolEnabled: protocolEnabled,
92 },
93 };
94 return await api
95 .patch('/redfish/v1/Managers/bmc/NetworkProtocol', ssh)
96 .then(() => {
97 if (protocolEnabled) {
Sandeepa Singhb4406162021-07-26 15:05:39 +053098 return i18n.t('pagePolicies.toast.successSshEnabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060099 } else {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530100 return i18n.t('pagePolicies.toast.successSshDisabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600101 }
102 })
103 .catch((error) => {
104 console.log(error);
105 commit('setSshProtocolEnabled', !protocolEnabled);
106 if (protocolEnabled) {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530107 throw new Error(i18n.t('pagePolicies.toast.errorSshEnabled'));
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600108 } else {
Sandeepa Singhb4406162021-07-26 15:05:39 +0530109 throw new Error(i18n.t('pagePolicies.toast.errorSshDisabled'));
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600110 }
111 });
112 },
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530113 async saveRtadState({ commit }, updatedRtad) {
114 commit('setRtadEnabled', updatedRtad);
115 return await api
116 .patch('/redfish/v1/Systems/system/Bios/Settings', {
117 Attributes: {
118 pvm_rtad: updatedRtad,
119 },
120 })
121 .then(() => {
122 if (updatedRtad === 'Enabled') {
123 return i18n.t('pagePolicies.toast.successRtadEnabled');
124 } else {
125 return i18n.t('pagePolicies.toast.successRtadDisabled');
126 }
127 })
128 .catch((error) => {
129 console.log(error);
130 if (updatedRtad === 'Enabled') {
131 throw new Error(i18n.t('pagePolicies.toast.errorRtadEnabled'));
132 } else {
133 throw new Error(i18n.t('pagePolicies.toast.errorRtadDisabled'));
134 }
135 });
136 },
137 async saveVtpmState({ commit }, updatedVtpm) {
138 commit('setVtpmEnabled', updatedVtpm);
139 return await api
140 .patch('/redfish/v1/Systems/system/Bios/Settings', {
141 Attributes: {
142 pvm_vtpm: updatedVtpm,
143 },
144 })
145 .then(() => {
146 if (updatedVtpm === 'Enabled') {
147 return i18n.t('pagePolicies.toast.successVtpmEnabled');
148 } else {
149 return i18n.t('pagePolicies.toast.successVtpmDisabled');
150 }
151 })
152 .catch((error) => {
153 console.log(error);
154 if (updatedVtpm === 'Enabled') {
155 throw new Error(i18n.t('pagePolicies.toast.errorVtpmEnabled'));
156 } else {
157 throw new Error(i18n.t('pagePolicies.toast.errorVtpmDisabled'));
158 }
159 });
160 },
kirankumarb072dabfc12023-03-29 11:19:31 +0530161 async saveSessionTimeoutValue({ dispatch }, sessionTimeoutNewValue) {
162 const sessionValue = {
163 SessionTimeout: sessionTimeoutNewValue,
164 };
165 return await api
166 .patch('/redfish/v1/SessionService', sessionValue)
167 .then(() => dispatch('getSessionTimeout'))
168 .then(() => {
169 return i18n.t('pagePolicies.toast.successSessionTimeout');
170 })
171 .catch((error) => {
172 console.log(error);
173 throw new Error(i18n.t('pagePolicies.toast.errorSessionTimeout'));
174 });
175 },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600176 },
177};
178
Sandeepa Singhb4406162021-07-26 15:05:39 +0530179export default PoliciesStore;