From 55cfb0ba45a93e04ca979b416862299751235b1f Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 20 Apr 2021 21:16:36 +0800 Subject: [PATCH] fix(baremetal): baremetal ipmi probe reset link up state --- pkg/baremetal/manager.go | 4 +++- pkg/baremetal/tasks/baseprepare.go | 3 +-- pkg/baremetal/tasks/bm_register.go | 3 ++- pkg/baremetal/tasks/ipmiprobe.go | 3 ++- pkg/cloudcommon/types/types.go | 2 +- pkg/util/sysutils/sysutils.go | 2 +- pkg/util/sysutils/sysutils_test.go | 6 ++++-- 7 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pkg/baremetal/manager.go b/pkg/baremetal/manager.go index 91e1969217..4d9c24e024 100644 --- a/pkg/baremetal/manager.go +++ b/pkg/baremetal/manager.go @@ -1690,7 +1690,9 @@ func (b *SBaremetalInstance) SendNicInfo(nic *types.SNicDevInfo, idx int, nicTyp params.Add(jsonutils.NewString(nicType), "nic_type") } params.Add(jsonutils.NewInt(int64(nic.Mtu)), "mtu") - params.Add(jsonutils.NewBool(nic.Up), "link_up") + if nic.Up != nil { + params.Add(jsonutils.NewBool(*nic.Up), "link_up") + } if reset { params.Add(jsonutils.JSONTrue, "reset") } diff --git a/pkg/baremetal/tasks/baseprepare.go b/pkg/baremetal/tasks/baseprepare.go index ae689952ce..7dcedd9f20 100644 --- a/pkg/baremetal/tasks/baseprepare.go +++ b/pkg/baremetal/tasks/baseprepare.go @@ -190,7 +190,6 @@ func (task *sBaremetalPrepareTask) configIPMISetting(cli *ssh.Client, i *baremet ipmiNic := &types.SNicDevInfo{ Mac: conf.Mac, - Up: false, Speed: 100, Mtu: 1500, } @@ -441,7 +440,7 @@ func (task *sBaremetalPrepareTask) updateBmInfo(cli *ssh.Client, i *baremetalPre } if o.Options.EnablePxeBoot && task.baremetal.EnablePxeBoot() { for _, nicInfo := range i.nicsInfo { - if nicInfo.Mac.String() != adminNic.GetMac().String() && nicInfo.Up { + if nicInfo.Mac.String() != adminNic.GetMac().String() && nicInfo.Up != nil && *nicInfo.Up { err = task.doNicWireProbe(cli, nicInfo) if err != nil { // ignore the error diff --git a/pkg/baremetal/tasks/bm_register.go b/pkg/baremetal/tasks/bm_register.go index 4a7c93dbd9..dc885ab249 100644 --- a/pkg/baremetal/tasks/bm_register.go +++ b/pkg/baremetal/tasks/bm_register.go @@ -245,8 +245,9 @@ func (s *sBaremetalRegisterTask) updateIpmiInfo(cli *ssh.Client) { ipmitool.SetDellIPMILanPortShared(ipmiTool) } } + up := true var nic = &types.SNicDevInfo{ - Up: true, + Up: &up, Speed: 100, Mtu: 1500, } diff --git a/pkg/baremetal/tasks/ipmiprobe.go b/pkg/baremetal/tasks/ipmiprobe.go index 652f314898..92bb1c8ee6 100644 --- a/pkg/baremetal/tasks/ipmiprobe.go +++ b/pkg/baremetal/tasks/ipmiprobe.go @@ -157,9 +157,10 @@ func (self *SBaremetalIpmiProbeTask) sendIpmiNicInfo(lanConf *types.SIPMILanConf if speed <= 0 { speed = 100 } + up := true ipmiNic := &types.SNicDevInfo{ Mac: lanConf.Mac, - Up: true, + Up: &up, Speed: speed, Mtu: 1500, } diff --git a/pkg/cloudcommon/types/types.go b/pkg/cloudcommon/types/types.go index ae82b48edd..65d1366f3d 100644 --- a/pkg/cloudcommon/types/types.go +++ b/pkg/cloudcommon/types/types.go @@ -93,7 +93,7 @@ type SNicDevInfo struct { Dev string `json:"dev"` Mac net.HardwareAddr `json:"mac"` Speed int `json:"speed"` - Up bool `json:"up"` + Up *bool `json:"up"` Mtu int `json:"mtu"` } diff --git a/pkg/util/sysutils/sysutils.go b/pkg/util/sysutils/sysutils.go index 57331020f5..ffed08bbc4 100644 --- a/pkg/util/sysutils/sysutils.go +++ b/pkg/util/sysutils/sysutils.go @@ -195,7 +195,7 @@ func ParseNicInfo(lines []string) []*types.SNicDevInfo { Dev: dev, Mac: mac, Speed: speed, - Up: up, + Up: &up, Mtu: mtu, }) } diff --git a/pkg/util/sysutils/sysutils_test.go b/pkg/util/sysutils/sysutils_test.go index 6c072c1294..b3112c7825 100644 --- a/pkg/util/sysutils/sysutils_test.go +++ b/pkg/util/sysutils/sysutils_test.go @@ -241,6 +241,8 @@ func TestParseNicInfo(t *testing.T) { type args struct { lines []string } + up := true + down := false mac1Str := "00:22:25:0b:ab:49" mac2Str := "00:22:25:0b:ab:50" mac1, _ := net.ParseMAC(mac1Str) @@ -259,8 +261,8 @@ func TestParseNicInfo(t *testing.T) { }, }, want: []*types.SNicDevInfo{ - {Dev: "eth0", Mac: mac1, Speed: 0, Up: true, Mtu: 1500}, - {Dev: "eth1", Mac: mac2, Speed: 0, Up: false, Mtu: 1500}, + {Dev: "eth0", Mac: mac1, Speed: 0, Up: &up, Mtu: 1500}, + {Dev: "eth1", Mac: mac2, Speed: 0, Up: &down, Mtu: 1500}, }, }, }