)]}'
{".gitignore":[{"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"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"e13a7e879cc5d80974517a753a6a96f3c2438ffa","unresolved":false,"context_lines":[{"line_number":73,"context_line":"# Desktop Service Store"},{"line_number":74,"context_line":"*.DS_Store"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# Autogenerated sample config/policy file"},{"line_number":77,"context_line":"etc/watcher/watcher.conf.sample"},{"line_number":78,"context_line":"etc/watcher/policy.yaml.sample"},{"line_number":79,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"0bd82ba4_4268d868","line":76,"updated":"2026-06-20 14:49:32.000000000","message":"The .gitignore comment was updated from \u0027Autogenerated sample config file\u0027 to \u0027Autogenerated sample config/policy file\u0027 which is good, but the two entries could benefit from a sub-comment clarifying which tox env generates each.\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Improved developer onboarding by making it clear that watcher.conf.sample is generated by tox -e genconfig and policy.yaml.sample by tox -e genpolicy.\n\n**Recommendation**:\nConsider adding brief inline comments next to each entry, e.g. \u0027# tox -e genconfig\u0027 and \u0027# tox -e genpolicy\u0027, or leave as-is since the file names are self-documenting for experienced OpenStack developers.","commit_id":"121f563116989449dc9c53d8867568714fbc9595"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"bc336015648f14af350ee9bdba0b2cf8515b05d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"615ef3e1_b252e848","updated":"2026-06-11 12:02:08.000000000","message":"check-rdo","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"11194d48bba56de07ed77a1b9456d3649b2add4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d7e90f43_934f895e","updated":"2026-06-10 13:35:20.000000000","message":"check-rdo","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"f920bfae4e57cf1d792a469c86013e44c362384c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fcd2f7b7_1e73f920","updated":"2026-06-11 05:52:39.000000000","message":"check-rdo","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"aa9a061a519eac52c5318fb1e089eee60f7aa146","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"27f972a5_6cfc32be","updated":"2026-06-18 07:43:04.000000000","message":"recheck","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"c1c6416b9478d561d3408a6352b845742c364245","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"486cce4b_a2d2b349","updated":"2026-06-22 08:53:24.000000000","message":"recheck","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"e32b05b4630ef0c1b2de12b484422dbbda132b42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4fdababa_d6658cbd","updated":"2026-06-18 10:26:40.000000000","message":"recheck","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"423e8402a55efbc9fa60138315c890175d20e5f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6ef93aa2_221e54ff","updated":"2026-07-09 08:16:54.000000000","message":"recheck","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a51b8e578b287faaa01ed1577588939eb75a5637","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9f6a18ea_937fe22f","updated":"2026-06-17 14:41:25.000000000","message":"recheck","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"28cbf3d3fe54b533552c514d20e0cafa09a61cbb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"af7166e5_9679e63a","updated":"2026-06-20 14:39:30.000000000","message":"recheck","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"change_message_id":"d2a0611a88ddfd3993467a9faa9c21dc3a753528","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f326e649_6c2e912c","updated":"2026-06-17 15:57:05.000000000","message":"recheck","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"9f558f927fb87e1514b9667c2c14529122c8ceb7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4866f093_6e95c9a7","updated":"2026-06-18 12:56:44.000000000","message":"recheck some jobs timedout while running tempest","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"478068a213d8d0cdfdf798e2fff78fcd73233cb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f2fab502_ef651d08","updated":"2026-06-21 06:03:03.000000000","message":"recheck timeout...","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"change_message_id":"75687d54556b0e9c8a1d1f4d88a5bb044874788b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"570a79f4_9064aabf","updated":"2026-07-09 13:00:29.000000000","message":"recheck unrelated failure","commit_id":"121f563116989449dc9c53d8867568714fbc9595"}],"devstack/lib/watcher":[{"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"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"acb28e4a9f11a024dfe13bf639e70e5e712b5f9e","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"WATCHER_CONF_DIR\u003d/etc/watcher"},{"line_number":41,"context_line":"WATCHER_CONF\u003d$WATCHER_CONF_DIR/watcher.conf"},{"line_number":42,"context_line":"WATCHER_POLICY_YAML\u003d$WATCHER_CONF_DIR/policy.yaml.sample"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"WATCHER_DEVSTACK_DIR\u003d$WATCHER_DIR/devstack"},{"line_number":45,"context_line":"WATCHER_DEVSTACK_FILES_DIR\u003d$WATCHER_DEVSTACK_DIR/files"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"1fc56d2b_a51e1e59","line":42,"updated":"2026-06-21 06:14:30.000000000","message":"Stale WATCHER_POLICY_YAML reference: the variable still points to /etc/watcher/policy.yaml.sample but that file is no longer generated after removing the oslopolicy-sample-generator call\n\n**Severity**: HIGH | **Confidence**: 0.9\n\n**Risk**: Devstack deployments will configure watcher.conf with oslo_policy policy_file pointing to a non-existent file. While oslo.policy silently falls back to registered defaults, this is misleading and makes debugging policy issues harder.\n\n**Priority**: Before merge\n**Why This Matters**: The removed code in configure_watcher was the only place that generated /etc/watcher/policy.yaml.sample. With it gone, the WATCHER_POLICY_YAML variable at line 42 and its usage in create_watcher_conf at line 130 reference a phantom file. Either remove these stale references entirely or update them to reflect the new generation path.\n\n**Recommendation**:\nRemove the WATCHER_POLICY_YAML variable definition (line 42) and the iniset call for oslo_policy policy_file (line 130) from devstack/lib/watcher, since the policy file is no longer generated during devstack setup. Alternatively, if the policy file is still desired in devstack, generate it from the source tree using the relative path and copy it to /etc/watcher.","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"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"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"e13a7e879cc5d80974517a753a6a96f3c2438ffa","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"WATCHER_CONF_DIR\u003d/etc/watcher"},{"line_number":41,"context_line":"WATCHER_CONF\u003d$WATCHER_CONF_DIR/watcher.conf"},{"line_number":42,"context_line":"WATCHER_POLICY_YAML\u003d$WATCHER_CONF_DIR/policy.yaml.sample"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"WATCHER_DEVSTACK_DIR\u003d$WATCHER_DIR/devstack"},{"line_number":45,"context_line":"WATCHER_DEVSTACK_FILES_DIR\u003d$WATCHER_DEVSTACK_DIR/files"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"07c2aedf_84326f49","line":42,"updated":"2026-06-20 14:49:32.000000000","message":"WATCHER_POLICY_YAML and its iniset reference are now stale. The variable on line 42 points to /etc/watcher/policy.yaml.sample, but nothing in devstack creates that file anymore since the oslopolicy-sample-generator call was removed.\n\n**Severity**: WARNING | **Confidence**: 0.9\n\n**Impact**: The watcher.conf will contain oslo_policy.policy_file \u003d /etc/watcher/policy.yaml.sample pointing to a nonexistent file. oslo.policy silently falls back to default rules, so there is no functional breakage, but the stale configuration is misleading and could confuse operators debugging policy issues.\n\n**Suggestion**:\nEither remove the WATCHER_POLICY_YAML variable and the corresponding iniset on line 130 entirely, or update the variable and devstack logic to generate the policy file in the correct location. If the intent is to rely on default policies from code, removing the iniset override is the cleaner approach.","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"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"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"acb28e4a9f11a024dfe13bf639e70e5e712b5f9e","unresolved":false,"context_lines":[{"line_number":90,"context_line":"}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"# configure_watcher() - Set config files, create data dirs, etc"},{"line_number":93,"context_line":"function configure_watcher {"},{"line_number":94,"context_line":"    # Put config files in ``/etc/watcher`` for everyone to find"},{"line_number":95,"context_line":"    sudo install -d -o $STACK_USER $WATCHER_CONF_DIR"},{"line_number":96,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"0840d1ed_65dc2fa3","line":93,"updated":"2026-06-21 06:14:30.000000000","message":"Consider adding a comment in devstack/lib/watcher explaining that oslo.policy uses registered defaults and no sample policy file needs to be generated during devstack setup\n\n**Severity**: SUGGESTION | **Confidence**: 0.7\n\n**Benefit**: Future maintainers will understand why policy generation was removed and that the missing policy_file is intentional, preventing confusion or accidental reintroduction of the old code.\n\n**Recommendation**:\nAdd a brief comment in configure_watcher or create_watcher_conf noting that oslo.policy registered defaults are sufficient for devstack and no sample policy file generation is needed.","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"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"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"e13a7e879cc5d80974517a753a6a96f3c2438ffa","unresolved":false,"context_lines":[{"line_number":90,"context_line":"}"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"# configure_watcher() - Set config files, create data dirs, etc"},{"line_number":93,"context_line":"function configure_watcher {"},{"line_number":94,"context_line":"    # Put config files in ``/etc/watcher`` for everyone to find"},{"line_number":95,"context_line":"    sudo install -d -o $STACK_USER $WATCHER_CONF_DIR"},{"line_number":96,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"f1b7af32_2968611a","line":93,"updated":"2026-06-20 14:49:32.000000000","message":"The commit message says the devstack logic \u0027is not actually used\u0027 without explaining why the policy generation was dead code. The old code generated the file at /etc/watcher/policy.yaml.sample which WATCHER_POLICY_YAML references.\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Without clear documentation of why the devstack policy generation was dead code, future maintainers may not understand the rationale. If the file was being generated elsewhere or oslo.policy defaults suffice, this should be stated.\n\n**Suggestion**:\nExpand the commit message or add a code comment in configure_watcher noting that policy generation is handled by oslo.policy defaults from code, making the explicit generation step unnecessary.","commit_id":"121f563116989449dc9c53d8867568714fbc9595"},{"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"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"acb28e4a9f11a024dfe13bf639e70e5e712b5f9e","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    iniset $WATCHER_CONF database connection $(database_connection_url watcher)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"    iniset $WATCHER_CONF oslo_policy policy_file $WATCHER_POLICY_YAML"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    iniset $WATCHER_CONF oslo_messaging_notifications driver \"messagingv2\""},{"line_number":133,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"70f00255_6692c318","line":130,"updated":"2026-06-21 06:14:30.000000000","message":"Commit message claims the devstack policy injection is \u0027not actually used\u0027 but WATCHER_POLICY_YAML is still referenced in create_watcher_conf to set oslo_policy policy_file\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: The iniset call at line 130 writes policy_file \u003d /etc/watcher/policy.yaml.sample into watcher.conf during devstack setup, but the file does not exist. This contradicts the commit message claim that the injection logic is unused.\n\n**Suggestion**:\nEither remove the iniset call for oslo_policy policy_file from create_watcher_conf, or clarify in the commit message that oslo.policy falls back to defaults when the configured file is absent.","commit_id":"121f563116989449dc9c53d8867568714fbc9595"}],"etc/watcher/oslo-policy-generator/watcher-policy-generator.conf":[{"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"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"acb28e4a9f11a024dfe13bf639e70e5e712b5f9e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":"output_file \u003d etc/watcher/policy.yaml.sample"},{"line_number":3,"context_line":"namespace \u003d watcher"}],"source_content_type":"text/plain","patch_set":3,"id":"ad7f6c43_49844438","line":2,"updated":"2026-06-21 06:14:30.000000000","message":"No release note added for a user-facing behavioral change: the genpolicy output path changed from /etc/watcher/policy.yaml.sample to a relative etc/watcher/policy.yaml.sample\n\n**Severity**: WARNING | **Confidence**: 0.8\n\n**Impact**: Operators who run tox -e genpolicy will find the output file in a different location than before. This is a behavioral change visible to users.\n\n**Suggestion**:\nAdd a release note under releasenotes/notes/ describing the change in output path for the genpolicy tox environment, so operators are aware of the new relative path behavior.","commit_id":"121f563116989449dc9c53d8867568714fbc9595"}]}
