Skip to content

Commit 606467e

Browse files
committed
Fix missing properties for compliant objects in Inform mode
ref: https://issues.redhat.com/browse/ACM-14577 ObjectProperties were previously only set for enforced policies and non-compliant objects, causing compliant objects in Inform policies to have nil properties and inconsistent status reporting. This commit displays objectProperties on compliant objects in Inform mode. Signed-off-by: Janelle Law <[email protected]>
1 parent c68bee4 commit 606467e

File tree

2 files changed

+30
-17
lines changed

2 files changed

+30
-17
lines changed

controllers/configurationpolicy_controller.go

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2436,13 +2436,6 @@ func (r *ConfigurationPolicyReconciler) handleSingleObj(
24362436
resultReason = reasonWantFoundNoMatch
24372437
}
24382438

2439-
objectProperties = &policyv1.ObjectProperties{
2440-
CreatedByPolicy: &created,
2441-
UID: uid,
2442-
Diff: diff,
2443-
DryRunNoOpOverrodePolicy: &dryRunNoOpOverrodePolicy,
2444-
}
2445-
24462439
result.events = append(result.events, objectTmplEvalEvent{false, resultReason, resultMsg})
24472440
} else {
24482441
// it is a must have and it does exist, so it is compliant
@@ -2452,17 +2445,17 @@ func (r *ConfigurationPolicyReconciler) handleSingleObj(
24522445
} else {
24532446
result.events = append(result.events, objectTmplEvalEvent{true, reasonWantFoundExists, ""})
24542447
}
2455-
2456-
objectProperties = &policyv1.ObjectProperties{
2457-
CreatedByPolicy: &created,
2458-
UID: uid,
2459-
Diff: diff,
2460-
DryRunNoOpOverrodePolicy: &dryRunNoOpOverrodePolicy,
2461-
}
24622448
} else {
24632449
result.events = append(result.events, objectTmplEvalEvent{true, reasonWantFoundExists, ""})
24642450
}
24652451
}
2452+
2453+
objectProperties = &policyv1.ObjectProperties{
2454+
CreatedByPolicy: &created,
2455+
UID: uid,
2456+
Diff: diff,
2457+
DryRunNoOpOverride: &dryRunNoOpOverride,
2458+
}
24662459
}
24672460

24682461
return

test/e2e/case20_delete_objects_test.go

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,34 @@ var _ = Describe("Test Object deletion", Ordered, func() {
178178

179179
utils.CheckComplianceStatus(g, managedPlc, "Compliant")
180180
}, defaultTimeoutSeconds, 1).Should(Succeed())
181+
Eventually(func() bool {
182+
managedPlc := utils.GetWithTimeout(clientManagedDynamic, gvrConfigPolicy,
183+
case20ConfigPolicyNameInform, testNamespace, true, defaultTimeoutSeconds)
184+
relatedObj := managedPlc.Object["status"].(map[string]interface{})["relatedObjects"].([]interface{})[0]
185+
properties := relatedObj.(map[string]interface{})["properties"].(map[string]interface{})
186+
187+
return properties["createdByPolicy"].(bool)
188+
}, defaultTimeoutSeconds, 1).Should(BeFalse())
181189
Eventually(func() interface{} {
182190
managedPlc := utils.GetWithTimeout(clientManagedDynamic, gvrConfigPolicy,
183191
case20ConfigPolicyNameInform, testNamespace, true, defaultTimeoutSeconds)
184192
relatedObj := managedPlc.Object["status"].(map[string]interface{})["relatedObjects"].([]interface{})[0]
185-
properties := relatedObj.(map[string]interface{})["properties"]
193+
properties := relatedObj.(map[string]interface{})["properties"].(map[string]interface{})
186194

187-
return properties
188-
}, defaultTimeoutSeconds, 1).Should(BeNil())
195+
return properties["uid"]
196+
}, defaultTimeoutSeconds, 1).ShouldNot(BeEmpty())
197+
Eventually(func() bool {
198+
managedPlc := utils.GetWithTimeout(clientManagedDynamic, gvrConfigPolicy,
199+
case20ConfigPolicyNameInform, testNamespace, true, defaultTimeoutSeconds)
200+
relatedObj := managedPlc.Object["status"].(map[string]interface{})["relatedObjects"].([]interface{})[0]
201+
properties := relatedObj.(map[string]interface{})["properties"].(map[string]interface{})
202+
203+
if dryRunNoOpOverride, exists := properties["dryRunNoOpOverride"]; exists {
204+
return dryRunNoOpOverride.(bool)
205+
}
206+
207+
return false
208+
}, defaultTimeoutSeconds, 1).Should(BeFalse())
189209
})
190210
AfterAll(func() {
191211
policies := []string{

0 commit comments

Comments
 (0)