Skip to content

Commit 03e6314

Browse files
authored
Merge pull request #2069 from marquiz/devel/template-refactor
nodefeaturerule: refactor template handling
2 parents 19f6b4f + 4862d78 commit 03e6314

File tree

1 file changed

+11
-33
lines changed
  • pkg/apis/nfd/nodefeaturerule

1 file changed

+11
-33
lines changed

pkg/apis/nfd/nodefeaturerule/rule.go

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,10 @@ func Execute(r *nfdv1alpha1.Rule, features *nfdv1alpha1.Features, failFast bool)
9797
break
9898
}
9999

100-
if err := executeLabelsTemplate(r, featureStatus.MatchedFeatures, labels); err != nil {
100+
if err := executeTemplate(r.LabelsTemplate, featureStatus.MatchedFeatures, labels); err != nil {
101101
return RuleOutput{}, err
102102
}
103-
if err := executeVarsTemplate(r, featureStatus.MatchedFeatures, vars); err != nil {
103+
if err := executeTemplate(r.VarsTemplate, featureStatus.MatchedFeatures, vars); err != nil {
104104
return RuleOutput{}, err
105105
}
106106
}
@@ -122,10 +122,10 @@ func Execute(r *nfdv1alpha1.Rule, features *nfdv1alpha1.Features, failFast bool)
122122
return RuleOutput{MatchStatus: &matchStatus}, nil
123123
} else {
124124
klog.V(4).InfoS("matchFeatures matched", "ruleName", r.Name, "matchedFeatures", utils.DelayedDumper(matchStatus.MatchedFeatures))
125-
if err := executeLabelsTemplate(r, matchStatus.MatchedFeatures, labels); err != nil {
125+
if err := executeTemplate(r.LabelsTemplate, matchStatus.MatchedFeatures, labels); err != nil {
126126
return RuleOutput{}, err
127127
}
128-
if err := executeVarsTemplate(r, matchStatus.MatchedFeatures, vars); err != nil {
128+
if err := executeTemplate(r.VarsTemplate, matchStatus.MatchedFeatures, vars); err != nil {
129129
return RuleOutput{}, err
130130
}
131131
}
@@ -182,43 +182,21 @@ func ExecuteGroupRule(r *nfdv1alpha1.GroupRule, features *nfdv1alpha1.Features,
182182
return true, nil
183183
}
184184

185-
func executeLabelsTemplate(r *nfdv1alpha1.Rule, in matchedFeatures, out map[string]string) error {
186-
if r.LabelsTemplate == "" {
185+
func executeTemplate(tmpl string, in matchedFeatures, out map[string]string) error {
186+
if tmpl == "" {
187187
return nil
188188
}
189189

190-
th, err := template.NewHelper(r.LabelsTemplate)
190+
th, err := template.NewHelper(tmpl)
191191
if err != nil {
192-
return fmt.Errorf("failed to parse LabelsTemplate: %w", err)
192+
return fmt.Errorf("failed to parse template: %w", err)
193193
}
194194

195-
labels, err := th.ExpandMap(in)
195+
values, err := th.ExpandMap(in)
196196
if err != nil {
197-
return fmt.Errorf("failed to expand LabelsTemplate: %w", err)
198-
}
199-
for k, v := range labels {
200-
out[k] = v
201-
}
202-
return nil
203-
}
204-
205-
func executeVarsTemplate(r *nfdv1alpha1.Rule, in matchedFeatures, out map[string]string) error {
206-
if r.VarsTemplate == "" {
207-
return nil
208-
}
209-
210-
th, err := template.NewHelper(r.VarsTemplate)
211-
if err != nil {
212-
return err
213-
}
214-
215-
vars, err := th.ExpandMap(in)
216-
if err != nil {
217-
return err
218-
}
219-
for k, v := range vars {
220-
out[k] = v
197+
return fmt.Errorf("failed to expand template: %w", err)
221198
}
199+
maps.Copy(out, values)
222200
return nil
223201
}
224202

0 commit comments

Comments
 (0)