Merge pull request #4426 from swordqiu/hotfix/qj-baremetal-server-reuse-host-ipmi-address

fix: baremetal server may reuse host's IPMI address
This commit is contained in:
Zexi Li
2019-12-31 00:40:02 +08:00
committed by GitHub
+7 -5
View File
@@ -1276,6 +1276,13 @@ func (self *SHost) GetBaremetalnetworks() []SHostnetwork {
func (self *SHost) GetAttach2Network(netId string) *SHostnetwork {
q := self.GetBaremetalnetworksQuery()
netifs := NetInterfaceManager.Query().Equals("baremetal_id", self.Id)
netifs = netifs.Filter(sqlchemy.OR(
sqlchemy.IsNullOrEmpty(netifs.Field("nic_type")),
sqlchemy.NotEquals(netifs.Field("nic_type"), api.NIC_TYPE_IPMI),
))
netifsSub := netifs.SubQuery()
q = q.Join(netifsSub, sqlchemy.Equals(q.Field("mac_addr"), netifsSub.Field("mac")))
q = q.Equals("network_id", netId)
hn := SHostnetwork{}
hn.SetModelManager(HostnetworkManager, &hn)
@@ -1288,11 +1295,6 @@ func (self *SHost) GetAttach2Network(netId string) *SHostnetwork {
return &hn
}
func (self *SHost) isAttach2Network(network *SNetwork) bool {
hn := self.GetAttach2Network(network.Id)
return hn != nil
}
func (self *SHost) GetNetInterfaces() []SNetInterface {
q := NetInterfaceManager.Query().Equals("baremetal_id", self.Id).Asc("index")
netifs := make([]SNetInterface, 0)