Skip to content

Commit 4e70ae9

Browse files
authored
Fix race condition in e2e test 1-052_validate_rolebinding_number (#802)
Signed-off-by: John Pitman <[email protected]>
1 parent 3492d05 commit 4e70ae9

File tree

1 file changed

+34
-8
lines changed

1 file changed

+34
-8
lines changed

test/openshift/e2e/parallel/1-052_validate_rolebinding_number/02-check_rolebindings.yaml

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,40 @@ commands:
99
"openshift-gitops-argocd-application-controller"
1010
"openshift-gitops-argocd-server"
1111
)
12-
current_rb=( $(oc get rolebindings -n "${NAMESPACE}" | awk '/gitops/ {print $1}') )
1312
14-
# Check that the required RoleBindings exist:
15-
for rb in "${expected_rb[@]}"
16-
do
17-
oc get rolebinding "${rb}" -n "${NAMESPACE}" > /dev/null
13+
# Check that eventually the current role bindings equal the expected role
14+
# bindings. Timeout after 60 seconds
15+
timer=0
16+
current_rb=( $(oc get rolebindings -n "${NAMESPACE}" | awk '/gitops/ {print $1}' | sort) )
17+
while [[ "${current_rb[@]}" != "${expected_rb[@]}" ]]; do
18+
if [[ $timer -eq 60 ]]; then
19+
echo "timed out waiting for current role bindings to equal expected role bindings"
20+
echo "current role bindings: ${current_rb[*]}"
21+
echo "expected role bindings: ${expected_rb[*]}"
22+
exit 1
23+
fi
24+
25+
timer=$((timer+5))
26+
sleep 5
27+
current_rb=( $(oc get rolebindings -n "${NAMESPACE}" | awk '/gitops/ {print $1}' | sort) )
1828
done
1929
20-
# Check that there are only two RoleBindings
21-
echo "Current RoleBindings: ${current_rb[*]}"
22-
[[ "${#current_rb[@]}" == "2" ]]
30+
# Check that the expected role bindings continue to exist for at least the
31+
# next 20 seconds
32+
timer=0
33+
while [ true ]; do
34+
if [[ $timer -eq 20 ]]; then
35+
break
36+
fi
37+
38+
current_rb=( $(oc get rolebindings -n "${NAMESPACE}" | awk '/gitops/ {print $1}' | sort) )
39+
if [[ "${current_rb[@]}" != "${expected_rb[@]}" ]]; then
40+
echo "current role bindings have changed, now not equal to expected role bindings"
41+
echo "current role bindings: ${current_rb[*]}"
42+
echo "expected role bindings: ${expected_rb[*]}"
43+
exit 1
44+
fi
45+
46+
timer=$((timer+5))
47+
sleep 5
48+
done

0 commit comments

Comments
 (0)