)]}'
{"id":"openstack%2Fwatcher~995119","triplet_id":"openstack%2Fwatcher~master~I6b7e6492794b5b77776b7accc8753e10a4de2815","project":"openstack/watcher","branch":"master","topic":"bp/audit-pipeline","attention_set":{"34452":{"account":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"last_update":"2026-07-31 12:57:40.000000000","reason":"\u003cGERRIT_ACCOUNT_30002\u003e replied on the change","reason_account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}},"16312":{"account":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"last_update":"2026-07-29 11:57:07.000000000","reason":"\u003cGERRIT_ACCOUNT_30002\u003e replied on the change","reason_account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}}},"removed_from_attention_set":{"30002":{"account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"last_update":"2026-07-29 11:57:07.000000000","reason":"\u003cGERRIT_ACCOUNT_30002\u003e replied on the change","reason_account":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}},"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-01 13:26:31.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"I6b7e6492794b5b77776b7accc8753e10a4de2815","subject":"Add metric cache to DataSourceBase","status":"NEW","created":"2026-06-26 18:00:58.000000000","updated":"2026-07-31 12:57:40.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":31,"unresolved_comment_count":6,"has_review_started":true,"meta_rev_id":"e9422e212da40c40e20ed4959df044d96c8229ea","_number":995119,"virtual_id_number":995119,"owner":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"_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-07-10 22:03:25.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":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"value":-1,"date":"2026-07-10 20:12:35.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":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"all":[{"value":-1,"date":"2026-07-29 11:57:07.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"_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":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},{"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"},"default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},{"_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"}],"REVIEWER":[{"_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"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-06-26 18:01:08.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-06-26 20:10:36.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-06-26 20:58:26.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":"2026-06-29 12:03:00.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":"CC"},{"updated":"2026-07-31 12:41:17.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"}],"messages":[{"id":"bb237cf5cc62ca679f2844d9b6653810b7df9ef8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-06-26 18:00:58.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"1e4b2c4d5129584a9eaeec608fa918d442fb7865","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-26 18:01:08.000000000","message":"Patch Set 1:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":1},{"id":"f5f5275fe425d99eb4a4b9a02b70cce8295b8d6d","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-26 18:36:15.000000000","message":"Patch Set 1:\n\n(4 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/ae073ad51c374b65ab7178fdb6b1d89c\n\n- teim-code-review https://zuul.teim.app/t/main/build/b465b6a1e1b74511953512643b72fc60 : SUCCESS in 16m 40s\n\nWarning:\n  The metric cache is unbounded and never invalidated. The datasource backend is created lazily (DataSourceManager.get_backend) and held on the strategy context for its lifetime; no code resets _metric_cache between audits. Impact: For a long-lived decision-engine process the cache grows monotonically and can serve metrics computed in a prior audit to a later one (stale cross-audit data), which is especially dangerous for the audit-pipeline cascade use case the commit targets. Recommendation: Add an explicit cache-clear/reset hook (e.g. a clear_metric_cache() method) invoked at audit boundaries, or bound the cache (e.g. functools.lru_cache / size limit). At minimum document the expected cache lifetime and who is responsible for resetting it.\n  Broad except AttributeError around resource.uuid: any unrelated AttributeError raised while evaluating resource.uuid (e.g. a property that internally fails) is swallowed and logged as a missing-uuid, masking real bugs. Impact: A resource whose uuid is a property that raises AttributeError for a non-uuid reason will silently fall to the uncached path with a misleading warning, and the underlying bug is hidden. Recommendation: Consider using getattr(resource, \u0027uuid\u0027, None) and branching on None, which avoids catching unrelated AttributeErrors from property bodies.","accounts_in_message":[],"_revision_number":1},{"id":"e287b88b14ba017f3ad5f93769bb1edaaa092535","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-26 20:10:36.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/235b9668e38e40cfaa024f0f43d69909\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/bdb9d4ac6d0d4faab9ee12e7b76260b6 : SUCCESS in 9m 22s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/259ec1c9e9e44956993801adf0541917 : SUCCESS in 4m 23s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/dce681a9f6ac434d853a501b57500910 : SUCCESS in 5m 54s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/40646553813f485ab50bfe8b32505dc6 : SUCCESS in 5m 35s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/9b86e020e2114c91b4f73617bef4ba5e : SUCCESS in 8m 28s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/eded75bb9deb458ea9869c9a488a8bbc : SUCCESS in 9m 50s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/43880a8ddb7045aca426ec9946278793 : SUCCESS in 4m 53s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/86669c8e04634cdbb91a8a2696edbea4 : SUCCESS in 5m 30s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/12c363f46078473ea899d49fb63dc774 : SUCCESS in 53m 35s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3d04c0bb3efa413bb12074dd05970be6 : SUCCESS in 1h 03m 55s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/86074c5a7197465f8d588be917407f3b : SUCCESS in 48m 54s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/0340daafde284bdfb97f2644fe96dcb0 : SUCCESS in 2h 00m 39s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/fb7170b0ba4a4d0690c311aa994d723f : SUCCESS in 1h 59m 33s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/2ebb7b141a99418eb0050cc54319872d : SUCCESS in 2h 02m 08s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/c6ff4ed0e8d241efbf8b07c3f80cae33 : SUCCESS in 2h 01m 30s","accounts_in_message":[],"_revision_number":1},{"id":"7d9a11ede4f133cfa1596f91c12b9d74db26633c","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-06-26 20:58:26.000000000","message":"Patch Set 1: Code-Review+1\n\nBuild succeeded (check pipeline).\nhttps://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/4e3356b6cc054233a1c7469632f4fac8\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/a70ffede0cba4b478c0fc6962cc1be29 : SUCCESS in 2h 55m 54s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/678b2b4bb13c414fad59cd69993f92f5 : SUCCESS in 2h 12m 12s","accounts_in_message":[],"_revision_number":1},{"id":"ad39057fb0b568480b787058c960d7138cee4414","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-06-29 12:03:00.000000000","message":"Patch Set 1:\n\n(4 comments)","accounts_in_message":[],"_revision_number":1},{"id":"cd8af3dc6b3c33016d5e9af223a8231856ab0678","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-06-30 13:40:53.000000000","message":"Patch Set 1:\n\n(8 comments)","accounts_in_message":[],"_revision_number":1},{"id":"c403db7093edcf5c16ba390f72891a6a2c587cb3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-07-01 13:26:21.000000000","message":"Uploaded patch set 2: Patch Set 1 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":2},{"id":"0718765a32c204e3466fe4981a666dee9536b355","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:26:31.000000000","message":"Patch Set 2:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":2},{"id":"66da5ebe8895db30fa35f18405da3960d2d43dab","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-07-01 13:36:57.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://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/buildset/9d4a7b8363a748abbfa6f4e693dd8958\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/b136a4e9c99444b194a60142c689964c : FAILURE in 9m 29s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/27b67021173c4b0bacb4b1ecade91452 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":2},{"id":"52ecb22044f80043b1839dc899a6d598edd49314","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:01:31.000000000","message":"Patch Set 2:\n\n(8 comments)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/cb819e19acf44a99af71e0dde71ff83b\n\n- teim-code-review https://zuul.teim.app/t/main/build/a39c4c46be0a45af99065d1f2a082cc1 : SUCCESS in 17m 25s\n\nWarning:\n  The aetos.py datasource (AetosHelper) subclasses PrometheusBase and was NOT modified in this patch, yet it is affected by the change. It inherits _statistic_aggregation from PrometheusBase and gets _metric_cache initialized via the super().__init__() chain, so it picks up caching automatically. Impact: AetosHelper is correctly covered by the inheritance chain and does not need a code change. However, its documentation (aetos.rst) was updated while aetos.py itself was not, which is correct but worth confirming that the AetosHelper test suite exercises the cached path. Recommendation: Confirm that test_aetos_helper.py exercises statistic_aggregation through the cache. The current test_aetos_helper.py only tests config getters and _setup_prometheus_client, so the cached statistic_aggregation path for Aetos is entirely untested. Consider adding an integration test.","accounts_in_message":[],"_revision_number":2},{"id":"e5eff403874b5c68a21ae3c95adef0317e0b4291","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-01 15:43:05.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ae51baff0ff34972966f7999ea811bee\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/776a79cf8337409884d7804c4bd7a8bb : SUCCESS in 6m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c76a0b30f1584f81bc6dd471749d97f9 : SUCCESS in 3m 54s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/171584e9fb3e488f87e5f453649a677f : SUCCESS in 4m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/00dd73ec759749d99fd1af07ffef185b : SUCCESS in 5m 21s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/69f49a34033f4671823eeb5279e79cb3 : SUCCESS in 10m 18s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d3c7cc47e8a44717a7be68ec9a276a57 : SUCCESS in 8m 53s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/6547eebd61c84908875d9747a8acb569 : SUCCESS in 4m 43s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/9fe74fc526f949b4aba911fe9085a50e : SUCCESS in 4m 40s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/1e412549223b40dab44c5b6363461814 : SUCCESS in 46m 47s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/d88bdea081ec468195951e0e49ccaab8 : SUCCESS in 26m 46s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/25ba1eec39f34187a1319b4f553d546f : SUCCESS in 36m 40s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/7417194d20bb4044914d8a395a644637 : SUCCESS in 2h 04m 05s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/0d9ff2b319704114adddbc0e782c74dd : SUCCESS in 1h 08m 43s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/b7fb3bf4510a4abc8c244b67f98873f2 : SUCCESS in 1h 09m 25s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/cfca32ba94054335be242732e453ba2e : SUCCESS in 1h 57m 23s","accounts_in_message":[],"_revision_number":2},{"id":"3d0c59dc35bc9de0bb42731f62674cddf3ed544c","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-07-10 20:00:42.000000000","message":"Uploaded patch set 3: Patch Set 2 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":3},{"id":"e2b7866c648207379f4ea08fe1a142d940511064","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-10 20:00:54.000000000","message":"Patch Set 3:\n\nStarting automatic-ci jobs.","accounts_in_message":[],"_revision_number":3},{"id":"b384ae2832c6981e69499ac110fe02fa30e39f0b","author":{"_account_id":26471,"name":"Software Factory CI","email":"softwarefactory-operations-team@redhat.com","username":"sf-project-io"},"date":"2026-07-10 20:12:35.000000000","message":"Patch Set 3: 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/ef831d6b17924c7aaf8bd0d17f533003\n\n- openstack-meta-content-provider-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/3a37fb2246734bc0b4cf3933463f7d21 : FAILURE in 10m 37s\n- watcher-operator-validation-master https://gateway-cloud-softwarefactory.apps.ocp.cloud.ci.centos.org/zuul/t/rdoproject.org/build/92032769f5f0488d9b137ec4c6b97115 : SKIPPED Skipped due to failed job openstack-meta-content-provider-master","accounts_in_message":[],"_revision_number":3},{"id":"05df39f035332012aa5557962c7985a08596378b","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-10 20:24:52.000000000","message":"Patch Set 3:\n\n(1 comment)\n\nBuild succeeded (automatic-ci pipeline).\nhttps://zuul.teim.app/t/main/buildset/604cddc4da9649e2a01e0c98f8b06254\n\n- teim-code-review https://zuul.teim.app/t/main/build/873839b43ed04773a485219e00af892d : SUCCESS in 8m 08s","accounts_in_message":[],"_revision_number":3},{"id":"b8c43d1a38b5fad19974505cbbfdbe62c7f6026d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-10 22:03:25.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3680fb8b99ee4d4e8fad8b2ccf59e051\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/de1b007206f94e4ab8b1393711e09cb2 : SUCCESS in 4m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4d70ec6482d140f3a5f85d5b496f0f21 : SUCCESS in 4m 20s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/1c613633631c4bb8b87e71b975e933ae : SUCCESS in 3m 33s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/338bc49cf9e641e698fa1c0c8dc1bb37 : SUCCESS in 4m 55s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a0f1ec1e7a184931bfa6f7cbd42796b0 : SUCCESS in 4m 51s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a2b1865e568647e5ab308d882fb53b43 : SUCCESS in 10m 04s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/58fa4310b88f446999191995b076fc3c : SUCCESS in 4m 33s\n- openstack-tox-py313-eventlet https://zuul.opendev.org/t/openstack/build/337887edfe67467bb79aeeb571484173 : SUCCESS in 4m 37s\n- watcher-grenade https://zuul.opendev.org/t/openstack/build/d6b2ab39a05c40109e82de96fda613bb : SUCCESS in 24m 27s\n- watcher-grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/454f195c78d04d299fdd29f58d0fbd01 : SUCCESS in 51m 15s\n- watcher-tempest-api-ipv6-only https://zuul.opendev.org/t/openstack/build/0c99c7363e7341a1abde513a15078365 : SUCCESS in 36m 35s\n- watcher-tempest-gnocchi https://zuul.opendev.org/t/openstack/build/a0982e3912eb4cf6afe18eb97545a49f : SUCCESS in 1h 08m 25s\n- watcher-tempest-prometheus https://zuul.opendev.org/t/openstack/build/44d4f988e6584addb10dd645f8845e1e : SUCCESS in 1h 36m 35s\n- watcher-tempest-prometheus-eventlet https://zuul.opendev.org/t/openstack/build/4f65a7a24cdb427fbd442926cb553b28 : SUCCESS in 1h 56m 46s\n- watcher-tempest-aetos https://zuul.opendev.org/t/openstack/build/caf7ae98ad2b410fb8ef48e6c5e02e0f : SUCCESS in 1h 08m 35s","accounts_in_message":[],"_revision_number":3},{"id":"333235dfb7357045bced125430f5daee6531e0cf","author":{"_account_id":16312,"name":"Alfredo Moralejo","email":"amoralej@redhat.com","username":"amoralej"},"date":"2026-07-28 10:02:12.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"1f50f66a824639ecaeb1976315d97f686b844e32","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-07-29 11:57:07.000000000","message":"Patch Set 3: Workflow-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"eb3926cf67d1b8e2407902a1241ebb369ec2af26","author":{"_account_id":34452,"name":"Joan Gilabert","display_name":"jgilaber","email":"jgilaber@redhat.com","username":"jgilaber"},"date":"2026-07-31 12:41:17.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"e9422e212da40c40e20ed4959df044d96c8229ea","author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"date":"2026-07-31 12:57:40.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"cb00210504a32efa198a073621c3e20c8c2660cf","revisions":{"f14ab13ab3b884ad8771873ac8a2c93924a9ba24":{"kind":"REWORK","_number":1,"created":"2026-06-26 18:00:58.000000000","uploader":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"ref":"refs/changes/19/995119/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/19/995119/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/19/995119/1"}}},"commit":{"parents":[{"commit":"3c9c9f5302a4a8b3e91caf2072c27b53a6744518","subject":"Add default_parameters support to Audit Templates","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/3c9c9f5302a4a8b3e91caf2072c27b53a6744518"}]}],"author":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-06-24 18:52:26.000000000","tz":-180},"committer":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-06-26 18:00:44.000000000","tz":-180},"subject":"Add metric cache to DataSourceBase","message":"Add metric cache to DataSourceBase\n\nRename the concrete statistic_aggregation implementation in each\ndatasource (gnocchi, prometheus_base, grafana) to the private\n_statistic_aggregation. Introduce a concrete public statistic_aggregation\nin DataSourceBase that wraps _statistic_aggregation with an in-memory\ncache keyed on (resource.uuid, meter_name, aggregate, period).\n\nOn a cache miss the result is fetched from the datasource and stored for\nthe lifetime of the object. A new inject_metric method allows callers\nto pre-populate the cache with an externally computed value before\nqueries are made.\n\nThis lays the groundwork for the Audit Pipeline feature (cascade execution\nmode), where the pipeline handler will inject projected metric values\nbetween stages so that each strategy sees the expected post-execution\ncluster state without re-querying the datasource.\n\nStrategies and wrapper methods (get_host_*, get_instance_*) are unchanged;\nthey continue to call the public statistic_aggregation interface.\n\nPartially-Implements: blueprint audit-pipeline\nAssisted-By: Claude Code (Sonnet 4.6)\nChange-Id: I6b7e6492794b5b77776b7accc8753e10a4de2815\nSigned-off-by: Douglas Viroel \u003cviroel@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/f14ab13ab3b884ad8771873ac8a2c93924a9ba24"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/f14ab13ab3b884ad8771873ac8a2c93924a9ba24"}]},"branch":"refs/heads/master"},"fdbd3c158c9a731dc6348f137d7e6be8d7c46769":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2026-07-01 13:26:21.000000000","uploader":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"ref":"refs/changes/19/995119/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/19/995119/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/19/995119/2"}}},"commit":{"parents":[{"commit":"589b9a1a1eaac96980cfd827ee954a9e9348eb11","subject":"Add default_parameters support to Audit Templates","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/589b9a1a1eaac96980cfd827ee954a9e9348eb11"}]}],"author":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-06-24 18:52:26.000000000","tz":-180},"committer":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-07-01 13:24:51.000000000","tz":-180},"subject":"Add metric cache to DataSourceBase","message":"Add metric cache to DataSourceBase\n\nRename the concrete statistic_aggregation implementation in each\ndatasource (gnocchi, prometheus_base, grafana) to the private\n_statistic_aggregation. Introduce a concrete public statistic_aggregation\nin DataSourceBase that wraps _statistic_aggregation with an in-memory\ncache keyed on (resource.uuid, meter_name, aggregate, period).\n\nOn a cache miss the result is fetched from the datasource and stored for\nthe lifetime of the object. A new inject_metric method allows callers\nto pre-populate the cache with an externally computed value before\nqueries are made.\n\nThis lays the groundwork for the Audit Pipeline feature (cascade execution\nmode), where the pipeline handler will inject projected metric values\nbetween stages so that each strategy sees the expected post-execution\ncluster state without re-querying the datasource.\n\nStrategies and wrapper methods (get_host_*, get_instance_*) are unchanged;\nthey continue to call the public statistic_aggregation interface.\n\nPartially-Implements: blueprint audit-pipeline\nAssisted-By: Claude Code (Sonnet 4.6)\nChange-Id: I6b7e6492794b5b77776b7accc8753e10a4de2815\nSigned-off-by: Douglas Viroel \u003cviroel@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/fdbd3c158c9a731dc6348f137d7e6be8d7c46769"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/fdbd3c158c9a731dc6348f137d7e6be8d7c46769"}]},"branch":"refs/heads/master"},"cb00210504a32efa198a073621c3e20c8c2660cf":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2026-07-10 20:00:42.000000000","uploader":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"ref":"refs/changes/19/995119/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/watcher","ref":"refs/changes/19/995119/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/watcher refs/changes/19/995119/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/watcher refs/changes/19/995119/3"}}},"commit":{"parents":[{"commit":"49645b83d8a1e4a9c2ff5595476740fba2a7069a","subject":"Add default_parameters support to Audit Templates","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/49645b83d8a1e4a9c2ff5595476740fba2a7069a"}]}],"author":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-06-24 18:52:26.000000000","tz":-180},"committer":{"name":"Douglas Viroel","email":"viroel@gmail.com","date":"2026-07-02 17:14:21.000000000","tz":-180},"subject":"Add metric cache to DataSourceBase","message":"Add metric cache to DataSourceBase\n\nRename the concrete statistic_aggregation implementation in each\ndatasource (gnocchi, prometheus_base, grafana) to the private\n_statistic_aggregation. Introduce a concrete public statistic_aggregation\nin DataSourceBase that wraps _statistic_aggregation with an in-memory\ncache keyed on (resource.uuid, meter_name, aggregate, period).\n\nOn a cache miss the result is fetched from the datasource and stored for\nthe lifetime of the object. A new inject_metric method allows callers\nto pre-populate the cache with an externally computed value before\nqueries are made.\n\nThis lays the groundwork for the Audit Pipeline feature (cascade execution\nmode), where the pipeline handler will inject projected metric values\nbetween stages so that each strategy sees the expected post-execution\ncluster state without re-querying the datasource.\n\nStrategies and wrapper methods (get_host_*, get_instance_*) are unchanged;\nthey continue to call the public statistic_aggregation interface.\n\nPartially-Implements: blueprint audit-pipeline\nAssisted-By: Claude Code (Sonnet 4.6)\nChange-Id: I6b7e6492794b5b77776b7accc8753e10a4de2815\nSigned-off-by: Douglas Viroel \u003cviroel@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/cb00210504a32efa198a073621c3e20c8c2660cf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/watcher/commit/cb00210504a32efa198a073621c3e20c8c2660cf"}]},"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":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"}},{"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":""}}}]}
