From d0eeefb93d7052374e3769cb89e837d06528e3b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BE=84=E6=BD=AD?= Date: Tue, 29 Nov 2022 19:37:27 +0800 Subject: [PATCH] Add global config parse error (#65) --- plugins/wasm-go/pkg/matcher/rule_matcher.go | 7 +++++-- plugins/wasm-go/pkg/matcher/rule_matcher_test.go | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/wasm-go/pkg/matcher/rule_matcher.go b/plugins/wasm-go/pkg/matcher/rule_matcher.go index ca6bee907..df77e09c7 100644 --- a/plugins/wasm-go/pkg/matcher/rule_matcher.go +++ b/plugins/wasm-go/pkg/matcher/rule_matcher.go @@ -16,6 +16,7 @@ package matcher import ( "errors" + "fmt" "strings" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" @@ -102,10 +103,12 @@ func (m *RuleMatcher[PluginConfig]) ParseRuleConfig(config gjson.Result, keyCount-- } var pluginConfig PluginConfig + var globalConfigError error if keyCount > 0 { err := parsePluginConfig(config, &pluginConfig) if err != nil { - proxywasm.LogInfof("parse global config failed, err:%v", err) + proxywasm.LogWarnf("parse global config failed, err:%v", err) + globalConfigError = err } else { m.globalConfig = pluginConfig m.hasGlobalConfig = true @@ -115,7 +118,7 @@ func (m *RuleMatcher[PluginConfig]) ParseRuleConfig(config gjson.Result, if m.hasGlobalConfig { return nil } - return errors.New("parse config failed, no valid rules") + return fmt.Errorf("parse config failed, no valid rules; global config parse error:%v", globalConfigError) } for _, ruleJson := range rules { var rule RuleConfig[PluginConfig] diff --git a/plugins/wasm-go/pkg/matcher/rule_matcher_test.go b/plugins/wasm-go/pkg/matcher/rule_matcher_test.go index dcc53a147..97db4a958 100644 --- a/plugins/wasm-go/pkg/matcher/rule_matcher_test.go +++ b/plugins/wasm-go/pkg/matcher/rule_matcher_test.go @@ -205,7 +205,7 @@ func TestParseRuleConfig(t *testing.T) { { name: "no rule", config: `{"_rules_":[]}`, - errMsg: "parse config failed, no valid rules", + errMsg: "parse config failed, no valid rules; global config parse error:", }, { name: "invalid rule",