mirror of
https://github.com/alibaba/higress.git
synced 2026-06-09 12:47:28 +08:00
Add global config parse error (#65)
This commit is contained in:
@@ -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]
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user