diff --git a/pkg/baremetal/manager.go b/pkg/baremetal/manager.go index 8184e688ae..5d26e8b716 100644 --- a/pkg/baremetal/manager.go +++ b/pkg/baremetal/manager.go @@ -1608,7 +1608,7 @@ func (b *SBaremetalInstance) adjustUEFIWrapper(cli *ssh.Client, f func() error) return errors.Wrap(err, "Check is uefi boot") } if !isUEFI { - return nil + return b.CleanUEFIInfo() } return f() } @@ -1626,13 +1626,8 @@ func (b *SBaremetalInstance) AdjustUEFICurrentBootOrder(hostCli *ssh.Client) err }) } -func (b *SBaremetalInstance) SendUEFIInfo(mgr *uefi.BootMgr) error { - info, err := mgr.ToEFIBootMgrInfo() - if err != nil { - return err - } +func (b *SBaremetalInstance) updateUEFIInfo(uefiData jsonutils.JSONObject) error { desc := b.desc - uefiData := jsonutils.Marshal(info) desc.Add(uefiData, "uefi_info") if err := b.SaveDesc(desc); err != nil { return errors.Wrap(err, "Save uefi_info") @@ -1645,6 +1640,24 @@ func (b *SBaremetalInstance) SendUEFIInfo(mgr *uefi.BootMgr) error { return nil } +func (b *SBaremetalInstance) CleanUEFIInfo() error { + if err := b.updateUEFIInfo(jsonutils.NewDict()); err != nil { + return errors.Wrap(err, "CleanUEFIInfo") + } + return nil +} + +func (b *SBaremetalInstance) SendUEFIInfo(mgr *uefi.BootMgr) error { + info, err := mgr.ToEFIBootMgrInfo() + if err != nil { + return err + } + if err := b.updateUEFIInfo(jsonutils.Marshal(info)); err != nil { + return errors.Wrap(err, "SendUEFIInfo") + } + return nil +} + func (b *SBaremetalInstance) adjustServerUEFIBootOrder(srvCli *ssh.Client) error { return b.adjustUEFIWrapper(srvCli, func() error { info, err := b.GetUEFIInfo()