Merge pull request #11789 from zexi/automated-cherry-pick-of-#11788-upstream-master

Automated cherry pick of #11788: fix(region): baremetal server resued address nic count should be subtracted
This commit is contained in:
yunion-ci-robot
2021-08-03 23:55:57 +08:00
committed by GitHub
+17
View File
@@ -317,9 +317,26 @@ func (self *SNetwork) GetAllocatedNicCount() (*sNicCount, error) {
return nil, errors.Wrapf(err, "GetNatGatewayIpsCount")
}
cnt.Total += cnt.NatNicCount
bmReusedCnt, err := self.GetBaremetalServerReusedCount()
if err != nil {
return nil, errors.Wrapf(err, "Get baremetal server resued count")
}
cnt.Total -= bmReusedCnt
return cnt, nil
}
func (self *SNetwork) GetBaremetalServerReusedCount() (int, error) {
guest := GuestManager.Query().SubQuery()
gn := GuestnetworkManager.Query().Equals("network_id", self.Id)
gn = gn.Join(guest, sqlchemy.Equals(gn.Field("guest_id"), guest.Field("id")))
bmn := HostnetworkManager.Query().Equals("network_id", self.Id).SubQuery()
q := gn.Join(bmn, sqlchemy.AND(
sqlchemy.Equals(gn.Field("ip_addr"), bmn.Field("ip_addr")),
sqlchemy.Equals(guest.Field("host_id"), bmn.Field("baremetal_id")),
))
return q.CountWithError()
}
/*验证elb network可用,并返回关联的region, zone,vpc, wire*/
func (self *SNetwork) ValidateElbNetwork(ipAddr net.IP) (*SCloudregion, *SZone, *SVpc, *SWire, error) {
// 验证IP Address可用