Skip to content

Commit e32869a

Browse files
Merge pull request #29850 from ardaguclu/new-project-flaky-fix
OCPBUGS-56743: Poll project deletion to fix flaky behavior
2 parents f47c33e + 6e06f16 commit e32869a

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

test/extended/cli/admin.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -424,21 +424,28 @@ var _ = g.Describe("[sig-cli] oc adm", func() {
424424
})
425425

426426
g.It("new-project [apigroup:project.openshift.io][apigroup:authorization.openshift.io]", func() {
427+
projectName := gen.GenerateName("recreated-project-")
427428
// Test deleting and recreating a project
428-
o.Expect(oc.Run("adm", "new-project").Args("recreated-project", "--admin=createuser1").Execute()).To(o.Succeed())
429-
o.Expect(oc.Run("delete").Args("project", "recreated-project").Execute()).To(o.Succeed())
430-
err := wait.Poll(cliInterval, deleteCliTimeout, func() (bool, error) {
431-
out, err := ocns.Run("get").Args("project/recreated-project").Output()
429+
o.Expect(oc.Run("adm", "new-project").Args(projectName, "--admin=createuser1").Execute()).To(o.Succeed())
430+
err := wait.PollUntilContextTimeout(context.TODO(), cliInterval, deleteCliTimeout, false, func(ctx context.Context) (done bool, err error) {
431+
// we are polling delete operation in here. Because after the creation of the project,
432+
// different controllers (like ovn) update the namespace and this consequently result in resourceVersion mismatch.
433+
err = oc.Run("delete").Args("project", projectName).Execute()
434+
return err == nil, nil
435+
})
436+
o.Expect(err).NotTo(o.HaveOccurred())
437+
err = wait.PollUntilContextTimeout(context.TODO(), cliInterval, deleteCliTimeout, true, func(ctx context.Context) (done bool, err error) {
438+
out, err := ocns.Run("get").Args(fmt.Sprintf("project/%s", projectName)).Output()
432439
return err != nil && strings.Contains(out, "not found"), nil
433440
})
434441
o.Expect(err).NotTo(o.HaveOccurred())
435442

436-
o.Expect(oc.Run("adm", "new-project").Args("recreated-project", "--admin=createuser2").Execute()).To(o.Succeed())
443+
o.Expect(oc.Run("adm", "new-project").Args(projectName, "--admin=createuser2").Execute()).To(o.Succeed())
437444
defer func() {
438-
oc.Run("delete").Args("project", "recreated-project").Execute()
445+
oc.Run("delete").Args("project", projectName).Execute()
439446
}()
440447

441-
out, err := oc.Run("get").Args("rolebinding", "admin", "-n", "recreated-project", "-o", "jsonpath={.subjects[*].name}").Output()
448+
out, err := oc.Run("get").Args("rolebinding", "admin", "-n", projectName, "-o", "jsonpath={.subjects[*].name}").Output()
442449
o.Expect(err).NotTo(o.HaveOccurred())
443450
o.Expect(out).To(o.ContainSubstring("createuser2"))
444451
})

0 commit comments

Comments
 (0)