mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
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:
@@ -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可用
|
||||
|
||||
Reference in New Issue
Block a user