From bd9c8ca780ff62731acbc872d6f0b5aff82640a4 Mon Sep 17 00:00:00 2001 From: TangBin Date: Wed, 20 Mar 2019 16:28:51 +0800 Subject: [PATCH 1/2] skus query fix --- pkg/compute/models/skus.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index 86a31bf2e1..d7c3916a2a 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -426,6 +426,16 @@ func intervalMem(n int) (int, int) { return interval(n, 1024) } +func normalizeProvider(provider string) string { + for _, p := range CLOUD_PROVIDERS { + if strings.ToLower(p) == strings.ToLower(provider) { + return p + } + } + + return provider +} + func providerFilter(q *sqlchemy.SQuery, provider string, public_cloud bool) *sqlchemy.SQuery { if provider == "all" { // provider 参数为all时。表示查询所有instance type. @@ -509,7 +519,10 @@ func (self *SServerSkuManager) GetPropertyInstanceSpecs(ctx context.Context, use if _, exists := cpu_mems_mb[k]; !exists { cpu_mems_mb[k] = []int{nm} } else { - cpu_mems_mb[k] = append(cpu_mems_mb[k], nm) + idx := len(cpu_mems_mb[k]) - 1 + if cpu_mems_mb[k][idx] != nm { + cpu_mems_mb[k] = append(cpu_mems_mb[k], nm) + } } } @@ -653,7 +666,7 @@ func (self *SServerSku) GetZoneExternalId() (string, error) { } func (manager *SServerSkuManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (*sqlchemy.SQuery, error) { - provider := jsonutils.GetAnyString(query, []string{"provider"}) + provider := normalizeProvider(jsonutils.GetAnyString(query, []string{"provider"})) public_cloud, _ := query.Bool("public_cloud") queryDict := query.(*jsonutils.JSONDict) // 手动处理provider查询 From 4bbf5ddd8c50fa9d729cda9fbb49aee3c921e35a Mon Sep 17 00:00:00 2001 From: TangBin Date: Thu, 21 Mar 2019 19:59:24 +0800 Subject: [PATCH 2/2] normalizeProvider fix --- pkg/compute/models/skus.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/compute/models/skus.go b/pkg/compute/models/skus.go index d7c3916a2a..3d5a0ca72c 100644 --- a/pkg/compute/models/skus.go +++ b/pkg/compute/models/skus.go @@ -427,6 +427,10 @@ func intervalMem(n int) (int, int) { } func normalizeProvider(provider string) string { + if len(provider) == 0 { + return provider + } + for _, p := range CLOUD_PROVIDERS { if strings.ToLower(p) == strings.ToLower(provider) { return p