Skip to content

Commit 34ce300

Browse files
committed
fix custom plugin monitor condition change
1 parent 9bb87cd commit 34ce300

File tree

1 file changed

+53
-3
lines changed

1 file changed

+53
-3
lines changed

pkg/custompluginmonitor/custom_plugin_monitor.go

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ func (c *customPluginMonitor) generateStatus(result cpmtypes.Result) *types.Stat
126126
condition := &c.conditions[i]
127127
if condition.Type == result.Rule.Condition {
128128
status := toConditionStatus(result.ExitStatus)
129-
if condition.Status != status || condition.Reason != result.Rule.Reason {
129+
// change 1: Condition status change from True to False/Unknown
130+
if condition.Status != status && condition.Status == types.True {
130131
condition.Transition = timestamp
131132
condition.Message = result.Message
132133
events = append(events, util.GenerateConditionChangeEvent(
@@ -135,9 +136,58 @@ func (c *customPluginMonitor) generateStatus(result cpmtypes.Result) *types.Stat
135136
result.Rule.Reason,
136137
timestamp,
137138
))
139+
140+
condition.Status = status
141+
condition.Reason = result.Rule.Reason
142+
} else if condition.Status != status && status == types.True {
143+
// change 2: Condition status change from False/Unknown to True
144+
condition.Transition = timestamp
145+
var defaultConditionReason string
146+
var defaultConditionMessage string
147+
for j := range c.config.DefaultConditions {
148+
defaultCondition := &c.config.DefaultConditions[j]
149+
if defaultCondition.Type == result.Rule.Condition {
150+
defaultConditionReason = defaultCondition.Reason
151+
defaultConditionMessage = defaultCondition.Message
152+
break
153+
}
154+
}
155+
156+
events = append(events, util.GenerateConditionChangeEvent(
157+
condition.Type,
158+
status,
159+
defaultConditionReason,
160+
timestamp,
161+
))
162+
163+
condition.Status = status
164+
condition.Message = defaultConditionMessage
165+
condition.Reason = defaultConditionReason
166+
} else if condition.Status != status {
167+
// change 3: Condition status change from False to Unknown or vice versa
168+
condition.Transition = timestamp
169+
condition.Message = result.Message
170+
events = append(events, util.GenerateConditionChangeEvent(
171+
condition.Type,
172+
status,
173+
result.Rule.Reason,
174+
timestamp,
175+
))
176+
177+
condition.Status = status
178+
condition.Reason = result.Rule.Reason
179+
} else if condition.Status == status && condition.Message != result.Message {
180+
// change 4: Condition status do not change. condition message changes.
181+
condition.Transition = timestamp
182+
condition.Message = result.Message
183+
events = append(events, util.GenerateConditionChangeEvent(
184+
condition.Type,
185+
status,
186+
condition.Reason,
187+
timestamp,
188+
))
138189
}
139-
condition.Status = status
140-
condition.Reason = result.Rule.Reason
190+
141191
break
142192
}
143193
}

0 commit comments

Comments
 (0)