@@ -39,43 +39,40 @@ const FirmwareStore = {
39
39
setApplyTime : ( state , applyTime ) => ( state . applyTime = applyTime )
40
40
} ,
41
41
actions : {
42
- async getSystemFirwareVersion ( { commit, state } ) {
42
+ async getSystemFirwareVersion ( { commit } ) {
43
43
return await api
44
44
. get ( '/redfish/v1/Managers/bmc' )
45
- . then ( ( { data : { Links : { ActiveSoftwareImage } } } ) => {
46
- const location = ActiveSoftwareImage [ '@odata.id' ] ;
47
- return api . get ( location ) ;
45
+ . then ( ( { data : { Links } } ) => {
46
+ const currentLocation = Links . ActiveSoftwareImage [ '@odata.id' ] ;
47
+ // Check SoftwareImages list for not ActiveSoftwareImage id
48
+ const backupLocation = Links . SoftwareImages . map (
49
+ item => item [ '@odata.id' ]
50
+ ) . find ( location => {
51
+ const id = location . split ( '/' ) . pop ( ) ;
52
+ const currentId = currentLocation . split ( '/' ) . pop ( ) ;
53
+ return id !== currentId ;
54
+ } ) ;
55
+ return { currentLocation, backupLocation } ;
48
56
} )
49
- . then ( ( { data } ) => {
50
- const version = data . Version ;
51
- const id = data . Id ;
52
- const location = data [ '@odata.id' ] ;
53
- commit ( 'setActiveFirmware' , { version, id, location } ) ;
54
- // TODO: temporary workaround to get 'Backup' Firmware
55
- // information
56
- return api . get ( '/redfish/v1/UpdateService/FirmwareInventory' ) ;
57
- } )
58
- . then ( ( { data : { Members } } ) => {
59
- // TODO: temporary workaround to get 'Backup' Firmware
60
- // information
61
- // Check FirmwareInventory list for not ActiveSoftwareImage id
62
- const backupLocation = Members . map ( item => item [ '@odata.id' ] ) . find (
63
- location => {
64
- const id = location . split ( '/' ) . pop ( ) ;
65
- return id !== state . activeFirmware . id ;
66
- }
67
- ) ;
57
+ . then ( async ( { currentLocation, backupLocation } ) => {
58
+ const currentData = await api . get ( currentLocation ) ;
59
+ let backupData = { } ;
60
+
68
61
if ( backupLocation ) {
69
- return api . get ( backupLocation ) ;
62
+ backupData = await api . get ( backupLocation ) ;
70
63
}
71
- } )
72
- . then ( ( { data } = { } ) => {
73
- if ( ! data ) return ;
74
- const version = data . Version ;
75
- const id = data . Id ;
76
- const location = data [ '@odata.id' ] ;
77
- const status = data . Status ? data . Status . State : '--' ;
78
- commit ( 'setBackupFirmware' , { version, id, location, status } ) ;
64
+
65
+ commit ( 'setActiveFirmware' , {
66
+ version : currentData ?. data ?. Version ,
67
+ id : currentData ?. data ?. Id ,
68
+ location : currentData ?. data ?. [ '@odata.id' ]
69
+ } ) ;
70
+ commit ( 'setBackupFirmware' , {
71
+ version : backupData . data ?. Version ,
72
+ id : backupData . data ?. Id ,
73
+ location : backupData . data ?. [ '@odata.id' ] ,
74
+ status : backupData . data ?. Status ?. State
75
+ } ) ;
79
76
} )
80
77
. catch ( error => console . log ( error ) ) ;
81
78
} ,
0 commit comments