summaryrefslogtreecommitdiff
path: root/src/env/store
diff options
context:
space:
mode:
authorYoshie Muranaka <yoshiemuranaka@gmail.com>2021-02-19 02:24:14 +0300
committerDerick Montague <derick.montague@ibm.com>2021-03-01 16:45:05 +0300
commit33d755f4e62beff72101f6ca07e4d31b04e13826 (patch)
treea67d890472f0c7f27951b8e86d472e220dac066e /src/env/store
parent9a25c80591e8872297f2c33ad9bcd6a97639f04c (diff)
downloadwebui-vue-33d755f4e62beff72101f6ca07e4d31b04e13826.tar.xz
Update the default firmware page
- Minor updates made to the general layout and styles - Changes to some page copy - Moves update firmware form to bottom of page - Adds dynamic TFTP upload option - Adds dynamic card layout for BMC and host firmwre - 2 cards for combined - 4 cards for separate - Removes FirmwareSingleImage components that were used for IBM builds Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: Ib5465ecc30dd1505824bf41c82d33b7655d5e598
Diffstat (limited to 'src/env/store')
-rw-r--r--src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js195
-rw-r--r--src/env/store/ibm.js3
2 files changed, 0 insertions, 198 deletions
diff --git a/src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js b/src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js
deleted file mode 100644
index ae4d6333..00000000
--- a/src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js
+++ /dev/null
@@ -1,195 +0,0 @@
-import api from '@/store/api';
-import i18n from '@/i18n';
-
-const FirmwareSingleImageStore = {
- namespaced: true,
- state: {
- bmcFirmware: [],
- hostFirmware: [],
- bmcActiveFirmwareId: null,
- hostActiveFirmwareId: null,
- applyTime: null,
- tftpAvailable: false,
- },
- getters: {
- isTftpUploadAvailable: (state) => state.tftpAvailable,
- isSingleFileUploadEnabled: (state) => state.hostFirmware.length === 0,
- activeBmcFirmware: (state) => {
- return state.bmcFirmware.find(
- (firmware) => firmware.id === state.bmcActiveFirmwareId
- );
- },
- activeHostFirmware: (state) => {
- return state.hostFirmware.find(
- (firmware) => firmware.id === state.hostActiveFirmwareId
- );
- },
- backupBmcFirmware: (state) => {
- return state.bmcFirmware.find(
- (firmware) => firmware.id !== state.bmcActiveFirmwareId
- );
- },
- backupHostFirmware: (state) => {
- return state.hostFirmware.find(
- (firmware) => firmware.id !== state.hostActiveFirmwareId
- );
- },
- bmcFirmwareCurrentVersion: (_, getters) =>
- getters.activeBmcFirmware?.version, //this getter is needed for the Overview page,
- },
- mutations: {
- setActiveBmcFirmwareId: (state, id) => (state.bmcActiveFirmwareId = id),
- setActiveHostFirmwareId: (state, id) => (state.hostActiveFirmwareId = id),
- setBmcFirmware: (state, firmware) => (state.bmcFirmware = firmware),
- setHostFirmware: (state, firmware) => (state.hostFirmware = firmware),
- setApplyTime: (state, applyTime) => (state.applyTime = applyTime),
- setTftpUploadAvailable: (state, tftpAvailable) =>
- (state.tftpAvailable = tftpAvailable),
- },
- actions: {
- async getFirmwareInformation({ dispatch }) {
- dispatch('getActiveHostFirmware');
- dispatch('getActiveBmcFirmware');
- return await dispatch('getFirmwareInventory');
- },
- getActiveBmcFirmware({ commit }) {
- return api
- .get('/redfish/v1/Managers/bmc')
- .then(({ data: { Links } }) => {
- const id = Links?.ActiveSoftwareImage['@odata.id'].split('/').pop();
- commit('setActiveBmcFirmwareId', id);
- })
- .catch((error) => console.log(error));
- },
- getActiveHostFirmware({ commit }) {
- return api
- .get('/redfish/v1/Systems/system/Bios')
- .then(({ data: { Links } }) => {
- const id = Links?.ActiveSoftwareImage['@odata.id'].split('/').pop();
- commit('setActiveHostFirmwareId', id);
- })
- .catch((error) => console.log(error));
- },
- async getFirmwareInventory({ commit }) {
- const inventoryList = await api
- .get('/redfish/v1/UpdateService/FirmwareInventory')
- .then(({ data: { Members = [] } = {} }) =>
- Members.map((item) => api.get(item['@odata.id']))
- )
- .catch((error) => console.log(error));
- await api
- .all(inventoryList)
- .then((response) => {
- const bmcFirmware = [];
- const hostFirmware = [];
- response.forEach(({ data }) => {
- const firmwareType = data?.RelatedItem?.[0]?.['@odata.id']
- .split('/')
- .pop();
- const item = {
- version: data?.Version,
- id: data?.Id,
- location: data?.['@odata.id'],
- status: data?.Status?.Health,
- };
- if (firmwareType === 'bmc') {
- bmcFirmware.push(item);
- } else if (firmwareType === 'Bios') {
- hostFirmware.push(item);
- }
- });
- commit('setBmcFirmware', bmcFirmware);
- commit('setHostFirmware', hostFirmware);
- })
- .catch((error) => {
- console.log(error);
- });
- },
- getUpdateServiceSettings({ commit }) {
- api
- .get('/redfish/v1/UpdateService')
- .then(({ data }) => {
- const applyTime =
- data.HttpPushUriOptions.HttpPushUriApplyTime.ApplyTime;
- const allowableActions =
- data?.Actions?.['#UpdateService.SimpleUpdate']?.[
- 'TransferProtocol@Redfish.AllowableValues'
- ];
-
- commit('setApplyTime', applyTime);
- if (allowableActions.includes('TFTP')) {
- commit('setTftpUploadAvailable', true);
- }
- })
- .catch((error) => console.log(error));
- },
- setApplyTimeImmediate({ commit }) {
- const data = {
- HttpPushUriOptions: {
- HttpPushUriApplyTime: {
- ApplyTime: 'Immediate',
- },
- },
- };
- return api
- .patch('/redfish/v1/UpdateService', data)
- .then(() => commit('setApplyTime', 'Immediate'))
- .catch((error) => console.log(error));
- },
- async uploadFirmware({ state, dispatch }, image) {
- if (state.applyTime !== 'Immediate') {
- // ApplyTime must be set to Immediate before making
- // request to update firmware
- await dispatch('setApplyTimeImmediate');
- }
- return await api
- .post('/redfish/v1/UpdateService', image, {
- headers: { 'Content-Type': 'application/octet-stream' },
- })
- .catch((error) => {
- console.log(error);
- throw new Error(i18n.t('pageFirmware.toast.errorUploadAndReboot'));
- });
- },
- async uploadFirmwareTFTP({ state, dispatch }, fileAddress) {
- const data = {
- TransferProtocol: 'TFTP',
- ImageURI: fileAddress,
- };
- if (state.applyTime !== 'Immediate') {
- // ApplyTime must be set to Immediate before making
- // request to update firmware
- await dispatch('setApplyTimeImmediate');
- }
- return await api
- .post(
- '/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate',
- data
- )
- .catch((error) => {
- console.log(error);
- throw new Error(i18n.t('pageFirmware.toast.errorUploadAndReboot'));
- });
- },
- async switchFirmwareAndReboot({ getters }) {
- const backupLoaction = getters.backupBmcFirmware.location;
- const data = {
- Links: {
- ActiveSoftwareImage: {
- '@odata.id': backupLoaction,
- },
- },
- };
- return await api
- .patch('/redfish/v1/Managers/bmc', data)
- .catch((error) => {
- console.log(error);
- throw new Error(
- i18n.t('pageFirmware.singleFileUpload.toast.errorSwitchImages')
- );
- });
- },
- },
-};
-
-export default FirmwareSingleImageStore;
diff --git a/src/env/store/ibm.js b/src/env/store/ibm.js
index e19dd48c..980236fc 100644
--- a/src/env/store/ibm.js
+++ b/src/env/store/ibm.js
@@ -1,11 +1,8 @@
import store from '@/store';
-import FirmwareSingleImageStore from './FirmwareSingleImage/FirmwareSingleImageStore';
import DumpsStore from './Dumps/DumpsStore';
store.unregisterModule('virtualMedia');
-store.unregisterModule('firmware');
-store.registerModule('firmwareSingleImage', FirmwareSingleImageStore);
store.registerModule('dumps', DumpsStore);
export default store;