)]}'
{"id":"openstack%2Fcloudkitty~1003238","triplet_id":"openstack%2Fcloudkitty~master~Id2255edf13c36c58a5752e862a6aee1fa569063b","project":"openstack/cloudkitty","branch":"master","hashtags":[],"change_id":"Id2255edf13c36c58a5752e862a6aee1fa569063b","subject":"Fix failing CloudKittyProcessor unit tests","status":"NEW","created":"2026-09-01 09:28:07.000000000","updated":"2026-09-01 10:40:06.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"work_in_progress":true,"has_review_started":false,"meta_rev_id":"cd9dd3387aa6f2556a754f801f4f84b22909fa4c","_number":1003238,"virtual_id_number":1003238,"owner":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-01 10:40:06.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":{"all":[{"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":"","default_value":0,"optional":true},"Workflow":{"all":[{"_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":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"reviewer_updates":[{"updated":"2026-09-01 10:40:06.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"}],"messages":[{"id":"e84bca561fb54c09b8cfe1a6494386666b3bcfea","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2026-09-01 09:28:07.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3ed9334dfc4e3823d38ddda36a2ec56b4e60848b","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"date":"2026-09-01 09:32:24.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"cd9dd3387aa6f2556a754f801f4f84b22909fa4c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-01 10:40:06.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d89a140025804a238d77a123a99a07d2\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/45e3c69d1c7845808c4d8848702b1b3b : SUCCESS in 9m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/672817ba62024cabb9e02e05ca77a1d7 : SUCCESS in 3m 56s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7ff03e98ab924d0db08ef17717b2a32b : SUCCESS in 4m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/842055f8e55e4746853850b36e3d4465 : SUCCESS in 4m 02s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/830659d86614408b80321fcf32c5c12d : SUCCESS in 6m 22s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a34ed7b85c7f4f3797c470faf11c80e0 : SUCCESS in 3m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/8aba81f260104380bab374aad4b27a93 : SUCCESS in 4m 29s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/f593ea84328e4be2adb569eca855f7e2 : SUCCESS in 33m 21s\n- cloudkitty-tempest-full-v2-storage-influxdb-v2 https://zuul.opendev.org/t/openstack/build/45f639de64074c0cb1bc2828b2d79f9e : SUCCESS in 31m 16s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/a062a688a4cf4efe817d42d7d084d2bd : SUCCESS in 35m 31s\n- cloudkitty-tempest-full-v2-storage-opensearch https://zuul.opendev.org/t/openstack/build/fc068d3ef41e4e82a36233bfc21314a1 : SUCCESS in 34m 40s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/125799ab82944d83940718cb16409f2a : SUCCESS in 37m 26s\n- cloudkitty-tempest-full-v2-storage-loki https://zuul.opendev.org/t/openstack/build/283a44cd3a104f8a9fb188fc890dbbad : SUCCESS in 41m 30s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/cf76a9b96c514a228d91b2ed8442d4d0 : SUCCESS in 17m 57s\n- cloudkitty-tempest-full-v2-fetcher-collector-prometheus https://zuul.opendev.org/t/openstack/build/61c96afac4e54f1097abfdee193fe7ec : SUCCESS in 22m 05s\n- cloudkitty-tempest-full-v2-collector-aetos https://zuul.opendev.org/t/openstack/build/2efa74b05b494184aeb127a88f0d8ca7 : SUCCESS in 22m 22s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/582bb2df96dd4163b6d8f22d3663972c : FAILURE in 5m 13s (non-voting)\n- cloudkitty-grenade-job https://zuul.opendev.org/t/openstack/build/17d47bf85a104e1dbf0607802692a5c0 : SUCCESS in 1h 05m 30s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"0ab4a954afeb559b7200b2d7837e85697278b46c","revisions":{"4fc35db81410b1e74d38787cfaa81f9994863649":{"kind":"REWORK","_number":1,"created":"2026-09-01 09:28:07.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/38/1003238/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/38/1003238/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/1"}}},"commit":{"parents":[{"commit":"40323f7428af213ae2775c5d1850014f0c0106c6","subject":"doc: Warn that aggregation_method must match the archive policy","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/40323f7428af213ae2775c5d1850014f0c0106c6"}]}],"author":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2026-09-01 09:28:01.000000000","tz":120},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2026-09-01 09:28:01.000000000","tz":120},"subject":"Fix failing CloudKittyProcessor unit tests","message":"Fix failing CloudKittyProcessor unit tests\n\nCloudKittyProcessorTest was globally mocking `stevedore.driver.DriverManager`\nin `setUp` to mock the fetcher backend driver. This broke tooz coordination\ninitialization (`tooz.coordination.get_coordinator`), which internally\nrelies on `stevedore.driver.DriverManager` and expects an instance of\n`CoordinationDriver`. Additionally, tooz\u0027s file coordination backend\nattempted to initialize `/var/lib/cloudkitty/locks` during processor setup,\ncausing permission errors in unprivileged test environments.\n\nThis change:\n- Adds a `get_fetcher()` helper in `cloudkitty.fetcher` matching the pattern\n  used by `collector` and `storage`.\n- Updates `CloudKittyProcessor` to use `fetcher.get_fetcher()`.\n- Updates `CloudKittyProcessorTest.setUp` to mock `cloudkitty.fetcher.get_fetcher`\n  instead of `stevedore.driver.DriverManager`.\n- Mocks `CoordinationDriverWithExecutor.start` in `CloudKittyProcessorTest.setUp`\n  to prevent file coordination initialization on disk during unit tests.\n\nAssisted-By: Gemini 3.7 Flash\nChange-Id: Id2255edf13c36c58a5752e862a6aee1fa569063b\nSigned-off-by: Pierre Riteau \u003cpierre@stackhpc.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/4fc35db81410b1e74d38787cfaa81f9994863649"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/4fc35db81410b1e74d38787cfaa81f9994863649"}]},"branch":"refs/heads/master"},"0ab4a954afeb559b7200b2d7837e85697278b46c":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-09-01 09:32:24.000000000","uploader":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"ref":"refs/changes/38/1003238/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/38/1003238/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/38/1003238/2"}}},"commit":{"parents":[{"commit":"40323f7428af213ae2775c5d1850014f0c0106c6","subject":"doc: Warn that aggregation_method must match the archive policy","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/40323f7428af213ae2775c5d1850014f0c0106c6"}]}],"author":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2026-09-01 09:32:04.000000000","tz":120},"committer":{"name":"Pierre Riteau","email":"pierre@stackhpc.com","date":"2026-09-01 09:32:04.000000000","tz":120},"subject":"Fix failing CloudKittyProcessor unit tests","message":"Fix failing CloudKittyProcessor unit tests\n\nCloudKittyProcessorTest was globally mocking\n`stevedore.driver.DriverManager` in `setUp` to mock the fetcher backend\ndriver. This broke tooz coordination initialization\n(`tooz.coordination.get_coordinator`), which internally relies on\n`stevedore.driver.DriverManager` and expects an instance of\n`CoordinationDriver`. Additionally, tooz\u0027s file coordination backend\nattempted to initialize `/var/lib/cloudkitty/locks` during processor\nsetup, causing permission errors in unprivileged test environments.\n\nThis change:\n- Adds a `get_fetcher()` helper in `cloudkitty.fetcher` matching the\n  pattern used by `collector` and `storage`.\n- Updates `CloudKittyProcessor` to use `fetcher.get_fetcher()`.\n- Updates `CloudKittyProcessorTest.setUp` to mock\n  `cloudkitty.fetcher.get_fetcher` instead of\n  `stevedore.driver.DriverManager`.\n- Mocks `CoordinationDriverWithExecutor.start` in\n  `CloudKittyProcessorTest.setUp` to prevent file coordination\n  initialization on disk during unit tests.\n\nAssisted-By: Gemini 3.7 Flash\nChange-Id: Id2255edf13c36c58a5752e862a6aee1fa569063b\nSigned-off-by: Pierre Riteau \u003cpierre@stackhpc.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/0ab4a954afeb559b7200b2d7837e85697278b46c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/0ab4a954afeb559b7200b2d7837e85697278b46c"}]},"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"},{"label":"Workflow","status":"MAY"},{"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":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"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":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
