Add global config parse error (#65)

This commit is contained in:
澄潭
2022-11-29 19:37:27 +08:00
committed by GitHub
parent 4eb91e6918
commit d0eeefb93d
2 changed files with 6 additions and 3 deletions

View File

@@ -16,6 +16,7 @@ package matcher
import ( import (
"errors" "errors"
"fmt"
"strings" "strings"
"github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm"
@@ -102,10 +103,12 @@ func (m *RuleMatcher[PluginConfig]) ParseRuleConfig(config gjson.Result,
keyCount-- keyCount--
} }
var pluginConfig PluginConfig var pluginConfig PluginConfig
var globalConfigError error
if keyCount > 0 { if keyCount > 0 {
err := parsePluginConfig(config, &pluginConfig) err := parsePluginConfig(config, &pluginConfig)
if err != nil { if err != nil {
proxywasm.LogInfof("parse global config failed, err:%v", err) proxywasm.LogWarnf("parse global config failed, err:%v", err)
globalConfigError = err
} else { } else {
m.globalConfig = pluginConfig m.globalConfig = pluginConfig
m.hasGlobalConfig = true m.hasGlobalConfig = true
@@ -115,7 +118,7 @@ func (m *RuleMatcher[PluginConfig]) ParseRuleConfig(config gjson.Result,
if m.hasGlobalConfig { if m.hasGlobalConfig {
return nil 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 { for _, ruleJson := range rules {
var rule RuleConfig[PluginConfig] var rule RuleConfig[PluginConfig]

View File

@@ -205,7 +205,7 @@ func TestParseRuleConfig(t *testing.T) {
{ {
name: "no rule", name: "no rule",
config: `{"_rules_":[]}`, config: `{"_rules_":[]}`,
errMsg: "parse config failed, no valid rules", errMsg: "parse config failed, no valid rules; global config parse error:<nil>",
}, },
{ {
name: "invalid rule", name: "invalid rule",