From 18fe12a4a7551331f68c82455152dfd2b32b025d Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Thu, 14 May 2020 20:35:11 +0800 Subject: [PATCH] elasticips: onecloud: support sync and syncstatus --- pkg/compute/models/elasticips.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pkg/compute/models/elasticips.go b/pkg/compute/models/elasticips.go index f5d09a1a42..e655d94cc3 100644 --- a/pkg/compute/models/elasticips.go +++ b/pkg/compute/models/elasticips.go @@ -1147,8 +1147,11 @@ func (self *SElasticip) PerformSyncstatus(ctx context.Context, userCred mcclient if self.Mode == api.EIP_MODE_INSTANCE_PUBLICIP { return nil, httperrors.NewUnsupportOperationError("fixed eip cannot sync status") } - - return nil, StartResourceSyncStatusTask(ctx, userCred, self, "EipSyncstatusTask", "") + if self.IsManaged() { + return nil, StartResourceSyncStatusTask(ctx, userCred, self, "EipSyncstatusTask", "") + } else { + return nil, self.SetStatus(userCred, api.EIP_STATUS_READY, "eip sync status") + } } func (self *SElasticip) AllowPerformSync(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) bool { @@ -1156,15 +1159,13 @@ func (self *SElasticip) AllowPerformSync(ctx context.Context, userCred mcclient. } func (self *SElasticip) PerformSync(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) (jsonutils.JSONObject, error) { - /*if self.Status != EIP_STATUS_READY && !strings.HasSuffix(self.Status, "_fail") { - return nil, httperrors.NewInvalidStatusError("eip cannot syncstatus in status %s", self.Status) - }*/ - if self.Mode == api.EIP_MODE_INSTANCE_PUBLICIP { return nil, httperrors.NewUnsupportOperationError("fixed eip cannot sync status") } - - return nil, StartResourceSyncStatusTask(ctx, userCred, self, "EipSyncstatusTask", "") + if self.IsManaged() { + return nil, StartResourceSyncStatusTask(ctx, userCred, self, "EipSyncstatusTask", "") + } + return nil, nil } func (self *SElasticip) GetExtraDetails(