diff --git a/pkg/baremetal/tasks/base.go b/pkg/baremetal/tasks/base.go index 367face71e..b14e8a5256 100644 --- a/pkg/baremetal/tasks/base.go +++ b/pkg/baremetal/tasks/base.go @@ -306,7 +306,13 @@ func (self *SBaremetalTaskBase) EnsurePowerUp() error { if err != nil { return errors.Wrapf(err, "Get power status") } + maxTries := 10 + count := 0 for status == "" || status == types.POWER_STATUS_OFF { + if count > maxTries { + break + } + log.Infof("Try power on %d times, pxe boot %v", count+1, self.PxeBoot) if status == types.POWER_STATUS_OFF { if self.PxeBoot { err = self.Baremetal.DoPXEBoot() @@ -314,7 +320,7 @@ func (self *SBaremetalTaskBase) EnsurePowerUp() error { err = self.Baremetal.DoRedfishPowerOn() } if err != nil { - return errors.Wrapf(err, "Do boot power on") + log.Warningf("Do boot power on error: %v", err) } } status, err = self.Baremetal.GetPowerStatus() @@ -328,6 +334,7 @@ func (self *SBaremetalTaskBase) EnsurePowerUp() error { return err } } + count++ } if status != types.POWER_STATUS_ON { return fmt.Errorf("Baremetal invalid restart status: %s", status) diff --git a/pkg/compute/baremetal/diskconfig.go b/pkg/compute/baremetal/diskconfig.go index 75555884df..9cd552c139 100644 --- a/pkg/compute/baremetal/diskconfig.go +++ b/pkg/compute/baremetal/diskconfig.go @@ -549,7 +549,7 @@ func GetDiskSpecV2(storages []*BaremetalStorage) api.DiskDriverSpec { if len(driverStorages) == 0 { continue } - spec[driver] = getSpec(storages) + spec[driver] = getSpec(driverStorages) } return spec }