)]}'
{"id":"openstack%2Fwatcher-dashboard~970353","triplet_id":"openstack%2Fwatcher-dashboard~master~Ieff793d1dd2c2c38ba54b88e35faab305ef7a678","project":"openstack/watcher-dashboard","branch":"master","topic":"playwright_tests","attention_set":{},"removed_from_attention_set":{"30002":{"account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"last_update":"2026-07-02 12:54:00.000000000","reason":"\u003cGERRIT_ACCOUNT_30002\u003e replied on the change","reason_account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}},"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-07-02 13:32:53.000000000","reason":"Change was submitted"},"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-07-02 11:06:01.000000000","reason":"\u003cGERRIT_ACCOUNT_11604\u003e replied on the change","reason_account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},"28006":{"account":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"last_update":"2026-07-02 10:36:30.000000000","reason":"removed on reply"},"26471":{"account":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"last_update":"2026-07-02 13:32:53.000000000","reason":"Change was submitted"},"16312":{"account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"last_update":"2026-07-02 10:38:46.000000000","reason":"\u003cGERRIT_ACCOUNT_16312\u003e replied on the change","reason_account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"}},"12393":{"account":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"last_update":"2026-07-02 13:32:53.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"Ieff793d1dd2c2c38ba54b88e35faab305ef7a678","subject":"Add Playwright-based E2E testing framework","status":"MERGED","created":"2025-12-10 10:14:51.000000000","updated":"2026-07-02 13:34:53.000000000","submitted":"2026-07-02 13:32:53.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":268,"unresolved_comment_count":5,"has_review_started":true,"submission_id":"970353-playwright_tests","meta_rev_id":"3c74308af535803fd2d41257e768947ce3e9b595","_number":970353,"virtual_id_number":970353,"owner":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-07-02 13:32:52.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":2,"date":"2026-07-02 12:54:00.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":2,"date":"2026-07-02 11:06:01.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":2,"date":"2026-07-02 10:38:46.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":1,"date":"2026-07-02 12:55:19.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":0,"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"value":0,"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Standard Change","+1":"Important Change","+2":"High Priority Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}],"CC":[{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-12-10 10:15:01.000000000","updated_by":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"reviewer":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"state":"CC"},{"updated":"2025-12-10 10:15:24.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2025-12-10 10:30:08.000000000","updated_by":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"reviewer":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"state":"REVIEWER"},{"updated":"2025-12-12 19:15:48.000000000","updated_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"reviewer":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"state":"REVIEWER"},{"updated":"2026-01-21 15:41:50.000000000","updated_by":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"reviewer":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"state":"CC"},{"updated":"2026-06-10 15:42:51.000000000","updated_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"reviewer":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"state":"REVIEWER"},{"updated":"2026-06-12 14:57:14.000000000","updated_by":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"reviewer":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"state":"REVIEWER"}],"messages":[{"id":"7dae2350ccc5a9506bf8047596ba70f266e8a6ea","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 10:14:51.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1fe85b60d18cde84e0ffbc0edc368dac0caf4da6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:15:01.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"338460004974aba2b007682e7bf34518fbd8e80d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 10:15:24.000000000","message":"Patch Set 1: Verified-1\n\n(1 comment)\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/watcher-dashboard on branch master.  The\nproblem was:\n\n  expected a dictionary for dictionary value @ data[\u0027jobs\u0027]\n\nThe problem appears in the the following project stanza:\n\n  project:\n      templates:\n        - check-requirements\n        - horizon-non-primary-django-jobs\n        - openstack-python3-jobs-horizon\n        - openstack-cover-jobs\n        - publish-openstack-docs-pti\n        - release-notes-jobs-python3\n      jobs:\n  ...\n\n  in \"openstack/watcher-dashboard/.zuul.yaml@master\", line 1","accounts_in_message":[],"_revision_number":1},{"id":"cb913d9f524422453c84a02792b9604d0de40fe5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 10:15:51.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":2},{"id":"290631b5ad00980f0702315e1aa74a605ce32bd5","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:16:06.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"a50c72dbca3aec0e5aa21752f33f6cd5c3322931","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 10:16:09.000000000","message":"Patch Set 2: Verified-1\n\n(1 comment)\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/watcher-dashboard on branch master.  The\nproblem was:\n\n  expected a dictionary for dictionary value @ data[\u0027jobs\u0027]\n\nThe problem appears in the the following project stanza:\n\n  project:\n      templates:\n        - check-requirements\n        - horizon-non-primary-django-jobs\n        - openstack-python3-jobs-horizon\n        - openstack-cover-jobs\n        - publish-openstack-docs-pti\n        - release-notes-jobs-python3\n      jobs:\n  ...\n\n  in \"openstack/watcher-dashboard/.zuul.yaml@master\", line 1","accounts_in_message":[],"_revision_number":2},{"id":"ade66c907d3c35c10baa7839b1bfdf862c00cf6d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 10:17:43.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"dcfaa67ce87611cc8aa2f34b88554a2ad712f6e2","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:17:53.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"782318971cd9789e2f7aa9d26e4556348acac102","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 10:18:02.000000000","message":"Patch Set 3: Verified-1\n\n(1 comment)\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/watcher-dashboard on branch master.  The\nproblem was:\n\n  extra keys not allowed @ data[\u0027jobs\u0027][\u0027check\u0027]\n\nThe problem appears in the the following project stanza:\n\n  project:\n      templates:\n        - check-requirements\n        - horizon-non-primary-django-jobs\n        - openstack-python3-jobs-horizon\n        - openstack-cover-jobs\n        - publish-openstack-docs-pti\n        - release-notes-jobs-python3\n      jobs:\n  ...\n\n  in \"openstack/watcher-dashboard/.zuul.yaml@master\", line 1","accounts_in_message":[],"_revision_number":3},{"id":"7a950ee7fede73fa3c45c92cc341b00e11ee05ec","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 10:19:59.000000000","message":"Uploaded patch set 4.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":4},{"id":"a7658c793203e05f506428d05ad7421b5da7798f","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:20:14.000000000","message":"Patch Set 4:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":4},{"id":"25f92f792289421efd6192f5801bbd1fc7313fd4","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 10:30:08.000000000","message":"Patch Set 4: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/550da22011404bcc944ce7472cd2c449\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/7bcea993db6549919aedd4bf7bd56a92 : FAILURE in 8m 52s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/ea44f259c7ee42fda1c0a7d400e2a413 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":4},{"id":"f5ac0a06aa2b24b1faacb59e5a1f9f53a70bd7d6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 10:32:47.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/8bd0acb73c5c4ddbab328373411c2e29\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/6851833bb37a4b8f894c6213ff66ec58 : FAILURE in 2m 25s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/55a91c8568ac4946a16f78840f719a5a : FAILURE in 4m 30s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/652c29d1bd9d439d88a66f4320078192 : FAILURE in 3m 37s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7a01a318956f4fe593a16cc54f285446 : SUCCESS in 3m 19s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/d73ba276faf9427eb32b4d02881337ef : FAILURE in 3m 44s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4b0f77a944f748c7966eaa88fe0e9f74 : FAILURE in 6m 50s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/30c714f744ca417f9eaf1cb517266b29 : FAILURE in 3m 50s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0b9830e7c70b434aaf436cf904d73099 : SUCCESS in 7m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c7cc7af5678448069746238c71621dcf : SUCCESS in 2m 18s","accounts_in_message":[],"_revision_number":4},{"id":"e91110a52353c51dc76537ddd5167e32eb7543e1","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:33:11.000000000","message":"Patch Set 4:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/87fe570842f14e5289c5138c595c4be1\n\n- teim-code-review https://zuul.teim.app/t/main/build/d25ffb260de944d794b1c064d74ba4f3 : FAILURE in 12m 41s","accounts_in_message":[],"_revision_number":4},{"id":"f05db1226b87edc3b689a9592ce4d1c083818e01","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 10:43:55.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":5},{"id":"5dc3953a6563646a946f06d05b6c93270b171fbb","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:44:01.000000000","message":"Patch Set 5:\n\n(1 comment)\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/watcher-dashboard on branch master.  The\nproblem was:\n\n  The key \"roles\" appears more than once; duplicate keys are not permitted.\n\n  name: watcher-dashboard-integration-tests-playwright\n      parent: devstack\n      nodeset: devstack-single-node-debian-bookworm\n      pre-run: playbooks/playwright/pre.yaml\n      run: playbooks/playwright/run.yaml\n      post-run: playbooks/playwright/post.yaml\n      roles:\n        - zuul: openstack-infra/devstack\n      required-projects:\n  ...\n\n  in \"openstack/watcher-dashboard/.zuul.yaml@master\", line 14","accounts_in_message":[],"_revision_number":5},{"id":"3febb9fad0812998be7404335a840ec28bbecc0c","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 10:44:08.000000000","message":"Patch Set 5: Code-Review-1\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/watcher-dashboard on branch master.  The\nproblem was:\n\n  The key \"roles\" appears more than once; duplicate keys are not permitted.\n\n  name: watcher-dashboard-integration-tests-playwright\n      parent: devstack\n      nodeset: devstack-single-node-debian-bookworm\n      pre-run: playbooks/playwright/pre.yaml\n      run: playbooks/playwright/run.yaml\n      post-run: playbooks/playwright/post.yaml\n      roles:\n        - zuul: openstack-infra/devstack\n      required-projects:\n  ...\n\n  in \"openstack/watcher-dashboard/.zuul.yaml@master\", line 14","accounts_in_message":[],"_revision_number":5},{"id":"2639bbdf3d8b57368ab8bde41cd48a5764af4b67","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 10:44:37.000000000","message":"Patch Set 5: Verified-1\n\n(1 comment)\n\nZuul encountered a syntax error while parsing its\nconfiguration in the repo openstack/watcher-dashboard on branch master.  The\nproblem was:\n\n  The key \"roles\" appears more than once; duplicate keys are not permitted.\n\n  name: watcher-dashboard-integration-tests-playwright\n      parent: devstack\n      nodeset: devstack-single-node-debian-bookworm\n      pre-run: playbooks/playwright/pre.yaml\n      run: playbooks/playwright/run.yaml\n      post-run: playbooks/playwright/post.yaml\n      roles:\n        - zuul: openstack-infra/devstack\n      required-projects:\n  ...\n\n  in \"openstack/watcher-dashboard/.zuul.yaml@master\", line 14","accounts_in_message":[],"_revision_number":5},{"id":"e8871660075d7a65b458ba38e493cc02c4503ddb","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 10:45:19.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":6},{"id":"4c0a607c2d0103aee3c083ed01a473e36b603ebb","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:45:31.000000000","message":"Patch Set 6:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":6},{"id":"5bf7ff8f7c5b6d2f091d8bae257c564b9ed25577","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 10:55:13.000000000","message":"Patch Set 6: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/13c593d1485c400eb5fbc0050c937bc2\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/8f059a00f7aa4719a75fe7495ca98562 : FAILURE in 8m 44s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/7c1c9dffa5f74946adbc22b5744c47bd : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":6},{"id":"0eaa2b05787e618cc622e3d68bc56606a7fbc927","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 10:57:48.000000000","message":"Patch Set 6:\n\n(8 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/d9efef5e0673418c94728a2449c277ad\n\n- teim-code-review https://zuul.teim.app/t/main/build/42695cbdec4e47619d1a66ea3a1c7fd2 : SUCCESS in 12m 04s","accounts_in_message":[],"_revision_number":6},{"id":"196b65d5f209d74813fab8ca5b422545682c0194","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 11:11:06.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":7},{"id":"4b16ab55611ef7bd98554af40f3bcb46035d5ea6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 11:11:16.000000000","message":"Patch Set 7:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":7},{"id":"02382e29d34afd70520053546b58c9280691d340","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 11:22:28.000000000","message":"Patch Set 7: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/b900320fa77d46078a5c6e958f651722\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/6beef83ec07e4ee0954ce29f1f24e7a3 : FAILURE in 10m 04s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/b095eafe4bc245d1b07d9f74d2941687 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":7},{"id":"29c70ae70fe952c69ee6734b2211f540c5db59bb","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 11:22:56.000000000","message":"Patch Set 7:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/4a25b3be111e4ed2b7384603b48f7144\n\n- teim-code-review https://zuul.teim.app/t/main/build/1917f54170924527a2ba248bb346926f : FAILURE in 11m 20s","accounts_in_message":[],"_revision_number":7},{"id":"3e3e38e055ea3f2433f085e02745e973865ce2af","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 11:49:24.000000000","message":"Patch Set 7: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/35f9f09543d547aa8f024d49b552e251\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/d1478e39e9814345a2637633a3e2e17b : FAILURE in 4m 54s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/64e575d3e1054fe99772f6e5ee4a199e : FAILURE in 4m 51s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/7b1ae08dce0645f7b9b284769633f939 : FAILURE in 4m 41s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ade51ee3cd34448e93d647ef0470bf6a : SUCCESS in 3m 34s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9d87f0be7eba484a90f66205a288482a : FAILURE in 4m 09s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/23052bf7ddd54316bcde499167f22c87 : FAILURE in 5m 49s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0f7a30f955f44322bfd8fab8d1b1e040 : FAILURE in 3m 48s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ef2185a650774e50ae538c10c07397d5 : SUCCESS in 7m 26s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0d2c9f6aa8d443f7b9bce2cef8e1dbd2 : SUCCESS in 1m 46s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/2118c0d72725440dae3a9974bf2f70d2 : FAILURE in 30m 23s","accounts_in_message":[],"_revision_number":7},{"id":"db753aa4cc90bd8ebb6c7f86dbfcb8421783a5bf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 12:07:00.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":8},{"id":"004b4ba8a842c287bae86a8801273aa3c06b2f03","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 12:07:07.000000000","message":"Patch Set 8:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":8},{"id":"9f75d351229ccc3bb3477a83980f4565b4aab884","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 12:18:51.000000000","message":"Patch Set 8:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/4df93e59fd3e4bd9a5e96e0afcfcc88e\n\n- teim-code-review https://zuul.teim.app/t/main/build/4d95fc18f3db47238ad5420748de81a6 : FAILURE in 11m 31s","accounts_in_message":[],"_revision_number":8},{"id":"a64875392f46bc0848ec2e55fd1a346b889220f3","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 12:18:59.000000000","message":"Patch Set 8: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/9d22ab2d55214231bf49ae9a9184fc07\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/c3bb9ca835044230b465fd7511a21685 : FAILURE in 10m 43s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/704b4e3dcba040958627eea47c603af9 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":8},{"id":"29fcf1cea34fa76e6cf1cb6c7013ed9a3337e9d7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 12:21:42.000000000","message":"Patch Set 8: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/2164270ce28d46488e6ecdf39f571ebc\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/d3c1f74ab08e46689c3f49f70d069bec : FAILURE in 2m 04s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/a16a48e70a9a498db54c74d08f9dd735 : SUCCESS in 2m 23s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/a5a70ad2610c4878bef35450d58dde3f : SUCCESS in 3m 55s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/ba676f1b761c43f085373ad2dc807ea0 : SUCCESS in 5m 15s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/89e55f15226b452a8fec7e5436e61cbf : SUCCESS in 3m 46s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/57cdb940e6144d21a5b5918816af3e45 : SUCCESS in 3m 45s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e100e41cbb524f37b1b47ab8782a2d99 : SUCCESS in 7m 15s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1dbd7a74d755447cb60f9d1121fcc47f : SUCCESS in 4m 06s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/cb26c85a282740c4a808dee1796fa41b : SUCCESS in 8m 46s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/596e6b6ead4a4962b8c291ffe55307e0 : SUCCESS in 2m 03s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/22d88f7c770c416aa347f4ab5a896f2a : FAILURE in 12m 26s","accounts_in_message":[],"_revision_number":8},{"id":"2bc96076d651727829fbf2dbbd6539b1c2c42157","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 12:29:21.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":9},{"id":"553ba3724b65e461be4da1de41c4fd95b2cff077","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 12:29:32.000000000","message":"Patch Set 9:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":9},{"id":"d2aefb41c8cc143a48108dbafc2ff290ddb29443","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 12:39:06.000000000","message":"Patch Set 9: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/7c588da7e3b14cd4a42caeedf762ee42\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/c3d9d6aeca984ce9bb13297a9c997d39 : FAILURE in 8m 36s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/604868039c6944a9af1b1efa43ac8614 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":9},{"id":"858eb598d293282f47835c514487bcb797345d7d","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 12:47:07.000000000","message":"Patch Set 9:\n\n(11 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/cb8f74b2fb714a0da87a58bd8e494b7e\n\n- teim-code-review https://zuul.teim.app/t/main/build/42c0a10805914cbc96fc43a56ead2347 : SUCCESS in 17m 23s","accounts_in_message":[],"_revision_number":9},{"id":"e8620065fcfb8eb00e4c6a1a7d5fb2db12ed8059","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 12:50:15.000000000","message":"Patch Set 9: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f68306544a1c4d6fa98d1524b5a849f5\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/b1ba3f2f417245f2826756d7f590e0aa : FAILURE in 1m 50s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/f9a3e4af28624d789fcf8530d3d8f621 : SUCCESS in 3m 05s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/fbbc9ddc538f4eefa0c7775e7bce22f9 : SUCCESS in 3m 35s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/0436525b456b45c4a7bcc2496e244c38 : SUCCESS in 2m 24s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2703ec834ac9452080300b1a457f881e : SUCCESS in 2m 58s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/6620adca47664ddbaaa2914049bc2a96 : SUCCESS in 2m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/56f9cf9619e846cda39a040c00bf77a3 : SUCCESS in 4m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/757e86e469304c169aaca96a6e3eefbd : SUCCESS in 2m 08s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/70500f64cc5c4e81a9c84c99ca34c1b0 : SUCCESS in 6m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a7f512054ad14fb0b30aa75d140f5b42 : SUCCESS in 2m 34s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/972055098b66471f825cde61d1c9818d : FAILURE in 19m 46s","accounts_in_message":[],"_revision_number":9},{"id":"00921311f1e1205d198ce289c4da49084ac161bd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 12:52:44.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":10},{"id":"e9bc0cbc22cc4ac532dcbe54252045a8f7179e2c","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 12:52:54.000000000","message":"Patch Set 10:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":10},{"id":"d11f89cb29496b85b4454233e41307df251c44a7","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 13:03:16.000000000","message":"Patch Set 10: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/904bbd0cd98f4ce0adeeedf974bbdfd6\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/dff72f22092840178cabaf048ad333ab : FAILURE in 9m 23s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/b4327317247843fea3393bd485bb10ff : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":10},{"id":"999426e0981300af83de084f13c2433f1f47d27e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 13:05:18.000000000","message":"Patch Set 10:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/c981be8e286b4c66849c584232fe20c7\n\n- teim-code-review https://zuul.teim.app/t/main/build/23fcd9d54fce4fafb9758cdb359a2ffa : SUCCESS in 12m 04s","accounts_in_message":[],"_revision_number":10},{"id":"036c4f1abb30e60f6a8fa72d887e1ed76f8f959d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 13:19:31.000000000","message":"Patch Set 10: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/a42a8c45130e46369b064971f66e1fef\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/f33e0726614643ec822441d9d071ef8e : SUCCESS in 3m 49s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/db0c9fcda33a4e2c88a11f10c3b1b57e : SUCCESS in 4m 23s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/bb8b78f81fa74ad28fc7b1a8c5641394 : SUCCESS in 4m 12s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/771270afca7c42079fd8a33aa709c46c : SUCCESS in 5m 22s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f7ac91129a52476b998e494e1242822b : SUCCESS in 4m 48s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4981a42e888242d99a93f1155b579b89 : SUCCESS in 6m 52s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0e480acc9b8643e28ae69514fd1dd192 : SUCCESS in 4m 02s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7a9ce2dae0ce4b0db83c86e6124a2651 : SUCCESS in 7m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4d5ec942354e4a7cb38eddadeb0d4fec : SUCCESS in 1m 39s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/4cdb6e83f40c40cc887d03bb12b8f23a : FAILURE in 12m 19s","accounts_in_message":[],"_revision_number":10},{"id":"d63e99f429f20c79311f8b5bc0ac34605af880e0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 13:20:43.000000000","message":"Uploaded patch set 11.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":11},{"id":"9293db8121f51c54ddc885fe2bdbc83ffff6aa9b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 13:20:55.000000000","message":"Patch Set 11:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":11},{"id":"fb6e074c1fd87879680b5a7bdb0ec4443010522c","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 13:30:58.000000000","message":"Patch Set 11: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/fc3cb454956a4df6aa5e3add753b77dd\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/25153f93a4c8415697354b78bc954efa : FAILURE in 8m 34s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/17974185865648f3aa872d52789a7db0 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":11},{"id":"737706d825ed64d33799c25481e0ce0e82243aff","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 13:31:51.000000000","message":"Patch Set 11:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/ea01ea1c44c04472b2cd4f4a283e41f5\n\n- teim-code-review https://zuul.teim.app/t/main/build/b4a3c98ac87149c4964e3b7b67864181 : FAILURE in 10m 43s","accounts_in_message":[],"_revision_number":11},{"id":"f6c3ac37eeaef846949e8c3cd08dc7162c3588c4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 13:36:17.000000000","message":"Patch Set 11: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ea6183c3048240688760d34f1cbc0e5b\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/7e1fdefb2e224f51a6c1194f9b824455 : SUCCESS in 4m 10s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/b2ba05e8587341858f8a48d5a0bc1aed : SUCCESS in 2m 35s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/df395b5a3bf648d89bca2d9a1977e078 : SUCCESS in 2m 51s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6962dba0968f4670838d552069bf5ecc : SUCCESS in 2m 13s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/cc92187f88bf460eafeb0cab1c339bb3 : SUCCESS in 2m 41s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e43b7637bd9b4a27a33aa8f04a4a46fe : SUCCESS in 4m 18s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8411d66303814889a95522bd1739e8bd : SUCCESS in 4m 23s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9d84e7af7be6434d914e1edd1174f70e : SUCCESS in 7m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0830d7c7f38648bc8f45b2ccf48561fb : SUCCESS in 2m 31s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/b5d084250ee94be6beb6470e8f864d54 : SUCCESS in 14m 13s","accounts_in_message":[],"_revision_number":11},{"id":"fd09d2d6bfd18fd474100f06d77e3b47261219c3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-10 13:55:29.000000000","message":"Uploaded patch set 12.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":12},{"id":"4549ac4e724ca71c6edefc78a7a7db981fd8d31a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 13:55:37.000000000","message":"Patch Set 12:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":12},{"id":"c37ce8f30499fe2545012ae13fd3f8e9ab2a0e14","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-10 14:04:57.000000000","message":"Patch Set 12: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/b7dbc107d6234c4fba5fb703bc55cf48\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/7e42ad1da74b4f7ca2a6c800bda51209 : FAILURE in 8m 19s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/4390b8fe9c594192a9838c6ac6b6164c : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":12},{"id":"e744b14aa15ed6558b1d0f8b21de96415fb0a787","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-10 14:09:50.000000000","message":"Patch Set 12:\n\n(4 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/ff20c86d624a4ababc4237a3dd798b04\n\n- teim-code-review https://zuul.teim.app/t/main/build/c923cf1ea82141cdb1ea914abe83d365 : SUCCESS in 13m 51s","accounts_in_message":[],"_revision_number":12},{"id":"698256a00e6fbaf08f08df63f5d8a261d35dde50","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-10 14:22:50.000000000","message":"Patch Set 12: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0964d6bb5c0a4d79896d642df8588c9e\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/61105f5e71514ce2a3114b950e1f851c : SUCCESS in 3m 56s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/4dcb423f03404c5d9bbfefa7a54b2338 : SUCCESS in 4m 39s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/bec0cbc5bc184decbbf46b85cd333964 : SUCCESS in 4m 46s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1d428c0153a44ddbac206c42a654879a : SUCCESS in 2m 59s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f7606b00bdce4323aed6198f58076ee1 : SUCCESS in 4m 12s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5cac130b41c344389d28ab52768abf50 : SUCCESS in 9m 08s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/68459e9f923a4035a9c55fb96f1706b4 : SUCCESS in 5m 42s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/688ddc3d5ef14a6a8c40f0c1cc9f3903 : SUCCESS in 3m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/06f6f9ba14334f4887c9967d42209a37 : SUCCESS in 2m 49s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/dc5ea2f364fd42fb9a43b2011980c67a : SUCCESS in 24m 40s","accounts_in_message":[],"_revision_number":12},{"id":"e6ae1968a9d5f54cf2c62aea1d341ca6213c62c6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-12 06:49:19.000000000","message":"Uploaded patch set 13.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":13},{"id":"7d9baf3adf6888221df3c6dd7f78072e3be0bc1b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 06:49:41.000000000","message":"Patch Set 13:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":13},{"id":"91261571744f08611ac37d5bfb0bb00a58c10eef","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-12 06:59:56.000000000","message":"Patch Set 13: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/5a8baee129d8455c8c66cfb34e2fcbc0\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/d953a9350c0445859fa0c1bc59890c0a : FAILURE in 9m 24s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/700377ba61ca41a196f96945d6305691 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":13},{"id":"42c8a3a35e37287c52b8718b4a5808d975a7db23","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-12 07:01:34.000000000","message":"Patch Set 13: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/4f2d72e698074b8b9b92863e931b96eb\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/fd21e721dafb4330a5bc88887cd60445 : SUCCESS in 4m 59s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/4039acf2978848548c795ca1a43b647f : SUCCESS in 4m 48s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/05aeb791e9604e85af3984522b791025 : SUCCESS in 4m 21s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fda14a29c42a498f89770d4fa457fd10 : SUCCESS in 2m 10s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9bdcc8ece67d418e854d863a1b932d71 : SUCCESS in 3m 39s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f68de560e55b4622afa5448fbc2c84af : SUCCESS in 3m 35s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/de941b787fbf4afaa49976acd1db4753 : SUCCESS in 5m 20s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d40ef87ef0864b7ebdb3262136d976ce : FAILURE in 3m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1d2d010c5a594a478c8fc2ef5dd263b3 : SUCCESS in 2m 34s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/72b1bda0a43548adb4bdb9e39fbb523f : FAILURE in 11m 06s","accounts_in_message":[],"_revision_number":13},{"id":"f27dbc1cfce39bcb7f7aa7b017c40dd868ea5e6d","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 07:03:06.000000000","message":"Patch Set 13:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/c897c522ac524c2db397e8ebd9884e46\n\n- teim-code-review https://zuul.teim.app/t/main/build/7e7502ed277b4792a3e87b7ef360705e : FAILURE in 13m 07s","accounts_in_message":[],"_revision_number":13},{"id":"22f9eea269d5fb3fe1986a80c6d7877660f4bf13","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-12 07:20:12.000000000","message":"Uploaded patch set 14.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":14},{"id":"b3e9b1378c9d2edd96a908866423085b9cf35f5b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 07:20:19.000000000","message":"Patch Set 14:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":14},{"id":"5f05a3a4facd33e4332e8e3c230bbb888b37c347","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-12 07:22:03.000000000","message":"Uploaded patch set 15.","accounts_in_message":[],"_revision_number":15},{"id":"08a768aa823c7e1fa9434edbb3727a29d923f78b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 07:22:10.000000000","message":"Patch Set 15:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":15},{"id":"fc753cf2327d7fdd334a2b11c424578f19b455d6","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-12 07:33:07.000000000","message":"Patch Set 15: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/0f37d2c6ca6f4ba7b066bec25649d41b\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/12acfc5185c643bf9e75b51d948ca9c3 : FAILURE in 9m 38s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/1626ca8c2ece4a6f98636d5320e0ea29 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":15},{"id":"f4cc11bf806d34b27eae8daa63a8a4856d77a9c0","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 07:35:54.000000000","message":"Patch Set 15:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/7276d530d1e2413abfde4fa284916ad8\n\n- teim-code-review https://zuul.teim.app/t/main/build/aa2a4c0c07ad4e1aa426b7c894a975b3 : SUCCESS in 13m 30s","accounts_in_message":[],"_revision_number":15},{"id":"e75357e6f6920723d23abadd2cd12bee1dd3b312","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-12 07:51:18.000000000","message":"Patch Set 15: Verified-1\n\n(1 comment)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/1102697d13564e90b10e4759524e69b4\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/202f0c836026443e855310a4f4c97f01 : SUCCESS in 3m 30s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/b84aafea07de4c7abcb55dc67826bcd7 : SUCCESS in 5m 39s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/2a9504fea36d4da2a3d7753bc825cdfb : SUCCESS in 2m 45s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/99baa18801d94f19bcb3e8305fd2f510 : FAILURE in 2m 58s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/e04daf5e543a442982883f62ee051991 : SUCCESS in 4m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/53c6265c64a8427dbe540cdc621e8625 : SUCCESS in 6m 35s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/14656223e369448284129d6a3ceef100 : SUCCESS in 4m 09s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/753fe283880d414191e475b61a04feab : FAILURE in 5m 42s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/2b2d853c93ec43a2a85b16ff4c041c72 : SUCCESS in 2m 35s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/d68b47369afc421fa3014731b086ed44 : SUCCESS in 26m 33s","accounts_in_message":[],"_revision_number":15},{"id":"eb50e098484710397bd6d50876f9c5fc8e701dc8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-12 09:05:53.000000000","message":"Uploaded patch set 16.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":16},{"id":"4385f604c8093eaf0e7bb36a7c65238245500553","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 09:06:07.000000000","message":"Patch Set 16:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":16},{"id":"dade69b3e03c93628513d81aa704485577c9537f","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-12 09:17:07.000000000","message":"Patch Set 16: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/92004710261e42838872a24af508be5a\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/37f84455db3b4931aa4ffd312afdd258 : FAILURE in 10m 10s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/d99e686225024414abc45a9c3681658c : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":16},{"id":"f43572ca86d29b51abec3faaa062d47a0ced18cd","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 09:19:38.000000000","message":"Patch Set 16:\n\n(2 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/41f097d8794b40579ae97313c9c503ae\n\n- teim-code-review https://zuul.teim.app/t/main/build/ea81f617a0774c149f490558e5e44409 : SUCCESS in 13m 20s","accounts_in_message":[],"_revision_number":16},{"id":"61d545ce2d00535ee1765dd2931a65d5ae93f71a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-12 09:23:44.000000000","message":"Patch Set 16: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/9faacc5ff8ec449f832d2fa45d136c84\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/cf9569189a944213ae275fe11496dbce : SUCCESS in 3m 45s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/3cc7989b0bff4a41af9f37822ece8ccb : SUCCESS in 5m 15s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/de6c47da3e214d91a482feaf2bb6cc74 : SUCCESS in 2m 33s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c2fdeb200f6346769e14156c26cc6fcb : SUCCESS in 4m 12s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/8c8553536785441ba941f923db1614e8 : SUCCESS in 5m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fbc09450db354d8eb192054871c3b57a : SUCCESS in 6m 58s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7f65036e7a9d4046b029c3fb7f8746c7 : SUCCESS in 2m 31s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e79b7628cf51405d8ae5c43cf072dc3d : FAILURE in 6m 39s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ef524c174a2141cf8415dcfc4936ab75 : SUCCESS in 1m 53s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/e72823865b174b9197bb5672429bfcbe : SUCCESS in 14m 53s","accounts_in_message":[],"_revision_number":16},{"id":"9c73498bf6276b7ef14ef880f7f708e916b46733","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-12 14:09:02.000000000","message":"Uploaded patch set 17.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":17},{"id":"4f5765315ee949709b9602dd047915deb9d97557","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 14:09:11.000000000","message":"Patch Set 17:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":17},{"id":"6146bed3ea0177da48ffd47cddaedff5870d2daf","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-12 14:20:22.000000000","message":"Patch Set 17: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/41d1d7bd06e44600adadc82c973b4104\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/249e36cef0034645be3782a99d8e12cc : FAILURE in 10m 06s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/297b35c1a83e4f0da5f480a45c24d875 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":17},{"id":"1cb80944d70370730852f7715e121e5c2e7eec2f","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-12 14:22:15.000000000","message":"Patch Set 17:\n\n(8 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/bac452fd0514472697830ce2d4e210cc\n\n- teim-code-review https://zuul.teim.app/t/main/build/12b825a8808d4a6a894f3175aa53326d : SUCCESS in 12m 48s","accounts_in_message":[],"_revision_number":17},{"id":"f69d230cc54482a002183157656917ad073dfb87","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-12 14:47:22.000000000","message":"Patch Set 17: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d29b71990f1245eb97a2530658f7bf94\n\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/bf37f5b61caf4f5991afcfb7dc1d6edf : SUCCESS in 2m 26s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/fd5ab1a14dc84adfbe75d6206866cdf0 : SUCCESS in 4m 28s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/35a21de10617477aa9444335459a1a2b : SUCCESS in 4m 59s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/db5a2596749748e59b7da2dfb7e432e2 : SUCCESS in 3m 07s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/538b57f976c044929df28b1183ca3fcb : SUCCESS in 4m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0adc7ceba5c14388a681d57b15a8f3a2 : SUCCESS in 6m 42s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3ddfde9663a349f784939148fe6fc950 : SUCCESS in 6m 17s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c424e4f6fad7404688d6ac3c16b98cce : SUCCESS in 7m 44s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/599925f88cf64f9a99cdfafb216dcfe5 : SUCCESS in 3m 41s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/228438990aa6414492b99550ae0a2c55 : SUCCESS in 33m 18s","accounts_in_message":[],"_revision_number":17},{"id":"a2d10a4cd4f342dc12f9a8e563f16e83551f011a","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-12-12 19:15:48.000000000","message":"Patch Set 17: Code-Review-1\n\n(22 comments)","accounts_in_message":[],"_revision_number":17},{"id":"1bf4a76d277214c0d48acbaaca4bcc9c658d9302","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-12-12 19:26:06.000000000","message":"Patch Set 17:\n\n(1 comment)","accounts_in_message":[],"_revision_number":17},{"id":"90e69c6d6239557f9d33c1ff1707bbe7ea2c8bda","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 10:25:40.000000000","message":"Uploaded patch set 18.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":18},{"id":"b402bafaed307f20e352419efd43da383b3f21b7","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 10:25:53.000000000","message":"Patch Set 18:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":18},{"id":"2388e5185089162ee090974017bba2b2d0cf062d","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 10:31:17.000000000","message":"Patch Set 17:\n\n(20 comments)","accounts_in_message":[],"_revision_number":17},{"id":"d6cd3bab363c8f8fc78fe3170d499117e6c6b85b","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-16 10:37:24.000000000","message":"Patch Set 18: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/5ad7dab62237401591fe7eab637ff2c0\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/7cdd03923f6f45dd9dfb09d20828d47e : FAILURE in 10m 25s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/d713dbb39a4d4685bc960eb31cb4e9c6 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":18},{"id":"0184e209a1895b78ab78a22a8696a41f8ed2be13","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 10:37:47.000000000","message":"Uploaded patch set 19.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":19},{"id":"0d82ae38924a254bfa170eb0cc2ca0712fac107a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 10:38:03.000000000","message":"Patch Set 19:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":19},{"id":"57ca1c36790eeeec80de32f5d5c75d02d4199266","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-16 10:47:38.000000000","message":"Patch Set 19: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/30dd5c0b75694366948d9f819511c664\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/cf941c53f8254bd3a5a412f36b9aa1f1 : FAILURE in 8m 28s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/90ff67cf04834f7ab46f94658f45cb04 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":19},{"id":"05153b05a3d812147edcea2a717f0a0774e75979","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 10:51:08.000000000","message":"Patch Set 19:\n\n(6 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/d014a18b777941b7827e489debdec6a0\n\n- teim-code-review https://zuul.teim.app/t/main/build/d28b2152d7bf4ce1b50bab0d573e9b40 : SUCCESS in 12m 51s","accounts_in_message":[],"_revision_number":19},{"id":"ce542e8fda3eb8d69fc82b7e4c0b24044a16571d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-16 11:08:15.000000000","message":"Patch Set 19: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/dc9bd7e04e74481d9f4c6d4e415b810d\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/f3231ea951bf4754be1afc7faff4f2ea : SUCCESS in 2m 38s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/22902a26b31246bc87fabf9f45ddb0ef : SUCCESS in 3m 39s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/168f5a1247664a37b5f707ef656d6c1a : SUCCESS in 4m 33s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/6257754b226e440ba4dae5fc78ff555b : SUCCESS in 5m 05s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c537dcfaf3ce4b22b804039d29ed872b : SUCCESS in 3m 24s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/77e937f9087a4b36a30d2d92e42be077 : SUCCESS in 3m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/8b59d15eb6b5404c8464facaa19643a0 : SUCCESS in 7m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e796e3afa92040f0b095bc03f167f92d : SUCCESS in 2m 36s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/817a2788dcaf40b5a158cdda19deba66 : SUCCESS in 3m 35s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0dbc4b5a0d8e436e8d1940d56844b435 : SUCCESS in 2m 35s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/d3434decad1d4bc6b60af4faaf1d2457 : FAILURE in 26m 00s","accounts_in_message":[],"_revision_number":19},{"id":"e620eb8d7dd512049ea9c28bebf6c15bf2f64572","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 12:02:33.000000000","message":"Patch Set 18:\n\n(1 comment)","accounts_in_message":[],"_revision_number":18},{"id":"153f7a0f6e96552bcc14d77fdb4de70bf38317ff","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 12:11:19.000000000","message":"Uploaded patch set 20.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":20},{"id":"07e1513d9e21254bceb930acae11bbf2c15a5ab6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 12:11:27.000000000","message":"Patch Set 20:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":20},{"id":"ba2f60458c63b6b75b433ca485843e53e929f750","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-16 12:21:24.000000000","message":"Patch Set 20: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/30f8dee171494a5b99edaa4f27e16526\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/5c45586f82b34297a48379ee6a06c879 : FAILURE in 8m 52s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/e249b52c57554e2d84f1f8bcc22c9772 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":20},{"id":"f9c53aff81bc5df76c99be376c41c8037e075c53","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 12:26:51.000000000","message":"Patch Set 20:\n\n(2 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/4f3bc947c2844a47b78cad9fa2b8cdf8\n\n- teim-code-review https://zuul.teim.app/t/main/build/74778a5f75d647d8a77609f089d937ca : SUCCESS in 15m 07s","accounts_in_message":[],"_revision_number":20},{"id":"faf9631b21e34e33664d7754c6458942eb7c0567","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-16 12:47:04.000000000","message":"Patch Set 20: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bd61973ac14f4a73916fd4fe7d67cad9\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/653e5125f9e8491592b1be98be9ddb21 : SUCCESS in 2m 36s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/13ac0a10c61c461c9fb583701deb0b0a : SUCCESS in 3m 54s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/d8a8b2b6ed2f4bc7b5bcf33480091059 : SUCCESS in 4m 38s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/d6581c6c002f453fa71777d521752099 : SUCCESS in 4m 48s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/fc4bbbb9ff7b446094cf61eb99c9613c : SUCCESS in 1m 55s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/93ede1463e8f49e3995decc96142e162 : SUCCESS in 4m 07s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/657537ae801f4708b96ba175bd85971d : SUCCESS in 3m 48s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ade1119dc0494207964039b019a5c48e : SUCCESS in 4m 20s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a63f3db13b24481b847ec206cf5e1728 : SUCCESS in 3m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/93c3544969354032993b5a814ba04c2e : SUCCESS in 2m 55s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/e15f53887ee241858a1678336b800c4f : SUCCESS in 30m 29s","accounts_in_message":[],"_revision_number":20},{"id":"c057aeaf14db817a73f776883928c4d6ec59cf45","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 12:48:43.000000000","message":"Patch Set 20:\n\n(1 comment)","accounts_in_message":[],"_revision_number":20},{"id":"e577c3c27624bdeb75741af8cbcca0aab5eec31b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 14:36:22.000000000","message":"Uploaded patch set 21.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":21},{"id":"23d48f71a73f3bca598572ead6860d5dd10b5ce3","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 14:36:34.000000000","message":"Patch Set 21:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":21},{"id":"0083d6481841726bc0cbbb8ccbc74f81c6943a15","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-16 14:46:32.000000000","message":"Patch Set 21: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/7b46c36dc035478e9115ae8ad87a1fbe\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/3237c6becb304eb196d34cc56411498f : FAILURE in 8m 58s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/1592f2e458cb4c658b2a9ee8108760ea : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":21},{"id":"0af93083c55ea5d43932283a22139ed52140879b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 14:49:39.000000000","message":"Patch Set 21:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/d35733d0b20e44e8b4010913d154c741\n\n- teim-code-review https://zuul.teim.app/t/main/build/576fdc69d9094aa5b8818b5818155c4e : SUCCESS in 12m 53s","accounts_in_message":[],"_revision_number":21},{"id":"64969ceab50cfa91533457c67a4d0a374450fd5e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-16 15:12:02.000000000","message":"Uploaded patch set 22.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":22},{"id":"7090bd408f5ae4fb2a372052a37338d86dabbeec","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 15:12:11.000000000","message":"Patch Set 22:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":22},{"id":"e877c2ab32a845a4189e463123caf1aaca2f7a29","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-16 15:23:46.000000000","message":"Patch Set 22: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/19ee03c2a44948cb80091fbfa222e3d2\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/339be0623039430ea4a7534698d898e9 : FAILURE in 10m 21s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/614f04012a6149caa53c1d99c88f18ca : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":22},{"id":"004f23e42e4560c7de181d9dda79ca5c9f8a4da4","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-16 15:24:53.000000000","message":"Patch Set 22:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/a85815dcab334779be635cee4d6f0d0a\n\n- teim-code-review https://zuul.teim.app/t/main/build/0aea7b1a413240c394e648cb027a7bcc : SUCCESS in 12m 25s","accounts_in_message":[],"_revision_number":22},{"id":"fd78d8bc964b6576a505e0c2683116c7fc34bb84","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-16 15:59:58.000000000","message":"Patch Set 22: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9bc9bb8134c1488f939e4ed6ff3d18aa\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/74a22e924f8f458f967839860391e241 : SUCCESS in 3m 19s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/9677de2803094f5bb20c168f7d601321 : SUCCESS in 5m 14s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/f0b20d93a3e04b24bc25b3df0ee9fbb5 : SUCCESS in 4m 41s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/f4e6351a41dd4b97a076ca42f090ce1a : SUCCESS in 2m 35s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/12cc60719d864151bff29494ea6b7e00 : SUCCESS in 3m 26s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9a82dffd03db4a42a90155dfa61a811f : SUCCESS in 4m 44s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0389d71bf3324173b799a148de461504 : SUCCESS in 3m 50s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fd57cd908b57446f996e98d29a70ae5f : SUCCESS in 3m 29s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/415ba0db324849fca5fb3c8fd031309d : SUCCESS in 9m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/68576deed34d48b79971f61c1a998943 : SUCCESS in 3m 05s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/131ba7e2ea064012b8dad0580b454ef7 : SUCCESS in 33m 48s","accounts_in_message":[],"_revision_number":22},{"id":"20376e293dc07f2375a80f887a962a94389f9086","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-17 08:39:42.000000000","message":"Uploaded patch set 23.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":23},{"id":"1f8dc8d21897d18b63dbfd06915a4434b6fa92e7","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-17 08:39:50.000000000","message":"Patch Set 23:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":23},{"id":"999889aba94d5d436d5023c72eddf67064abb8bd","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-17 08:49:53.000000000","message":"Patch Set 23: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/4b13020df9a945139ed777e01b6384a0\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/913c8b650b94462b8bf5c462b7ed146a : FAILURE in 8m 48s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/83ee26aede614d3f9f0266ee211bad95 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":23},{"id":"6e1d6c7a6c6803910af69a84ce642e7529ba9242","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-17 08:53:03.000000000","message":"Patch Set 23:\n\n(3 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/b7961c1583e9413abde108ed7b0cbf26\n\n- teim-code-review https://zuul.teim.app/t/main/build/e5497a51a3a84e948640fcb824b2eb12 : SUCCESS in 13m 00s","accounts_in_message":[],"_revision_number":23},{"id":"a4904ef3e28c10e86cc59208ad3450b04074f560","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-17 09:16:23.000000000","message":"Patch Set 23: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b5624f680ae74519bed6bedcf21a8154\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/6ee3e589f31f49fc9a615a684db2f673 : SUCCESS in 2m 40s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/1e5a994be0a3497b933811d94802361f : SUCCESS in 3m 04s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/29b5239eb6c44ef8ae00c25a8c52936c : SUCCESS in 4m 37s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/46969d5c4c2944528f38b3a5237d417f : SUCCESS in 2m 58s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8135c1fee84f421098d1cfc8e5d6bfd6 : SUCCESS in 5m 14s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/3bcd0bffef524a9ba5e98d483566f407 : SUCCESS in 3m 47s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/089448e9400c436caa5383face0cfc9f : SUCCESS in 3m 45s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/88a1f667e7624259bdda4e824eba486c : SUCCESS in 3m 50s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/560c50475b0a468ab06db58cb9fc0968 : SUCCESS in 7m 32s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3f3ff72975104d958d5586ad19a1ff2a : SUCCESS in 2m 54s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/037ec0216931411d9f1a2562a7a79029 : SUCCESS in 30m 28s","accounts_in_message":[],"_revision_number":23},{"id":"d9b1d4333cff09dc33632b92af22c4bdbbf0e4a1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-18 06:09:00.000000000","message":"Uploaded patch set 24.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":24},{"id":"fde4c1539243007430f0846b5390f3876dc7996d","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-18 06:09:07.000000000","message":"Patch Set 24:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":24},{"id":"acee84e4dd72ccf88f382d26caa6ddcd7f2dbea2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-18 06:14:12.000000000","message":"Uploaded patch set 25.","accounts_in_message":[],"_revision_number":25},{"id":"03d59512b0f51dfcbc95925ffe1ab12d7310b17c","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-18 06:14:25.000000000","message":"Patch Set 25:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":25},{"id":"2c18a308262594495576cdbdbb4d0247460dd113","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-18 06:25:25.000000000","message":"Patch Set 25: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/0aa388818e8c4a5a97accd96521409eb\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/e2bc309c8a5b4232b974c7a9314df8df : FAILURE in 10m 04s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/ba2d11b28c5a4486a9e27dd7f92d2de3 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":25},{"id":"0d1516a0355d4cc0baca9270af127d89e0502991","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-18 06:35:19.000000000","message":"Patch Set 25:\n\n(6 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/540bede036d641f791c82c85bed89427\n\n- teim-code-review https://zuul.teim.app/t/main/build/b441615c17e44e7596a937491873fdd8 : SUCCESS in 20m 34s","accounts_in_message":[],"_revision_number":25},{"id":"00cb17ea91a5c91be1a18f5d47f976e50a16d17e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-18 06:45:32.000000000","message":"Patch Set 25: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/6862de73107f468189a938efb4b746cf\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/303b24619bf048a8ae60b546509edb09 : SUCCESS in 2m 54s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/0dadc7199ff84ae38b3ab7dc149925bc : SUCCESS in 3m 53s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/907a2b4bfdec4202b19f70ae22c3acea : SUCCESS in 5m 50s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/f333e0469f8846d284176343913f9996 : SUCCESS in 4m 18s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/eed2827e7fb34d9e9d16d3cc68ca8b8c : SUCCESS in 3m 17s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/dd9387a4a3ed4ad5b2683a4faa5d3ec7 : SUCCESS in 3m 49s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ebde788be8784e4a8cef99d0e6b87e75 : SUCCESS in 7m 02s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0b4e729d8f5f41d5b03e02c42eb0f43b : SUCCESS in 4m 04s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/69cfc4e88dab4cdfb0570237d0793615 : SUCCESS in 8m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/164c2cb5f9f648edac7c1bc2d2bbad5e : SUCCESS in 3m 13s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/88b4e20440554432891f2ae9199ffa04 : FAILURE in 26m 18s","accounts_in_message":[],"_revision_number":25},{"id":"3c7d935348c5326fa0a7b67f0e38ed4a24259331","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-18 10:01:00.000000000","message":"Uploaded patch set 26.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":26},{"id":"cc2667bd00dbbac0364036187d1ebc58c3c6ef31","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-18 10:01:07.000000000","message":"Patch Set 26:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":26},{"id":"e2be3bfed169cf58333820bda364da7ed10c05e9","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-18 10:01:13.000000000","message":"Patch Set 25:\n\n(1 comment)","accounts_in_message":[],"_revision_number":25},{"id":"14f3655ae4d1cfc592a29474b7819a4d5c4e1bb6","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2025-12-18 10:11:08.000000000","message":"Patch Set 26: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/79ab129a44844838a44ebe5407a6316f\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/25e23c9912424248a71dee49f78da482 : FAILURE in 8m 41s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/99a891c2435b4e75ae3b84c4f057c792 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":26},{"id":"77b1a69b4529c8774e499a070115f4d6d7573027","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2025-12-18 10:12:08.000000000","message":"Patch Set 26:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/64492847087c4b5eb99c7775a0c153d9\n\n- teim-code-review https://zuul.teim.app/t/main/build/55ecdc1b0c37404d88f24302e52efcf8 : FAILURE in 10m 37s","accounts_in_message":[],"_revision_number":26},{"id":"cc9dccbea8db49f5e8cee90ab1fba61e78dda529","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-12-18 10:32:52.000000000","message":"Patch Set 26: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2b78ef7266bb44f7b22a961bc759f1f3\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/6fcde787da0f439fb4cea8372b7076c7 : SUCCESS in 2m 22s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/0534f244e8ac43d8bee8d4b275ca8f4c : SUCCESS in 3m 03s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/71620452dc4b4dba8668e4555dcbdc03 : SUCCESS in 4m 30s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/75ebe8cb712d4e8eb722903d92b60e78 : SUCCESS in 5m 52s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dbb5a2c2b3664611b325b0aa4e305701 : SUCCESS in 2m 55s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/b54558b702a44d938fc58cb1c15572bb : SUCCESS in 3m 46s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3321709025bd4c64bc6301e4edd199fe : SUCCESS in 3m 44s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b3fe7286589e4079a34e8746d5cb7844 : SUCCESS in 4m 09s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/efd310e471c24977bcd047a76a531c67 : SUCCESS in 8m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/265ce00d9e1147fc84d28ab7b4859c71 : SUCCESS in 3m 07s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/4eb6eb3471564708bc0baa709a7d120d : SUCCESS in 26m 37s","accounts_in_message":[],"_revision_number":26},{"id":"3de7cf4b33120277789a45f15f5b53d6fbef601f","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2025-12-18 11:39:01.000000000","message":"Patch Set 26:\n\n(5 comments)","accounts_in_message":[],"_revision_number":26},{"id":"0fa465ec54efb042cf38c45bbde7801a9c2aa793","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2025-12-18 11:54:37.000000000","message":"Patch Set 26:\n\n(1 comment)","accounts_in_message":[],"_revision_number":26},{"id":"a3f44383065e9ae6d7ea26ac2342bef9a3fa433b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-01-15 08:48:05.000000000","message":"Uploaded patch set 27.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":27},{"id":"677450c0a320b8a57fb3382434de3c68318fdbec","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-15 08:48:15.000000000","message":"Patch Set 27:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":27},{"id":"cbe8b550d2dd6ad47ebdb9cace7007b94cd6e203","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-01-15 08:57:51.000000000","message":"Patch Set 27: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/e9de35589d7a49e384ab6ac799200bad\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/218ee963d4ff497d9026308b270458d5 : FAILURE in 8m 30s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/1777b5eff78544a594a49cd6f809e073 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":27},{"id":"d3bb1f5afb7415b9be7f51c6650873f3c903b041","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-15 09:06:09.000000000","message":"Patch Set 27: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/40945b7f54064cde8a44de381a691b78\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/fd3db24bf4ed464e9e552ddef6301555 : SUCCESS in 3m 00s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/164c90e97f79447198e64d8ca51ade55 : SUCCESS in 6m 31s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/3271e4262b8a4bc78658e8da45d5a06a : SUCCESS in 6m 38s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/d7dd1285fdb04de58c5ce0a5426415e8 : SUCCESS in 5m 59s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/14d82712a59140798dc1fd79a07b16b2 : FAILURE in 2m 16s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/97a1549118644fc4922e37a5561d93aa : SUCCESS in 3m 59s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5516fbb17eda42e5b8bdadec3220ce80 : SUCCESS in 2m 35s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/44cc968c98504fd3b01b00aa28be7e24 : FAILURE in 5m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e827df4a75e846f7a6cfce02bcf61fd1 : SUCCESS in 1m 59s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/0c38131ccaf64f329240eab58b1dd9bf : SUCCESS in 16m 59s","accounts_in_message":[],"_revision_number":27},{"id":"907f9f7492531a35fc489839739f42a0632fd151","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-15 09:19:46.000000000","message":"Patch Set 27:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/22a2196fc5d44c0489e8b2ac1f4e00c1\n\n- teim-code-review https://zuul.teim.app/t/main/build/854eb8ad60f94ba987b4c62b1543e532 : SUCCESS in 31m 08s","accounts_in_message":[],"_revision_number":27},{"id":"3740bbbb00679bdab05177a1e07a300cc5dd31d3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-01-15 09:32:21.000000000","message":"Uploaded patch set 28.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":28},{"id":"9837f5035feb18fdf2969a27cfdd7f2a51b9c532","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-15 09:32:36.000000000","message":"Patch Set 28:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":28},{"id":"5953e365fca2feb9d6f6cb1426fa1ddca930e114","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-01-15 09:41:34.000000000","message":"Patch Set 28: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/2b2a14bbea22477e954cec5f22a5ef62\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/3de95615fc204c44bac9758d54b65aa8 : FAILURE in 8m 01s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/1dd2b54b00e648ed81492723c1899a31 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":28},{"id":"2dce65054fafd190a1880fc7915168165602693e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-01-15 09:50:51.000000000","message":"Uploaded patch set 29.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":29},{"id":"c1605a7be17808dcbc2b424b1f121e5fce47d500","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-15 09:51:24.000000000","message":"Patch Set 29:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":29},{"id":"779a909a81f7a037346725ca40ae0ca7dbd44227","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-01-15 10:00:22.000000000","message":"Patch Set 29: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/1e647435a4ae44b2859dfe7c1f772b3f\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/9f19e63a17a443a58af8aeb012ffa7cc : FAILURE in 8m 15s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/305ccf0b5ba248a6bfa2c52ef3bc4515 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":29},{"id":"f39250e767b5919d8209a737fae5ec131b41a613","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-15 10:16:30.000000000","message":"Patch Set 29:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/a41eb9b2c75747c989d7ef7e3afe297e\n\n- teim-code-review https://zuul.teim.app/t/main/build/1dee9f5b6a6046a98ab5bccdd9a87bbc : FAILURE in 22m 51s","accounts_in_message":[],"_revision_number":29},{"id":"d6f1cad554edee73c65ea0e879ac4190cdaaf353","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-15 10:30:43.000000000","message":"Patch Set 29: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5ae8cc9ec6ce4cbd8ca3b09460e937ed\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/bfe7b05cfea74601bc9004cc8eced025 : SUCCESS in 2m 19s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/03efa93cb56b44b3b339d1d667396cb6 : SUCCESS in 7m 58s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/a2418b89e4384c328e23370410231644 : SUCCESS in 6m 59s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/e1a6ac7041dc4b9b9ef8c27a0fa2d226 : SUCCESS in 7m 49s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/713ee3c08762481e887c48ab05623bca : SUCCESS in 3m 18s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/7ab5c2a3bf794b8d91eb38aa8befa633 : SUCCESS in 3m 54s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4b3118a128d847d189ec916b335964f0 : SUCCESS in 3m 12s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dc7b068b9e1f49b3949980a6b0e1433d : SUCCESS in 7m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/621aff81023447f5ac727fbdd213bac1 : SUCCESS in 3m 14s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/bde0cecd8fbb4f27b75f929e7bf0fc44 : SUCCESS in 37m 51s","accounts_in_message":[],"_revision_number":29},{"id":"a1de728f7e9a53c9779b7cf69d6e8fffa39bb641","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-01-20 05:21:49.000000000","message":"Uploaded patch set 30.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":30},{"id":"4609ea4f0b46093b83dbfbe25f286a2053bc8f0f","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-20 05:22:08.000000000","message":"Patch Set 30:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":30},{"id":"6156ee1aa73cb7a1eddbd3ec965640f3a57a81f9","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-01-20 05:31:08.000000000","message":"Patch Set 30: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/c0ac19719f1a489a822357cad054a918\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/9076557b6b1349bcb4d4d61ec6aab242 : FAILURE in 8m 11s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/6b5245ab3240408b8eae2d690e159221 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":30},{"id":"c7a76793922920a3c97c130fa5d1446ee0012845","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-20 05:39:07.000000000","message":"Patch Set 30:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/adc9f545443c4a379cfe50c486a2c5b2\n\n- teim-code-review https://zuul.teim.app/t/main/build/3865a3104bb94ce798ee3f7ed36e9bbd : SUCCESS in 14m 47s","accounts_in_message":[],"_revision_number":30},{"id":"d42a3c46748c1550987a1aaa26cf17c23bf1ef77","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-20 05:52:39.000000000","message":"Patch Set 30: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/576dd0ad300b42168c68a4e636f687fa\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/a5ff2d4d2aa041b0ac8e977d1f8f88e4 : SUCCESS in 2m 52s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/75961ed539514f0586c16a6e6c43125c : SUCCESS in 4m 17s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/165dbb6b85b54905bd62c7cad22fe8aa : SUCCESS in 3m 18s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/d4c218f5bf8f4e219469b208224c376a : SUCCESS in 5m 02s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/08c89ffcf6064d66acdb3d0c9e95b918 : SUCCESS in 5m 04s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/46724eacada044a58601fced22fbd923 : SUCCESS in 2m 09s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/627573f80f7540eda8d3b2a0be870fa0 : SUCCESS in 2m 24s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/80f0dab2d6894d359cdc4535517cc845 : SUCCESS in 7m 36s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/310d759a15cb4a099a936df3307c8be0 : SUCCESS in 2m 29s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/56f9d44291a04f798d33aaaf95dc5b13 : SUCCESS in 22m 37s","accounts_in_message":[],"_revision_number":30},{"id":"32d145cece2b882585bac9253939c4596d0bb6b0","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-01-21 15:41:50.000000000","message":"Patch Set 30:\n\n(2 comments)","accounts_in_message":[],"_revision_number":30},{"id":"40ba641ec95534455a17543d857704d66979a3c7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-01-22 04:09:32.000000000","message":"Uploaded patch set 31.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":31},{"id":"b28865ae9ad23cbf6cd27776a0b21b07fbaf34ce","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-22 04:09:46.000000000","message":"Patch Set 31:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":31},{"id":"5207b50dd84516a590cb89e5e7bda016c5770669","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-01-22 04:09:50.000000000","message":"Patch Set 30:\n\n(2 comments)","accounts_in_message":[],"_revision_number":30},{"id":"d333c78d33f5f96bad157adf439b6bc3cb2dc351","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-01-22 04:18:37.000000000","message":"Patch Set 31: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/51825ae86e6246e28170eaaeeeeb008e\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/f8a0eb9ce62f4fb89e203a2ad845e50f : FAILURE in 7m 55s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/b105327adb5f4602892327f57eff250c : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":31},{"id":"e697f8ae8b1d670ebd87c15cfd284510018ae720","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-01-22 04:19:36.000000000","message":"Patch Set 31:\n\n(11 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/e9714ac029964d8f971a1051ccfdafc3\n\n- teim-code-review https://zuul.teim.app/t/main/build/cee4b8230b3e42f19aa66b82037ef709 : SUCCESS in 9m 42s","accounts_in_message":[],"_revision_number":31},{"id":"827fad0d17525f3c992081fbf21842b8a3591b91","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-01-22 04:24:01.000000000","message":"Patch Set 31: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d76c74c8e0f64f62b1e4c865015ad571\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/974e1bc049f04e63a5326f1542d43931 : SUCCESS in 2m 47s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/901b8d8280e740448ab5e587aad60d49 : SUCCESS in 2m 22s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/be719191fb7b4a13a794badf2e1905ff : SUCCESS in 3m 41s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/a5c96ad038dc424db47050a4d4ca7db2 : SUCCESS in 4m 41s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/db04a8767f064449b8b8be97d87ce9ec : SUCCESS in 3m 54s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/70a8f834a9f547fcb85e7ccf9894044a : SUCCESS in 2m 19s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d7027ba341984f0da9c1a7deb2186bb7 : SUCCESS in 5m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ff65c34551bb47ab88c89a155fde1730 : SUCCESS in 3m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f385d816cd4743119ef097c06645044d : SUCCESS in 2m 52s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/0f325f1310a643d8a8858b0bd45747cc : SUCCESS in 12m 54s","accounts_in_message":[],"_revision_number":31},{"id":"4cc21001cd2b49ac53bab6c7be8969d7e95c7471","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-11 09:33:46.000000000","message":"Patch Set 32: Patch Set 31 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":32},{"id":"f03a6400fe8b15823cd7f1d5ceb1b796f854ce25","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-11 09:33:57.000000000","message":"Patch Set 32:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":32},{"id":"f6abc934ba2a03c9acae6245107809b115aa3b02","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-11 09:43:09.000000000","message":"Patch Set 32: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/31f870cad11046599fe4829daf892fd7\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/2ed73640126e4e219ef653ba214599cb : FAILURE in 8m 05s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/ec5710774b7844d6ae31b7786229167c : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":32},{"id":"7cafd2f8794978586756b7b298db4daac72eecfe","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-11 09:47:13.000000000","message":"Patch Set 32:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/c3b6e82fc6a94f77bfcf592596961f7f\n\n- teim-code-review https://zuul.teim.app/t/main/build/5f8e4c4cd8cb4a53a3020083570db273 : SUCCESS in 13m 08s","accounts_in_message":[],"_revision_number":32},{"id":"881d502cb03cce8f0fd66ae5a0718700278269ae","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-11 10:26:11.000000000","message":"Patch Set 32: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/909e97639f8f48f8a2a090acc578e477\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/1ceabc6a756f4caaa9afd0bedaa0ed82 : SUCCESS in 2m 41s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fcfc61059c4747de99b45537fab6d6a1 : FAILURE in 3m 36s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/5560b13aced9415596d83b7aba1f7f75 : RETRY_LIMIT in 2m 28s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/f12a678dec984893b034084ed749f0cf : RETRY_LIMIT in 2m 57s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6febc0404bd1426cb2a6b3d32c96f975 : SUCCESS in 2m 56s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9f98b2d16fc9465bac25db3f155d7f00 : SUCCESS in 2m 10s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2c601f0257c0419795c9185daf116821 : FAILURE in 2m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/94833bceb01f4f408250faf727c7f493 : FAILURE in 5m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d1a684de714f4b368a145424ce962bb2 : SUCCESS in 4m 00s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/f105e78d87e349db9bc73c76060ca41e : RETRY_LIMIT in 10m 12s","accounts_in_message":[],"_revision_number":32},{"id":"16fee58631d5343272de4f651965bebec1dc4611","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-20 14:49:58.000000000","message":"Patch Set 33: Patch Set 32 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":33},{"id":"37e0cb21aee813a6b9b5db74a95d4261a9bc1f83","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-20 14:50:06.000000000","message":"Patch Set 33:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":33},{"id":"45c6932fc11b9714f6b08d917f28bc8fb97f2d6d","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-20 14:59:10.000000000","message":"Patch Set 33: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/8075f17274ef4cc0b3ad1474bd0464f0\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/ac9c25d6b28c4763a50f453d51ae2614 : FAILURE in 8m 01s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/ac59b690b5114860b5fb95779b5b56ad : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":33},{"id":"7a4d3994d08c71ad3ff34772931e6caad0ca36aa","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-20 15:19:22.000000000","message":"Patch Set 33:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/be6230d0a936411ba9b43f4daac51e86\n\n- teim-code-review https://zuul.teim.app/t/main/build/f058fb0f48614fa18cd6ddb0a5451eca : SUCCESS in 29m 08s\n\nWarning:\n  Job teim-code-review: unable to map line for file comments: \n  stderr: \u0027fatal: There is no path .git/COMMIT_EDITMSG in the commit\u0027\n  Comments left for invalid file .git/COMMIT_EDITMSG","accounts_in_message":[],"_revision_number":33},{"id":"354d6f27a872a915f949dcb09e514bed1083b358","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-20 15:26:46.000000000","message":"Patch Set 33: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/c5b179673b85489c86bf91acc5275ed1\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/4308773e8a0f46f9b7446e46b9fcfbbc : SUCCESS in 2m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/877e71e16c664047b720f75d0bb5cf33 : FAILURE in 4m 20s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/d01722215bfc41d399fb9fd21e8d7a75 : FAILURE in 5m 21s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/0892904483024e69872be620a00b7d0b : FAILURE in 4m 19s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7b62748115b74c37b9db4a46741ff436 : SUCCESS in 3m 37s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f2afef15f0c649139f77a7641e46dd0d : FAILURE in 4m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8bf65c578da8490cafde3d7d78f62030 : FAILURE in 4m 00s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2cea36daf40d4fbd8c96ae833ad929eb : FAILURE in 4m 36s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/85601146eb3245c2b22f3487b6ad03fc : SUCCESS in 4m 06s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/36151eca57294ccc9c0c025fe955a6d7 : SUCCESS in 2m 57s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/bb109a6dbd73476fbff919d910a27186 : SUCCESS in 30m 55s","accounts_in_message":[],"_revision_number":33},{"id":"057b23aed2c16949f677ea71d86d4ad74444b53b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-20 15:44:26.000000000","message":"Patch Set 34: Patch Set 33 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":34},{"id":"fef67f1ae1b0f1c5d07463a45042cf7c572ed10a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-20 15:44:35.000000000","message":"Patch Set 34:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":34},{"id":"4998fa6e8f7c2648ef4b3500bd48ea2bb830513b","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-20 15:53:38.000000000","message":"Patch Set 34: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/52ef32a7aa41407ea6b760dec45a855c\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/d668270529d5401aa833b9e83ea92774 : FAILURE in 8m 02s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/7a3b21aba9bb492ab2f6d6eab1f6eb3b : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":34},{"id":"214aa3ab3900424ec511dd99d00f9df5ee6c2a50","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-20 16:03:06.000000000","message":"Patch Set 34:\n\n(9 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/388fd9ad5584446aa7c44adb2dc45968\n\n- teim-code-review https://zuul.teim.app/t/main/build/63d2a442704447d8a48c780d0e45108c : SUCCESS in 18m 21s\n\nWarning:\n  Job teim-code-review: unable to map line for file comments: \n  stderr: \u0027fatal: There is no path .git/commit in the commit\u0027\n  Comments left for invalid file .git/commit","accounts_in_message":[],"_revision_number":34},{"id":"d0431b2588fdaa0afaeddf9b01074dd2709cebc3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-20 16:04:34.000000000","message":"Patch Set 34: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ed54f7ec543146d4a3b526d94882770f\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/3fefcc471f9b4682984aebf9ec629276 : SUCCESS in 4m 09s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d151cc0b18ee4aa593da8fd3502a9c4e : SUCCESS in 3m 35s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/2899e796497a470288cb75ea2792cff3 : SUCCESS in 4m 16s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/2a89feac36754473b92843e47740ea6b : SUCCESS in 3m 44s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/85ac0a10028343d5bd5dce0c12c27c13 : SUCCESS in 5m 14s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/9d4862def0a14481a8b353311531c283 : SUCCESS in 5m 27s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5d16ac18a38f497abfae36d7d6c23d8b : FAILURE in 9m 17s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2b3d62869b9a4f2790a4948f38339cb9 : SUCCESS in 4m 02s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/afaf6fde9d884f5d91c488b65c935d0f : SUCCESS in 3m 52s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e5dd6b4622f8488683b08d29339074cc : SUCCESS in 2m 38s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/48d3c9eafa3944e7b047f5b73b811428 : SUCCESS in 17m 29s","accounts_in_message":[],"_revision_number":34},{"id":"5ef8e18a8301909884ee6ec243f1cf49a774d92d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-26 13:55:15.000000000","message":"Patch Set 35: Patch Set 34 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":35},{"id":"7bbfba1930deb4a4c73bf54928dec4afc3a45ee4","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-26 13:55:24.000000000","message":"Patch Set 35: Workflow-1","accounts_in_message":[],"_revision_number":35},{"id":"4f28f36b528cfb8cc687ca8418d459c3f62abb82","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-26 13:55:46.000000000","message":"Patch Set 35:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":35},{"id":"06fc6d114a45ba298dd5fab355c2f30e34b9a7ef","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-26 14:06:38.000000000","message":"Patch Set 35:\n\n(3 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/b4cbead18a2e4d6b82117f573d23521d\n\n- teim-code-review https://zuul.teim.app/t/main/build/0925ade0c07a4aed9b4e1f07a1b7b485 : SUCCESS in 10m 42s","accounts_in_message":[],"_revision_number":35},{"id":"406dccad1796b20525f9d791750eeb9357cfe2b7","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-26 14:27:47.000000000","message":"Patch Set 35: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/e4757ffb6d1f4207a8abc4f48509e17e\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/9ded3e80efe64196a95361d05aa4c869 : FAILURE in 9m 08s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/f55062dc1e404720a3bf953900a3ec57 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":35},{"id":"b6360066c9da65b288d56e0e04e68bc18c26e8f1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 14:34:18.000000000","message":"Patch Set 35: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/71e46580e8dc4e33bb1f2d4536afb953\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/5cf8d9077b0845cea58e5929e71d0f5a : SUCCESS in 2m 30s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ba22589048dc4f3c9ea7d0e2bd80e885 : SUCCESS in 2m 44s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/07d297f0a63c4fb0ae319563ba67cb2c : SUCCESS in 4m 17s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/66a92f5e657945d29989af1fbcb6601b : SUCCESS in 2m 35s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/798167e8c9aa49b695ab355d176ba05b : SUCCESS in 2m 00s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/62e2bb8a309f423ab665e8547bc22609 : SUCCESS in 4m 08s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/6f0016a1c96448e9a5688eb2cd64f75b : FAILURE in 6m 40s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0fa6cf7115c548e499709961d5df0ce8 : SUCCESS in 4m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/642b148efabb43e483e24a3206bb13cd : SUCCESS in 7m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/b716814c78b64f669ce93dfb0640bdaa : SUCCESS in 4m 05s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/ea191609931b4fae95870413f8da0836 : SUCCESS in 31m 27s","accounts_in_message":[],"_revision_number":35},{"id":"d023b2d43743551b12e735462695b5d5e99d003a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-02-26 15:19:35.000000000","message":"Patch Set 36: Patch Set 35 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":36},{"id":"1f6403f1c6434aeeb32dae4b145f3e6b2aa85be2","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-26 15:19:43.000000000","message":"Patch Set 36:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":36},{"id":"1a28aaeb723d89ad7d68d23ae5b18add7439c8b5","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-02-26 15:29:48.000000000","message":"Patch Set 36:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/6628f0e9384a4b5bae91282a7191cf39\n\n- teim-code-review https://zuul.teim.app/t/main/build/283de6ef76a646058c76c61a3e1de53f : SUCCESS in 9m 56s","accounts_in_message":[],"_revision_number":36},{"id":"88ab97c7e398b83421f1fbdf5e640c8872c0895b","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-26 15:30:01.000000000","message":"Patch Set 36: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/2ecb039edf1748d0bfab1e71f926612d\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/5cc4f36ac1c7408fb6211e0a6d53e9c8 : FAILURE in 9m 17s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/cc533ad46cfa4c38932619cade459ce8 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":36},{"id":"3b3f0db8e4d135f7e7e0076f501cc333df0bca7e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-26 15:45:22.000000000","message":"Patch Set 36: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a887b92833dc4f50b283accef6db2d85\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/8e2b18f505394a3cb338e251f2b89755 : SUCCESS in 1m 39s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/cbbf1b10d1ca4d8fab79a2de138423d0 : SUCCESS in 4m 34s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/64ed336b2e514c9ca64d2b2b2b53e80a : SUCCESS in 4m 20s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/e298ff72ae8d4e5796c4dfb3e424c8a2 : SUCCESS in 2m 52s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/dd21f5021bf342d491afc0307ce07df9 : SUCCESS in 3m 56s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/c2367eb9c0f441868af2c8fdba9fd8cb : SUCCESS in 4m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8910f66ebb5f4fd0b191edaf18c0c6ac : FAILURE in 8m 46s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/844fea1aa83e44298e816aed960f726c : SUCCESS in 4m 25s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/95a682eb7be042b784d83955d0034406 : SUCCESS in 8m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/c04f3a2b02674ff3a0e6ba2315800fbb : SUCCESS in 2m 50s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/bd11529a835e4788a95547751b73db1d : SUCCESS in 21m 27s","accounts_in_message":[],"_revision_number":36},{"id":"af8c55250287e0cc6be5ce630c6b5c702ce00c05","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-03-03 07:37:58.000000000","message":"Patch Set 37: Patch Set 36 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":37},{"id":"95dfa6926601d2baf6f128879ef1d3e56cafb556","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-03 07:38:10.000000000","message":"Patch Set 37:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":37},{"id":"3f1f79076c75586e72e6f664d206748b8dd06cdc","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-03-03 07:47:49.000000000","message":"Patch Set 37: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/744d72557fe34746a31e51d99bf71284\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/f123e0b5532a4dad8b2e4bdfdbfe4699 : FAILURE in 8m 05s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/4b44a376958e4c0ea3b0b6eb6ffe4a41 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":37},{"id":"cfa84019c00ebdeda2c9c83314b367e23f5ea44b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 07:59:01.000000000","message":"Patch Set 37: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6420b500b2d7426a9fb80c6fb2303ede\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/20aa845c0a864f32a0cbbc31f8afb9f0 : SUCCESS in 2m 32s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/70eb8025116746cdac05821663af4166 : SUCCESS in 4m 28s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/61ce2c0c2a3c49109f7ff175586b77b1 : SUCCESS in 3m 53s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/859770fdc2e745d4b40e04d0e3f074ab : SUCCESS in 3m 42s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/27340a83c43c4fdcbd3b92314930773f : SUCCESS in 3m 50s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/2e5fe88a80954423b57d7eeff1ffe4eb : SUCCESS in 4m 11s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/66c26ea3bddb438aa26278e5098a1277 : FAILURE in 3m 37s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b98fe261ceb84628aa419fd188578531 : SUCCESS in 4m 19s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2f25f7c3b31d4f8b9233c883562cce64 : SUCCESS in 7m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e47206d6b24b4ca28a3c8cbc8dd6e4da : SUCCESS in 1m 46s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/bfcb84ca689f43f39579fc66eeaa73af : SUCCESS in 18m 39s","accounts_in_message":[],"_revision_number":37},{"id":"944fcbde097398c381e8350ffc7a28808954b246","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-03 08:01:39.000000000","message":"Patch Set 37:\n\n(11 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/0f8bd97984de4bd4a3b8eb6790d2c436\n\n- teim-code-review https://zuul.teim.app/t/main/build/e8aedc18f97f4f46b24ff9721a8fadeb : SUCCESS in 23m 20s","accounts_in_message":[],"_revision_number":37},{"id":"2d02617637319c8ea327250e8bda99eaada353a3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-03-03 09:58:25.000000000","message":"Patch Set 38: Patch Set 37 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":38},{"id":"0013b0dc879e9779df0299ea240467a2ef17b5d6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-03 09:58:53.000000000","message":"Patch Set 38:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":38},{"id":"0aa4908dfd7651e2ca33d71a0a581f4ead29abba","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-03-03 10:07:38.000000000","message":"Patch Set 38: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/1d1374ff929045798640cffa582dfd4f\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/d508bd13a4be4ef08bb3fc3f7560425a : FAILURE in 8m 01s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/4c8478a6a1ff46a8933bbab1ea6df190 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":38},{"id":"2af068d62b05941f59209df7dc437356c12bd608","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 10:21:27.000000000","message":"Patch Set 38: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/542ccab1c9504046a4148f1f06d96475\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/de693ba82e0a41978d6c8ae7bd6261d7 : SUCCESS in 5m 13s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/92872f7367e34c28b113192a6db267e7 : SUCCESS in 4m 11s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/e725cd23d7884d71b6f598d462559d4e : SUCCESS in 4m 26s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/9fe8374d971941229811cede38c74c13 : SUCCESS in 2m 52s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5525c408537c49a0b44e54f4ed33ce11 : SUCCESS in 3m 34s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/0c62af81189e481ba17b6abfb6c5cd15 : SUCCESS in 4m 00s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/6c7d6e3ec7514329b13c8411a68a1150 : FAILURE in 6m 33s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1f9330d390d14a7e823e725f61e44a39 : SUCCESS in 2m 51s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a3dfec99e1154947bc3a75dce538eade : SUCCESS in 6m 04s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/178c5af8804e46d2abf6eaf6b8eb79ec : SUCCESS in 2m 02s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/ae6e3692450748b59c9f05dcdf9885a3 : SUCCESS in 18m 47s","accounts_in_message":[],"_revision_number":38},{"id":"ecff58a3792ab51615d6c6a5ab4c4dfd1c5bd52e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-03 10:25:54.000000000","message":"Patch Set 38:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/28706cc3ae0d4c6ab14acca2ef7674e9\n\n- teim-code-review https://zuul.teim.app/t/main/build/ae897b71c3064cbebe6e8aa3d0d3921f : SUCCESS in 26m 52s","accounts_in_message":[],"_revision_number":38},{"id":"792d675ddef1794a79e66f47cde057a4522d30bf","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-03-03 11:05:12.000000000","message":"Patch Set 39: Patch Set 38 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":39},{"id":"a6f338aa4707c5ab8c515ff593e5cffee7655528","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-03 11:05:24.000000000","message":"Patch Set 39:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":39},{"id":"c6322b47469902acd7e8ee1d2e7faf523288a53c","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-03-03 11:15:15.000000000","message":"Patch Set 39: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/3c24b509766a4facaa79cf28699c1854\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/149ac74acac345339877ee2fbaf6f83b : FAILURE in 8m 39s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/377ff90f38b04c739fa2348925a99285 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":39},{"id":"10a6d5ab42a559de0e64ca3d3f5273b4dfc8fb3e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-03-03 11:36:29.000000000","message":"Patch Set 39:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/aa533b716ddc49df9f9756389e0a653a\n\n- teim-code-review https://zuul.teim.app/t/main/build/cdcb75a98f4446f2a78ca4d4fbc439e7 : TIMED_OUT in 30m 55s","accounts_in_message":[],"_revision_number":39},{"id":"6692ef2f5fe44d1eea4574cda55c0fd5c1791f27","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-03 11:39:54.000000000","message":"Patch Set 39: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a838471c14964159b8e7495b1c0c3e79\n\n- test-release-openstack https://zuul.opendev.org/t/openstack/build/8bad1dc71053454a967f7209dc3e5c7c : SUCCESS in 4m 12s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2ad3ae5d2a3a4eef962bdada16bd8e52 : SUCCESS in 5m 29s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/76e6922c9ecb4f409eab0f4eecfd3778 : SUCCESS in 4m 41s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/23e4e9071b174075a4b8a560ececd47d : SUCCESS in 4m 50s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/8ee316b975a34a39bae3b90e54334cd9 : SUCCESS in 3m 23s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/d16c1f58f4cc43299517bc81cbfa35c0 : SUCCESS in 4m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5da554642299481fa6e65dcb2eb1c6e9 : FAILURE in 4m 22s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f3677ed2f17f4981b1b57909767c538a : SUCCESS in 5m 56s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dc58afcb2b324d35baf9407c8f1ce911 : SUCCESS in 7m 20s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/140a9c1ed44d4bd19619740215d7db70 : SUCCESS in 3m 31s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/332e2e64a38548c198d6726133e89e85 : SUCCESS in 32m 08s","accounts_in_message":[],"_revision_number":39},{"id":"141912093189579df1995e255ca1521d66cf45e5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-06 11:15:57.000000000","message":"Patch Set 40: Patch Set 39 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1\n","accounts_in_message":[],"_revision_number":40},{"id":"cfe3bc1289736a25e186935546d0003913062384","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 11:16:07.000000000","message":"Patch Set 40:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":40},{"id":"2641f7be1a29a4c8d35ee102e936ac7cce1ac75a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 11:19:34.000000000","message":"Patch Set 40:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/4539d9d81d094f2196b63d6333bf9087\n\n- teim-code-review https://zuul.teim.app/t/main/build/a0b9ef37d0b64f95baf97ca000cb9be2 : NODE_FAILURE Node(set) request 300-0000001592 failed in 0s","accounts_in_message":[],"_revision_number":40},{"id":"893648090e20f6c72280722d01bc3a3211cde96f","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-06 11:24:45.000000000","message":"Patch Set 40: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/191ad21795504b259c5a38e6772f9f93\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/8446bdf5f5c8405a9086af20a8181a9a : FAILURE in 7m 17s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/12180788faa540afb15ab90d156c4504 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":40},{"id":"83c8f8673dc797acdf00bb700956e0c4d9f1f9d7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-06 11:29:34.000000000","message":"Uploaded patch set 41.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":41},{"id":"c7c34dc169e5794bb6592d42b2f12e2ec0790629","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 11:30:15.000000000","message":"Patch Set 41:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":41},{"id":"8064128fff8b3f8aa45300b539965fb9a7c6ab03","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-06 11:38:23.000000000","message":"Patch Set 41: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/e10fa8b0bd5146eaa89ea7dce9c9801e\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/8a25d2e648ca4ed3b0659284a4299b8e : FAILURE in 7m 31s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/dd2c11a90fd04ebdae981a52d8bab3a8 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":41},{"id":"08887a42e0ee0d06f14d2b29ddc1b357993ea113","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 11:48:17.000000000","message":"Patch Set 41:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/efbc12e9963e453b85f28e458ff86d00\n\n- teim-code-review https://zuul.teim.app/t/main/build/99d70a5e859a44d19340daa30b1a0aef : SUCCESS in 17m 53s","accounts_in_message":[],"_revision_number":41},{"id":"c3a7cd556548aff1b76f5d53a9d927f29ca7314c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-06 12:05:53.000000000","message":"Patch Set 41: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/f59c38369d86438cba9050c0a1dd2461\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/c9587866a54243bd93224cd8d4ceaa94 : SUCCESS in 2m 12s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/6d93b6bbd9984b4f8d1b3d315aa81d37 : SUCCESS in 8m 00s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/8b4794b3103e4e5e86e11ef82fb62e15 : SUCCESS in 4m 12s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5622b77e352048bfb575325b2e01a2cf : FAILURE in 6m 53s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/71e9acdd2dbb4c5c81e5d77f9f3960a5 : SUCCESS in 2m 18s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2c17472dd7d74440970a9604571c1b64 : FAILURE in 5m 46s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/441db5736c594efa859d21ee7b09539d : SUCCESS in 2m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/55c3665d56fe4c7ebef5ba3ff0ec75a8 : SUCCESS in 7m 26s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0338b4d60e664fc6b1ddf3aaf7821ede : SUCCESS in 3m 38s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/c7567d3ccc2e4a32b127b3ee9a221f20 : SUCCESS in 31m 06s","accounts_in_message":[],"_revision_number":41},{"id":"12a8199378d90d7f7d228216358de0a023978450","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-06 14:11:29.000000000","message":"Uploaded patch set 42.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":42},{"id":"38555e0d3406d2725da321a5eb3fc3d680881dd1","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 14:11:44.000000000","message":"Patch Set 42:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":42},{"id":"6cad4c73cfc209f7718f0fa8fe39ae25991c3885","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-06 14:20:29.000000000","message":"Patch Set 42: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/36c00af1e0d043749f8e0faa641aff37\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/abf651d91439486eadd10b3a0dcdf102 : FAILURE in 7m 32s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/f9a1aba4543f462f99bdc8a21ea13aec : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":42},{"id":"32bf3c78878ef513d846e3accbda6b3ef4fb8b83","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 14:43:23.000000000","message":"Patch Set 42:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/d0d93031821643ff80e83fe4a7f01ab8\n\n- teim-code-review https://zuul.teim.app/t/main/build/8cd1b9cf41394f98b92022fae6bbdb2a : TIMED_OUT in 31m 03s","accounts_in_message":[],"_revision_number":42},{"id":"848fcad7a4f49439b2a377521789391282cafd34","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-06 14:48:45.000000000","message":"Patch Set 42: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f54352896e964e06a7bebada04ffaa65\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a763c1a4c3694ccc81b0e2a37c1087e7 : SUCCESS in 3m 51s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/6ab4a0f17eec417886af8c770f2bf04f : SUCCESS in 6m 05s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/6f0ef4af27774a6188039cefe22a6eeb : SUCCESS in 4m 25s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6cadb439d60b4b1aa7d8ffcf4de5393f : SUCCESS in 3m 20s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/4f06a19e149347faabdecf2cb185720c : SUCCESS in 2m 24s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f63ef66707d4456e86453f87cef9ce57 : FAILURE in 3m 46s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/615493461312478b8c521a5c1fdf4aa1 : SUCCESS in 2m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f531b52c95204f25be569dc831f582d9 : SUCCESS in 7m 30s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/14aea69d0f984df495e26f996a1aa980 : SUCCESS in 3m 12s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/a8b77c0fc71242859901d01ae112cd6c : SUCCESS in 31m 19s","accounts_in_message":[],"_revision_number":42},{"id":"7e31e338338843124d02576cf6f08dcf3eaa3118","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-06 15:00:51.000000000","message":"Uploaded patch set 43.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":43},{"id":"c54eecc2297963bc7cbd1f85f2060207935b8c3d","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 15:01:08.000000000","message":"Patch Set 43:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":43},{"id":"0004694bd81761662aa43caf2d674dcd06ca8755","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-06 15:09:46.000000000","message":"Patch Set 43: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/035a99635e00440d89003d8ad355a0a9\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/e793327b9aad4e9b80bd39e723164c8d : FAILURE in 7m 38s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/567405e4f0e14e92a7e784fa1bc63eab : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":43},{"id":"4d9ffb16d461564c61f0daa73b2b935a14bd089e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-06 15:18:44.000000000","message":"Patch Set 43:\n\n(15 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/dcb8a57a50834eca99b941fc8c9c7041\n\n- teim-code-review https://zuul.teim.app/t/main/build/b24044edf5a3471987eea697af43329b : SUCCESS in 17m 28s","accounts_in_message":[],"_revision_number":43},{"id":"d3aae9ad288f9d01b92ad437002790e61b8c83ea","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-06 15:44:20.000000000","message":"Patch Set 43: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/a4305416bc1449dab03b86016077b3e7\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/9081da277c6742268044b0d1c1f7d71e : SUCCESS in 2m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/597f9e901b06441693dca8efc2187093 : SUCCESS in 3m 14s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/fe0be598e7d045c0886ea16bb6c0f88c : SUCCESS in 3m 20s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/3324f1a440fb4facbb1a1cf80ceea4e4 : SUCCESS in 3m 08s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/082baa5974ad404d89414e1dba2efd61 : SUCCESS in 2m 59s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/f55bccd6009a4343bb29eaadfb4ac84a : SUCCESS in 3m 44s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/85808031d8ed45b5abccec87c8d91cc2 : FAILURE in 8m 37s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e1af591318f844d09e8b7534ddc5f88e : SUCCESS in 5m 12s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dc8c2764456c4de9965e3a7ab9cebec7 : SUCCESS in 7m 19s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8358defb2d674034af6c72b142abde6b : SUCCESS in 2m 38s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/d4dfbecda6f64b74a8e841204be4cfec : SUCCESS in 35m 45s","accounts_in_message":[],"_revision_number":43},{"id":"f1af12cd3b562c3b45a169f435d826d8908095df","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-07 15:23:21.000000000","message":"Patch Set 43: Code-Review-1\n\n(11 comments)","accounts_in_message":[],"_revision_number":43},{"id":"8070d3ac7756fb946716c55847925089579ca89e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-08 14:55:42.000000000","message":"Uploaded patch set 44.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":44},{"id":"d5341317c7902333961d3d4d6e2aad367367bce1","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-08 14:56:14.000000000","message":"Patch Set 44: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":44},{"id":"a0655fbcceba7fec0b1aaa1fddd4c0deda1c9c91","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-08 14:56:16.000000000","message":"Patch Set 44:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":44},{"id":"268d301b236ad7103a47ed2aaeff130cd31db273","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-08 15:06:03.000000000","message":"Patch Set 44: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/b3328e601d244ef58abba5a9399883dc\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/bb44350107b044e4a40e4f1d41328c7c : FAILURE in 9m 00s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/626a14cafa9948d6aa042a2e86e6130d : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":44},{"id":"efd0278efca906f4f31ce555dd43fdf1cd87d1ef","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-08 15:15:55.000000000","message":"Patch Set 44:\n\n(10 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/91a420257abc49e687ee4a2c9a00f8d6\n\n- teim-code-review https://zuul.teim.app/t/main/build/78c33ac8dd3e4c03949a50288001e89d : SUCCESS in 19m 26s","accounts_in_message":[],"_revision_number":44},{"id":"79afc8e4a186c09f6be0227a9bdce74d12d40013","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-08 16:43:04.000000000","message":"Patch Set 44: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3eec267e74104133b5756effb5ff3c28\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/f397be10d33848e59a006f2ec470e02d : SUCCESS in 1m 42s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/bd9e2ab28ff84199b098d9175a2ee959 : SUCCESS in 4m 38s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/2909382fdaa54af78135ae6282f62779 : SUCCESS in 5m 11s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/c966593dec2a4435845d6aeb78770187 : SUCCESS in 6m 02s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4a3bcf3337fe422b9febbd4add2e43ef : SUCCESS in 4m 59s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/b24081b0b58c46d594f91625a1d6a19d : SUCCESS in 4m 31s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/27d041c4445e4f898a53a8a0071a5b01 : FAILURE in 6m 47s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6e8ec5b58fd24c9796f8b2c9ece96322 : SUCCESS in 4m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/149e6cbd8a884c84af80dcec3c549bf2 : SUCCESS in 4m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/663aa8b675254164aa4f7707b8666188 : SUCCESS in 2m 18s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/2a0cd2b990ea41fba8a4812e6fe09e8d : RETRY_LIMIT in 28m 18s","accounts_in_message":[],"_revision_number":44},{"id":"75151a0ec707c657fe598c8be305190628f5e69c","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-08 17:03:46.000000000","message":"Patch Set 44:\n\n(5 comments)","accounts_in_message":[],"_revision_number":44},{"id":"e5e8d41626a50477d55a3e15acecbaa0446028a3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 06:39:09.000000000","message":"Uploaded patch set 45.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":45},{"id":"542494e4831bf4fa46156e407d72bac7d2615dd4","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 06:39:42.000000000","message":"Patch Set 45:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":45},{"id":"41f42f031af655b9f2ae06da05cae4c3b053c032","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 06:47:56.000000000","message":"Patch Set 45: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/97eefbb613d04775bcd02c43e27d22b2\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/8e04822650b14f77b36ed2ee4e1b1135 : FAILURE in 7m 21s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/48a02207986f4b34ae49a58f70f5ae35 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":45},{"id":"b5d03b85ba561de8e68a627ea6bc97feee5a2b7d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 06:52:23.000000000","message":"Uploaded patch set 46.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":46},{"id":"033f5e63347c01bab8276455a36953f37a8dfed9","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 06:52:42.000000000","message":"Patch Set 46:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":46},{"id":"d39f203133856359e57cb445694460c13cc11918","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 07:01:49.000000000","message":"Patch Set 46: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/afa0550df22944538a7aede8e7e3f18d\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/9935db427e0f477485d46b3989dc53a0 : FAILURE in 7m 56s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/3c4b1787dbed4509a425b7bd50b5249c : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":46},{"id":"a20984710e76e8e4550be306e9d85d949d7ef425","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 07:24:09.000000000","message":"Patch Set 46:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/3503a544e5c64c9cbac44251ee8f736b\n\n- teim-code-review https://zuul.teim.app/t/main/build/4cd216967b4742119a54f553eeaca31f : TIMED_OUT in 31m 17s","accounts_in_message":[],"_revision_number":46},{"id":"8918e21a88a662842542fc32ea0afe0ec1a62c50","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 07:30:46.000000000","message":"Uploaded patch set 47.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":47},{"id":"3ec71a39fb750639724f91f416fe3dbe21b92e51","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 07:31:04.000000000","message":"Patch Set 47:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":47},{"id":"c7265c29611c92f260aa6af1c4351a6ea00497d9","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 07:40:02.000000000","message":"Patch Set 47: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/f28d429c8ab24e6ebe52052a75dbf052\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/96e0bcffed6d4e71b041925850573a20 : FAILURE in 7m 35s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/561260c55389443da9290ce03bb3b96f : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":47},{"id":"ea8cf108aafb31a782575ade2b286d507271a71f","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 07:49:04.000000000","message":"Patch Set 47:\n\n(14 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/a96a8f58db314105824f589692ba2265\n\n- teim-code-review https://zuul.teim.app/t/main/build/917ccacc5a05467b82cefe6a48cd19ee : SUCCESS in 17m 49s","accounts_in_message":[],"_revision_number":47},{"id":"229c433f40e78ed138c0a4d797d491e1ffd51ee5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 08:23:29.000000000","message":"Uploaded patch set 48.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":48},{"id":"da4bb38bf0b478dbceb13cfd5228d1af266b0e3a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 08:23:46.000000000","message":"Patch Set 48:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":48},{"id":"3dbd3a498d0e8fa5d3b90a5b14e736caeeccce07","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 08:32:42.000000000","message":"Patch Set 48: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/789a9ec43b7e45b2a2243e2e7557127f\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/cc00341b22c6477aa61abc7718f55910 : FAILURE in 7m 50s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/a4cb56d34aab44369854c97c8d67ba92 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":48},{"id":"77f44a46116b7d0eade6eb78230636c538ada913","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 08:55:16.000000000","message":"Patch Set 48:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/97ecbc46b0e2414bafcc9d9442130097\n\n- teim-code-review https://zuul.teim.app/t/main/build/f97128c50f9646a59aeb7660d61324ce : TIMED_OUT in 31m 20s","accounts_in_message":[],"_revision_number":48},{"id":"2cd0592c1265f71e532a49c45d5e99b76038733f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 09:05:48.000000000","message":"Patch Set 48: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3fba2a29488b4485b6be2407a1fc1b77\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/3c7408098c864247a78b27f4d22e7455 : SUCCESS in 3m 11s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/93dafa96ca68467a8e0ae60c269bed5e : SUCCESS in 4m 44s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/30b8394a334b46dfa9597d8b3adc2762 : SUCCESS in 4m 40s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/8bc59d9b26c24d56a2fa15fdd5179fbb : SUCCESS in 5m 21s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6c5018e42de443d9856dac153eb6dbf3 : SUCCESS in 3m 13s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/7fd136790fa24cdfb46fb25b8787cbd6 : SUCCESS in 5m 03s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/72ddb1839ceb40b6be962bb088dce4fb : FAILURE in 7m 14s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d322e09b4c8045d2bae99da448ce96d4 : SUCCESS in 4m 16s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ece3d1d854464ee0a4baaad681961f2a : SUCCESS in 8m 12s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/23390424c7c74fe8ba645f254e02f503 : SUCCESS in 3m 49s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/cf5d047116d645c791a8bff0c4a716cd : FAILURE in 31m 54s","accounts_in_message":[],"_revision_number":48},{"id":"b341045154466a748a4fa97c25463f02505c03a2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 09:13:35.000000000","message":"Uploaded patch set 49.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":49},{"id":"0bd29f2f06a5855940b3cf53f679f0731eb70aaa","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 09:13:54.000000000","message":"Patch Set 49:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":49},{"id":"56f90f35d03eb59bcbc39b9de71c914f2ce5195f","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 09:23:33.000000000","message":"Patch Set 49: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/41601ea2800b4f2f81ae8dee89c75352\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/20f8ca4d042242f39d12bf0ce49bae72 : FAILURE in 7m 35s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/3f636318861545bab2a9a353cf60e46a : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":49},{"id":"d3189e61712a1a98b827a190c8c7d2d03c2de2c7","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 09:33:01.000000000","message":"Patch Set 49:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/72f3a92035844b6d9fa4b02895769380\n\n- teim-code-review https://zuul.teim.app/t/main/build/3314e23253fb4cc9aa05aa2541a425bd : SUCCESS in 18m 57s","accounts_in_message":[],"_revision_number":49},{"id":"8f506b77e13a0e431ca1c8364608a99692265c46","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 09:45:28.000000000","message":"Patch Set 49: Workflow-1","accounts_in_message":[],"_revision_number":49},{"id":"7b913fe7ddd99703320ba93bb9d7c0e498a054ba","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 09:46:01.000000000","message":"Patch Set 49: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/44e5aebdb5fa432193be550218fa1269\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/e9de1083e00e40f8b3875a11e74e7cf6 : SUCCESS in 1m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2c2adf75b57a47c5a27513414c3d45fc : SUCCESS in 3m 56s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/f187f54508ae459d9fc8e1daee8ab462 : SUCCESS in 4m 05s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/b230a51ad9cb4a7783324a6a7f409e32 : SUCCESS in 6m 34s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bca53ae93a4f4220be995884af8b6928 : SUCCESS in 3m 04s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ad0960388d0541368c6ebc77f71a0180 : SUCCESS in 4m 19s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ea34f2d3a0ba4ebdaf946b6e45f34755 : FAILURE in 7m 04s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b7c049780f1d49c6aea3615c3e048e01 : SUCCESS in 4m 17s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/98a562ab1fbc43c18f2907dbe9ff1237 : SUCCESS in 4m 02s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ccd9569ed5ec4d4bb253204ce77b5296 : SUCCESS in 3m 04s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/3a685f7db0cc469eb3cf1c39b1b680ac : FAILURE in 27m 07s","accounts_in_message":[],"_revision_number":49},{"id":"f97007a7944977d05be20e9da545d6efb425a181","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 12:27:46.000000000","message":"Uploaded patch set 50.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":50},{"id":"c183f79a7872faa6db1a4ec4cc6e22602efeb077","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 12:28:19.000000000","message":"Patch Set 50:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":50},{"id":"3799497cded846ccf0799d85af268c2e528b1725","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 12:51:52.000000000","message":"Patch Set 50: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/aa546e94eb004ceeb3dce141aace6d24\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/c02a2b21cebc4e2da4e82aead73d8cf1 : SUCCESS in 2m 15s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/45e96b4fd7d042a49efafeff41989b29 : SUCCESS in 4m 46s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/815304c7b9034d8a8d899bfa8ea034e8 : SUCCESS in 5m 00s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/79b1816ff5b64d58b9173cad65107d0f : SUCCESS in 4m 52s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a10547b6e0c94e41a297c0f7ec9af95c : FAILURE in 2m 39s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/1c9efdedd5fb4491b0f2bd80ecb8d143 : SUCCESS in 4m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/42e7811483b14bb0ab93b00ea0c6c289 : FAILURE in 7m 10s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/deb3eb131e8446cfbc25c9fcd0d5aca8 : SUCCESS in 3m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e40b3be814324732ab61013d2944c128 : SUCCESS in 7m 52s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/25a950156268441ca9ea5310d5c0bed5 : SUCCESS in 4m 11s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/66fd3e57e9f84064924a9d7160f3cc5e : FAILURE in 22m 36s","accounts_in_message":[],"_revision_number":50},{"id":"fe74b6aa0c3f40133d2ec3cd7c6cd84adf52bf79","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 12:52:18.000000000","message":"Patch Set 50: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/aa414eee971040db9f3b26bf03cd345b\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/5fd61617254441389fbf3320c0d138de : FAILURE in 9m 47s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/a44a418615df4ca3b3b127849cf960cd : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":50},{"id":"1a5a6d5bc48de90f15f16804f32327bc8c1f580e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 12:53:29.000000000","message":"Patch Set 50:\n\n(11 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/f4b2f67477c8461290d6bb220c61eb17\n\n- teim-code-review https://zuul.teim.app/t/main/build/95b0c287dff64edf8a72c279e21fff3b : SUCCESS in 24m 58s","accounts_in_message":[],"_revision_number":50},{"id":"26ee8ace4eafa958744f4cf53ba0245db874d85a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 15:54:22.000000000","message":"Uploaded patch set 51.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":51},{"id":"9f4645bbf9e54467d8b5f12c7bbff097648d9f0e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 15:54:55.000000000","message":"Patch Set 51:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":51},{"id":"765f063ca4a8fed185b4a76e5338888fb9283a25","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-09 16:03:14.000000000","message":"Patch Set 51: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/2c28cce440534e2b9ae7b7451e67dc77\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/04d7533fab80446faa8d6fadd2b4ddce : FAILURE in 7m 35s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/a1ea0106b06845e6b4c9fb9b7a0750b5 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":51},{"id":"1c62725b24c5d70cf2a2de607ee29782c3f87272","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-09 16:16:55.000000000","message":"Patch Set 51: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d32874cb5785479caf1a3ad531444f29\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/8bf39c2b2664449d87abc816ff4af9b1 : SUCCESS in 3m 35s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b0eb71a9f650446bbe3c01393f77de3e : SUCCESS in 4m 20s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/0e08c5750fa54f5cb36b5872ffdec0c8 : SUCCESS in 2m 56s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/a4d38ec81d3746f4a7cd760f97c47575 : SUCCESS in 4m 43s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6085b8a9a8bd44fcac3d8667b034548a : SUCCESS in 3m 36s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/8a081025657f40b28e19e8a2dd652f91 : SUCCESS in 4m 22s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1787142f56d74843bbb712efeaf80354 : FAILURE in 4m 32s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/0a3e5fa2af07464f8b9c05dd1bdaafa9 : SUCCESS in 4m 36s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ed33455d6867438aa4ba50ae5a22c879 : SUCCESS in 7m 16s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7cd947a8fcf04e3090fa5fcf2a6dd0f0 : SUCCESS in 2m 46s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/b196f8039178471ca3481cf0c1bcbe64 : SUCCESS in 19m 51s","accounts_in_message":[],"_revision_number":51},{"id":"01bb3fd86edc27f00081cea562f0be1d73ad8083","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-09 16:17:07.000000000","message":"Patch Set 51:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/853cbca28a8345a19793930d34d69312\n\n- teim-code-review https://zuul.teim.app/t/main/build/8c70ff441e024517b9bfaf8a1cf2be68 : SUCCESS in 22m 03s","accounts_in_message":[],"_revision_number":51},{"id":"841384ff054648c2a479f5de52c49ea9945777ee","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-09 16:55:41.000000000","message":"Patch Set 51: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":51},{"id":"0026a0c1062cdd0fc0e06e008ed973651295abfe","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-10 04:31:59.000000000","message":"Uploaded patch set 52.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n* Workflow-1\n","accounts_in_message":[],"_revision_number":52},{"id":"acdf6e54cbd75382ee0ca1c5b134cf69e5980be7","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-10 04:32:32.000000000","message":"Patch Set 52:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":52},{"id":"01c76f13d0c71b8594db6d7907ec434eedd675d0","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-10 04:41:03.000000000","message":"Patch Set 52: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/16827c8d73784a30a7e9c4269663756c\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/cfe2e9cfddc648b6b220f5b5cd6b9eee : FAILURE in 7m 37s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/879ce70073d14e83bcf457c6eef767bc : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":52},{"id":"4a1186abf2c867896f15582ee030a952f24c9b02","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-10 04:51:59.000000000","message":"Patch Set 52:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/8407d97e0a324479a69486811ddd4901\n\n- teim-code-review https://zuul.teim.app/t/main/build/3045a19f00fc40be96903825b01415d8 : SUCCESS in 19m 18s","accounts_in_message":[],"_revision_number":52},{"id":"5c88eb332993f01361a56500d851965cc0ba8e09","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-10 04:56:14.000000000","message":"Uploaded patch set 53: Commit message was updated.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":53},{"id":"f068a3a4f5124ad49842ac745b53bc4b12ac622e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-10 04:56:41.000000000","message":"Patch Set 53:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":53},{"id":"98f5f105001e6c8ac344d419702071d90a7ee28e","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-10 05:04:52.000000000","message":"Patch Set 53: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/4388b8bc5c4f40d7a393b1e27aa8dda9\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/a024d523c64f4056ba273cee3d2bc0fe : FAILURE in 7m 22s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/3f7a955083224a0fb927cafdd821efb7 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":53},{"id":"7bb1e29d78ae7b3eb54f6110fb8554f7332e1d08","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 05:16:57.000000000","message":"Patch Set 53: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/2a10465019164d92bccc9daf63b6b1aa\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/a0f5b4f7f7e64b03bc184c57d689157b : SUCCESS in 2m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a0857f3bf5bf4d0d919cfd32f21f90af : SUCCESS in 3m 55s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/e785f0d7f9244c458bfb079362ebcf53 : SUCCESS in 2m 40s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/1b3649dc0b6d48158b0fa9b084fa6ecc : SUCCESS in 3m 01s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e710a95628c040c79476152019ae9361 : FAILURE in 3m 00s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/bf25b5b35c5549bb8814f170477dda3e : SUCCESS in 2m 58s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8461a23febd0481ba901a75399b2cdc5 : FAILURE in 4m 17s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5477668e7af44602907f183506d464c7 : SUCCESS in 2m 41s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4e3e41fb85ea4d2c9663061359f9841f : SUCCESS in 8m 09s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/08ca169ec7de4c5f8b99762c8bc334a1 : SUCCESS in 2m 11s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/2828acd683fb492fac99c8eb238114cf : SUCCESS in 18m 41s","accounts_in_message":[],"_revision_number":53},{"id":"d08acf25d9fe7caa2b960becf2278d3b65d6b794","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-10 05:17:04.000000000","message":"Patch Set 53:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/d081390d5f514ba1a966a73f0e5b0774\n\n- teim-code-review https://zuul.teim.app/t/main/build/54e36559540d40eeae3958ba8ee0d783 : SUCCESS in 20m 13s","accounts_in_message":[],"_revision_number":53},{"id":"5b2568170e992617f3cd1b02176872cf56217b53","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-10 05:27:20.000000000","message":"Uploaded patch set 54.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":54},{"id":"2e325f32462c84b904ba12572b495e54cebefa2a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-10 05:27:39.000000000","message":"Patch Set 54:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":54},{"id":"b4c56f3024f1f64b02860ca995383d7242f344ec","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-04-10 05:30:17.000000000","message":"Patch Set 54:\n\n(17 comments)","accounts_in_message":[],"_revision_number":54},{"id":"e6083aa58260519c7b42d4ba2eeac048d26f7a38","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-10 05:36:02.000000000","message":"Patch Set 54: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/835fdf5076a84663928fcabec44cbcb1\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/ee4155280bcc42e7a2039f1b1626b63c : FAILURE in 7m 29s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/fc8854f945a34345a9762d81d8bfcccd : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":54},{"id":"0580288ed94506fdbde82c3f734f8284975a3c38","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-04-10 05:49:35.000000000","message":"Patch Set 54:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/01a6eeb14bc64e1a81becdd0583449e6\n\n- teim-code-review https://zuul.teim.app/t/main/build/a524e92e349a430baa2fcec11b98b72b : SUCCESS in 18m 52s","accounts_in_message":[],"_revision_number":54},{"id":"87e6592720a411c7adf3d2269d15575f99daea15","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-10 05:58:27.000000000","message":"Patch Set 54: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/84b9687257114937a828ce670589dc79\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/3f43fe907c274cd5bee0ca16056b5723 : SUCCESS in 1m 57s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/54ce3cf3f1a24a269b15fb982784e625 : SUCCESS in 2m 47s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/74b52d3a710149b89cf27bf0b6263636 : SUCCESS in 4m 30s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/7f91b1cf34e14bd8a7da2a5824960790 : SUCCESS in 2m 33s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ef0b646547d84b04a9daae6eaddffc9e : SUCCESS in 3m 14s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/56baa2e2bbe84f72bfea0fb1810bd97a : SUCCESS in 4m 43s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/2f407fb441014392a8c4e13ec765dc1a : FAILURE in 3m 40s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d83d6af30feb424a957557fa57740a08 : SUCCESS in 5m 05s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4ab04507d1ff4c22b9956781a0a8fb03 : SUCCESS in 3m 49s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a84e866d752b4db9a32318272bcf55ed : SUCCESS in 2m 36s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/f58f38731c7c43c197ef88a91562ee7b : SUCCESS in 28m 53s","accounts_in_message":[],"_revision_number":54},{"id":"0c178fdbb059d36db758124e77bfb78533de4673","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-13 11:33:09.000000000","message":"Uploaded patch set 55: Patch Set 54 was rebased.\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":55},{"id":"cb50bf57fb17f80affe9415f47374467ac39b551","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-13 12:14:48.000000000","message":"Patch Set 55: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/9e7b7e700b064506aa67328cc9034048\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/f7b192d4b81248fd90c16b9f67bbb9f4 : SUCCESS in 2m 14s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0e885f6a27bf4a1f8f639bf31dd3f26c : SUCCESS in 5m 33s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/cabb304905f649aebb2c9c2ad426a73e : SUCCESS in 5m 26s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/70389413083a457ca768dbc544823b7b : SUCCESS in 4m 41s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a31a32710f8d4ead8d678eb107e7adda : SUCCESS in 4m 24s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7e0ad93625314eafa4c68f8e9171f30c : SUCCESS in 2m 30s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/967214beedda4a48be2a51feff091fb7 : FAILURE in 8m 49s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/debcf01b8b7246a4af545846e30b4d2a : SUCCESS in 2m 45s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bf38065b60d042978068eedc9ff5d04b : SUCCESS in 7m 35s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/1a274f38565f4577884955eafd835c0b : FAILURE in 4m 20s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/43f9256c592c494888008c522161fb51 : SUCCESS in 34m 56s","accounts_in_message":[],"_revision_number":55},{"id":"a4ade98edf410bdba0aee52828d1d8af6b68afd5","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-05-13 12:59:10.000000000","message":"Patch Set 55: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/2b12ace840a14ee8adaef2a2f1f716ac\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/66e68002d6e9489bb96bb0d3d74dcde3 : FAILURE in 9m 21s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/151163899c134d429ead487274b42e34 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":55},{"id":"b6b576c11b29e2f0a73170848ae3168696166ff2","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-05-14 07:40:10.000000000","message":"Uploaded patch set 56.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":56},{"id":"ad61cdd934575e34db0252bc4f793a4822c5e656","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-05-14 07:50:29.000000000","message":"Patch Set 56: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/a3950044997344ffb5e2b111fc526a9c\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/d627ba392d184b8ba16051f6a0659e13 : FAILURE in 8m 32s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/1fb161ee97364300b74b7d5af8ccbbb6 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":56},{"id":"2328641192e479ed8015514160bb0351a17efc58","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-14 08:20:35.000000000","message":"Patch Set 56: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/600428233a1a439ab4e34c7a370c7cbe\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/a9022e766d364217b94cbcdbad039dd7 : FAILURE in 2m 25s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d0439b9923964cc5aa687d88608be50d : SUCCESS in 4m 26s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/3fb710890bcc417d8d0b1d7d0599eeb0 : SUCCESS in 5m 04s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/0ed9d6191ef4415db3ff9ff6cadf4962 : SUCCESS in 4m 29s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ce2b3f7d99a1468d842e67fce5d50c11 : SUCCESS in 4m 00s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1277e816a1a7423792e51ba83dab5b51 : SUCCESS in 2m 59s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d2358bc3808f4ea29c1d6ff59d8093ea : FAILURE in 7m 10s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fb1fd830b00d45559b6050f3a3e4bbdb : SUCCESS in 4m 00s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3c1eadaed6fc47d498cf60939baa71d5 : SUCCESS in 7m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ce1dd4caf8404e9583c2ea32c84ad392 : FAILURE in 3m 40s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/890af1db200c44a29f2f2f2c87dc84b0 : SUCCESS in 33m 27s","accounts_in_message":[],"_revision_number":56},{"id":"6b1917f99bd3970f2c23e412b9210b1c3d3a024f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-01 08:11:17.000000000","message":"Uploaded patch set 57.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":57},{"id":"b2e0741b82f0ee3e52b79aefee0494a9dce9986c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-01 08:23:04.000000000","message":"Uploaded patch set 58.","accounts_in_message":[],"_revision_number":58},{"id":"3547c2aa922e29122e5f802d7acc9cb92785baf5","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-01 08:37:48.000000000","message":"Patch Set 58: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/433c840825484fe29247cb8abaa8b8a6\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/2c1916b1dc3f43518aa90e1cd2b106ff : FAILURE in 13m 07s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/f48508b7f41c4857a43eaa3d286b4f29 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":58},{"id":"7b6d435d1866b1e98b68926defeaa806f4f238b3","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-01 08:39:53.000000000","message":"Patch Set 58: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/c9089749368b419e8a1ec3f125787f99\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/03cd8d8df79240d89ad8756e74ccb71f : SUCCESS in 1m 58s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e628dcb1eacf47f68baf1bbf66d3699e : SUCCESS in 4m 43s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/db6e403d7e0f42c09aef18036f1740f3 : SUCCESS in 4m 41s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/a3fadd9af8d340eeb230b933d10b475b : SUCCESS in 4m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/574deadbd08748908ed32d0642717f40 : SUCCESS in 2m 57s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/99c8c572dd2d44e5872a7e6fe769d6de : SUCCESS in 4m 27s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b8fdb25b7ff14ec8b3548b3f6731fcbd : SUCCESS in 6m 47s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5a5f867bd1954fd795b39a1237fb43a0 : SUCCESS in 3m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/35d7dd26c6594b78a020698ba5b497b9 : SUCCESS in 7m 29s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/442bb87b7b2f4e67be153fd8a020e4da : FAILURE in 3m 39s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/f13369ffdb194925930752364dca15b6 : SUCCESS in 13m 56s","accounts_in_message":[],"_revision_number":58},{"id":"d1dbe3d8da531a11506391e3f758a5e7826986fc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-02 06:13:31.000000000","message":"Uploaded patch set 59.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":59},{"id":"6542a18c093207b71a2385a4b8b2d6a14dec44f2","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-02 06:24:16.000000000","message":"Patch Set 59: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/50ca968e91424fd58b744cbc7aa6fc1b\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/8b575ecae22849dda06ddbbd41f47067 : FAILURE in 8m 03s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/f8cc378a76924f9bac61fb3240634dd0 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":59},{"id":"16d4a2d4e2d8767ee006ad6152e43941aee6951e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-02 07:00:57.000000000","message":"Patch Set 59: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/03e0e90165a644be90b3dce05c2a428c\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/3e74b7ad73324a6c993ae272074f778f : SUCCESS in 2m 35s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/26bc95c52ce54cd990ad12c1298da764 : SUCCESS in 4m 30s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/5d11f9d55c54482ebbbc4c623d9e2a59 : SUCCESS in 6m 24s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/23d7fbeaf10041d5a472d71dd45b80ea : SUCCESS in 8m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f727bb5dc89548e2afd4e346b5a37f6e : SUCCESS in 3m 51s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f91df8495e214635b978105bff2f24d3 : SUCCESS in 4m 40s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/79442cf3b7ab4ae5bd2ce2a11ed70270 : SUCCESS in 5m 04s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/e3f9140c2fbd488ca48033f4a0405679 : SUCCESS in 4m 11s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2c92a3a5b6064772956c2c70733ecf12 : SUCCESS in 7m 52s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/22c3680a41b2417fae55019c3e9b3ee4 : SUCCESS in 4m 21s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/8c23ec83431641e7afafa29192b488c5 : SUCCESS in 31m 49s","accounts_in_message":[],"_revision_number":59},{"id":"db2413cf5fbd879407ef33ccd4cf19dc1a5cc486","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-03 06:35:02.000000000","message":"Uploaded patch set 60.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":60},{"id":"5b463fb8780f73aad1aa49aa3f4d4ea252499772","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-03 06:45:14.000000000","message":"Patch Set 60: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/17486f44b96243bea006ac64e2b3a45a\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/8299a67955284fcab84b3611307e1fe3 : FAILURE in 8m 24s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/8012afa1f7f443b4984d555dbdb5d797 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":60},{"id":"9aa6e968c663bfd582730dd506feec11dcdbedf0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-03 06:57:56.000000000","message":"Patch Set 60: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/39a29cbc06c644dfa26ca2ffbbaf67b8\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/7f2bab91db3d47c3bd1a2e1292401500 : SUCCESS in 1m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/275e2f3d24f345c39560918e4e153a9e : SUCCESS in 6m 10s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/7a985dd7f30c49e9940dacc4e0e1a4c5 : SUCCESS in 4m 42s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/6d23592bc31a4cea98922c6e18c84ea3 : SUCCESS in 4m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9cc2294dde254c28a7890f139caed9f0 : SUCCESS in 3m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1f125d60d387476c9dbc213487af047e : SUCCESS in 3m 16s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f2b1267fe5a54dd690641bf2258a234c : SUCCESS in 8m 50s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/fa61aacf86034c42a0764cae431dec34 : SUCCESS in 3m 17s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b79bbe29349d4617ab72f767737b20a2 : SUCCESS in 4m 42s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/96de0ec85384498c945146491d082fbe : SUCCESS in 3m 26s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/346d2b073cb74cd8b0a11937c1466b45 : SUCCESS in 20m 04s","accounts_in_message":[],"_revision_number":60},{"id":"04f654d046dde05f4ef99f98686d0da13aa285f8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-09 13:49:49.000000000","message":"Patch Set 61: Patch Set 60 was rebased\n\nCopied Votes:\n* Code-Review-1 (copy condition: \"**changekind:TRIVIAL_REBASE** OR is:MIN\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":61},{"id":"4c6de9e6a5f585117095e29cf801808d8a376585","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-09 13:50:05.000000000","message":"Patch Set 61: Code-Review-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging opendev.org/openstack/watcher-dashboard for 970353,61","accounts_in_message":[],"_revision_number":61},{"id":"9fdc9f010d412d204e2e7d839ff13c00b2c9ea44","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 13:50:07.000000000","message":"Patch Set 61: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.\nWarning:\n  Error merging gerrit/openstack/watcher-dashboard for 970353,61","accounts_in_message":[],"_revision_number":61},{"id":"5efcf77a5d704ca2d87b1496462719f84f4346ab","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-10 05:26:04.000000000","message":"Uploaded patch set 62.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":62},{"id":"e7f21c94e0ab0093bf5724960f41e1db419d4b50","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-10 05:36:00.000000000","message":"Patch Set 62: Code-Review-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/8f449a7c9a554c5c9fd80cec9812f317\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/a6835fc8526d4a59aac775b5cfb5cc3e : FAILURE in 8m 20s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/699d4ea141ea46cfb9fa29f094a74f7b : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":62},{"id":"688d85d3d0ac86c8819292e00bdb530682d91ac7","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-10 05:58:46.000000000","message":"Patch Set 62: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/88c3c47ae5ca487088a0562ff841454a\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/379c38ceb78f4038b2e64f6e834eed13 : SUCCESS in 2m 13s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3a216c550a0e45aaa687cbf6e9035eef : SUCCESS in 3m 58s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/0a2b23cfd81f41e0a047e263f3f961ce : SUCCESS in 4m 28s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/9aa60a7555da41d696bee6c7de13e071 : SUCCESS in 4m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b6b3fc1b14514b46b5c6b641e4174193 : SUCCESS in 2m 25s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/fb6fba1cb9d04c03a2f31d55b3f96daa : SUCCESS in 4m 01s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/e59e8f2903a2467ea077668f871627c2 : SUCCESS in 7m 07s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/33ab27167da84246905261893acbfb8f : SUCCESS in 4m 06s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/8c82e5cda242415185b9fe1f41d164ad : SUCCESS in 7m 22s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a78ccccac4ce48e885be156172614c08 : SUCCESS in 3m 42s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/c0be5f50ee9f49799548252abfdf1996 : SUCCESS in 30m 23s","accounts_in_message":[],"_revision_number":62},{"id":"8d97a9b3bbb84bfa282514592015745cfc517c56","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-06-10 15:42:51.000000000","message":"Patch Set 62: Code-Review+1\n\n(5 comments)","accounts_in_message":[],"_revision_number":62},{"id":"0c8c1cf6a67f6f654d75ce44d2b4c0461021cc87","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-11 04:03:37.000000000","message":"Uploaded patch set 63.\n\nOutdated Votes:\n* Code-Review+1, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":63},{"id":"1f1c58810d782c2f8283f9737ad6a0872ff97a7c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-11 04:19:11.000000000","message":"Patch Set 63: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/a2715a7bd10245fd9c7c8cafeb060f2a\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/fb65c974b5c449fe945a6dd34d534715 : SUCCESS in 1m 57s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/c2a46fc573c346edbf5d4a5c43424eaa : SUCCESS in 2m 29s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/a59e26ec967a406ca458e4a78571e54e : SUCCESS in 3m 29s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/ac0c0e3748ea44e69ea4ad7a85aa92a1 : SUCCESS in 2m 32s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2357818f7c4443e884373e785c38f7bd : SUCCESS in 2m 59s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4c54be8d9c784b5593cf6aabc85c0d64 : SUCCESS in 3m 02s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8f0600467c4645f59b9d76137f8c395f : SUCCESS in 4m 39s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7234ac7717744d1ba317b100ccd25d30 : SUCCESS in 2m 54s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1be49cf2f1f44a1f85de3db81ca904a5 : SUCCESS in 5m 07s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0abfd8b4c36e42968afba8bfd07979ef : SUCCESS in 3m 20s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/8ae3f63321e14582a247834a927499fa : FAILURE in 12m 55s","accounts_in_message":[],"_revision_number":63},{"id":"c3d4c467e017d2c4ce0b4e14cd6f083e8788f644","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-11 05:35:29.000000000","message":"Uploaded patch set 64.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":64},{"id":"bc023c1106d6450896d43a5e98199e0f0a37b978","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-11 06:14:21.000000000","message":"Patch Set 64: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/efc13dd1b76f40f08ba55a649559c836\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/7c1f0899fb774b02aa74106c9444e2bd : SUCCESS in 1m 55s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/bd5ef2f9b85a4b318087e6d03b65003b : SUCCESS in 2m 21s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/5d3730badaac4d7e9434489ee31f93ac : SUCCESS in 4m 26s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/a65f6686f69541ac95b53184eeb04078 : SUCCESS in 4m 10s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cacbc8d9fc3e4fec8594b07d9bba9c8e : SUCCESS in 3m 07s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ac95de628b764103af0a80be11c66dcb : SUCCESS in 4m 14s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/85cdd9de49444120b706a1b8a1a1871a : SUCCESS in 7m 01s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/81453f299beb48b4a0593b720a10b8a9 : SUCCESS in 4m 09s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3225e7fd84624caa9350530f31b3a81c : SUCCESS in 7m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/31cbae4e5a8d4907a1bed85f373a138c : SUCCESS in 2m 14s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/d53a07752af1416095cbb8bfa0a71888 : FAILURE in 31m 38s","accounts_in_message":[],"_revision_number":64},{"id":"316aea016a048ee9c452f8059cf78736022c0b7e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-11 06:48:30.000000000","message":"Uploaded patch set 65.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":65},{"id":"8286ad543308d852aeb6d6ba8923802512427017","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-11 07:25:25.000000000","message":"Patch Set 65: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c26919b530e5461f9985f233062e2ca7\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/766fe3fb589b4ab688156d687a4725e7 : SUCCESS in 2m 21s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e3d2dbe32d174ec5b59ce36d4efc132c : SUCCESS in 4m 10s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/9775a13cb7e046fa996d748f86be14de : SUCCESS in 4m 23s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/92ea178cc30c4bf9997e0c4caeaaf1f3 : SUCCESS in 4m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1babe2f9082644e2be0749f85d6f25f9 : SUCCESS in 2m 53s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/736978affa3c43558e3b532a9d4da861 : SUCCESS in 4m 29s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ebafaa1bacc5421699ecc474be25db03 : SUCCESS in 6m 41s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/48589b5b54ed4a868fed0c2e6ebe32c4 : SUCCESS in 3m 55s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e9df0fc26ae3474b886b544be446113e : SUCCESS in 6m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/937a71b983cc4f08ab37e5b095a691c4 : SUCCESS in 3m 52s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/0172f80ec78446e39b210bbbd20d7390 : SUCCESS in 29m 24s","accounts_in_message":[],"_revision_number":65},{"id":"406d7aea82f170b55ca19f7f7dd2669ae6896fc9","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-11 07:58:04.000000000","message":"Patch Set 65:\n\n(5 comments)","accounts_in_message":[],"_revision_number":65},{"id":"a352eeacf7f778fa55e5dbef7e2468fa6868e623","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-11 07:58:20.000000000","message":"Topic set to playwright_tests","accounts_in_message":[],"_revision_number":65},{"id":"029d3bb3baf562e86652d125550883a815055916","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-11 08:01:28.000000000","message":"Patch Set 66: Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":66},{"id":"244a563ee61826b86118a8f71025a5e13781bc1a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-11 08:33:24.000000000","message":"Patch Set 66: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/7201e7f3607b410f9987c1f05363a61e\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/faec082923ff4df1a891aa6b37e33c53 : SUCCESS in 2m 19s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/22b693d0348843ae83472b8a49006c60 : FAILURE in 2m 55s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/30cc2f2477a846bba9a3261c8d422e01 : SUCCESS in 4m 21s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/56a635370ea04305b063e79bedd42f5d : SUCCESS in 4m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/83adf1b1176c4600a611cb791da06c8c : SUCCESS in 3m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b73c2709393e4b28b55373edc9aee44a : SUCCESS in 3m 59s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/97a33593604f45948fc5ee612ee49924 : SUCCESS in 4m 01s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/40870dc2b1b94cd8bc4a3a932d0949e3 : SUCCESS in 4m 22s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ff932e8438f642aebe106a26ee7db026 : SUCCESS in 8m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e2fbba5d9503499083281c35f6a4678f : SUCCESS in 3m 49s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/e3f233ea5556426cb511585b0335c2bf : SUCCESS in 22m 24s","accounts_in_message":[],"_revision_number":66},{"id":"34d5f7f227252240cb1d920d9ac6f29d0ec34d72","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-11 11:23:26.000000000","message":"Patch Set 66:\n\n(1 comment)","accounts_in_message":[],"_revision_number":66},{"id":"b8910be80f79b7646fb195b3c02026069393487e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-11 12:03:17.000000000","message":"Patch Set 66: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f737eaa775d94c77a3f5eecda05aaf96\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/f4ae0af9014b436c9126ed00da0ab100 : SUCCESS in 2m 22s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/331f327c84c84505a45418593f2fad40 : SUCCESS in 4m 36s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/5ceb4ec54c3943deb29e6c8f4aa42d27 : SUCCESS in 3m 37s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/283ea2bc99e8433ba085c10334f4cc16 : SUCCESS in 5m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e9c2f467bebc469ca3271c7b4553893f : SUCCESS in 2m 59s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/fec9cf36cd8a4237b04512bbefe6450e : SUCCESS in 2m 44s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/48f26f4511704ab884dabe91520fca1a : SUCCESS in 7m 00s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b19fbd6bda5a4c7dbac8341b5445f784 : SUCCESS in 5m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6df7cccc80bd4d36be528a723a4c085c : SUCCESS in 5m 27s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/122bc4ec916442c29e744665d1afe714 : SUCCESS in 4m 00s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/644c02b2e57148968eb9325403188824 : SUCCESS in 30m 48s","accounts_in_message":[],"_revision_number":66},{"id":"6a57f5291914d01096d2ca3da608e8d3b7b552d7","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-12 14:57:14.000000000","message":"Patch Set 66: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":66},{"id":"fe5302f9ba5ff71b7951d99235c8c301d32291ae","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-15 11:00:18.000000000","message":"Patch Set 66: Code-Review+1\n\n(18 comments)","accounts_in_message":[],"_revision_number":66},{"id":"a58befc45b73d9dfb838791dcbc07c559c90f778","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 14:58:10.000000000","message":"Uploaded patch set 67.\n\nOutdated Votes:\n* Code-Review+1, Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":67},{"id":"0d1761f7cda57bad6d0609a18f182d276ce62d2d","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-19 14:58:21.000000000","message":"Patch Set 67:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":67},{"id":"349e74f5656459237113dc419e5e432edbf4ec3a","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 15:05:04.000000000","message":"Patch Set 66:\n\n(8 comments)","accounts_in_message":[],"_revision_number":66},{"id":"549a6f685b4452f3e73c268df4df7c6ac4c09c63","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-19 15:09:17.000000000","message":"Patch Set 67:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/b4ef393717874d14aa59ca66c710ab56\n\n- teim-code-review https://zuul.teim.app/t/main/build/f7c2e1286c4e4e91b7e83277270df2ff : SUCCESS in 10m 46s","accounts_in_message":[],"_revision_number":67},{"id":"4cfd5e1e561b1d1dde9f06c78760feb253b868ca","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-19 15:13:20.000000000","message":"Patch Set 67:\n\n(7 comments)","accounts_in_message":[],"_revision_number":67},{"id":"687a3d1f3342c87ab89869edb84ccedaafaf1c6d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-19 15:16:23.000000000","message":"Patch Set 67: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/589e57dd9d434c9c8c0af3fbb41cfbda\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/5899e3fe46c94d67b738b971ba6a3f79 : SUCCESS in 2m 08s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/871f061f92744739a2d073337ac74c88 : SUCCESS in 3m 20s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/b24a728abc03434bb8655f18dce9470e : SUCCESS in 6m 30s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/fe286ded9b6a48c6aa04fb70903c6a48 : SUCCESS in 4m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/edeb5cff238f49d6879cc6b991f0851b : SUCCESS in 3m 26s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f76707fdcca94e9d9c0c0c1181745ab5 : SUCCESS in 3m 54s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/fcd8fbc78aae4b4ca313fda50145e23e : SUCCESS in 7m 15s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/a5169d4cb7854d0f8334e8b81a03587e : SUCCESS in 4m 20s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fbab1420324e499b8d1fcdd0695f047d : SUCCESS in 4m 50s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/7830ee7b82a948fb8811cbde1a8cbb13 : SUCCESS in 3m 07s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/16a67a0d2599477f84feb0282fd92c81 : FAILURE in 16m 22s","accounts_in_message":[],"_revision_number":67},{"id":"874df143013bf22a9e3ecff463cde5f26fda790a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-22 05:00:11.000000000","message":"Uploaded patch set 68.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":68},{"id":"8af660c0943923202c4c0c79b62a8a568cb956d0","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 05:00:20.000000000","message":"Patch Set 68:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":68},{"id":"b22c54b5a603639cb43807b6ea35953e60f7b8ed","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-22 05:01:52.000000000","message":"Uploaded patch set 69.","accounts_in_message":[],"_revision_number":69},{"id":"a8aea6f9da9ce65958885c30b519f95987f235c6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 05:01:59.000000000","message":"Patch Set 69:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":69},{"id":"750d46d52d8c9fd499f7a735ffc8857819afc906","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 05:17:38.000000000","message":"Patch Set 69:\n\n(13 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/aced937d4adb45c38f6aa76988201c37\n\n- teim-code-review https://zuul.teim.app/t/main/build/cc6dc410d9274afaa6a17ec463a0ce62 : SUCCESS in 15m 31s\n\nWarning:\n  The tox.ini integration-playwright environment does not install browser binaries via \u0027playwright install\u0027. It relies on the pre.yaml playbook for CI, but local developers running \u0027tox -e integration-playwright\u0027 will get a \u0027Browser not found\u0027 error unless they manually install browsers first. Impact: Developer experience is degraded for first-time users who follow the documented \u0027tox -e integration-playwright\u0027 command without reading the prerequisites section carefully Recommendation: Consider adding a conditional \u0027playwright install\u0027 step in the tox commands, or add a prominent warning in the documentation that browser installation is required before the first run.\n  The .zuul.yaml defines python-watcherclient in required-projects which is good, but the CI job does not explicitly set devstack_local_conf to enable the Watcher dashboard in Horizon. The devstack plugin should handle this but it is worth verifying. Impact: If the dashboard panel is not properly enabled in Horizon, all Playwright tests will fail at the login step or navigation to admin/audit_templates pages Recommendation: Verify that the devstack watcher-dashboard plugin correctly registers the Horizon panel. Add a devstack_local_conf override if needed to ensure the dashboard is enabled.","accounts_in_message":[],"_revision_number":69},{"id":"560194e44da37f610b7e92f501c73ee06e4c55b0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-22 05:20:38.000000000","message":"Uploaded patch set 70.","accounts_in_message":[],"_revision_number":70},{"id":"6c375d39d8157cc20bc3b2ae67d732439cec612e","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 05:20:46.000000000","message":"Patch Set 70:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":70},{"id":"6ef3cc27bf6a88da3ebd8f96102d4dbeff8ac6ce","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 05:33:00.000000000","message":"Patch Set 70:\n\n(14 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/65505801974b45ed94d8bdccaeb326fc\n\n- teim-code-review https://zuul.teim.app/t/main/build/7375554b46214bec8ce1806ee55ba37a : SUCCESS in 12m 02s\n\nWarning:\n  The integration test directory structure uses singular \u0027test\u0027 (watcher_dashboard/test/) while the existing unit tests use plural \u0027tests\u0027 (watcher_dashboard/tests/). This split means the ruff per-file-ignores, flake8 excludes, and other tool configurations that target \u0027tests/\u0027 will not automatically apply to \u0027test/\u0027. Impact: Configuration drift between the two test directories will cause linting and style check inconsistencies. The pep8 CI job may fail or produce different results for integration vs unit tests. Recommendation: Either use \u0027watcher_dashboard/tests/integration/\u0027 for consistency, or audit all tool configurations (pyproject.toml, tox.ini, .pre-commit-config.yaml) to ensure both \u0027test/\u0027 and \u0027tests/\u0027 patterns are covered.","accounts_in_message":[],"_revision_number":70},{"id":"3e0e7f0a29b4a450a1c2d28928ff0497f9d43952","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-22 05:54:37.000000000","message":"Patch Set 70: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/c5bdad1fc1bf426a846eaa2b1f552097\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/fc466558e7024417bfc916c9d7235e92 : SUCCESS in 2m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a7e48c7058e8437b86f60390009b6c58 : SUCCESS in 5m 23s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/d1b16b5495fe429ca40436b86208cf65 : SUCCESS in 2m 28s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/a5597966bfd04293a8a02b9e1e588feb : SUCCESS in 4m 29s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c8dacf2f6d7743bbb4c5f438a16c5150 : SUCCESS in 3m 26s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/992bf4d7e4e547c09f27783142463326 : SUCCESS in 2m 33s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/96a252d3eda94b51aa2a92c1d2b3fe4a : SUCCESS in 5m 49s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/15ca39f39aec41278d5caae991fac90b : SUCCESS in 5m 33s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7d7a97ba45494521b569fdae25954980 : SUCCESS in 4m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/26161b31c2ca48ba90685dbeb02ac568 : SUCCESS in 3m 59s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/8ab7883167e448939165254eb1e43e32 : FAILURE in 21m 22s","accounts_in_message":[],"_revision_number":70},{"id":"47c4b5a249560d0b37effa63117f6a19751a773e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-22 06:42:13.000000000","message":"Uploaded patch set 71.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":71},{"id":"3e00d57789438c1b4918bba40bba364f6a04b747","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 06:42:21.000000000","message":"Patch Set 71:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":71},{"id":"cd2121b11d1e8169fd546644c3bbbee05dbf5c75","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 07:05:53.000000000","message":"Patch Set 71:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/39e92843b04445cfa84c9a001da5db08\n\n- teim-code-review https://zuul.teim.app/t/main/build/fbb4807cb0ed436f9612019a2f9ac66b : FAILURE in 23m 24s","accounts_in_message":[],"_revision_number":71},{"id":"25bc6b8bb68576558c6053285da9064089ccc0de","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-22 08:10:03.000000000","message":"Patch Set 71: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/6086846ea3ab4fada5707aefd5ccb10d\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/f7ca879dc56b471ea02547c74a2fbb40 : SUCCESS in 2m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/fecfcb8cbac6443295dc88dbdfb36267 : SUCCESS in 4m 14s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/9786409d2c1c495a9db21d6c6dec481a : SUCCESS in 4m 27s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/2bc0082cb6af4c80b4ae1478106dc6a2 : SUCCESS in 4m 21s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/59ed6bf9df3048ddb3e4899807795937 : SUCCESS in 1m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7c40b080ada144a89f2823d9459afb84 : SUCCESS in 3m 55s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/25bbd514db624c80b89e3cd5458445d6 : SUCCESS in 6m 46s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/9d812565023c4030851e580319bd81c5 : SUCCESS in 4m 36s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/534cfccd91634535a8b46e180c2fc71c : SUCCESS in 8m 16s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/07a90e86d9c14faf97e695b4f57ee0b6 : SUCCESS in 3m 44s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/0eca441c260b4ec688103b8ca23e2dad : RETRY_LIMIT in 18m 35s","accounts_in_message":[],"_revision_number":71},{"id":"5286edf48b227d4ebf8238ce0661a9ea5c32bd7a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-22 09:11:54.000000000","message":"Uploaded patch set 72.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":72},{"id":"62eed805eaeacd1336c9f474c6213bf9383e692b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 09:12:03.000000000","message":"Patch Set 72:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":72},{"id":"7a4ecc457490a57b82dda25930c498d7966f228f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-22 09:34:07.000000000","message":"Patch Set 72: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/58accc63478d4bfaaf863ee85931d469\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/235f5431b23743a781a2c38758c9b10a : SUCCESS in 2m 15s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/49e98621a7494530b0e5b1982f6dd87b : SUCCESS in 2m 29s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/85cbd0fad66e4d258588dbd1716b29b6 : SUCCESS in 2m 42s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/27b361dd8878499a89946065cc893584 : SUCCESS in 2m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6569fd940d9f41d8ad4f4c5cb7ae4fb7 : SUCCESS in 4m 04s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6c6b54cde83a48ce9b51251579d95843 : SUCCESS in 3m 41s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ab295475e36a42118fadf5d5e6b49890 : SUCCESS in 7m 14s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/5212b87cd8f54af683c960afb12a8f15 : SUCCESS in 2m 28s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/750fff3f67f245579da19f46e5cc7a26 : SUCCESS in 7m 34s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d6e9ce4e85254fa8b2d714db01a49a70 : SUCCESS in 3m 30s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/63b935a596c94ebaa541a14ac2dfc21b : SUCCESS in 20m 33s","accounts_in_message":[],"_revision_number":72},{"id":"a7b93355fdde8fe6ce5f18ddd42102269aae68f6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-22 11:07:30.000000000","message":"Patch Set 72:\n\nBuild failed (automatic-ci pipeline). To rerun just this ci comment\n\"teim-ci: auto\". To rerun other ci jobs comment \"recheck\".\nNote this ci does run on \"recheck\".\n\nhttps://zuul.teim.app/t/main/buildset/27f9c5cea6004721babd534046b19732\n\n- teim-code-review https://zuul.teim.app/t/main/build/3eb23ac81fe24454b3e3072ab0186184 : FAILURE in 4m 05s","accounts_in_message":[],"_revision_number":72},{"id":"0a10fa78141e0970b07980c15d4287707a5f135e","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-29 15:34:16.000000000","message":"Patch Set 72: Code-Review-1\n\n(4 comments)","accounts_in_message":[],"_revision_number":72},{"id":"6ce5765b398026697e1645de469e66768c39660e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-30 07:51:47.000000000","message":"Uploaded patch set 73.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":73},{"id":"8a3f31f1d2bde3acccbe8c57fe942034b0def8b0","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-30 07:51:58.000000000","message":"Patch Set 73:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":73},{"id":"c4df163fb373538fd4206a51d35f1466d4b68f6d","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-06-30 07:52:21.000000000","message":"Patch Set 72:\n\n(2 comments)","accounts_in_message":[],"_revision_number":72},{"id":"f04d749dfebda3f88a846ef2f57794bca9a5611c","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-06-30 08:16:13.000000000","message":"Patch Set 73:\n\n(7 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/a003057c25144e3887d58de343d8b168\n\n- teim-code-review https://zuul.teim.app/t/main/build/73038fabef77477f865bbb92aca2b226 : SUCCESS in 24m 03s\n\nWarning:\n  The new voting gate job is added to both check and gate, but the patch shows no evidence of a successful end-to-end devstack run. Combined with the DJANGO_SETTINGS_MODULE mismatch and UI-status polling fragility, gating on it before a green run risks blocking the whole project. Impact: A fragile or non-running gate job blocks all merging until it is fixed or made non-voting, affecting every contributor. Recommendation: Confirm at least one green devstack run of the full job before relying on it in the gate; consider starting it as non-voting (voting: false) until it has demonstrated stability across a few check runs.","accounts_in_message":[],"_revision_number":73},{"id":"65df980859220c0d8a9469f56040420166a58d53","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-30 08:29:12.000000000","message":"Patch Set 73: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d1fe88dbc0e44fef92756357e895f8ee\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/2cf6285ce1fd4b0b9ff84d8e93641c21 : SUCCESS in 2m 04s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6bb8e917b22648c99defdcea33973e88 : SUCCESS in 4m 07s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/ea49c41e126f478998cef2a038687eee : SUCCESS in 4m 36s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/c3b98f7003ad40299707412e3de3d67e : SUCCESS in 2m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9f3f7df6679344ca861a18680b853848 : SUCCESS in 3m 15s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/4f11ecc3db994b2d97b7a5c96999afc9 : SUCCESS in 5m 38s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/b571abfc310d406cbc74502175cb091f : SUCCESS in 5m 39s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2f40b08ae98e415e969b8686a12f0c65 : SUCCESS in 2m 41s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/dcd43aeb599c4df6971ce751709bcf80 : SUCCESS in 7m 27s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/20a945f666bb40f483679fc4741fae97 : SUCCESS in 4m 50s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/a2404c4e0de24721b604ae44e0e6fb23 : SUCCESS in 31m 52s","accounts_in_message":[],"_revision_number":73},{"id":"95160800b8e736ecc7e8754e1962983d96deb2e3","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-06-30 14:12:56.000000000","message":"Patch Set 73: Code-Review+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":73},{"id":"1ccd4c8c36d784467aeea0622e516f5c128c2100","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-30 14:29:36.000000000","message":"Patch Set 73: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":73},{"id":"952de97d6c42c044514900da00cc6e873121284e","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-06-30 14:31:33.000000000","message":"Patch Set 73: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":73},{"id":"17391cedaffa1e5233a4f5635443dcf51b221257","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-30 18:31:02.000000000","message":"Patch Set 73: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":73},{"id":"88470ed8acecc7bd5de998a387b641b5fe5a00b3","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-06-30 18:46:52.000000000","message":"Patch Set 73:\n\n(2 comments)","accounts_in_message":[],"_revision_number":73},{"id":"092da37e6956d4a7865a4e23d1cb655adb1fa78f","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-01 07:49:23.000000000","message":"Patch Set 73:\n\n(1 comment)","accounts_in_message":[],"_revision_number":73},{"id":"d410d91554bcae799b467e96e62bf7232e7ea439","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-01 08:33:41.000000000","message":"Patch Set 73:\n\n(1 comment)","accounts_in_message":[],"_revision_number":73},{"id":"0ba17d318129751ff085e9cf2d051652b6af1f54","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 13:48:29.000000000","message":"Uploaded patch set 74.\n\nOutdated Votes:\n* Code-Review+2, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":74},{"id":"25072e9b35ba55f26737591cbe42bc4c56b5159a","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 13:48:37.000000000","message":"Patch Set 74:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":74},{"id":"a941d05cd7c389c8ed709d726b7913d73f11cad3","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-01 13:52:30.000000000","message":"Patch Set 74:\n\n(1 comment)","accounts_in_message":[],"_revision_number":74},{"id":"f462434aec7ea76c47cdd4e1956544cf866ee185","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 14:16:20.000000000","message":"Patch Set 74:\n\n(12 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/e7c0ef39f7894c3192bb7ee24bc3d2f8\n\n- teim-code-review https://zuul.teim.app/t/main/build/5db0a54be66140fab030eab1320160f8 : SUCCESS in 14m 38s\n\nWarning:\n  The new CI job watcher-dashboard-integration-tests-playwright is added to both the check and gate queues, but the integration-playwright tox env has a broken DJANGO_SETTINGS_MODULE (see high-severity finding). A non-voting or experimental queue would be safer for a brand-new browser E2E job that depends on a live devstack. Impact: If the job is flaky or misconfigured, every dependent change is blocked in gate. Browser E2E jobs against devstack are historically among the flakiest OpenStack jobs. Recommendation: Land the job as non-voting (or experimental) first, stabilize it across several runs, then promote to the gate queue in a follow-up. At minimum, confirm the settings-module fix makes a local check run green before gating.\n  The auth state file (storage_state) is written under PLAYWRIGHT_OUTPUT_DIR/.auth/state.json, which is inside the project tree and git-ignored, but it contains a serialized session including cookies/tokens, and the zuul_copy_output var maps the whole playwright/ dir to logs. Impact: If PLAYWRIGHT_OUTPUT_DIR is ever repointed, or because the playwright/ dir is uploaded as logs via zuul_copy_output, a live session token could be published in CI logs. Recommendation: Explicitly exclude the .auth subdirectory from the log upload (e.g. a post.yaml task that removes .auth before fetch-tox-output), or strip the auth state before artifact collection. Note the risk in the contributor docs.","accounts_in_message":[],"_revision_number":74},{"id":"0c66967b8bda067a69eac0d69ce2fe3e4b21ed34","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 14:34:18.000000000","message":"Uploaded patch set 75.","accounts_in_message":[],"_revision_number":75},{"id":"225b5423ceb38a26939d4f5168d085f330c4f232","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 14:34:26.000000000","message":"Patch Set 75:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":75},{"id":"77f757c3643ae1a654172a38c867a367161bf740","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 14:51:47.000000000","message":"Patch Set 75:\n\n(5 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/f742fa4a086143508b5474a24769369e\n\n- teim-code-review https://zuul.teim.app/t/main/build/e172f1c06553408badf02b6bb1398984 : SUCCESS in 17m 11s\n\nWarning:\n  PlaywrightFixture.launch() does not pass --no-sandbox or chromium_sandbox\u003dFalse. When a user selects chromium as the browser in a containerized CI environment that lacks sandbox support, tests will fail to launch. The default browser is webkit so this only triggers on browser switch. Impact: Chromium-based tests may fail in CI or containerized environments that lack sandbox support. Recommendation: Consider passing chromium_sandbox\u003dFalse or args\u003d[\u0027--no-sandbox\u0027] when the browser is chromium, or document that chromium requires sandbox support.\n  The commit message subject \u0027Add Playwright-based E2E testing framework\u0027 is 43 characters, uses imperative mood, and includes Assisted-By attribution and Signed-off-by DCO. The commit message complies with OpenInfra AI policy requirements. Impact: No action needed — commit message format is compliant. Recommendation: No changes required to the commit message.\n  The shared auth state file path (.auth/state.json) is a single fixed path used by all tests when auth reuse is enabled. If tests ever run in parallel within the same tox environment, concurrent writes to the same state.json could corrupt the file. Impact: Concurrent parallel test execution with auth reuse enabled could corrupt the shared auth state file. Recommendation: Since stestr runs tests serially by default in this config, add a docstring note that PLAYWRIGHT_AUTH_REUSE requires serial execution, or incorporate a worker-ID suffix into the auth state filename.","accounts_in_message":[],"_revision_number":75},{"id":"a0bffd769dbbc981e828a85065930d4ebfc82b16","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 15:10:32.000000000","message":"Uploaded patch set 76.","accounts_in_message":[],"_revision_number":76},{"id":"8e7538a0aa3819807bd262d65004724c6a7d4605","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 15:10:45.000000000","message":"Patch Set 76:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":76},{"id":"03e18a461843d8e5c13350e2b9185829aa2bc698","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 15:27:47.000000000","message":"Patch Set 76:\n\n(5 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/7a9a5ce4591c473187eaf1bf85bc308a\n\n- teim-code-review https://zuul.teim.app/t/main/build/3085e65bac984906b6e4ba6494666794 : SUCCESS in 16m 53s\n\nWarning:\n  Commit uses \u0027Assisted-By: Cursor (claude-4.5-opus-high)\u0027 but body describes AI-generated complete modules (478-line base class, 244-line config). Per OpenInfra AI Policy, substantial code generation should use \u0027Generated-By:\u0027 not \u0027Assisted-By:\u0027 (which is for autocomplete). Impact: OpenInfra Foundation AI Policy distinguishes Generated-By (substantial code generation) from Assisted-By (autocomplete/suggestions). Mislabeling generative output as \u0027assisted\u0027 understates AI involvement per DCO policy expectations. Recommendation: If the modules were substantially AI-generated, use \u0027Generated-By: Cursor (claude-4.5-opus-high)\u0027 instead. This is a metadata/policy nuance; confirm with the project\u0027s AI policy stance.","accounts_in_message":[],"_revision_number":76},{"id":"766433f239e92dac72daa7af85c28b9e8d7052a5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-01 16:07:16.000000000","message":"Uploaded patch set 77.","accounts_in_message":[],"_revision_number":77},{"id":"bb5a94be23a8a5fe74deafe56f29f9f6dfa24c96","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 16:07:23.000000000","message":"Patch Set 77:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":77},{"id":"d738917b532c9663d4a3c3e4d7878a0da81de0cf","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-01 16:35:47.000000000","message":"Patch Set 77:\n\n(17 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/cd6bc6018f3846b3820341a8491146f6\n\n- teim-code-review https://zuul.teim.app/t/main/build/f16d5f5c8108460db8a635f648054b7c : SUCCESS in 18m 15s\n\nWarning:\n  The new integration job is added to both check and gate queues without first proving it as non-voting. A new devstack-based E2E job with browser automation is inherently flaky on first landing (system deps, browser launch, devstack timing). Impact: If the job is red or flaky on landing, it blocks the gate for ALL watcher-dashboard changes, not just this one. There is no voting:false or experimental first-run period configured. Recommendation: Land the job as voting: false in check first (or in an experimental queue), confirm it is green and stable across several runs, then promote it to the gate with voting enabled. This is standard practice for new integration jobs in OpenStack.\n  The .stestr.conf hardcodes test_path to ./watcher_dashboard/test/integration (singular \u0027test\u0027), while the unit test tree lives at ./watcher_dashboard/tests/ (plural). This singular/plural split is the root of the DJANGO_SETTINGS_MODULE bug and creates two disjoint, easily-confused test roots. Impact: Contributors may run the wrong env or be confused that stestr discovery differs between envs. The singular \u0027test\u0027 vs plural \u0027tests\u0027 naming will cause recurring confusion and is the root cause of the critical settings-path issue. Recommendation: Consider naming the integration package consistently with the existing \u0027tests\u0027 convention, or add a clear README/CONTRIBUTING note explaining the two test roots and which env targets which. Resolve the singular/plural ambiguity definitively.\n  The suite relies on watcher devstack providing a \u0027Dummy goal\u0027 and \u0027Dummy strategy\u0027 in the create_audit_template dropdowns. If the devstack watcher plugin does not seed these, the audit template creation step has no selectable goal/strategy and the test cannot proceed. Impact: The test correctness depends on devstack watcher seeding specific goal/strategy names; a watcher version change that renames or removes \u0027Dummy\u0027 breaks the suite with a non-obvious select_option failure. Recommendation: In pre.yaml or a setup step, assert/seed the expected goal and strategy via the watcher API, or fetch available goals/strategies dynamically and select the first available, rather than hardcoding \u0027Dummy goal\u0027/\u0027Dummy strategy\u0027.","accounts_in_message":[],"_revision_number":77},{"id":"bd55dd7d3c91b7a8b870180ad123d6fe62d06b8f","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 17:24:20.000000000","message":"Patch Set 77: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/fd90b7a1ee9d4359843a650a3e748942\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/f115238328d242f79bee668155fc5cdc : SUCCESS in 1m 24s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0cf5886b45414fa1ad1ed94e000d1fb8 : SUCCESS in 4m 14s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/95223d3cddb94fb5b07544e33b634bd4 : SUCCESS in 2m 38s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/91d39700394443d3a7a0578f1f0d51f9 : SUCCESS in 4m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/df61c773150c4a2192fd3d2f57f5f239 : SUCCESS in 3m 37s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/eac057aa073648edafd8aee9e0895a52 : SUCCESS in 5m 47s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/8dd9095da7f849619358f5feb9d34fa0 : SUCCESS in 3m 51s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/da9067ea8d4d44ed80daeeeb94582378 : SUCCESS in 4m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d262cdcf774445ba8c9dc4a94733bf31 : SUCCESS in 7m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6275f433baab4e7b885f67a64778c003 : SUCCESS in 5m 12s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/82100465820c4858995b1f5b77b886d8 : RETRY_LIMIT in 25m 57s","accounts_in_message":[],"_revision_number":77},{"id":"f74edab2cac8428f8c2332f8ec4c18c58e00cc25","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-02 04:43:32.000000000","message":"Uploaded patch set 78.\n\nOutdated Votes:\n* Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":78},{"id":"8568f79cf62eef66c646eb9d7d240bf86b10485b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-02 04:43:43.000000000","message":"Patch Set 78:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":78},{"id":"92ecd9ca39909447321b7892123a2c0be055a35b","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-02 05:07:19.000000000","message":"Patch Set 78:\n\n(8 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/dbf11f35779d4d0790ce464d2ee8aa54\n\n- teim-code-review https://zuul.teim.app/t/main/build/494712fc9cce4e2a8ad3512fe2c144b9 : SUCCESS in 19m 03s\n\nWarning:\n  The Zuul job sets PLAYWRIGHT_BROWSER to \u0027webkit\u0027 for CI, while run.yaml uses OS_CLOUD: devstack-admin but WatcherClientFixture reads individual OS_USERNAME/OS_PASSWORD env vars. The tox.ini provides defaults, but the two auth mechanisms could diverge. Impact: If devstack\u0027s devstack-admin cloud uses non-default credentials, the Watcher API client using tox defaults would fail authentication while dashboard login might work, or vice versa. Recommendation: Ensure the tox.ini OS_* defaults match the devstack-admin cloud credentials, or source the openrc file in run.yaml before executing tox so OS_* env vars are explicitly set from the clouds.yaml config.","accounts_in_message":[],"_revision_number":78},{"id":"7441ab1edda5cade6b35977c5a21d28f794ebd0d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-02 05:14:04.000000000","message":"Uploaded patch set 79.","accounts_in_message":[],"_revision_number":79},{"id":"388eb339d702154e1596872980e618d6f6e38080","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-02 05:14:11.000000000","message":"Patch Set 79:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":79},{"id":"d05de35c3bdb1f5ebb8ef8514d16aa43a8742edd","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-02 05:28:49.000000000","message":"Patch Set 79:\n\n(9 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/57908fdd59564e67a30f8eb16438aae1\n\n- teim-code-review https://zuul.teim.app/t/main/build/eef345f5e1c54eafa4351deaf3ecd899 : SUCCESS in 14m 30s\n\nWarning:\n  The gating job watcher-dashboard-integration-tests-playwright is added to both check and gate queues on its first commit, meaning a flaky browser test can block all merges to the project immediately. Impact: E2E browser tests against a live devstack are inherently flaky (network timing, element visibility, cold services). Gate-blocking an unproven job on day one risks frequent false rechecks across the whole project. Recommendation: Run the job as non-voting (voting: false) in check for an initial stabilization period, then promote it to the gate once it demonstrates reliability across several dozen runs. Track flake rate before making it voting.\n  The commit bundles test framework, CI job, docs, and dependency changes in a single 1157-line commit with no release note. Impact: Large multi-concern commits are harder to bisect and review; the absence of a reno note means the new testing capability and the new gating job are not announced to operators/contributors in the release notes. Recommendation: In a follow-up, add a release note (releasenotes/notes/) describing the Playwright integration env and the new gate job, and prefer splitting future framework vs CI vs docs changes into separate reviews.","accounts_in_message":[],"_revision_number":79},{"id":"578bbec163c2e586a372c331ff8e291b06f5ac2a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 05:54:59.000000000","message":"Patch Set 79: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/38e27c27db674ebe8da5c522eef0cf5b\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/b2af56d21df94928804bb968e0b945d8 : SUCCESS in 1m 57s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/46d9be09e61547dc88b233e97a19f48e : SUCCESS in 3m 53s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/1316534f28314434a5ad5c306e873ccd : SUCCESS in 2m 46s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/accd54c31a4e460f925eb2a2309d2a37 : SUCCESS in 4m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bba348484e5744b4927741c32d2d00e0 : SUCCESS in 2m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ba5a2c37ec6347b5b471a67f16c32c08 : SUCCESS in 4m 02s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/810f098d35864eabbc0efeaedaac8d23 : SUCCESS in 7m 08s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2dfdd6a20c2446ffa55db3866de55462 : SUCCESS in 3m 39s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5649e4f4e70e4c13a49f125bb01b9024 : SUCCESS in 6m 10s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/424ff80ee2c24ec193e222764eb2dfc2 : SUCCESS in 3m 41s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/dc7b090d318247428364fd498709aa1a : SUCCESS in 34m 20s","accounts_in_message":[],"_revision_number":79},{"id":"4cdf60944dfc9b1c5a71c6073d7dea0b482baede","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-02 06:00:14.000000000","message":"Patch Set 79:\n\n(2 comments)","accounts_in_message":[],"_revision_number":79},{"id":"b154bef5a46c69aecbcf6e53b04ceb17842f7cde","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"date":"2026-07-02 10:36:23.000000000","message":"Uploaded patch set 80.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":80},{"id":"c7059f5e641a48caeff5ca59cccbd0d743e13e03","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-02 10:36:30.000000000","message":"Patch Set 80:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":80},{"id":"fdad96583475046f0e018a5226ed97afe8b713a6","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-02 10:38:46.000000000","message":"Patch Set 80: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":80},{"id":"ef8aa37d564c7ca3446be1cc5ef9521f8ba58de6","tag":"autogenerated:zuul:automatic-ci","author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"date":"2026-07-02 11:05:27.000000000","message":"Patch Set 80:\n\n(3 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/f1aee500b15c4adda281805ce74b9d2c\n\n- teim-code-review https://zuul.teim.app/t/main/build/8e0fced8b41f41c096795241fd2ee8d8 : SUCCESS in 15m 14s\n\nWarning:\n  The commit carries \u0027Assisted-By: Cursor (claude-4.5-opus-high)\u0027 but no standardized OpenInfra AI \u0027Generated-By\u0027 footer. If the AI policy requires a specific attribution footer, it should be added. Impact: Potential AI-attribution policy inconsistency for a commit that explicitly discloses AI assistance. Recommendation: Confirm whether the project/tenant requires a specific AI-generated content footer and add it if so.","accounts_in_message":[],"_revision_number":80},{"id":"88f223597efe51d9ddc3bb5e7a01370f80b0cd4b","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-07-02 11:06:01.000000000","message":"Patch Set 80: Code-Review+2\n\n(4 comments)","accounts_in_message":[],"_revision_number":80},{"id":"32c7fe275c7ebc33f5ecfe43e2c3e768414540ea","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 11:13:02.000000000","message":"Patch Set 80: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/0febacc860de48bd86dd1b4ee5e01838\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/3dc344a3e2cf45d7ac7aa67021a94aa8 : SUCCESS in 2m 16s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/59e56884133c479fb9c648a65cbcb29a : SUCCESS in 3m 39s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/6173e91bb88747d8b9b36b1d08a2a97a : SUCCESS in 4m 25s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/66dd8f08c467403eb6243564fe10331b : SUCCESS in 4m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/b8adc95bf1b4433f8b01c9d0032544e8 : SUCCESS in 3m 40s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/bb23bd09167f4989a47f13199da6c4a2 : SUCCESS in 4m 01s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/bde0578b82ab4565a8d45c92cc82438a : SUCCESS in 8m 53s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8e81e5624a914b92a0a08d8255e56cad : SUCCESS in 3m 41s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4a2ba395ae764339a88d88c935f8785a : SUCCESS in 7m 47s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/eb86259a4afb43209e2ec3bbce65a5f5 : SUCCESS in 4m 06s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/1dc88ac1eb9f4c8ab3f2344391dcf405 : SUCCESS in 31m 42s","accounts_in_message":[],"_revision_number":80},{"id":"81b0aeb53da089f7f5727f762c7b64e807a5770e","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-07-02 12:54:00.000000000","message":"Patch Set 80: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":80},{"id":"263f88f84d223e6f45836ea6845d3856071624c0","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-07-02 12:55:19.000000000","message":"Patch Set 80: Workflow+1","accounts_in_message":[],"_revision_number":80},{"id":"a87aee41315ac4147e429eed4586fa0910a7417a","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 12:56:01.000000000","message":"Patch Set 80: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":80},{"id":"a62475b4fdd3a085c5a3c568aea904e9972a93c1","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 13:32:52.000000000","message":"Patch Set 80: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7b8e805fcddf48b388e7ecbf2f5e1f07\n\n- requirements-check https://zuul.opendev.org/t/openstack/build/ac9917fd24e74e418e282824e3ed85b2 : SUCCESS in 2m 21s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/a0c2c843521547aabf3253e698f4231f : SUCCESS in 5m 19s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/d033ce2067974698b5b971c1307fb4b3 : SUCCESS in 4m 29s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/bb130084fd00413cbbcaa410d586d374 : SUCCESS in 4m 56s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/76fd9191cdb048e1ab365c87d5723358 : SUCCESS in 4m 30s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d265a2b6765548bbb93bd1d57e9adb44 : SUCCESS in 4m 14s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a18f53145e664de6b0278ce400655e8f : SUCCESS in 7m 46s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/bac10c583a5b489f8a7e405b7b49e86c : SUCCESS in 4m 08s\n- watcher-dashboard-integration-tests-playwright https://zuul.opendev.org/t/openstack/build/3f738278299b4fbabf812739e2b248e8 : SUCCESS in 32m 01s","accounts_in_message":[],"_revision_number":80},{"id":"98495d1ea2f775ca3500ef39e1c4720ed49080bb","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 13:32:53.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":80},{"id":"3c74308af535803fd2d41257e768947ce3e9b595","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-02 13:34:53.000000000","message":"Patch Set 80:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/22e344bf560c4b3292f149e4bc7d27eb\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/48971582b02c4627b7799127d457bb40 : SUCCESS in 49s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/28a51a055a674aafb0186a864ef2e7a6 : SUCCESS in 48s","accounts_in_message":[],"_revision_number":80}],"current_revision_number":80,"current_revision":"f25a7d27050acc0a0be202481bf0303dfcad59d0","revisions":{"241d2423db9714caf49e4e11e441c6d7ff64d37b":{"kind":"REWORK","_number":1,"created":"2025-12-10 10:14:51.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/1"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 10:14:40.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/241d2423db9714caf49e4e11e441c6d7ff64d37b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/241d2423db9714caf49e4e11e441c6d7ff64d37b"}]},"branch":"refs/heads/master"},"a7d2197748c8caf06ffefd0b0bc7a90c80643cb2":{"kind":"REWORK","_number":2,"created":"2025-12-10 10:15:51.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/2"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 10:15:47.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a7d2197748c8caf06ffefd0b0bc7a90c80643cb2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a7d2197748c8caf06ffefd0b0bc7a90c80643cb2"}]},"branch":"refs/heads/master"},"50b33c1c21e77ba5d0ec46157e10720cbffe92c1":{"kind":"REWORK","_number":3,"created":"2025-12-10 10:17:43.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/3"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 10:17:39.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/50b33c1c21e77ba5d0ec46157e10720cbffe92c1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/50b33c1c21e77ba5d0ec46157e10720cbffe92c1"}]},"branch":"refs/heads/master"},"7f58cf1dcd2d0fc08d66135cc56a9af4a5280f29":{"kind":"REWORK","_number":4,"created":"2025-12-10 10:19:59.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/4"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 10:19:55.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f58cf1dcd2d0fc08d66135cc56a9af4a5280f29"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f58cf1dcd2d0fc08d66135cc56a9af4a5280f29"}]},"branch":"refs/heads/master"},"5f36adb3c3ff197df70ad6535a061c8549df1571":{"kind":"REWORK","_number":5,"created":"2025-12-10 10:43:55.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/5"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 10:42:39.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5f36adb3c3ff197df70ad6535a061c8549df1571"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5f36adb3c3ff197df70ad6535a061c8549df1571"}]},"branch":"refs/heads/master"},"5b70bb3545739e89d919f40dba1d17fd16a7b935":{"kind":"REWORK","_number":6,"created":"2025-12-10 10:45:19.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/6"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 10:45:15.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5b70bb3545739e89d919f40dba1d17fd16a7b935"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5b70bb3545739e89d919f40dba1d17fd16a7b935"}]},"branch":"refs/heads/master"},"fa07d2076fd10403f3e2ed5594d67f8f19e0bac1":{"kind":"REWORK","_number":7,"created":"2025-12-10 11:11:06.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/7"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 11:11:03.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/fa07d2076fd10403f3e2ed5594d67f8f19e0bac1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/fa07d2076fd10403f3e2ed5594d67f8f19e0bac1"}]},"branch":"refs/heads/master"},"b5ecfb79b6c68b4f6204bf430d5fc2afad170a9e":{"kind":"REWORK","_number":8,"created":"2025-12-10 12:07:00.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/8"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 12:06:01.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b5ecfb79b6c68b4f6204bf430d5fc2afad170a9e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b5ecfb79b6c68b4f6204bf430d5fc2afad170a9e"}]},"branch":"refs/heads/master"},"32cf2317d06d97a8e173c1daf210a0beb81224c9":{"kind":"REWORK","_number":9,"created":"2025-12-10 12:29:21.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/9"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 12:29:16.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/32cf2317d06d97a8e173c1daf210a0beb81224c9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/32cf2317d06d97a8e173c1daf210a0beb81224c9"}]},"branch":"refs/heads/master"},"0448af9698e50113b9a95cdabd1fe62f3ea3c672":{"kind":"REWORK","_number":10,"created":"2025-12-10 12:52:44.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/10"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 12:52:16.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 source ~/repos/devstack/openrc admin admin \u0026\u0026 tox -e e2e-playwright\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0448af9698e50113b9a95cdabd1fe62f3ea3c672"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0448af9698e50113b9a95cdabd1fe62f3ea3c672"}]},"branch":"refs/heads/master"},"df8ffdfdaf83fce33bae87ea375290f5566ca93f":{"kind":"REWORK","_number":11,"created":"2025-12-10 13:20:43.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/11"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 13:20:39.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 source ~/repos/devstack/openrc admin admin \u0026\u0026 tox -e e2e-playwright\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/df8ffdfdaf83fce33bae87ea375290f5566ca93f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/df8ffdfdaf83fce33bae87ea375290f5566ca93f"}]},"branch":"refs/heads/master"},"8355917bfd061ce1bdb62d9621c744656978b570":{"kind":"REWORK","_number":12,"created":"2025-12-10 13:55:29.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/12"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-10 13:55:25.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduces end-to-end test infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nNew test infrastructure (watcher_dashboard/test/e2e/):\n- base.py: WatcherTestCase base class with browser lifecycle management,\n  login/logout helpers, automatic resource cleanup, and screenshot capture\n- config.py: Centralized configuration using environment variables with\n  @cache memoization for settings (dashboard URL, credentials, timeouts)\n- test_audit_workflow.py: Sample tests demonstrating audit template\n  creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027e2e-playwright\u0027 environment with Playwright dependencies\n  and headless mode configuration for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on horizon-integration-tests with required Watcher services\n\nKey features:\n- Automatic resource tracking and cleanup in tearDownClass\n- Screenshot-on-demand support for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n\nUsage:\n - tox -e e2e-playwright\n\nLogs:\n - tox output shows the all the UI interaction done by playwright.\n - All tests screenshots are stored in project screenshot directory.\n\nInfo:\n - playwright install command installs the all the required browser\n   driver for testing.\n\n - playwright codegen http://\u003chorizon ip \u003e/dashboard/auth/login/ --target\u003dpython -o test.py\n   generate the testing code.\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 source ~/repos/devstack/openrc admin admin \u0026\u0026 tox -e e2e-playwright\n\nNote: We cannot use horizon horizon-integration-pytest job as it is\nhardcoded for selenium. So we copied/modified it for our usage.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/8355917bfd061ce1bdb62d9621c744656978b570"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/8355917bfd061ce1bdb62d9621c744656978b570"}]},"branch":"refs/heads/master"},"3251edd6a64e7559798cd86fdc70e01897f9a9c8":{"kind":"REWORK","_number":13,"created":"2025-12-12 06:49:19.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/13"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-12 06:48:11.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging, video/trace viewing,\n  and troubleshooting\n\nUsage:\n\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nEnvironment variables:\n\n  PLAYWRIGHT_BROWSER: chromium (default), firefox, or webkit\n  PLAYWRIGHT_HEADLESS: True (default) or False for visible browser\n  PLAYWRIGHT_VIDEO: off, on (default), or retain-on-failure\n  PLAYWRIGHT_TRACE: off, on (default), or retain-on-failure\n\nLogs:\n\n- Tox output displays all UI interactions performed by Playwright\n- Screenshots are stored in ~/playwright/screenshots/\n- Videos are stored in ~/playwright/videos/\n- Traces are stored in ~/playwright/traces/\n\nInfo:\n\n- \u0027playwright install\u0027 command installs all required browser drivers\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/ \\\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3251edd6a64e7559798cd86fdc70e01897f9a9c8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3251edd6a64e7559798cd86fdc70e01897f9a9c8"}]},"branch":"refs/heads/master"},"b1345f16cb27bc86a29b6616a7aaadae2e9799e2":{"kind":"REWORK","_number":14,"created":"2025-12-12 07:20:12.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/14"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-12 07:20:04.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging, video/trace viewing,\n  and troubleshooting\n\nUsage:\n\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nEnvironment variables:\n\n  PLAYWRIGHT_BROWSER: chromium (default), firefox, or webkit\n  PLAYWRIGHT_HEADLESS: True (default) or False for visible browser\n  PLAYWRIGHT_VIDEO: off, on (default), or retain-on-failure\n  PLAYWRIGHT_TRACE: off, on (default), or retain-on-failure\n\nLogs:\n\n- Tox output displays all UI interactions performed by Playwright\n- Screenshots are stored in ~/playwright/screenshots/\n- Videos are stored in ~/playwright/videos/\n- Traces are stored in ~/playwright/traces/\n\nInfo:\n\n- \u0027playwright install\u0027 command installs all required browser drivers\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/ \\\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b1345f16cb27bc86a29b6616a7aaadae2e9799e2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b1345f16cb27bc86a29b6616a7aaadae2e9799e2"}]},"branch":"refs/heads/master"},"5fc0074a3f50bae1ddd3f3f7061eb78a42028e8d":{"kind":"REWORK","_number":15,"created":"2025-12-12 07:22:03.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/15"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-12 07:21:48.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging, video/trace viewing,\n  and troubleshooting\n\nUsage:\n\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nEnvironment variables:\n\n  PLAYWRIGHT_BROWSER: chromium (default), firefox, or webkit\n  PLAYWRIGHT_HEADLESS: True (default) or False for visible browser\n  PLAYWRIGHT_VIDEO: off, on (default), or retain-on-failure\n  PLAYWRIGHT_TRACE: off, on (default), or retain-on-failure\n\nLogs:\n\n- Tox output displays all UI interactions performed by Playwright\n- Screenshots are stored in ~/playwright/screenshots/\n- Videos are stored in ~/playwright/videos/\n- Traces are stored in ~/playwright/traces/\n\nInfo:\n\n- \u0027playwright install\u0027 command installs all required browser drivers\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/ \\\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5fc0074a3f50bae1ddd3f3f7061eb78a42028e8d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5fc0074a3f50bae1ddd3f3f7061eb78a42028e8d"}]},"branch":"refs/heads/master"},"5b578af7ae8fa219833e043b6b52b08a3e62f4fa":{"kind":"REWORK","_number":16,"created":"2025-12-12 09:05:53.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/16","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/16","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/16 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/16 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/16 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/16"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-12 09:04:16.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging, video/trace viewing,\n  and troubleshooting\n\nUsage:\n\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nEnvironment variables:\n\n  PLAYWRIGHT_BROWSER: chromium (default), firefox, or webkit\n  PLAYWRIGHT_HEADLESS: True (default) or False for visible browser\n  PLAYWRIGHT_VIDEO: off, on (default), or retain-on-failure\n  PLAYWRIGHT_TRACE: off, on (default), or retain-on-failure\n\nLogs:\n\n- Tox output displays all UI interactions performed by Playwright\n- Screenshots are stored in ~/playwright/screenshots/\n- Videos are stored in ~/playwright/videos/\n- Traces are stored in ~/playwright/traces/\n\nInfo:\n\n- \u0027playwright install\u0027 command installs all required browser drivers\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/ \\\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5b578af7ae8fa219833e043b6b52b08a3e62f4fa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5b578af7ae8fa219833e043b6b52b08a3e62f4fa"}]},"branch":"refs/heads/master"},"53d28e30b991d9f7ce808d8bc4371378d469fa59":{"kind":"REWORK","_number":17,"created":"2025-12-12 14:09:02.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/17","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/17","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/17 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/17 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/17 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/17"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-12 14:08:59.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging, video/trace viewing,\n  and troubleshooting\n\nUsage:\n\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nEnvironment variables:\n\n  PLAYWRIGHT_BROWSER: chromium (default), firefox, or webkit\n  PLAYWRIGHT_HEADLESS: True (default) or False for visible browser\n  PLAYWRIGHT_VIDEO: off, on (default), or retain-on-failure\n  PLAYWRIGHT_TRACE: off, on (default), or retain-on-failure\n\nLogs:\n\n- Tox output displays all UI interactions performed by Playwright\n- Screenshots are stored in ~/playwright/screenshots/\n- Videos are stored in ~/playwright/videos/\n- Traces are stored in ~/playwright/traces/\n\nInfo:\n\n- \u0027playwright install\u0027 command installs all required browser drivers\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/ \\\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/53d28e30b991d9f7ce808d8bc4371378d469fa59"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/53d28e30b991d9f7ce808d8bc4371378d469fa59"}]},"branch":"refs/heads/master"},"3ec899f4a7ab347601235e777bc7aff01c192941":{"kind":"REWORK","_number":18,"created":"2025-12-16 10:25:40.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/18","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/18","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/18 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/18 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/18 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/18"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-16 10:25:03.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: Base test class with browser lifecycle management,\n  login/logout helpers, screenshot capture, and video/trace support\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization\n- page_objects.py: Page object model for dashboard UI interactions\n- test_playwright_audit_workflow.py: Tests for audit template creation\n  and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support (Chromium, Firefox, WebKit)\n- Video recording and trace capture for debugging failures\n- UUID-based test isolation for parallel execution safety\n- Headless mode with CI-compatible Chrome flags\n\nDocumentation:\n- doc/source/contributor/playwright-testing.rst covers local setup,\n  browser selection, debugging, and troubleshooting\n\nUsage:\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nNote: Custom devstack-based job created since horizon-integration-pytest\nis hardcoded for Selenium.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3ec899f4a7ab347601235e777bc7aff01c192941"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3ec899f4a7ab347601235e777bc7aff01c192941"}]},"branch":"refs/heads/master"},"8fdc992e47df40c7212b8230620a73e38aed5188":{"kind":"REWORK","_number":19,"created":"2025-12-16 10:37:47.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/19","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/19","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/19 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/19 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/19 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/19"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-16 10:37:44.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: Base test class with browser lifecycle management,\n  login/logout helpers, screenshot capture, and video/trace support\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization\n- page_objects.py: Page object model for dashboard UI interactions\n- test_playwright_audit_workflow.py: Tests for audit template creation\n  and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support (Chromium, Firefox, WebKit)\n- Video recording and trace capture for debugging failures\n- UUID-based test isolation for parallel execution safety\n- Headless mode with CI-compatible Chrome flags\n\nDocumentation:\n- doc/source/contributor/playwright-testing.rst covers local setup,\n  browser selection, debugging, and troubleshooting\n\nUsage:\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nNote: Custom devstack-based job created since horizon-integration-pytest\nis hardcoded for Selenium.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/8fdc992e47df40c7212b8230620a73e38aed5188"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/8fdc992e47df40c7212b8230620a73e38aed5188"}]},"branch":"refs/heads/master"},"4d2b49078d8c6fff779f304d1036730b5e4230d8":{"kind":"REWORK","_number":20,"created":"2025-12-16 12:11:19.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/20","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/20","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/20 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/20 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/20 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/20"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-16 12:11:15.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: Base test class with browser lifecycle management,\n  login/logout helpers, screenshot capture, and video/trace support\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization\n- page_objects.py: Page object model for dashboard UI interactions\n- test_playwright_audit_workflow.py: Tests for audit template creation\n  and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support (Chromium, Firefox, WebKit)\n- Video recording and trace capture for debugging failures\n- UUID-based test isolation for parallel execution safety\n- Headless mode with CI-compatible Chrome flags\n\nDocumentation:\n- doc/source/contributor/playwright-testing.rst covers local setup,\n  browser selection, debugging, and troubleshooting\n\nUsage:\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nNote: Custom devstack-based job created since horizon-integration-pytest\nis hardcoded for Selenium.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4d2b49078d8c6fff779f304d1036730b5e4230d8"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4d2b49078d8c6fff779f304d1036730b5e4230d8"}]},"branch":"refs/heads/master"},"f5958053c919c5c7ae89ecf4cf813884064e1149":{"kind":"REWORK","_number":21,"created":"2025-12-16 14:36:22.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/21","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/21","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/21 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/21 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/21 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/21"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-16 14:34:44.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n- Comprehensive testing guide at\n  doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging,\n  video/trace viewing, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nUsage:\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nEnvironment variables:\n  PLAYWRIGHT_BROWSER: chromium, firefox, or webkit(default)\n  PLAYWRIGHT_HEADLESS: True (default) or False for visible browser\n  PLAYWRIGHT_VIDEO: off, on (default), or retain-on-failure\n  PLAYWRIGHT_TRACE: off, on (default), or retain-on-failure\n\nArtifacts:\n- All test artifacts (screenshots, videos, traces) are stored in the\n  playwright/ directory created under the project tree\n\nInfo:\n- \u0027playwright install\u0027 command installs all required browser drivers\n  - sudo is required for automatic missing packages installation.\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f5958053c919c5c7ae89ecf4cf813884064e1149"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f5958053c919c5c7ae89ecf4cf813884064e1149"}]},"branch":"refs/heads/master"},"2da5297fb4e241b32cf2d2e8db363ba309c4f9ec":{"kind":"REWORK","_number":22,"created":"2025-12-16 15:12:02.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/22","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/22","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/22 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/22 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/22 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/22"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-16 15:10:58.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n- Comprehensive testing guide at\n  doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging,\n  video/trace viewing, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nUsage:\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\nEnvironment variables:\n  PLAYWRIGHT_BROWSER: chromium, firefox, or webkit(default)\n  PLAYWRIGHT_HEADLESS: True (default) or False for visible browser\n  PLAYWRIGHT_VIDEO: off, on (default), or retain-on-failure\n  PLAYWRIGHT_TRACE: off, on (default), or retain-on-failure\n\nArtifacts:\n- All test artifacts (screenshots, videos, traces) are stored in the\n  playwright/ directory created under the project tree\n\nInfo:\n- \u0027playwright install\u0027 command installs all required browser drivers\n  - sudo is required for automatic missing packages installation.\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/2da5297fb4e241b32cf2d2e8db363ba309c4f9ec"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/2da5297fb4e241b32cf2d2e8db363ba309c4f9ec"}]},"branch":"refs/heads/master"},"04e1d0d19e0d2af8ed596c9a85b90fb6dfccd3ee":{"kind":"REWORK","_number":23,"created":"2025-12-17 08:39:42.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/23","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/23","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/23 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/23 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/23 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/23"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-17 08:38:09.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDocumentation:\n- Comprehensive testing guide at\n  doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging,\n  video/trace viewing, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright\u003e\u003d1.57.0, oslotest\u003e\u003d3.8.0,\n  and openstacksdk\u003e\u003d0.36.0\n- openstacksdk is used for deleting test resources (audit templates,\n  audits) created during test runs via self.addCleanup callbacks\n\nInfo:\n- \u0027playwright install\u0027 command installs all required browser drivers\n  - sudo is required for automatic missing packages installation.\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/04e1d0d19e0d2af8ed596c9a85b90fb6dfccd3ee"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/04e1d0d19e0d2af8ed596c9a85b90fb6dfccd3ee"}]},"branch":"refs/heads/master"},"a788c863a938de4f041cd955711dc80505106f3f":{"kind":"REWORK","_number":24,"created":"2025-12-18 06:09:00.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/24","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/24","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/24 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/24 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/24 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/24"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-18 05:52:31.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDesign Considerations:\n- Borrowed POM structure from horizon selenium testing\n- Followed openstack pythonpti guidance to rely on unittest library\n- Using oslotest, fixtures for testing\n- Using api driven cleanup for test created data for faster cleanup\n  paired with tempest self.Addcleanup functionality\n\nDocumentation:\n- Comprehensive testing guide at\n  doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging,\n  video/trace viewing, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils,\n  oslo.log and openstacksdk\n- openstacksdk is used for deleting test resources (audit templates,\n  audits) created during test runs via self.addCleanup callbacks\n\nInfo:\n- \u0027playwright install\u0027 command installs all required browser drivers\n  - sudo is required for automatic missing packages installation.\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a788c863a938de4f041cd955711dc80505106f3f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a788c863a938de4f041cd955711dc80505106f3f"}]},"branch":"refs/heads/master"},"ef6cfcf7cecdb2f9e8b6152ee67ac8cc45acc1cd":{"kind":"REWORK","_number":25,"created":"2025-12-18 06:14:12.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/25","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/25","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/25 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/25 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/25 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/25"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-18 06:14:07.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDesign Considerations:\n- Borrowed POM structure from horizon selenium testing\n- Followed openstack pythonpti guidance to rely on unittest library\n- Using oslotest, fixtures for testing\n- Using api driven cleanup for test created data for faster cleanup\n  paired with tempest self.Addcleanup functionality\n\nDocumentation:\n- Comprehensive testing guide at\n  doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging,\n  video/trace viewing, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils,\n  oslo.log and openstacksdk\n- openstacksdk is used for deleting test resources (audit templates,\n  audits) created during test runs via self.addCleanup callbacks\n\nInfo:\n- \u0027playwright install\u0027 command installs all required browser drivers\n  - sudo is required for automatic missing packages installation.\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ef6cfcf7cecdb2f9e8b6152ee67ac8cc45acc1cd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ef6cfcf7cecdb2f9e8b6152ee67ac8cc45acc1cd"}]},"branch":"refs/heads/master"},"7b433349c66874ae02c2017a76e43781575f3a54":{"kind":"REWORK","_number":26,"created":"2025-12-18 10:01:00.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/26","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/26","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/26 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/26 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/26 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/26"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-18 10:00:57.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class providing browser\n  lifecycle management, login/logout helpers, automatic resource cleanup,\n  screenshot capture, video recording, and trace support for debugging\n- playwright_config.py: Centralized configuration using environment\n  variables with @cache memoization for settings (dashboard URL,\n  credentials, browser selection, timeouts, artifact directories)\n- test_playwright_audit_workflow.py: Integration tests demonstrating\n  audit template creation and audit launch workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies and headless mode configuration\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks for CI job execution\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Automatic resource tracking and cleanup in tearDownClass\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n\nDesign Considerations:\n- Borrowed POM structure from horizon selenium testing\n- Followed openstack pythonpti guidance to rely on unittest library\n- Using oslotest, fixtures for testing\n- Using api driven cleanup for test created data for faster cleanup\n  paired with tempest self.Addcleanup functionality\n\nDocumentation:\n- Comprehensive testing guide at\n  doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, debugging,\n  video/trace viewing, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils,\n  oslo.log and openstacksdk\n- openstacksdk is used for deleting test resources (audit templates,\n  audits) created during test runs via self.addCleanup callbacks\n\nInfo:\n- \u0027playwright install\u0027 command installs all required browser drivers\n  - sudo is required for automatic missing packages installation.\n- Code generation for new tests:\n  playwright codegen http://\u003chorizon-ip\u003e/dashboard/auth/login/\n      --target\u003dpython -o test.py\n\nNote: We cannot use horizon-integration-pytest job as it is hardcoded\nfor Selenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7b433349c66874ae02c2017a76e43781575f3a54"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7b433349c66874ae02c2017a76e43781575f3a54"}]},"branch":"refs/heads/master"},"9515bdf1b108b90a81621c35ea141f9cfb5db7cc":{"kind":"REWORK","_number":27,"created":"2026-01-15 08:48:05.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/27","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/27","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/27 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/27 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/27 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/27"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-01-15 08:44:14.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/9515bdf1b108b90a81621c35ea141f9cfb5db7cc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/9515bdf1b108b90a81621c35ea141f9cfb5db7cc"}]},"branch":"refs/heads/master"},"d91d9b953601d8cccad0a68b822d240733632314":{"kind":"REWORK","_number":28,"created":"2026-01-15 09:32:21.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/28","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/28","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/28 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/28 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/28 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/28"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-01-15 09:32:17.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d91d9b953601d8cccad0a68b822d240733632314"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d91d9b953601d8cccad0a68b822d240733632314"}]},"branch":"refs/heads/master"},"654a8332e4bc4a1b80f31f2ba3bb2099dbea3652":{"kind":"REWORK","_number":29,"created":"2026-01-15 09:50:51.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/29","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/29","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/29 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/29 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/29 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/29"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-01-15 09:50:47.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/654a8332e4bc4a1b80f31f2ba3bb2099dbea3652"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/654a8332e4bc4a1b80f31f2ba3bb2099dbea3652"}]},"branch":"refs/heads/master"},"eccdb99da25decc93323d106f2b71f7797f0d919":{"kind":"REWORK","_number":30,"created":"2026-01-20 05:21:49.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/30","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/30","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/30 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/30 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/30 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/30"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-01-20 05:21:33.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/eccdb99da25decc93323d106f2b71f7797f0d919"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/eccdb99da25decc93323d106f2b71f7797f0d919"}]},"branch":"refs/heads/master"},"8aaa8837c36f7df9cf33438b777c74028abeedaa":{"kind":"REWORK","_number":31,"created":"2026-01-22 04:09:32.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/31","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/31","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/31 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/31 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/31 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/31"}}},"commit":{"parents":[{"commit":"aaebb77ea7da21c01d8995784c2ba62b73643874","subject":"Merge \"Adopt Ruff for security; remove Bandit and fix style\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/aaebb77ea7da21c01d8995784c2ba62b73643874"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-01-22 04:09:28.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/8aaa8837c36f7df9cf33438b777c74028abeedaa"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/8aaa8837c36f7df9cf33438b777c74028abeedaa"}]},"branch":"refs/heads/master"},"d4a9b08c1c730f16e7fc79df7955d02fc4d9725b":{"kind":"TRIVIAL_REBASE","_number":32,"created":"2026-02-11 09:33:46.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/32","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/32","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/32 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/32 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/32 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/32"}}},"commit":{"parents":[{"commit":"35ea4c9800470864148288cc7860b439788069ec","subject":"Add skip action feature with microversion support","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/35ea4c9800470864148288cc7860b439788069ec"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-02-11 09:33:46.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d4a9b08c1c730f16e7fc79df7955d02fc4d9725b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d4a9b08c1c730f16e7fc79df7955d02fc4d9725b"}]},"branch":"refs/heads/master","description":"Rebase"},"0e356653cc5b177f7907b8978ba3e2d5cb969f58":{"kind":"TRIVIAL_REBASE","_number":33,"created":"2026-02-20 14:49:58.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/33","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/33","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/33 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/33 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/33 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/33"}}},"commit":{"parents":[{"commit":"eb03859257e1005733fc2bee0db8432bf749e078","subject":"Add skip action feature with microversion support","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/eb03859257e1005733fc2bee0db8432bf749e078"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-02-20 14:49:58.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0e356653cc5b177f7907b8978ba3e2d5cb969f58"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0e356653cc5b177f7907b8978ba3e2d5cb969f58"}]},"branch":"refs/heads/master","description":"Rebase"},"d3be9556537727e62eb37173015f62f1b140dd12":{"kind":"TRIVIAL_REBASE","_number":34,"created":"2026-02-20 15:44:26.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/34","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/34","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/34 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/34 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/34 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/34"}}},"commit":{"parents":[{"commit":"167b2ada6ee7338bbc35d4cc1341007f29a36094","subject":"Add skip action feature with microversion support","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/167b2ada6ee7338bbc35d4cc1341007f29a36094"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-02-20 15:44:26.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d3be9556537727e62eb37173015f62f1b140dd12"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d3be9556537727e62eb37173015f62f1b140dd12"}]},"branch":"refs/heads/master","description":"Rebase"},"4b4c8aca50737af8e308c368f75f179c5e670716":{"kind":"TRIVIAL_REBASE","_number":35,"created":"2026-02-26 13:55:15.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/35","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/35","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/35 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/35 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/35 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/35"}}},"commit":{"parents":[{"commit":"4f6c274d0ddb00cabe7d63c83971c7ff8bdfdc5f","subject":"Add skip action feature with microversion support","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4f6c274d0ddb00cabe7d63c83971c7ff8bdfdc5f"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-02-26 13:55:15.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4b4c8aca50737af8e308c368f75f179c5e670716"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4b4c8aca50737af8e308c368f75f179c5e670716"}]},"branch":"refs/heads/master","description":"Rebase"},"36a219953fba9f9cf16faeeafccea8dc50ebf60e":{"kind":"TRIVIAL_REBASE","_number":36,"created":"2026-02-26 15:19:35.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/36","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/36","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/36 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/36 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/36 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/36"}}},"commit":{"parents":[{"commit":"721c36b0758c292498e0f6dc96fea9442d40c3f4","subject":"Add skip action feature with microversion support","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/721c36b0758c292498e0f6dc96fea9442d40c3f4"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-02-26 15:19:35.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/36a219953fba9f9cf16faeeafccea8dc50ebf60e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/36a219953fba9f9cf16faeeafccea8dc50ebf60e"}]},"branch":"refs/heads/master","description":"Rebase"},"d99483bd7a97931a20c797f6520dba67d38d04a2":{"kind":"TRIVIAL_REBASE","_number":37,"created":"2026-03-03 07:37:58.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/37","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/37","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/37 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/37 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/37 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/37"}}},"commit":{"parents":[{"commit":"37f27c514e7c513f32e0c1cc764c62d50d1e99e3","subject":"Add skip action UI controls","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/37f27c514e7c513f32e0c1cc764c62d50d1e99e3"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-03-03 07:37:58.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d99483bd7a97931a20c797f6520dba67d38d04a2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d99483bd7a97931a20c797f6520dba67d38d04a2"}]},"branch":"refs/heads/master","description":"Rebase"},"0edc17747c858eb56e365013512512e92663d447":{"kind":"TRIVIAL_REBASE","_number":38,"created":"2026-03-03 09:58:25.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/38","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/38","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/38 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/38 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/38 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/38"}}},"commit":{"parents":[{"commit":"260a9773dfe8d5b24e91758c63b104460d268afc","subject":"Add skip action UI controls","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/260a9773dfe8d5b24e91758c63b104460d268afc"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-03-03 09:58:25.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0edc17747c858eb56e365013512512e92663d447"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0edc17747c858eb56e365013512512e92663d447"}]},"branch":"refs/heads/master","description":"Rebase"},"ab4d2757bf759b8af73aba900e4eb6d437f9162d":{"kind":"TRIVIAL_REBASE","_number":39,"created":"2026-03-03 11:05:12.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/39","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/39","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/39 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/39 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/39 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/39"}}},"commit":{"parents":[{"commit":"3a884013ecbca509d2379b090f2a16bb6206d2d5","subject":"Add skip action UI controls","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3a884013ecbca509d2379b090f2a16bb6206d2d5"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-03-03 11:05:12.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ab4d2757bf759b8af73aba900e4eb6d437f9162d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ab4d2757bf759b8af73aba900e4eb6d437f9162d"}]},"branch":"refs/heads/master","description":"Rebase"},"b32b9ac3335208c57452deae273220a08f8ab584":{"kind":"TRIVIAL_REBASE","_number":40,"created":"2026-04-06 11:15:57.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/40","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/40","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/40 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/40 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/40 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/40"}}},"commit":{"parents":[{"commit":"af8ffd4706a8c646db325f908ef82d5baed1e7de","subject":"Merge \"Update master for stable/2026.1\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/af8ffd4706a8c646db325f908ef82d5baed1e7de"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-04-06 11:15:57.000000000","tz":0},"subject":"[poc]Add Playwright-based E2E testing framework","message":"[poc]Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b32b9ac3335208c57452deae273220a08f8ab584"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b32b9ac3335208c57452deae273220a08f8ab584"}]},"branch":"refs/heads/master","description":"Rebase"},"40d1708a8e046cf263c1dcba69b447ef861817eb":{"kind":"REWORK","_number":41,"created":"2026-04-06 11:29:34.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/41","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/41","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/41 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/41 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/41 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/41"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-06 11:29:04.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/40d1708a8e046cf263c1dcba69b447ef861817eb"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/40d1708a8e046cf263c1dcba69b447ef861817eb"}]},"branch":"refs/heads/master"},"ed78f7a9ca04827dd4229162c70f8f46976d3c5e":{"kind":"REWORK","_number":42,"created":"2026-04-06 14:11:29.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/42","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/42","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/42 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/42 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/42 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/42"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-06 14:11:12.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ed78f7a9ca04827dd4229162c70f8f46976d3c5e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/ed78f7a9ca04827dd4229162c70f8f46976d3c5e"}]},"branch":"refs/heads/master"},"1359ce3cf9a38b37c1e029f397e0995aa304ae1f":{"kind":"REWORK","_number":43,"created":"2026-04-06 15:00:51.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/43","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/43","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/43 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/43 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/43 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/43"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-06 14:59:31.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/1359ce3cf9a38b37c1e029f397e0995aa304ae1f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/1359ce3cf9a38b37c1e029f397e0995aa304ae1f"}]},"branch":"refs/heads/master"},"20053f98c2702d1338b829a549f07358b43b717f":{"kind":"REWORK","_number":44,"created":"2026-04-08 14:55:42.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/44","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/44","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/44 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/44 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/44 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/44"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-08 14:55:22.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/20053f98c2702d1338b829a549f07358b43b717f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/20053f98c2702d1338b829a549f07358b43b717f"}]},"branch":"refs/heads/master"},"c8c27cb6bf32da274a8c503ff4f99f313d9ad006":{"kind":"REWORK","_number":45,"created":"2026-04-09 06:39:09.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/45","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/45","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/45 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/45 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/45 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/45"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-09 06:33:33.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/c8c27cb6bf32da274a8c503ff4f99f313d9ad006"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/c8c27cb6bf32da274a8c503ff4f99f313d9ad006"}]},"branch":"refs/heads/master"},"edee32511356f7005ebe2c075694049877298bf1":{"kind":"REWORK","_number":46,"created":"2026-04-09 06:52:23.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/46","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/46","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/46 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/46 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/46 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/46"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-09 06:51:35.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/edee32511356f7005ebe2c075694049877298bf1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/edee32511356f7005ebe2c075694049877298bf1"}]},"branch":"refs/heads/master"},"be123f49294c8969a0f5bca53919027aab2c1f51":{"kind":"REWORK","_number":47,"created":"2026-04-09 07:30:46.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/47","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/47","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/47 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/47 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/47 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/47"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-09 07:30:30.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/be123f49294c8969a0f5bca53919027aab2c1f51"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/be123f49294c8969a0f5bca53919027aab2c1f51"}]},"branch":"refs/heads/master"},"f912294ca585499a287c290a8ae7e53d1bc0a1c7":{"kind":"REWORK","_number":48,"created":"2026-04-09 08:23:29.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/48","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/48","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/48 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/48 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/48 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/48"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-09 08:23:15.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f912294ca585499a287c290a8ae7e53d1bc0a1c7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f912294ca585499a287c290a8ae7e53d1bc0a1c7"}]},"branch":"refs/heads/master"},"58e6537a1f108b2b4c0d9bb8d7fc761d34c63374":{"kind":"REWORK","_number":49,"created":"2026-04-09 09:13:35.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/49","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/49","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/49 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/49 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/49 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/49"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-09 09:13:22.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/58e6537a1f108b2b4c0d9bb8d7fc761d34c63374"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/58e6537a1f108b2b4c0d9bb8d7fc761d34c63374"}]},"branch":"refs/heads/master"},"a551758625c7db043f23dae3177637cfb62386a0":{"kind":"REWORK","_number":50,"created":"2026-04-09 12:27:46.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/50","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/50","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/50 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/50 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/50 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/50"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-09 12:27:34.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a551758625c7db043f23dae3177637cfb62386a0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a551758625c7db043f23dae3177637cfb62386a0"}]},"branch":"refs/heads/master"},"177f617fd8f4a3919c3cf3b112ed802459613790":{"kind":"REWORK","_number":51,"created":"2026-04-09 15:54:22.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/51","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/51","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/51 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/51 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/51 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/51"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-09 15:54:08.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/177f617fd8f4a3919c3cf3b112ed802459613790"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/177f617fd8f4a3919c3cf3b112ed802459613790"}]},"branch":"refs/heads/master"},"af2b693ff591d303b055e0a5ddce7acfaa521ad1":{"kind":"REWORK","_number":52,"created":"2026-04-10 04:31:59.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/52","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/52","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/52 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/52 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/52 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/52"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-10 04:31:46.000000000","tz":0},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and openstacksdk for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/af2b693ff591d303b055e0a5ddce7acfaa521ad1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/af2b693ff591d303b055e0a5ddce7acfaa521ad1"}]},"branch":"refs/heads/master"},"065c67fd1fe74e78aea9b9a5c20194d06ac6d31b":{"kind":"NO_CODE_CHANGE","_number":53,"created":"2026-04-10 04:56:14.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/53","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/53","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/53 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/53 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/53 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/53"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-10 04:55:42.000000000","tz":0},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/065c67fd1fe74e78aea9b9a5c20194d06ac6d31b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/065c67fd1fe74e78aea9b9a5c20194d06ac6d31b"}]},"branch":"refs/heads/master"},"6678237fffe6984cae0b7ae966828de9eb56b59d":{"kind":"REWORK","_number":54,"created":"2026-04-10 05:27:20.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/54","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/54","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/54 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/54 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/54 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/54"}}},"commit":{"parents":[{"commit":"cf41e8fc29fee44875218b4407d3ca19672c7705","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cf41e8fc29fee44875218b4407d3ca19672c7705"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-04-10 05:27:10.000000000","tz":0},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/6678237fffe6984cae0b7ae966828de9eb56b59d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/6678237fffe6984cae0b7ae966828de9eb56b59d"}]},"branch":"refs/heads/master"},"5361a62c08994145405856d6febff05a8dd12bdd":{"kind":"TRIVIAL_REBASE","_number":55,"created":"2026-05-13 11:33:09.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/55","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/55","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/55 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/55 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/55 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/55"}}},"commit":{"parents":[{"commit":"69ecd095e46f3539b59140c5a88d733696aeaf47","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/69ecd095e46f3539b59140c5a88d733696aeaf47"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-13 11:32:09.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5361a62c08994145405856d6febff05a8dd12bdd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5361a62c08994145405856d6febff05a8dd12bdd"}]},"branch":"refs/heads/master"},"26efb5b65b9aac3ca38ebbb7b319e4cab90623d7":{"kind":"REWORK","_number":56,"created":"2026-05-14 07:40:10.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/56","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/56","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/56 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/56 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/56 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/56"}}},"commit":{"parents":[{"commit":"69ecd095e46f3539b59140c5a88d733696aeaf47","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/69ecd095e46f3539b59140c5a88d733696aeaf47"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-05-14 07:31:28.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies in test-requirements.txt until\n  other horizon dashboard starts using it.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/26efb5b65b9aac3ca38ebbb7b319e4cab90623d7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/26efb5b65b9aac3ca38ebbb7b319e4cab90623d7"}]},"branch":"refs/heads/master"},"211e2c91a946ac740f84e647310554221391c813":{"kind":"REWORK","_number":57,"created":"2026-06-01 08:11:17.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/57","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/57","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/57 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/57 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/57 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/57"}}},"commit":{"parents":[{"commit":"69ecd095e46f3539b59140c5a88d733696aeaf47","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/69ecd095e46f3539b59140c5a88d733696aeaf47"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-01 08:10:46.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies in tox.ini until\n  other horizon dashboard starts using it.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/211e2c91a946ac740f84e647310554221391c813"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/211e2c91a946ac740f84e647310554221391c813"}]},"branch":"refs/heads/master"},"7a82878cd6719c0a10e2bd845fda5c12a5831fd6":{"kind":"REWORK","_number":58,"created":"2026-06-01 08:23:04.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/58","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/58","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/58 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/58 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/58 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/58"}}},"commit":{"parents":[{"commit":"69ecd095e46f3539b59140c5a88d733696aeaf47","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/69ecd095e46f3539b59140c5a88d733696aeaf47"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-01 08:22:46.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies in tox.ini until\n  other horizon dashboard starts using it.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7a82878cd6719c0a10e2bd845fda5c12a5831fd6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7a82878cd6719c0a10e2bd845fda5c12a5831fd6"}]},"branch":"refs/heads/master"},"54ca8ba26f7d95c1c62ba29649b871538a935f06":{"kind":"REWORK","_number":59,"created":"2026-06-02 06:13:31.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/59","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/59","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/59 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/59 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/59 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/59"}}},"commit":{"parents":[{"commit":"69ecd095e46f3539b59140c5a88d733696aeaf47","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/69ecd095e46f3539b59140c5a88d733696aeaf47"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-02 06:10:56.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies in tox.ini until\n  other horizon dashboard starts using it.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/54ca8ba26f7d95c1c62ba29649b871538a935f06"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/54ca8ba26f7d95c1c62ba29649b871538a935f06"}]},"branch":"refs/heads/master"},"41cabf5f99fce606546a750ddd9528b1ef5b0a03":{"kind":"REWORK","_number":60,"created":"2026-06-03 06:35:02.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/60","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/60","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/60 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/60 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/60 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/60"}}},"commit":{"parents":[{"commit":"69ecd095e46f3539b59140c5a88d733696aeaf47","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/69ecd095e46f3539b59140c5a88d733696aeaf47"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-03 06:34:29.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/41cabf5f99fce606546a750ddd9528b1ef5b0a03"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/41cabf5f99fce606546a750ddd9528b1ef5b0a03"}]},"branch":"refs/heads/master"},"867b28d4d48fb343dbbcf5b32be297d1c489494d":{"kind":"TRIVIAL_REBASE","_number":61,"created":"2026-06-09 13:49:49.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/61","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/61","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/61 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/61 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/61 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/61"}}},"commit":{"parents":[{"commit":"3a5a72701b2f428572723cb68b1dc7c9e2866e54","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3a5a72701b2f428572723cb68b1dc7c9e2866e54"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-06-09 13:49:49.000000000","tz":0},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nDepends-On: https://review.opendev.org/c/openstack/requirements/+/983421\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/867b28d4d48fb343dbbcf5b32be297d1c489494d"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/867b28d4d48fb343dbbcf5b32be297d1c489494d"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"69ecd095e46f3539b59140c5a88d733696aeaf47","ours":"41cabf5f99fce606546a750ddd9528b1ef5b0a03","theirs":"3a5a72701b2f428572723cb68b1dc7c9e2866e54","merge_strategy":"recursive","contains_conflicts":false}},"d559ab7d8cfb4b11ccdf36d3435e76d4fb16a477":{"kind":"REWORK","_number":62,"created":"2026-06-10 05:26:04.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/62","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/62","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/62 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/62 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/62 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/62"}}},"commit":{"parents":[{"commit":"3a5a72701b2f428572723cb68b1dc7c9e2866e54","subject":"test: fix efficacy_specifications fixture to be a list","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3a5a72701b2f428572723cb68b1dc7c9e2866e54"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-10 05:23:02.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d559ab7d8cfb4b11ccdf36d3435e76d4fb16a477"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d559ab7d8cfb4b11ccdf36d3435e76d4fb16a477"}]},"branch":"refs/heads/master"},"0b9b5c20d2d4c01857186b714565679680e8378c":{"kind":"REWORK","_number":63,"created":"2026-06-11 04:03:37.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/63","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/63","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/63 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/63 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/63 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/63"}}},"commit":{"parents":[{"commit":"5ad0a634a03357cc4a311a44d99de2da6d952af7","subject":"Merge \"Replace status_choices with display_choices\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5ad0a634a03357cc4a311a44d99de2da6d952af7"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-11 04:03:01.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0b9b5c20d2d4c01857186b714565679680e8378c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0b9b5c20d2d4c01857186b714565679680e8378c"}]},"branch":"refs/heads/master"},"a29ff07d687dd7520cba6e637d40f87bb62707c6":{"kind":"REWORK","_number":64,"created":"2026-06-11 05:35:29.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/64","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/64","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/64 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/64 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/64 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/64"}}},"commit":{"parents":[{"commit":"5ad0a634a03357cc4a311a44d99de2da6d952af7","subject":"Merge \"Replace status_choices with display_choices\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5ad0a634a03357cc4a311a44d99de2da6d952af7"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-11 05:35:07.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a29ff07d687dd7520cba6e637d40f87bb62707c6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/a29ff07d687dd7520cba6e637d40f87bb62707c6"}]},"branch":"refs/heads/master"},"5ed3ae1f4476d932a853e76f735aa90a50f9fd65":{"kind":"REWORK","_number":65,"created":"2026-06-11 06:48:30.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/65","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/65","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/65 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/65 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/65 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/65"}}},"commit":{"parents":[{"commit":"5ad0a634a03357cc4a311a44d99de2da6d952af7","subject":"Merge \"Replace status_choices with display_choices\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5ad0a634a03357cc4a311a44d99de2da6d952af7"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-11 06:48:09.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5ed3ae1f4476d932a853e76f735aa90a50f9fd65"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5ed3ae1f4476d932a853e76f735aa90a50f9fd65"}]},"branch":"refs/heads/master"},"0134750ef6a59eebfeb20493a2955e4b8b9acd49":{"kind":"NO_CODE_CHANGE","_number":66,"created":"2026-06-11 08:01:28.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/66","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/66","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/66 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/66 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/66 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/66"}}},"commit":{"parents":[{"commit":"5ad0a634a03357cc4a311a44d99de2da6d952af7","subject":"Merge \"Replace status_choices with display_choices\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/5ad0a634a03357cc4a311a44d99de2da6d952af7"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"chandan kumar","email":"chkumar@redhat.com","date":"2026-06-11 08:01:28.000000000","tz":0},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0134750ef6a59eebfeb20493a2955e4b8b9acd49"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0134750ef6a59eebfeb20493a2955e4b8b9acd49"}]},"branch":"refs/heads/master","description":"Edit commit message"},"800033a75295a53911eabdcd706d29903949aedd":{"kind":"REWORK","_number":67,"created":"2026-06-19 14:58:10.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/67","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/67","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/67 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/67 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/67 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/67"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-19 14:57:28.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/800033a75295a53911eabdcd706d29903949aedd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/800033a75295a53911eabdcd706d29903949aedd"}]},"branch":"refs/heads/master"},"619e5754c52b4ec43902f8696770d0a2a97350b7":{"kind":"REWORK","_number":68,"created":"2026-06-22 05:00:11.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/68","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/68","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/68 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/68 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/68 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/68"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-22 05:00:07.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/619e5754c52b4ec43902f8696770d0a2a97350b7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/619e5754c52b4ec43902f8696770d0a2a97350b7"}]},"branch":"refs/heads/master"},"498033766998acd2dd0436b4d2f056d7157b4688":{"kind":"REWORK","_number":69,"created":"2026-06-22 05:01:52.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/69","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/69","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/69 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/69 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/69 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/69"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-22 05:01:40.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/498033766998acd2dd0436b4d2f056d7157b4688"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/498033766998acd2dd0436b4d2f056d7157b4688"}]},"branch":"refs/heads/master"},"b96d40ea95a3c57b12f556c39cbe1c7357f0007c":{"kind":"REWORK","_number":70,"created":"2026-06-22 05:20:38.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/70","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/70","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/70 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/70 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/70 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/70"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-22 05:20:25.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b96d40ea95a3c57b12f556c39cbe1c7357f0007c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/b96d40ea95a3c57b12f556c39cbe1c7357f0007c"}]},"branch":"refs/heads/master"},"e782ff616d0c0ec13fe0cf70b1fa5e0636167b6c":{"kind":"REWORK","_number":71,"created":"2026-06-22 06:42:13.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/71","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/71","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/71 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/71 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/71 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/71"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-22 06:41:44.000000000","tz":0},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/e782ff616d0c0ec13fe0cf70b1fa5e0636167b6c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/e782ff616d0c0ec13fe0cf70b1fa5e0636167b6c"}]},"branch":"refs/heads/master"},"c7392384c0337b8d9dfabad3ba6853e834849858":{"kind":"REWORK","_number":72,"created":"2026-06-22 09:11:54.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/72","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/72","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/72 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/72 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/72 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/72"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-22 09:11:41.000000000","tz":0},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/c7392384c0337b8d9dfabad3ba6853e834849858"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/c7392384c0337b8d9dfabad3ba6853e834849858"}]},"branch":"refs/heads/master"},"cd572228ea4306f2a2295b126b3f72856778489f":{"kind":"REWORK","_number":73,"created":"2026-06-30 07:51:47.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/73","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/73","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/73 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/73 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/73 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/73"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-06-30 07:51:23.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cd572228ea4306f2a2295b126b3f72856778489f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/cd572228ea4306f2a2295b126b3f72856778489f"}]},"branch":"refs/heads/master"},"d868490fa03a89e308e6bd849e3c9aa84758ac65":{"kind":"REWORK","_number":74,"created":"2026-07-01 13:48:29.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/74","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/74","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/74 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/74 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/74 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/74"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 13:48:09.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d868490fa03a89e308e6bd849e3c9aa84758ac65"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/d868490fa03a89e308e6bd849e3c9aa84758ac65"}]},"branch":"refs/heads/master"},"77df711fae9d8761dc12acfb05177ccb657e9cd4":{"kind":"REWORK","_number":75,"created":"2026-07-01 14:34:18.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/75","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/75","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/75 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/75 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/75 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/75"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 14:33:59.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/77df711fae9d8761dc12acfb05177ccb657e9cd4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/77df711fae9d8761dc12acfb05177ccb657e9cd4"}]},"branch":"refs/heads/master"},"de7f13df7d41df81920b4b0f5a486204fe66a355":{"kind":"REWORK","_number":76,"created":"2026-07-01 15:10:32.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/76","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/76","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/76 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/76 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/76 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/76"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 15:10:13.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/de7f13df7d41df81920b4b0f5a486204fe66a355"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/de7f13df7d41df81920b4b0f5a486204fe66a355"}]},"branch":"refs/heads/master"},"542f059154e3c854dcafb3bef31ab7dd4ffd7726":{"kind":"REWORK","_number":77,"created":"2026-07-01 16:07:16.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/77","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/77","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/77 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/77 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/77 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/77"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-01 16:06:50.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/542f059154e3c854dcafb3bef31ab7dd4ffd7726"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/542f059154e3c854dcafb3bef31ab7dd4ffd7726"}]},"branch":"refs/heads/master"},"c009da9877c1111d18f95bca492368aec4658f4e":{"kind":"REWORK","_number":78,"created":"2026-07-02 04:43:32.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/78","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/78","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/78 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/78 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/78 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/78"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-02 04:43:13.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/c009da9877c1111d18f95bca492368aec4658f4e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/c009da9877c1111d18f95bca492368aec4658f4e"}]},"branch":"refs/heads/master"},"93888776b759e71e4785133f18548ca1cf863a90":{"kind":"REWORK","_number":79,"created":"2026-07-02 05:14:04.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/79","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/79","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/79 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/79 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/79 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/79"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-02 05:13:45.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/93888776b759e71e4785133f18548ca1cf863a90"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/93888776b759e71e4785133f18548ca1cf863a90"}]},"branch":"refs/heads/master"},"f25a7d27050acc0a0be202481bf0303dfcad59d0":{"kind":"REWORK","_number":80,"created":"2026-07-02 10:36:23.000000000","uploader":{"_account_id":12393,"name":"chandan kumar","display_name":"Chandan Kumar","email":"chkumar@redhat.com","username":"chkumar246"},"ref":"refs/changes/53/970353/80","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/53/970353/80","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/80 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/80 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/80 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/53/970353/80"}}},"commit":{"parents":[{"commit":"7f10959e460a8233a0f7f3bc856b93e1890986f2","subject":"tox: Bump min_version to 4.28.0","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/7f10959e460a8233a0f7f3bc856b93e1890986f2"}]}],"author":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2025-12-08 06:45:03.000000000","tz":0},"committer":{"name":"Chandan Kumar (raukadah)","email":"chkumar@redhat.com","date":"2026-07-02 10:36:04.000000000","tz":330},"subject":"Add Playwright-based E2E testing framework","message":"Add Playwright-based E2E testing framework\n\nIntroduce end-to-end testing infrastructure using Playwright for browser\nautomation, enabling automated UI testing of Watcher Dashboard workflows.\n\nTest infrastructure (watcher_dashboard/test/integration/):\n- playwright_base.py: PlaywrightTestCase base class with browser lifecycle\n  management via fixtures, login/logout helpers, automatic API-driven\n  resource cleanup, screenshot capture, and video/trace recording support\n- playwright_config.py: Centralized configuration using environment variables\n  with @functools.cache memoization for settings (dashboard URL, credentials,\n  browser selection, timeouts, artifact directories, recording modes)\n- test_playwright_audit_workflow.py: Integration tests demonstrating audit\n  template creation, audit launch, and form validation workflow verification\n\nCI/CD integration:\n- tox.ini: New \u0027integration-playwright\u0027 environment with Playwright\n  dependencies, configurable browser selection, and headless mode for CI\n- .zuul.yaml: New \u0027watcher-dashboard-integration-tests-playwright\u0027 job\n  based on devstack with required Watcher services enabled (watcher-api,\n  watcher-decision-engine, watcher-applier)\n- playbooks/playwright/: Ansible playbooks (pre.yaml, run.yaml, post.yaml)\n  for CI job execution with devstack setup and artifact collection\n- Add .stestr.conf to run test.\n- Add `playwright` as a test dependencies.\n\nKey features:\n- Multi-browser support: Chromium, Firefox, and WebKit from single API\n- Auto-waiting for elements without explicit sleeps or waits\n- Video recording and trace capture for debugging test failures\n- Headless browser mode with CI-compatible Chrome flags (--no-sandbox)\n- UUID-based test isolation for parallel execution safety\n- Environment variable configuration for flexible deployment\n- Authentication state reuse to speed up test execution\n- Automatic screenshot capture at key test actions\n\nDesign considerations:\n- Use oslo-test, fixtures libraries to follow openstack testing\n  guidelines\n- Followed OpenStack pythonpti guidance to rely on unittest library\n- Using oslotest and fixtures for standard resource management\n- API-driven cleanup for test resources (audit templates, audits,\n  actionplan) using\n  python-watcherclient paired with unittest self.addCleanup callbacks\n\nDocumentation:\n- Comprehensive testing guide at doc/source/contributor/playwright-testing.rst\n  covering local setup, browser selection, recording modes, environment\n  variables, artifact locations, test architecture, and troubleshooting\n\nConfiguration changes:\n- .gitignore: Added .stestr/ and playwright/ directories to exclude\n  test runner state and Playwright artifacts from version control\n- pyproject.toml: Added UP031 to ruff ignore list to allow percent-style\n  string formatting in exceptions (OpenStack convention)\n\nDependencies:\n- test-requirements.txt: Added playwright, oslotest, oslo.utils, oslo.log,\n  and keystoneauth1 for browser automation and OpenStack API integration\n\nothers:\n- It fixes releasenotes target.\n\nUsage:\n  # Source credentials and run tests\n  source ~/repos/devstack/openrc admin admin\n  tox -e integration-playwright\n\n  # Select browser\n  PLAYWRIGHT_BROWSER\u003dchromium tox -e integration-playwright\n\n  # Enable video recording\n  PLAYWRIGHT_VIDEO\u003don tox -e integration-playwright\n\nArtifacts:\n  - Screenshots stored in playwright/screenshots/\u003ctest_id\u003e/\n  - Videos saved to playwright/videos/\n  - Traces saved to playwright/traces/ (viewable at trace.playwright.dev)\n\nInfo:\n  - \u0027playwright install\u0027 downloads browser binaries automatically\n  - \u0027playwright install-deps\u0027 installs system dependencies (requires sudo)\n  - Code generation: playwright codegen http://\u003chorizon-ip\u003e/dashboard/\n\nRun Locally:\n  cd /home/ubuntu/repos/watcher-dashboard \u0026\u0026 \\\n  source ~/repos/devstack/openrc admin admin \u0026\u0026 \\\n  tox -e integration-playwright\n\nNote: Cannot use horizon-integration-pytest job as it is hardcoded for\nSelenium. A custom job based on devstack was created instead.\n\nAssisted-By: Cursor (claude-4.5-opus-high)\n\nImplements: blueprint watcher-dashboard-unit-integration-testing\n\nChange-Id: Ieff793d1dd2c2c38ba54b88e35faab305ef7a678\nSigned-off-by: Chandan Kumar (raukadah) \u003cchkumar@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f25a7d27050acc0a0be202481bf0303dfcad59d0"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/f25a7d27050acc0a0be202481bf0303dfcad59d0"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
