blob: 88ff151d3c2630bbb7bbf879ec9934b1798fca4e [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
Sean Zhang8841b7d2024-06-15 08:42:41 +030034 .get(`${await this.dispatch('global/getBmcPath')}/NetworkProtocol`)
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060035 .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
Sean Zhang8841b7d2024-06-15 08:42:41 +030045 .get(`${await this.dispatch('global/getSystemPath')}/Bios`)
Nikhil Ashokaaee27142022-01-27 19:10:31 +053046 .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
Sean Zhang8841b7d2024-06-15 08:42:41 +030069 .patch(
70 `${await this.dispatch('global/getBmcPath')}/NetworkProtocol`,
71 ipmi,
72 )
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060073 .then(() => {
74 if (protocolEnabled) {
Surya Vde23ea22024-07-11 15:19:46 +053075 return i18n.global.t('pagePolicies.toast.successIpmiEnabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060076 } else {
Surya Vde23ea22024-07-11 15:19:46 +053077 return i18n.global.t('pagePolicies.toast.successIpmiDisabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060078 }
79 })
80 .catch((error) => {
81 console.log(error);
82 commit('setIpmiProtocolEnabled', !protocolEnabled);
83 if (protocolEnabled) {
Surya Vde23ea22024-07-11 15:19:46 +053084 throw new Error(
85 i18n.global.t('pagePolicies.toast.errorIpmiEnabled'),
86 );
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060087 } else {
Surya Vde23ea22024-07-11 15:19:46 +053088 throw new Error(
89 i18n.global.t('pagePolicies.toast.errorIpmiDisabled'),
90 );
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -060091 }
92 });
93 },
94 async saveSshProtocolState({ commit }, protocolEnabled) {
95 commit('setSshProtocolEnabled', protocolEnabled);
96 const ssh = {
97 SSH: {
98 ProtocolEnabled: protocolEnabled,
99 },
100 };
101 return await api
Sean Zhang8841b7d2024-06-15 08:42:41 +0300102 .patch(
103 `${await this.dispatch('global/getBmcPath')}/NetworkProtocol`,
104 ssh,
105 )
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600106 .then(() => {
107 if (protocolEnabled) {
Surya Vde23ea22024-07-11 15:19:46 +0530108 return i18n.global.t('pagePolicies.toast.successSshEnabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600109 } else {
Surya Vde23ea22024-07-11 15:19:46 +0530110 return i18n.global.t('pagePolicies.toast.successSshDisabled');
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600111 }
112 })
113 .catch((error) => {
114 console.log(error);
115 commit('setSshProtocolEnabled', !protocolEnabled);
116 if (protocolEnabled) {
Surya Vde23ea22024-07-11 15:19:46 +0530117 throw new Error(
118 i18n.global.t('pagePolicies.toast.errorSshEnabled'),
119 );
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600120 } else {
Surya Vde23ea22024-07-11 15:19:46 +0530121 throw new Error(
122 i18n.global.t('pagePolicies.toast.errorSshDisabled'),
123 );
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600124 }
125 });
126 },
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530127 async saveRtadState({ commit }, updatedRtad) {
128 commit('setRtadEnabled', updatedRtad);
129 return await api
Sean Zhang8841b7d2024-06-15 08:42:41 +0300130 .patch(`${await this.dispatch('global/getSystemPath')}/Bios/Settings`, {
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530131 Attributes: {
132 pvm_rtad: updatedRtad,
133 },
134 })
135 .then(() => {
136 if (updatedRtad === 'Enabled') {
Surya Vde23ea22024-07-11 15:19:46 +0530137 return i18n.global.t('pagePolicies.toast.successRtadEnabled');
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530138 } else {
Surya Vde23ea22024-07-11 15:19:46 +0530139 return i18n.global.t('pagePolicies.toast.successRtadDisabled');
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530140 }
141 })
142 .catch((error) => {
143 console.log(error);
144 if (updatedRtad === 'Enabled') {
Surya Vde23ea22024-07-11 15:19:46 +0530145 throw new Error(
146 i18n.global.t('pagePolicies.toast.errorRtadEnabled'),
147 );
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530148 } else {
Surya Vde23ea22024-07-11 15:19:46 +0530149 throw new Error(
150 i18n.global.t('pagePolicies.toast.errorRtadDisabled'),
151 );
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530152 }
153 });
154 },
155 async saveVtpmState({ commit }, updatedVtpm) {
156 commit('setVtpmEnabled', updatedVtpm);
157 return await api
Sean Zhang8841b7d2024-06-15 08:42:41 +0300158 .patch(`${await this.dispatch('global/getSystemPath')}/Bios/Settings`, {
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530159 Attributes: {
160 pvm_vtpm: updatedVtpm,
161 },
162 })
163 .then(() => {
164 if (updatedVtpm === 'Enabled') {
Surya Vde23ea22024-07-11 15:19:46 +0530165 return i18n.global.t('pagePolicies.toast.successVtpmEnabled');
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530166 } else {
Surya Vde23ea22024-07-11 15:19:46 +0530167 return i18n.global.t('pagePolicies.toast.successVtpmDisabled');
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530168 }
169 })
170 .catch((error) => {
171 console.log(error);
172 if (updatedVtpm === 'Enabled') {
Surya Vde23ea22024-07-11 15:19:46 +0530173 throw new Error(
174 i18n.global.t('pagePolicies.toast.errorVtpmEnabled'),
175 );
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530176 } else {
Surya Vde23ea22024-07-11 15:19:46 +0530177 throw new Error(
178 i18n.global.t('pagePolicies.toast.errorVtpmDisabled'),
179 );
Nikhil Ashokaaee27142022-01-27 19:10:31 +0530180 }
181 });
182 },
kirankumarb072dabfc12023-03-29 11:19:31 +0530183 async saveSessionTimeoutValue({ dispatch }, sessionTimeoutNewValue) {
184 const sessionValue = {
185 SessionTimeout: sessionTimeoutNewValue,
186 };
187 return await api
188 .patch('/redfish/v1/SessionService', sessionValue)
189 .then(() => dispatch('getSessionTimeout'))
190 .then(() => {
Surya Vde23ea22024-07-11 15:19:46 +0530191 return i18n.global.t('pagePolicies.toast.successSessionTimeout');
kirankumarb072dabfc12023-03-29 11:19:31 +0530192 })
193 .catch((error) => {
194 console.log(error);
Surya Vde23ea22024-07-11 15:19:46 +0530195 throw new Error(
196 i18n.global.t('pagePolicies.toast.errorSessionTimeout'),
197 );
kirankumarb072dabfc12023-03-29 11:19:31 +0530198 });
199 },
Dixsie Wolmers8f030ba2020-12-07 13:12:53 -0600200 },
201};
202
Sandeepa Singhb4406162021-07-26 15:05:39 +0530203export default PoliciesStore;