From 83336a36d4d44f99face3c166101ff7ff59e5cba Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Sat, 18 Jan 2020 10:55:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=AC=E6=9C=89=E4=BA=91=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=B7=BB=E5=8A=A0brand=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/apis/cloudevent/cloudevent.go | 6 ++++-- pkg/cloudevent/models/cloudevents.go | 26 +++++++++++++++++++++++++ pkg/cloudevent/models/cloudproviders.go | 4 +++- pkg/cloudevent/models/initdb.go | 1 + pkg/compute/models/cloudproviders.go | 2 ++ 5 files changed, 36 insertions(+), 3 deletions(-) diff --git a/pkg/apis/cloudevent/cloudevent.go b/pkg/apis/cloudevent/cloudevent.go index 88bdcc37a9..1ad0fbc069 100644 --- a/pkg/apis/cloudevent/cloudevent.go +++ b/pkg/apis/cloudevent/cloudevent.go @@ -26,6 +26,8 @@ type CloudeventListInput struct { compute.ManagedResourceListInput - Since time.Time - Until time.Time + // 操作日志起始时间 + Since time.Time `json:"since"` + // 操作日志截止时间 + Until time.Time `json:"until"` } diff --git a/pkg/cloudevent/models/cloudevents.go b/pkg/cloudevent/models/cloudevents.go index 69046157df..e7a01fa278 100644 --- a/pkg/cloudevent/models/cloudevents.go +++ b/pkg/cloudevent/models/cloudevents.go @@ -50,6 +50,7 @@ func init() { type SCloudevent struct { db.SModelBase + Id int64 `primary:"true" auto_increment:"true" list:"user"` Name string `width:"128" charset:"utf8" nullable:"false" index:"true" list:"user"` Service string `width:"64" charset:"utf8" nullable:"true" list:"user"` ResourceType string `width:"64" charset:"utf8" nullable:"true" list:"user"` @@ -63,6 +64,7 @@ type SCloudevent struct { CloudproviderId string `width:"64" charset:"utf8" nullable:"true" list:"user"` Manager string `width:"128" charset:"utf8" nullable:"false" index:"true" list:"user"` Provider string `width:"64" charset:"ascii" nullable:"false" list:"user"` + Brand string `width:"64" charset:"ascii" list:"domain"` } func (self *SCloudeventManager) AllowCreateItem(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data jsonutils.JSONObject) bool { @@ -101,6 +103,10 @@ func (manager *SCloudeventManager) ListItemFilter(ctx context.Context, q *sqlche q = q.In("provider", input.Providers) } + if len(input.Brands) > 0 { + q = q.In("brand", input.Brands) + } + if !input.Since.IsZero() { q = q.GT("created_at", input.Since) } @@ -129,6 +135,7 @@ func (manager *SCloudeventManager) SyncCloudevent(ctx context.Context, userCred Success: iEvent.IsSuccess(), Manager: cloudprovider.Name, Provider: cloudprovider.Provider, + Brand: cloudprovider.Brand, CloudproviderId: cloudprovider.Id, } @@ -151,3 +158,22 @@ func (manager *SCloudeventManager) GetPagingConfig() *db.SPagingConfig { DefaultLimit: 20, } } + +func (manager *SCloudeventManager) InitializeData() error { + events := []SCloudevent{} + q := manager.Query().IsNullOrEmpty("brand") + err := db.FetchModelObjects(manager, q, &events) + if err != nil { + return err + } + for i := range events { + _, err = db.Update(&events[i], func() error { + events[i].Brand = events[i].Provider + return nil + }) + if err != nil { + return err + } + } + return nil +} diff --git a/pkg/cloudevent/models/cloudproviders.go b/pkg/cloudevent/models/cloudproviders.go index a95012f846..2779d57b69 100644 --- a/pkg/cloudevent/models/cloudproviders.go +++ b/pkg/cloudevent/models/cloudproviders.go @@ -67,12 +67,13 @@ type SCloudprovider struct { Secret string `length:"0" charset:"ascii" nullable:"false" list:"domain"` Provider string `width:"64" charset:"ascii" list:"domain"` + Brand string `width:"64" charset:"ascii" list:"domain"` } func (manager *SCloudproviderManager) GetRegionCloudproviders(ctx context.Context, userCred mcclient.TokenCredential) ([]SCloudprovider, error) { s := session.GetSession(ctx, userCred) params := jsonutils.NewDict() - params.Add(jsonutils.NewString("public"), "cloud_env") + params.Add(jsonutils.JSONTrue, "details") result, err := modules.Cloudproviders.List(s, params) if err != nil { return nil, errors.Wrap(err, "modules.Cloudproviders.List") @@ -151,6 +152,7 @@ func (provider *SCloudprovider) syncWithRegionProvider(ctx context.Context, user provider.Status = cloudprovider.Status provider.Secret = cloudprovider.Secret provider.Enabled = cloudprovider.Enabled + provider.Brand = cloudprovider.Brand return nil }) return err diff --git a/pkg/cloudevent/models/initdb.go b/pkg/cloudevent/models/initdb.go index 5eda91b02b..ddc91143fd 100644 --- a/pkg/cloudevent/models/initdb.go +++ b/pkg/cloudevent/models/initdb.go @@ -29,6 +29,7 @@ func InitDB() error { db.TenantCacheManager, CloudproviderManager, + CloudeventManager, } { err := manager.InitializeData() if err != nil { diff --git a/pkg/compute/models/cloudproviders.go b/pkg/compute/models/cloudproviders.go index 56eaa45b6c..d807c2fd82 100644 --- a/pkg/compute/models/cloudproviders.go +++ b/pkg/compute/models/cloudproviders.go @@ -872,6 +872,8 @@ func (self *SCloudprovider) getMoreDetails(ctx context.Context, extra *jsonutils account := self.GetCloudaccount() if account != nil { extra.Add(jsonutils.NewString(account.GetName()), "cloudaccount") + // 此字段不能删除,公有云日志同步需要这个字段 + extra.Add(jsonutils.NewString(account.Brand), "brand") } extra.Set("sync_status2", jsonutils.NewString(self.getSyncStatus2())) capabilities, _ := CloudproviderCapabilityManager.getCapabilities(self.Id)