You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ti...@apache.org on 2021/05/31 06:11:13 UTC
[servicecomb-service-center] branch master updated: 添加创建业务场景未对alias字段校验,将对methods校验修改为method (#1016)
This is an automated email from the ASF dual-hosted git repository.
tianxiaoliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-service-center.git
The following commit(s) were added to refs/heads/master by this push:
new e97cd40 添加创建业务场景未对alias字段校验,将对methods校验修改为method (#1016)
e97cd40 is described below
commit e97cd40079e6b3f3b62e304ae5a612ed198a1448
Author: 朱程成 <15...@163.com>
AuthorDate: Mon May 31 14:11:06 2021 +0800
添加创建业务场景未对alias字段校验,将对methods校验修改为method (#1016)
* 添加创建业务场景未对alias字段校验,将对methods校验修改为method
* 添加创建业务场景未对alias字段校验,将对methods校验修改为method
* 添加创建业务场景未对alias字段校验,将对methods校验修改为method
* 添加创建业务场景未对alias字段校验,将对methods校验修改为method
---
server/service/gov/kie/kie_distributor.go | 14 ++++++++++++++
server/service/gov/kie/validate.go | 18 +++++++++++-------
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/server/service/gov/kie/kie_distributor.go b/server/service/gov/kie/kie_distributor.go
index 4533a1d..4193546 100644
--- a/server/service/gov/kie/kie_distributor.go
+++ b/server/service/gov/kie/kie_distributor.go
@@ -51,6 +51,10 @@ const (
KeyApp = "app"
KeyEnvironment = "environment"
EnvAll = "all"
+ Alias = "alias"
+ Method = "method"
+ Matches = "matches"
+ Rules = "rules"
)
var PolicyNames = []string{"retry", "rateLimiting", "circuitBreaker", "bulkhead"}
@@ -76,6 +80,7 @@ func (d *Distributor) Create(kind, project string, spec []byte) ([]byte, error)
if err != nil {
return nil, err
}
+ setAliasIfEmpty(p.Spec, p.Name)
yamlByte, err := yaml.Marshal(p.Spec)
if err != nil {
return nil, err
@@ -106,6 +111,7 @@ func (d *Distributor) Update(kind, id, project string, spec []byte) error {
if err != nil {
return err
}
+ setAliasIfEmpty(p.Spec, p.Name)
yamlByte, err := yaml.Marshal(p.Spec)
if err != nil {
return err
@@ -211,6 +217,14 @@ func (d *Distributor) Display(project, app, env string) ([]byte, error) {
return b, nil
}
+func setAliasIfEmpty(val interface{}, name string) {
+ spec := val.(map[string]interface{})
+ alias := spec["alias"].(string)
+ if alias == "" {
+ spec["alias"] = name
+ }
+}
+
func (d *Distributor) List(kind, project, app, env string) ([]byte, error) {
list, _, err := d.listDataByKind(kind, project, app, env)
if err != nil {
diff --git a/server/service/gov/kie/validate.go b/server/service/gov/kie/validate.go
index 2423d2f..768abf7 100644
--- a/server/service/gov/kie/validate.go
+++ b/server/service/gov/kie/validate.go
@@ -62,10 +62,14 @@ func matchValidate(val interface{}) error {
if !ok {
return &ErrIllegalItem{"can not cast to map", val}
}
- if spec["matches"] == nil {
+ if spec[Matches] == nil {
return nil
}
- matches, ok := spec["matches"].([]interface{})
+ alias, ok := spec[Alias].(string)
+ if !ok {
+ return &ErrIllegalItem{"alias must be string", alias}
+ }
+ matches, ok := spec[Matches].([]interface{})
if !ok {
return &ErrIllegalItem{"don't have matches", spec}
}
@@ -77,12 +81,12 @@ func matchValidate(val interface{}) error {
if match["name"] == nil {
return &ErrIllegalItem{"match's name can not be null", match}
}
- if match["apiPath"] == nil && match["headers"] == nil && match["methods"] == nil {
+ if match["apiPath"] == nil && match["headers"] == nil && match[Method] == nil {
return &ErrIllegalItem{"match must have a match item [apiPath/headers/methods]", match}
}
//apiPath & headers do not check
- if match["methods"] != nil {
- methods, ok := match["methods"].([]interface{})
+ if match[Method] != nil {
+ methods, ok := match[Method].([]interface{})
if !ok {
return &ErrIllegalItem{"methods must be a list", match}
}
@@ -121,8 +125,8 @@ func policyValidate(val interface{}) error {
if !ok {
return &ErrIllegalItem{"policy can not cast to map", val}
}
- if spec["rules"] != nil {
- rules, ok := spec["rules"].(map[string]interface{})
+ if spec[Rules] != nil {
+ rules, ok := spec[Rules].(map[string]interface{})
if !ok {
return &ErrIllegalItem{"policy's rules can not cast to map", spec}
}