diff --git a/internal/redfishwrapper/virtual_media.go b/internal/redfishwrapper/virtual_media.go index 095b4861..00d4b945 100644 --- a/internal/redfishwrapper/virtual_media.go +++ b/internal/redfishwrapper/virtual_media.go @@ -43,23 +43,21 @@ func (c *Client) SetVirtualMedia(ctx context.Context, kind string, mediaURL stri } for _, vm := range virtualMedia { - var ejected bool - if vm.Inserted && vm.SupportsMediaEject { - if err := vm.EjectMedia(); err != nil { - return false, err - } - ejected = true - } if mediaURL == "" { // Only ejecting the media was requested. // For BMC's that don't support the "inserted" property, we need to eject the media if it's not already ejected. - if !ejected && vm.SupportsMediaEject { + if vm.Inserted && vm.SupportsMediaEject { if err := vm.EjectMedia(); err != nil { return false, err } } return true, nil } + if vm.Inserted && vm.SupportsMediaEject { + if err := vm.EjectMedia(); err != nil { + return false, err + } + } if !slices.Contains(vm.MediaTypes, mediaKind) { return false, fmt.Errorf("media kind %s not supported by BMC, supported media kinds %q", kind, vm.MediaTypes) }