Skip to content

Commit 5c40a63

Browse files
committed
feat: not inline rule-provider can also set payload as fallback rules when file/http parsing fails
1 parent 61d6a9a commit 5c40a63

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

rules/provider/parse.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,5 @@ func ParseRuleProvider(name string, mapping map[string]any, parse common.ParseRu
6363
return nil, fmt.Errorf("unsupported vehicle type: %s", schema.Type)
6464
}
6565

66-
return NewRuleSetProvider(name, behavior, format, time.Duration(uint(schema.Interval))*time.Second, vehicle, parse), nil
66+
return NewRuleSetProvider(name, behavior, format, time.Duration(uint(schema.Interval))*time.Second, vehicle, schema.Payload, parse), nil
6767
}

rules/provider/provider.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ func (rp *RuleSetProvider) Close() error {
133133
return rp.ruleSetProvider.Close()
134134
}
135135

136-
func NewRuleSetProvider(name string, behavior P.RuleBehavior, format P.RuleFormat, interval time.Duration, vehicle P.Vehicle, parse common.ParseRuleFunc) P.RuleProvider {
136+
func NewRuleSetProvider(name string, behavior P.RuleBehavior, format P.RuleFormat, interval time.Duration, vehicle P.Vehicle, payload []string, parse common.ParseRuleFunc) P.RuleProvider {
137137
rp := &ruleSetProvider{
138138
baseProvider: baseProvider{
139139
behavior: behavior,
@@ -147,6 +147,9 @@ func NewRuleSetProvider(name string, behavior P.RuleBehavior, format P.RuleForma
147147
}
148148

149149
rp.strategy = newStrategy(behavior, parse)
150+
if len(payload) > 0 { // using as fallback rules
151+
rp.strategy = rulesParseInline(payload, rp.strategy)
152+
}
150153
rp.Fetcher = resource.NewFetcher(name, interval, vehicle, func(bytes []byte) (ruleStrategy, error) {
151154
return rulesParse(bytes, newStrategy(behavior, parse), format)
152155
}, onUpdate)

0 commit comments

Comments
 (0)