diff options
author | Yoshie Muranaka <yoshiemuranaka@gmail.com> | 2021-02-11 20:23:14 +0300 |
---|---|---|
committer | Derick Montague <derick.montague@ibm.com> | 2021-02-17 00:00:41 +0300 |
commit | 7cc1fd48e64ff01dc80eb6323c1175b2fa42a2d0 (patch) | |
tree | f5378a6f69cc482abceca3463fdfdbca239cf135 /src/env | |
parent | fc387aa2963042f4cb75c000811c99aa66abb8ff (diff) | |
download | webui-vue-7cc1fd48e64ff01dc80eb6323c1175b2fa42a2d0.tar.xz |
Update single file firmware TFTP upload option
Adds API check for the UpdateService allowable values to determine
whether or not a TFTP upload option is available in UI.
This is part of an effort to make the firmware page more dynamic.
These changes are only visisble with ibm dotenv variables.
Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com>
Change-Id: Ied8ac5fa9f0441b1a0762c7a5267e298294eea32
Diffstat (limited to 'src/env')
-rw-r--r-- | src/env/components/FirmwareSingleImage/FirmwareSingleImage.vue | 4 | ||||
-rw-r--r-- | src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js | 16 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/env/components/FirmwareSingleImage/FirmwareSingleImage.vue b/src/env/components/FirmwareSingleImage/FirmwareSingleImage.vue index 54a2bb15..b7ad4c53 100644 --- a/src/env/components/FirmwareSingleImage/FirmwareSingleImage.vue +++ b/src/env/components/FirmwareSingleImage/FirmwareSingleImage.vue @@ -101,6 +101,7 @@ <div class="form-background p-3"> <b-form @submit.prevent="onSubmitUpload"> <b-form-group + v-if="isTftpUploadAvailable" :label="$t('pageFirmware.singleFileUpload.fileSource')" :disabled="isPageDisabled" > @@ -258,6 +259,7 @@ export default { 'backupFirmwareVersion', 'isRebootFromBackupAvailable', 'systemFirmwareVersion', + 'isTftpUploadAvailable', ]), isPageDisabled() { if (this.isServerPowerOffRequired) { @@ -281,7 +283,7 @@ export default { }, created() { this.startLoader(); - this.$store.dispatch('firmwareSingleImage/getUpdateServiceApplyTime'); + this.$store.dispatch('firmwareSingleImage/getUpdateServiceSettings'); Promise.all([ this.$store.dispatch('global/getHostStatus'), this.$store.dispatch('firmwareSingleImage/getFirmwareInformation'), diff --git a/src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js b/src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js index 91bcb9fe..b16cac8a 100644 --- a/src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js +++ b/src/env/store/FirmwareSingleImage/FirmwareSingleImageStore.js @@ -16,6 +16,7 @@ const FirmwareSingleImageStore = { status: null, }, applyTime: null, + tftpAvailable: false, }, getters: { systemFirmwareVersion: (state) => state.activeFirmware.version, @@ -23,7 +24,8 @@ const FirmwareSingleImageStore = { backupFirmwareStatus: (state) => state.backupFirmware.status, isRebootFromBackupAvailable: (state) => state.backupFirmware.id ? true : false, - bmcFirmwareCurrentVersion: (state) => state.activeFirmware.version, //this getter is needed for the Overview page + bmcFirmwareCurrentVersion: (state) => state.activeFirmware.version, //this getter is needed for the Overview page, + isTftpUploadAvailable: (state) => state.tftpAvailable, }, mutations: { setActiveFirmware: (state, { version, id, location }) => { @@ -38,6 +40,8 @@ const FirmwareSingleImageStore = { state.backupFirmware.status = status; }, setApplyTime: (state, applyTime) => (state.applyTime = applyTime), + setTftpUploadAvailable: (state, tftpAvailable) => + (state.tftpAvailable = tftpAvailable), }, actions: { async getFirmwareInformation({ commit }) { @@ -77,13 +81,21 @@ const FirmwareSingleImageStore = { }) .catch((error) => console.log(error)); }, - getUpdateServiceApplyTime({ commit }) { + 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)); }, |