From be5d6ca77b9d2d5dd932816229da29970116a559 Mon Sep 17 00:00:00 2001 From: rainzm Date: Wed, 3 Feb 2021 20:24:55 +0800 Subject: [PATCH 1/2] fix(wire): init and change status --- pkg/apis/compute/wire_const.go | 2 +- pkg/compute/models/wires.go | 10 +++++----- pkg/compute/tasks/cloud_account_sync_vmware_net.go | 2 +- pkg/compute/tasks/networks_under_wire_merge_task.go | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/apis/compute/wire_const.go b/pkg/apis/compute/wire_const.go index 4133972f8d..8ec567b70e 100644 --- a/pkg/apis/compute/wire_const.go +++ b/pkg/apis/compute/wire_const.go @@ -15,7 +15,7 @@ package compute const ( - WIRE_STATUS_READY = "ready" + WIRE_STATUS_AVAILABLE = "available" WIRE_STATUS_MERGE_NETWORK = "merge_network" WIRE_STATUS_MERGE_NETWORK_FAILED = "merge_network_failed" ) diff --git a/pkg/compute/models/wires.go b/pkg/compute/models/wires.go index 9c800ad156..7d48cc308b 100644 --- a/pkg/compute/models/wires.go +++ b/pkg/compute/models/wires.go @@ -891,7 +891,7 @@ func chooseCandidateNetworksByNetworkType(nets []SNetwork, isExit bool, serverTy func (manager *SWireManager) InitializeData() error { wires := make([]SWire, 0) q := manager.Query() - q.Filter(sqlchemy.OR(sqlchemy.IsEmpty(q.Field("vpc_id")), sqlchemy.IsEmpty(q.Field("status")))) + q.Filter(sqlchemy.OR(sqlchemy.IsEmpty(q.Field("vpc_id")), sqlchemy.IsEmpty(q.Field("status")), sqlchemy.Equals(q.Field("status"), "init"), sqlchemy.Equals(q.Field("status"), "ready"))) err := db.FetchModelObjects(manager, q, &wires) if err != nil { return err @@ -901,8 +901,8 @@ func (manager *SWireManager) InitializeData() error { if len(w.VpcId) == 0 { w.VpcId = api.DEFAULT_VPC_ID } - if len(w.Status) == 0 { - w.Status = api.WIRE_STATUS_READY + if len(w.Status) == 0 || w.Status == "init" || w.Status == "ready" { + w.Status = api.WIRE_STATUS_AVAILABLE } return nil }) @@ -1000,7 +1000,7 @@ func (sm *SWireManager) FetchByIdsOrNames(idOrNames []string) ([]SWire, error) { if len(idOrNames) == 0 { return nil, nil } - q := sm.Query("") + q := sm.Query() if len(idOrNames) == 1 { q.Filter(sqlchemy.OR(sqlchemy.Equals(q.Field("id"), idOrNames[0]), sqlchemy.Equals(q.Field("name"), idOrNames[0]))) } else { @@ -1324,7 +1324,7 @@ func (model *SWire) CustomizeCreate(ctx context.Context, userCred mcclient.Token } data.(*jsonutils.JSONDict).Set("public_scope", jsonutils.NewString(model.PublicScope)) } - model.Status = api.WIRE_STATUS_READY + model.Status = api.WIRE_STATUS_AVAILABLE return model.SInfrasResourceBase.CustomizeCreate(ctx, userCred, ownerId, query, data) } diff --git a/pkg/compute/tasks/cloud_account_sync_vmware_net.go b/pkg/compute/tasks/cloud_account_sync_vmware_net.go index dc7273da10..3dce2ebca3 100644 --- a/pkg/compute/tasks/cloud_account_sync_vmware_net.go +++ b/pkg/compute/tasks/cloud_account_sync_vmware_net.go @@ -290,7 +290,7 @@ func (self *CloudAccountSyncVMwareNetworkTask) createWire(ctx context.Context, c wire.Name = wireName wire.DomainId = cloudaccount.GetOwnerId().GetDomainId() wire.Description = desc - wire.Status = api.WIRE_STATUS_READY + wire.Status = api.WIRE_STATUS_AVAILABLE wire.SetModelManager(models.WireManager, wire) err := models.WireManager.TableSpec().Insert(ctx, wire) if err != nil { diff --git a/pkg/compute/tasks/networks_under_wire_merge_task.go b/pkg/compute/tasks/networks_under_wire_merge_task.go index 71f7dc9bc3..5491b6d984 100644 --- a/pkg/compute/tasks/networks_under_wire_merge_task.go +++ b/pkg/compute/tasks/networks_under_wire_merge_task.go @@ -40,7 +40,7 @@ func (self *NetworksUnderWireMergeTask) taskFailed(ctx context.Context, wire *mo func (self *NetworksUnderWireMergeTask) taskSuccess(ctx context.Context, wire *models.SWire, desc string) { d := jsonutils.NewString(desc) - wire.SetStatus(self.UserCred, api.WIRE_STATUS_READY, "") + wire.SetStatus(self.UserCred, api.WIRE_STATUS_AVAILABLE, "") db.OpsLog.LogEvent(wire, db.ACT_MERGE_NETWORK, d, self.UserCred) logclient.AddActionLogWithStartable(self, wire, logclient.ACT_MERGE_NETWORK, d, self.UserCred, true) self.SetStageComplete(ctx, nil) From 2283caa4609f0c648bef4b948cd5f2343e30a3b1 Mon Sep 17 00:00:00 2001 From: rainzm Date: Thu, 4 Feb 2021 10:03:29 +0800 Subject: [PATCH 2/2] fix(region): fetch wires correctly --- pkg/apis/compute/wire_const.go | 1 + pkg/compute/models/wires.go | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/apis/compute/wire_const.go b/pkg/apis/compute/wire_const.go index 8ec567b70e..828a3bfd16 100644 --- a/pkg/apis/compute/wire_const.go +++ b/pkg/apis/compute/wire_const.go @@ -16,6 +16,7 @@ package compute const ( WIRE_STATUS_AVAILABLE = "available" + WIRE_STATUS_READY_DEPRECATED = "ready" WIRE_STATUS_MERGE_NETWORK = "merge_network" WIRE_STATUS_MERGE_NETWORK_FAILED = "merge_network_failed" ) diff --git a/pkg/compute/models/wires.go b/pkg/compute/models/wires.go index 7d48cc308b..151e6c4840 100644 --- a/pkg/compute/models/wires.go +++ b/pkg/compute/models/wires.go @@ -891,7 +891,7 @@ func chooseCandidateNetworksByNetworkType(nets []SNetwork, isExit bool, serverTy func (manager *SWireManager) InitializeData() error { wires := make([]SWire, 0) q := manager.Query() - q.Filter(sqlchemy.OR(sqlchemy.IsEmpty(q.Field("vpc_id")), sqlchemy.IsEmpty(q.Field("status")), sqlchemy.Equals(q.Field("status"), "init"), sqlchemy.Equals(q.Field("status"), "ready"))) + q.Filter(sqlchemy.OR(sqlchemy.IsEmpty(q.Field("vpc_id")), sqlchemy.IsEmpty(q.Field("status")), sqlchemy.Equals(q.Field("status"), "init"), sqlchemy.Equals(q.Field("status"), api.WIRE_STATUS_READY_DEPRECATED))) err := db.FetchModelObjects(manager, q, &wires) if err != nil { return err @@ -901,7 +901,7 @@ func (manager *SWireManager) InitializeData() error { if len(w.VpcId) == 0 { w.VpcId = api.DEFAULT_VPC_ID } - if len(w.Status) == 0 || w.Status == "init" || w.Status == "ready" { + if len(w.Status) == 0 || w.Status == "init" || w.Status == api.WIRE_STATUS_READY_DEPRECATED { w.Status = api.WIRE_STATUS_AVAILABLE } return nil @@ -1004,7 +1004,7 @@ func (sm *SWireManager) FetchByIdsOrNames(idOrNames []string) ([]SWire, error) { if len(idOrNames) == 1 { q.Filter(sqlchemy.OR(sqlchemy.Equals(q.Field("id"), idOrNames[0]), sqlchemy.Equals(q.Field("name"), idOrNames[0]))) } else { - q.Filter(sqlchemy.OR(sqlchemy.In(q.Field("id"), idOrNames[0]), sqlchemy.In(q.Field("name"), idOrNames[0]))) + q.Filter(sqlchemy.OR(sqlchemy.In(q.Field("id"), idOrNames), sqlchemy.In(q.Field("name"), idOrNames))) } ret := make([]SWire, 0, len(idOrNames)) err := db.FetchModelObjects(sm, q, &ret)