From dab5b6e4391899fbfeb8e9ba0cd04f7b4bdef37c Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Fri, 11 Sep 2020 19:16:10 +0800 Subject: [PATCH] fix: avoid sync natgateway eip panic --- pkg/compute/models/elasticips.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/compute/models/elasticips.go b/pkg/compute/models/elasticips.go index 143e852ac2..601f268b67 100644 --- a/pkg/compute/models/elasticips.go +++ b/pkg/compute/models/elasticips.go @@ -426,8 +426,11 @@ func (self *SElasticip) SyncInstanceWithCloudEip(ctx context.Context, userCred m case api.EIP_ASSOCIATE_TYPE_SERVER: sq := HostManager.Query().SubQuery() return q.Join(sq, sqlchemy.Equals(sq.Field("id"), q.Field("host_id"))).Filter(sqlchemy.Equals(sq.Field("manager_id"), self.ManagerId)) - case api.EIP_ASSOCIATE_TYPE_NAT_GATEWAY, api.EIP_ASSOCIATE_TYPE_LOADBALANCER: + case api.EIP_ASSOCIATE_TYPE_LOADBALANCER: return q.Equals("manager_id", self.ManagerId) + case api.EIP_ASSOCIATE_TYPE_NAT_GATEWAY: + sq := VpcManager.Query("id").Equals("manager_id", self.ManagerId) + return q.In("vpc_id", sq.SubQuery()) } return q })