From 0ac34ecf2d0ebfaa5f34952ab381841eec18fc9d Mon Sep 17 00:00:00 2001 From: Zexi Li Date: Tue, 13 Aug 2024 17:43:57 +0800 Subject: [PATCH] fix(baremetal): ignore 0.0.0.0 ipmi address when probing (#21007) --- pkg/baremetal/tasks/ipmiprobe.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/baremetal/tasks/ipmiprobe.go b/pkg/baremetal/tasks/ipmiprobe.go index 92ade0e797..b548c40f79 100644 --- a/pkg/baremetal/tasks/ipmiprobe.go +++ b/pkg/baremetal/tasks/ipmiprobe.go @@ -201,18 +201,26 @@ func (self *SBaremetalIpmiProbeTask) doRawIpmiProbe(ctx context.Context, cli ipm guid := ipmitool.GetSysGuid(cli) var conf *types.SIPMILanConfig var channel uint8 + var errs []error for _, lanChannel := range profile.LanChannels { conf, err = ipmitool.GetLanConfig(cli, lanChannel) if err != nil { // ignore error - log.Errorf("ipmitool.GetLanConfig for channel %d fail: %s", lanChannel, err) + err := errors.Wrapf(err, "ipmitool.GetLanConfig for channel %d failed", lanChannel) + errs = append(errs, err) + log.Warningf(err.Error()) + } else if conf.IPAddr == "0.0.0.0" { + err := errors.Errorf("get 0.0.0.0 ip address of channel %d", lanChannel) + errs = append(errs, err) + log.Warningf(err.Error()) + continue } else { channel = lanChannel break } } if conf == nil { - return errors.Wrap(httperrors.ErrNotFound, "no IPMI lan") + return errors.Wrapf(httperrors.ErrNotFound, "no IPMI lan: %s", errors.NewAggregate(errs).Error()) } err = self.sendIpmiNicInfo(ctx, conf) if err != nil {