From b80fa64b6aadefd96cfd990d3c727452aa5d207f Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Mon, 14 Sep 2020 21:35:32 +0800 Subject: [PATCH] fix: keystone initialize data skip nil extra fields --- pkg/keystone/models/credentials.go | 4 ++++ pkg/keystone/models/endpoints.go | 4 ++++ pkg/keystone/models/policies.go | 4 ++++ pkg/keystone/models/regions.go | 4 ++++ pkg/keystone/models/roles.go | 4 ++++ pkg/keystone/models/services.go | 4 ++++ 6 files changed, 24 insertions(+) diff --git a/pkg/keystone/models/credentials.go b/pkg/keystone/models/credentials.go index 6a4c5364c8..2cb5263281 100644 --- a/pkg/keystone/models/credentials.go +++ b/pkg/keystone/models/credentials.go @@ -22,6 +22,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/gotypes" "yunion.io/x/pkg/tristate" "yunion.io/x/sqlchemy" @@ -93,6 +94,9 @@ func (manager *SCredentialManager) InitializeData() error { return err } for i := range creds { + if gotypes.IsNil(creds[i].Extra) { + continue + } name, _ := creds[i].Extra.GetString("name") desc, _ := creds[i].Extra.GetString("description") if len(name) == 0 { diff --git a/pkg/keystone/models/endpoints.go b/pkg/keystone/models/endpoints.go index dc250bb800..1911cc3436 100644 --- a/pkg/keystone/models/endpoints.go +++ b/pkg/keystone/models/endpoints.go @@ -24,6 +24,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/log" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/gotypes" "yunion.io/x/pkg/tristate" "yunion.io/x/sqlchemy" @@ -100,6 +101,9 @@ func (manager *SEndpointManager) InitializeData() error { return err } for i := range eps { + if gotypes.IsNil(eps[i].Extra) { + continue + } name, _ := eps[i].Extra.GetString("name") desc, _ := eps[i].Extra.GetString("description") if len(name) == 0 { diff --git a/pkg/keystone/models/policies.go b/pkg/keystone/models/policies.go index 9e19f75da7..5e07d4a957 100644 --- a/pkg/keystone/models/policies.go +++ b/pkg/keystone/models/policies.go @@ -21,6 +21,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/log" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/gotypes" "yunion.io/x/sqlchemy" "yunion.io/x/onecloud/pkg/apis" @@ -81,6 +82,9 @@ func (manager *SPolicyManager) InitializeData() error { return err } for i := range policies { + if !gotypes.IsNil(policies[i].Extra) { + continue + } db.Update(&policies[i], func() error { policies[i].Name = policies[i].Type policies[i].Description, _ = policies[i].Extra.GetString("description") diff --git a/pkg/keystone/models/regions.go b/pkg/keystone/models/regions.go index 4408c35a94..fff4f2d643 100644 --- a/pkg/keystone/models/regions.go +++ b/pkg/keystone/models/regions.go @@ -19,6 +19,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/gotypes" "yunion.io/x/sqlchemy" "yunion.io/x/onecloud/pkg/apis" @@ -75,6 +76,9 @@ func (manager *SRegionManager) InitializeData() error { return err } for i := range regions { + if gotypes.IsNil(regions[i].Extra) { + continue + } name, _ := regions[i].Extra.GetString("name") if len(name) == 0 { name = regions[i].Id diff --git a/pkg/keystone/models/roles.go b/pkg/keystone/models/roles.go index 46af0d0bff..6ea4cc3372 100644 --- a/pkg/keystone/models/roles.go +++ b/pkg/keystone/models/roles.go @@ -22,6 +22,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/log" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/gotypes" "yunion.io/x/sqlchemy" "yunion.io/x/onecloud/pkg/apis" @@ -91,6 +92,9 @@ func (manager *SRoleManager) InitializeData() error { return errors.Wrap(err, "query") } for i := range roles { + if gotypes.IsNil(roles[i].Extra) { + continue + } desc, _ := roles[i].Extra.GetString("description") _, err = db.Update(&roles[i], func() error { roles[i].Description = desc diff --git a/pkg/keystone/models/services.go b/pkg/keystone/models/services.go index 229c5b2656..c6b732a3ee 100644 --- a/pkg/keystone/models/services.go +++ b/pkg/keystone/models/services.go @@ -20,6 +20,7 @@ import ( "yunion.io/x/jsonutils" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/gotypes" "yunion.io/x/pkg/tristate" "yunion.io/x/sqlchemy" @@ -82,6 +83,9 @@ func (manager *SServiceManager) InitializeData() error { return err } for i := range srvs { + if gotypes.IsNil(srvs[i].Extra) { + continue + } name, _ := srvs[i].Extra.GetString("name") desc, _ := srvs[i].Extra.GetString("description") if len(name) == 0 {