airshipit / airshipctl

A CLI for managing declarative infrastructure.
Apache License 2.0
43 stars 49 forks source link

Redfish GetVirtualMediaID hardcodes return #144

Closed alanmeadows closed 4 years ago

alanmeadows commented 4 years ago

Describe the bug The redfish GetVirtualMediaID function hard codes a return of "Cd"

This may work for the sushy-emulator, but physical dell equipment requires a value of "CD"

We need to be walking the available VirtualMedia using the go-redfish library and returning the value dynamically from that response, whether it is "Cd" in sushy-emulator or "CD" in physical equipment.

    // The response from a real dell server
    //
    // GET https://1.2.3.4/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia
    //
    // {"@odata.context":"/redfish/v1/$metadata#VirtualMediaCollection.VirtualMediaCollection","@odata.id":"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia","@odata.type":"#VirtualMediaCollection.VirtualMediaCollection","Description":"iDRAC Virtual Media Services Settings","Members":[{"@odata.id":"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/RemovableDisk"},{"@odata.id":"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD"}],"Members@odata.count":2,"Name":"Virtual Media Services"}
    //
    // It is unclear why we believe this is a sushy-emulator issue, a real dell server also has a boolean Inserted field:
    //
    // GET https://1.2.3.4/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD
    //
    // {"@odata.context":"/redfish/v1/$metadata#VirtualMedia.VirtualMedia","@odata.id":"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD","@odata.type":"#VirtualMedia.v1_2_0.VirtualMedia","Actions":{"#VirtualMedia.EjectMedia":{"target":"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.EjectMedia"},"#VirtualMedia.InsertMedia":{"target":"/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia"}},"ConnectedVia":"NotConnected","Description":"iDRAC Virtual Media Services Settings","Id":"CD","Image":null,"ImageName":null,"Inserted":false,"MediaTypes":["CD","DVD"],"MediaTypes@odata.count":2,"Name":"Virtual CD","WriteProtected":null}
drewwalters96 commented 4 years ago

I am investigating this

vladiskuz commented 4 years ago

@drewwalters96 Looks like the same issue https://github.com/airshipit/airshipctl/issues/141

drewwalters96 commented 4 years ago

Thanks for the heads up @vladiskuz. I'll close this one as duplicate and consolidate over there.