@@ -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