Skip to content

Commit

Permalink
Make sure the System helper method is used:
Browse files Browse the repository at this point in the history
Many of the existing redfish feature methods
weren't using the System helper that filtered
for system name.

Also, for virtual media ejecting, handle BMC's
that don't support the "inserted" property.

Signed-off-by: Jacob Weinstock <[email protected]>
  • Loading branch information
jacobweinstock committed Oct 25, 2024
1 parent 26229cf commit 53911d9
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
4 changes: 2 additions & 2 deletions internal/redfishwrapper/boot_device.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ func (c *Client) SystemBootDeviceSet(_ context.Context, bootDevice string, setPe
return false, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

systems, err := c.client.Service.Systems()
systems, err := c.Systems()
if err != nil {
return false, err
}
Expand Down Expand Up @@ -136,7 +136,7 @@ func (c *Client) GetBootDeviceOverride(_ context.Context) (override bmc.BootDevi
return override, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

systems, err := c.client.Service.Systems()
systems, err := c.Systems()
if err != nil {
return override, err
}
Expand Down
22 changes: 8 additions & 14 deletions internal/redfishwrapper/power.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func (c *Client) BMCReset(ctx context.Context, resetType string) (ok bool, err e
return false, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

managers, err := c.client.Service.Managers()
managers, err := c.Managers(ctx)
if err != nil {
return false, err
}
Expand All @@ -57,8 +57,7 @@ func (c *Client) SystemPowerOn(ctx context.Context) (ok bool, err error) {
return false, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

service := c.client.Service
ss, err := service.Systems()
ss, err := c.Systems()
if err != nil {
return false, err
}
Expand All @@ -84,8 +83,7 @@ func (c *Client) SystemPowerOff(ctx context.Context) (ok bool, err error) {
return false, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

service := c.client.Service
ss, err := service.Systems()
ss, err := c.Systems()
if err != nil {
return false, err
}
Expand All @@ -112,8 +110,7 @@ func (c *Client) SystemReset(ctx context.Context) (ok bool, err error) {
return false, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

service := c.client.Service
ss, err := service.Systems()
ss, err := c.Systems()
if err != nil {
return false, err
}
Expand Down Expand Up @@ -147,8 +144,7 @@ func (c *Client) SystemPowerCycle(ctx context.Context) (ok bool, err error) {
return false, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

service := c.client.Service
ss, err := service.Systems()
ss, err := c.Systems()
if err != nil {
return false, err
}
Expand Down Expand Up @@ -180,8 +176,7 @@ func (c *Client) SystemPowerStatus(ctx context.Context) (result string, err erro
return result, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

service := c.client.Service
ss, err := service.Systems()
ss, err := c.Systems()
if err != nil {
return "", err
}
Expand All @@ -199,8 +194,7 @@ func (c *Client) SystemForceOff(ctx context.Context) (ok bool, err error) {
return false, errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

service := c.client.Service
ss, err := service.Systems()
ss, err := c.Systems()
if err != nil {
return false, err
}
Expand All @@ -227,7 +221,7 @@ func (c *Client) SendNMI(_ context.Context) error {
return errors.Wrap(bmclibErrs.ErrNotAuthenticated, err.Error())
}

ss, err := c.client.Service.Systems()
ss, err := c.Systems()
if err != nil {
return err
}
Expand Down
8 changes: 8 additions & 0 deletions internal/redfishwrapper/virtual_media.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,21 @@ func (c *Client) SetVirtualMedia(ctx context.Context, kind string, mediaURL stri
}

for _, vm := range virtualMedia {
var ejected bool
if vm.Inserted {
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 {
if err := vm.EjectMedia(); err != nil {
return false, err
}
}
return true, nil
}
if !slices.Contains(vm.MediaTypes, mediaKind) {
Expand Down

0 comments on commit 53911d9

Please sign in to comment.