)]}'
{"id":"openstack%2Fwatcher-dashboard~978302","triplet_id":"openstack%2Fwatcher-dashboard~master~Id55f3388931f4e848be3965def93234c11f5059f","project":"openstack/watcher-dashboard","branch":"master","topic":"service-layer-refactor","attention_set":{"11604":{"account":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"last_update":"2026-04-30 18:53:16.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{"26471":{"account":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"last_update":"2026-04-30 18:43:30.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"Id55f3388931f4e848be3965def93234c11f5059f","subject":"refactor: replace/annotate reflection helpers (A2-1)","status":"NEW","created":"2026-02-28 12:22:05.000000000","updated":"2026-04-30 18:53:16.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"fa693bf2d60202e54bbe5a2be551886692ff0c81","_number":978302,"virtual_id_number":978302,"owner":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-04-30 17:52:42.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":"","value":1,"default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"all":[{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":-1,"date":"2026-04-30 18:43:30.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":"","value":-1,"default_value":0,"optional":true},"Workflow":{"rejected":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"all":[{"value":-1,"date":"2026-04-30 18:44:18.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"_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,"permitted_voting_range":{"min":0,"max":2},"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},{"value":0,"permitted_voting_range":{"min":0,"max":1},"_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":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"}],"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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-28 12:22:55.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":"2026-02-28 12:34:46.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":"2026-02-28 15:27:42.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"}],"messages":[{"id":"63ccac59545231fdb55ee3855f8e7d631d97228a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-02-28 12:22:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1ac1489ae959fbb64497716279c9be292c8b71ef","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-28 12:22:55.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"6a805a2565628529dec9e140a861ffbb1f40a167","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-28 12:33:49.000000000","message":"Patch Set 1:\n\n(2 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/d57c6e9890924bfcb8f1c82ec1425c1d\n\n- teim-code-review https://zuul.teim.app/t/main/build/97e94bb8cb3447e88098cd83663f97c3 : SUCCESS in 10m 33s","accounts_in_message":[],"_revision_number":1},{"id":"07baaf7dd5164103ae79a92e910fccde35359345","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-28 12:34:46.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3df3c7b5e5bb4f988c9e94c186e862cf\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0863230e9c6b4d448600e5f7df3d399c : SUCCESS in 2m 48s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/0e212139cb964ee287f5ccee9c56be53 : SUCCESS in 4m 21s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/3d11cf8b67bc4b5dbd0180824f7af9f5 : SUCCESS in 4m 15s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/765a0b81c3cf4ba4b058c61021ae8fdc : SUCCESS in 2m 59s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/7a0558ed140648a8bba72258fe7c1c63 : SUCCESS in 3m 29s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a08c1f47c71e4463b23a48df23184e58 : FAILURE in 6m 33s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/278ac41877414c838c75a070907c0cdb : SUCCESS in 2m 21s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7f584ae548694d528bf8bec21939391a : SUCCESS in 3m 52s","accounts_in_message":[],"_revision_number":1},{"id":"472bf0b417073f8c88afe508ab2b0360eb2b61ca","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-02-28 15:27:42.000000000","message":"Patch Set 1: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/60d88a1d14ce4b27a45d8b63377064d4\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/c7974e717ffa426ba3ea5d0b817d6b0e : SUCCESS in 3h 03m 25s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/4a139f71859d4d04be1f02fb4c7df898 : SUCCESS in 2h 09m 21s","accounts_in_message":[],"_revision_number":1},{"id":"be176bca2ae4c4d87afc85f877287cfea7817d97","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:51:26.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1\n","accounts_in_message":[],"_revision_number":2},{"id":"6b4e1bfec9b4d4357c80f3f1a5c7f4aca90bffde","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-30 13:52:49.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"5da321ae5c57c37bbba52c5ff7a164a724296787","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:53:28.000000000","message":"Topic service-layer-pattern removed","accounts_in_message":[],"_revision_number":2},{"id":"a89b9d25c4171b49a94685b31e09d578e45b77c4","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-03-30 13:53:30.000000000","message":"Topic set to config-access","accounts_in_message":[],"_revision_number":2},{"id":"6f72cf5911bb6aeaebd34792674d837aa2d4067f","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-03-30 14:00:55.000000000","message":"Patch Set 2: 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/ea61996bfe99421f807efbcbd9e0ee35\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/cba9be584c4c4bb79ca7d15f0c54a3ed : FAILURE in 7m 49s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/bd47e0b4cff744848ee777cdff3da188 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":2},{"id":"790baf7c6327b5afe9f1d7c3bd832b4505de9b2a","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-30 14:17:22.000000000","message":"Patch Set 2: 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/c9d04123ebf3442ebad595e021499f33\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/1032438d1ced428db34ec260f5ff0b1d : SUCCESS in 4m 13s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/80a35f90183d4fadb0daf63886ce9bb8 : SUCCESS in 4m 19s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/2b4e4d8bb58340ee83ba0dbd7dd1bc23 : SUCCESS in 4m 38s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/529596bb84224d1593084febb3725c6f : FAILURE in 3m 54s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/65e31ca39bc54f91bbea7dac8a9a5550 : SUCCESS in 4m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/90a708184aa94cee9b2badbf78cc8b2b : FAILURE in 8m 05s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/64454a76c05c4a8a9e19c3a2b3776b54 : SUCCESS in 4m 37s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6f6c9da054134c6e8ef9c3db1f51f4df : FAILURE in 6m 08s","accounts_in_message":[],"_revision_number":2},{"id":"c6a4a5a204b94b6f74a4365b98f8ce22dfae082b","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-30 15:47:22.000000000","message":"Patch Set 2:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/512f0cad60f84684ba155cb05db9f93a\n\n- teim-code-review https://zuul.teim.app/t/main/build/e25382869608470ba7240f7226e1d2d8 : SUCCESS in 9m 02s","accounts_in_message":[],"_revision_number":2},{"id":"b6f66c0fc9fbdf70653036eadfa79b22002b0426","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-04 00:52:13.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"3570bc3ddb6b32906f2e7f0dca1ccb7df7a6129d","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-04 00:53:33.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"2dfad07f53aaff416a8be3012e8caf9e5d898f24","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-04 01:11:04.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4996414851244de59e248a34851bb5c7\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/85a445cc0dc54c9b97f6f63e1c4a3365 : SUCCESS in 4m 05s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/85177e8d770d4e14a4ae96c9a9b65525 : SUCCESS in 4m 18s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/552a2659a9534d30bd566b9553226ca4 : SUCCESS in 4m 23s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0d80348bab1a4cde8d16b3f9d6fb0569 : SUCCESS in 3m 12s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/ef0fcc55ffd84054b92349278e5bd775 : SUCCESS in 3m 53s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/da604c1c8499413cb4a2bf9a81d6570b : FAILURE in 7m 09s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8a130af90bd148cea2fcb8a203160254 : SUCCESS in 2m 17s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/62d4a376321a437aa4229dc6e441027c : SUCCESS in 7m 33s","accounts_in_message":[],"_revision_number":3},{"id":"a5dd05d2a8df82ce2329480abcb7f6c98849cc8e","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-04 01:56:20.000000000","message":"Patch Set 3:\n\n(3 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/c63104b8d97c491c87d673338957327f\n\n- teim-code-review https://zuul.teim.app/t/main/build/1d86df1f622749c1be338249a5e11ab0 : SUCCESS in 7m 27s","accounts_in_message":[],"_revision_number":3},{"id":"526a14f65f936f60624a75ac963e1b090b97555e","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-04 04:00:45.000000000","message":"Patch Set 3: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/2ac6f27075894e6ebb9b3af62f239852\n\n- openstack-meta-content-provider-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/3df6fd02b7ec433d893d8b068bab8e40 : SUCCESS in 3h 06m 41s\n- watcher-operator-validation-master https://softwarefactory-project.io/zuul/t/rdoproject.org/build/7678295135a546f384b706e0517714f5 : SUCCESS in 2h 09m 23s","accounts_in_message":[],"_revision_number":3},{"id":"52198b019f96554e41deb78b2fa61ca8843aba48","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-30 17:31:42.000000000","message":"Uploaded patch set 4.\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":4},{"id":"fb084536a02132c21b8f3c4ee9c25dad810bf0bc","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-30 17:32:30.000000000","message":"Patch Set 4:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":4},{"id":"f5c054344b37d623f23584706eed0d6d6edea9f5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-30 17:52:42.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5e29753e23be489abfb12235045324bb\n\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/ae318f93950946f5bef9be2d01b33384 : SUCCESS in 4m 04s\n- horizon-tox-python3-django42 https://zuul.opendev.org/t/openstack/build/8f3b74ef1d994dd583819cded7ec141a : SUCCESS in 4m 03s\n- horizon-tox-python3-django52 https://zuul.opendev.org/t/openstack/build/846218d6aea74fe996ad314d38198a74 : SUCCESS in 5m 51s (non-voting)\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6ad242e149fb4cc38e1374b2ea4586c4 : SUCCESS in 4m 54s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/19ca62e44031453194407c719735a9cd : SUCCESS in 5m 29s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/5c06ba009d684c01945f8476d533f280 : FAILURE in 6m 58s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/29e3439ca5a24742a373fd6006f75e33 : SUCCESS in 4m 01s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/652b1b20f6564e62af2edb2a1709b66e : SUCCESS in 7m 09s","accounts_in_message":[],"_revision_number":4},{"id":"b778f2e3c8abd837e7d4ac148949bfb3cb38c997","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-04-30 18:43:30.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://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdo/buildset/99241ed3625d4214ad2e7f4e982884c8\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdo/build/a1e419748f1144b5bee90e608de1c5b2 : SUCCESS in 1h 10m 16s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdo/build/fd7b529966a64766b058d99b448d5f58 : FAILURE in 25m 56s","accounts_in_message":[],"_revision_number":4},{"id":"afe8b987269bde56306298258eee0cae2d99950a","author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"date":"2026-04-30 18:44:18.000000000","message":"Patch Set 4: Workflow-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"fa693bf2d60202e54bbe5a2be551886692ff0c81","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-30 18:53:16.000000000","message":"Patch Set 4:\n\n(4 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/88d6e471e8d7403d934169d40f0312c1\n\n- teim-code-review https://zuul.teim.app/t/main/build/56406b6c8c1946a3b00d3e465fe3748e : SUCCESS in 12m 44s\n\nWarning:\n  Comments left for invalid file watcher_dashboard/api/watcher.py","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"3557a8f7087a95d689b2f26f9e8833ba3d5dc68e","revisions":{"97a398ecfc60c16c9e49c7365eee52419d670c22":{"kind":"REWORK","_number":1,"created":"2026-02-28 12:22:05.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/02/978302/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/02/978302/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/1"}}},"commit":{"parents":[{"commit":"4d595335a3bb947ed77d57a3efcb8f478ecb835e","subject":"refactor: centralise Django settings access in config.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/4d595335a3bb947ed77d57a3efcb8f478ecb835e"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 21:16:17.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-28 12:09:03.000000000","tz":0},"subject":"refactor: replace/annotate reflection helpers (A2-1)","message":"refactor: replace/annotate reflection helpers (A2-1)\n\nReplace getattr calls where the attribute is declared in the wrapper\nclass _attrs tuple with direct attribute access:\n\n  audit_templates/views.py, audit_templates/forms.py:\n    getattr(strategy, \u0027display_name\u0027, None) or getattr(strategy, \u0027name\u0027, \u0027\u0027)\n    -\u003e strategy.display_name or strategy.name\n\n  action_plans/tables.py:\n    getattr(datum, \"audit_uuid\", None) -\u003e datum.audit_uuid\n\n  actions/tables.py:\n    getattr(datum, \"action_plan_uuid\", None) -\u003e datum.action_plan_uuid\n\nAnnotate intentional reflection with inline comments so project-wide\ngrep finds zero uncommented getattr/hasattr/setattr outside tests:\n\n  strategies/views.py: parameters_spec optional API field\n  audits/views.py: parameters optional field; hasattr guard for\n    parameters_spec extracted to named variable\n  audits/forms.py: http_status watcherclient exception attribute\n  audit_templates/forms.py: hasattr unbound form guard\n  utils/utils.py: getattr calls extracted to val variables with\n    dynamic attr comments; indexing function converted to dict\n    comprehension\n\nGenerated-By: claude-code sonnet 4.6\nChange-Id: Id55f3388931f4e848be3965def93234c11f5059f\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/97a398ecfc60c16c9e49c7365eee52419d670c22"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/97a398ecfc60c16c9e49c7365eee52419d670c22"}]},"branch":"refs/heads/master"},"75b22d92f9972014a62e3085dd95c370628f5c3b":{"kind":"REWORK","_number":2,"created":"2026-03-30 13:51:26.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/02/978302/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/02/978302/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/2"}}},"commit":{"parents":[{"commit":"97a6e1e2de27477e4d216158cc21db6626f84263","subject":"refactor: centralise Django settings access in config.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/97a6e1e2de27477e4d216158cc21db6626f84263"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 21:16:17.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-03-30 13:51:08.000000000","tz":60},"subject":"refactor: replace/annotate reflection helpers (A2-1)","message":"refactor: replace/annotate reflection helpers (A2-1)\n\nReplace getattr calls where the attribute is declared in the wrapper\nclass _attrs tuple with direct attribute access:\n\n  audit_templates/views.py, audit_templates/forms.py:\n    getattr(strategy, \u0027display_name\u0027, None) or getattr(strategy, \u0027name\u0027, \u0027\u0027)\n    -\u003e strategy.display_name or strategy.name\n\n  action_plans/tables.py:\n    getattr(datum, \"audit_uuid\", None) -\u003e datum.audit_uuid\n\n  actions/tables.py:\n    getattr(datum, \"action_plan_uuid\", None) -\u003e datum.action_plan_uuid\n\nAnnotate intentional reflection with inline comments so project-wide\ngrep finds zero uncommented getattr/hasattr/setattr outside tests:\n\n  strategies/views.py: parameters_spec optional API field\n  audits/views.py: parameters optional field; hasattr guard for\n    parameters_spec extracted to named variable\n  audits/forms.py: http_status watcherclient exception attribute\n  audit_templates/forms.py: hasattr unbound form guard\n  utils/utils.py: getattr calls extracted to val variables with\n    dynamic attr comments; indexing function converted to dict\n    comprehension\n\nGenerated-By: claude-code sonnet 4.6\nChange-Id: Id55f3388931f4e848be3965def93234c11f5059f\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/75b22d92f9972014a62e3085dd95c370628f5c3b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/75b22d92f9972014a62e3085dd95c370628f5c3b"}]},"branch":"refs/heads/master"},"343dfb82b7c1a4840c4b4c7c5839e254dc99f85f":{"kind":"REWORK","_number":3,"created":"2026-04-04 00:52:13.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/02/978302/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/02/978302/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/3"}}},"commit":{"parents":[{"commit":"6bf0ac6676d604ccf12478788382a9e9a33ae116","subject":"refactor: centralise Django settings access in config.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/6bf0ac6676d604ccf12478788382a9e9a33ae116"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 21:16:17.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-04-04 00:49:03.000000000","tz":60},"subject":"refactor: replace/annotate reflection helpers (A2-1)","message":"refactor: replace/annotate reflection helpers (A2-1)\n\nReplace getattr calls where the attribute is declared in the wrapper\nclass _attrs tuple with direct attribute access:\n\n  audit_templates/views.py, audit_templates/forms.py:\n    getattr(strategy, \u0027display_name\u0027, None) or getattr(strategy, \u0027name\u0027, \u0027\u0027)\n    -\u003e strategy.display_name or strategy.name\n\n  action_plans/tables.py:\n    getattr(datum, \"audit_uuid\", None) -\u003e datum.audit_uuid\n\n  actions/tables.py:\n    getattr(datum, \"action_plan_uuid\", None) -\u003e datum.action_plan_uuid\n\nAnnotate intentional reflection with inline comments so project-wide\ngrep finds zero uncommented getattr/hasattr/setattr outside tests:\n\n  strategies/views.py: parameters_spec optional API field\n  audits/views.py: parameters optional field; hasattr guard for\n    parameters_spec extracted to named variable\n  audits/forms.py: http_status watcherclient exception attribute\n  audit_templates/forms.py: hasattr unbound form guard\n  utils/utils.py: getattr calls extracted to val variables with\n    dynamic attr comments; indexing function converted to dict\n    comprehension\n\nGenerated-By: claude-code sonnet 4.6\nChange-Id: Id55f3388931f4e848be3965def93234c11f5059f\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/343dfb82b7c1a4840c4b4c7c5839e254dc99f85f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/343dfb82b7c1a4840c4b4c7c5839e254dc99f85f"}]},"branch":"refs/heads/master"},"3557a8f7087a95d689b2f26f9e8833ba3d5dc68e":{"kind":"REWORK","_number":4,"created":"2026-04-30 17:31:42.000000000","uploader":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"ref":"refs/changes/02/978302/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher-dashboard","ref":"refs/changes/02/978302/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher-dashboard refs/changes/02/978302/4"}}},"commit":{"parents":[{"commit":"0caf38892b8f11064c84a5752327b6c042a8485e","subject":"refactor: centralise Django settings access in config.py","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/0caf38892b8f11064c84a5752327b6c042a8485e"}]}],"author":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-02-27 21:16:17.000000000","tz":0},"committer":{"name":"Sean Mooney","email":"work@seanmooney.info","date":"2026-04-30 16:32:36.000000000","tz":60},"subject":"refactor: replace/annotate reflection helpers (A2-1)","message":"refactor: replace/annotate reflection helpers (A2-1)\n\nReplace getattr calls where the attribute is declared in the wrapper\nclass _attrs tuple with direct attribute access:\n\n  audit_templates/views.py, audit_templates/forms.py, audits/views.py:\n    getattr(strategy, \u0027display_name\u0027, None) or getattr(strategy, \u0027name\u0027, \u0027\u0027)\n    -\u003e strategy.display_name or strategy.name\n\n  action_plans/tables.py:\n    getattr(datum, \"audit_uuid\", None) -\u003e datum.audit_uuid\n\n  actions/tables.py:\n    getattr(datum, \"action_plan_uuid\", None) -\u003e datum.action_plan_uuid\n\nAnnotate intentional reflection with inline comments so project-wide\ngrep finds zero uncommented getattr/hasattr/setattr outside tests:\n\n  strategies/views.py: parameters_spec optional API field\n  audits/views.py: parameters optional field; hasattr guard for\n    parameters_spec extracted to named variable\n  audits/forms.py: http_status watcherclient exception attribute\n  audit_templates/forms.py: hasattr unbound form guard\n  utils/utils.py: getattr calls extracted to val variables with\n    dynamic attr comments; indexing function converted to dict\n    comprehension\n\nAssisted-By: claude-code sonnet 4.6\nChange-Id: Id55f3388931f4e848be3965def93234c11f5059f\nSigned-off-by: Sean Mooney \u003cwork@seanmooney.info\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3557a8f7087a95d689b2f26f9e8833ba3d5dc68e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher-dashboard/commit/3557a8f7087a95d689b2f26f9e8833ba3d5dc68e"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","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":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"}},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review Priority","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":["label:Workflow\u003dMIN"],"failing_atoms":["label:Workflow\u003dMAX"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
