| import api from '@/store/api'; | 
 | import i18n from '@/i18n'; | 
 |  | 
 | const PoliciesStore = { | 
 |   namespaced: true, | 
 |   state: { | 
 |     sshProtocolEnabled: false, | 
 |     ipmiProtocolEnabled: false, | 
 |     rtadEnabled: 'Disabled', | 
 |     vtpmEnabled: 'Disabled', | 
 |     sessionTimeoutValue: null, | 
 |   }, | 
 |   getters: { | 
 |     sshProtocolEnabled: (state) => state.sshProtocolEnabled, | 
 |     ipmiProtocolEnabled: (state) => state.ipmiProtocolEnabled, | 
 |     rtadEnabled: (state) => state.rtadEnabled, | 
 |     vtpmEnabled: (state) => state.vtpmEnabled, | 
 |     getSessionTimeoutValue: (state) => state.sessionTimeoutValue, | 
 |   }, | 
 |   mutations: { | 
 |     setSshProtocolEnabled: (state, sshProtocolEnabled) => | 
 |       (state.sshProtocolEnabled = sshProtocolEnabled), | 
 |     setIpmiProtocolEnabled: (state, ipmiProtocolEnabled) => | 
 |       (state.ipmiProtocolEnabled = ipmiProtocolEnabled), | 
 |     setRtadEnabled: (state, rtadEnabled) => (state.rtadEnabled = rtadEnabled), | 
 |     setVtpmEnabled: (state, vtpmEnabled) => (state.vtpmEnabled = vtpmEnabled), | 
 |     setSessionTimeoutValue(state, sessionTimeoutValue) { | 
 |       state.sessionTimeoutValue = sessionTimeoutValue; | 
 |     }, | 
 |   }, | 
 |   actions: { | 
 |     async getNetworkProtocolStatus({ commit }) { | 
 |       return await api | 
 |         .get('/redfish/v1/Managers/bmc/NetworkProtocol') | 
 |         .then((response) => { | 
 |           const sshProtocol = response.data.SSH.ProtocolEnabled; | 
 |           const ipmiProtocol = response.data.IPMI.ProtocolEnabled; | 
 |           commit('setSshProtocolEnabled', sshProtocol); | 
 |           commit('setIpmiProtocolEnabled', ipmiProtocol); | 
 |         }) | 
 |         .catch((error) => console.log(error)); | 
 |     }, | 
 |     async getBiosStatus({ commit }) { | 
 |       return await api | 
 |         .get('/redfish/v1/Systems/system/Bios') | 
 |         .then((response) => { | 
 |           commit('setRtadEnabled', response.data.Attributes.pvm_rtad); | 
 |           commit('setVtpmEnabled', response.data.Attributes.pvm_vtpm); | 
 |         }) | 
 |         .catch((error) => console.log(error)); | 
 |     }, | 
 |     async getSessionTimeout({ commit }) { | 
 |       return await api | 
 |         .get('/redfish/v1/SessionService') | 
 |         .then((response) => { | 
 |           const sessionTimeoutValue = response.data.SessionTimeout; | 
 |           commit('setSessionTimeoutValue', sessionTimeoutValue); | 
 |         }) | 
 |         .catch((error) => console.log(error)); | 
 |     }, | 
 |     async saveIpmiProtocolState({ commit }, protocolEnabled) { | 
 |       commit('setIpmiProtocolEnabled', protocolEnabled); | 
 |       const ipmi = { | 
 |         IPMI: { | 
 |           ProtocolEnabled: protocolEnabled, | 
 |         }, | 
 |       }; | 
 |       return await api | 
 |         .patch('/redfish/v1/Managers/bmc/NetworkProtocol', ipmi) | 
 |         .then(() => { | 
 |           if (protocolEnabled) { | 
 |             return i18n.t('pagePolicies.toast.successIpmiEnabled'); | 
 |           } else { | 
 |             return i18n.t('pagePolicies.toast.successIpmiDisabled'); | 
 |           } | 
 |         }) | 
 |         .catch((error) => { | 
 |           console.log(error); | 
 |           commit('setIpmiProtocolEnabled', !protocolEnabled); | 
 |           if (protocolEnabled) { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorIpmiEnabled')); | 
 |           } else { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorIpmiDisabled')); | 
 |           } | 
 |         }); | 
 |     }, | 
 |     async saveSshProtocolState({ commit }, protocolEnabled) { | 
 |       commit('setSshProtocolEnabled', protocolEnabled); | 
 |       const ssh = { | 
 |         SSH: { | 
 |           ProtocolEnabled: protocolEnabled, | 
 |         }, | 
 |       }; | 
 |       return await api | 
 |         .patch('/redfish/v1/Managers/bmc/NetworkProtocol', ssh) | 
 |         .then(() => { | 
 |           if (protocolEnabled) { | 
 |             return i18n.t('pagePolicies.toast.successSshEnabled'); | 
 |           } else { | 
 |             return i18n.t('pagePolicies.toast.successSshDisabled'); | 
 |           } | 
 |         }) | 
 |         .catch((error) => { | 
 |           console.log(error); | 
 |           commit('setSshProtocolEnabled', !protocolEnabled); | 
 |           if (protocolEnabled) { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorSshEnabled')); | 
 |           } else { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorSshDisabled')); | 
 |           } | 
 |         }); | 
 |     }, | 
 |     async saveRtadState({ commit }, updatedRtad) { | 
 |       commit('setRtadEnabled', updatedRtad); | 
 |       return await api | 
 |         .patch('/redfish/v1/Systems/system/Bios/Settings', { | 
 |           Attributes: { | 
 |             pvm_rtad: updatedRtad, | 
 |           }, | 
 |         }) | 
 |         .then(() => { | 
 |           if (updatedRtad === 'Enabled') { | 
 |             return i18n.t('pagePolicies.toast.successRtadEnabled'); | 
 |           } else { | 
 |             return i18n.t('pagePolicies.toast.successRtadDisabled'); | 
 |           } | 
 |         }) | 
 |         .catch((error) => { | 
 |           console.log(error); | 
 |           if (updatedRtad === 'Enabled') { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorRtadEnabled')); | 
 |           } else { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorRtadDisabled')); | 
 |           } | 
 |         }); | 
 |     }, | 
 |     async saveVtpmState({ commit }, updatedVtpm) { | 
 |       commit('setVtpmEnabled', updatedVtpm); | 
 |       return await api | 
 |         .patch('/redfish/v1/Systems/system/Bios/Settings', { | 
 |           Attributes: { | 
 |             pvm_vtpm: updatedVtpm, | 
 |           }, | 
 |         }) | 
 |         .then(() => { | 
 |           if (updatedVtpm === 'Enabled') { | 
 |             return i18n.t('pagePolicies.toast.successVtpmEnabled'); | 
 |           } else { | 
 |             return i18n.t('pagePolicies.toast.successVtpmDisabled'); | 
 |           } | 
 |         }) | 
 |         .catch((error) => { | 
 |           console.log(error); | 
 |           if (updatedVtpm === 'Enabled') { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorVtpmEnabled')); | 
 |           } else { | 
 |             throw new Error(i18n.t('pagePolicies.toast.errorVtpmDisabled')); | 
 |           } | 
 |         }); | 
 |     }, | 
 |     async saveSessionTimeoutValue({ dispatch }, sessionTimeoutNewValue) { | 
 |       const sessionValue = { | 
 |         SessionTimeout: sessionTimeoutNewValue, | 
 |       }; | 
 |       return await api | 
 |         .patch('/redfish/v1/SessionService', sessionValue) | 
 |         .then(() => dispatch('getSessionTimeout')) | 
 |         .then(() => { | 
 |           return i18n.t('pagePolicies.toast.successSessionTimeout'); | 
 |         }) | 
 |         .catch((error) => { | 
 |           console.log(error); | 
 |           throw new Error(i18n.t('pagePolicies.toast.errorSessionTimeout')); | 
 |         }); | 
 |     }, | 
 |   }, | 
 | }; | 
 |  | 
 | export default PoliciesStore; |