)]}'
{"id":"openstack%2Fceilometer~998543","triplet_id":"openstack%2Fceilometer~master~Ied6e6fd86c9fd3c5d3033f259c00886b11c91ace","project":"openstack/ceilometer","branch":"master","topic":"ceilometer_use_openstack_sdk","attention_set":{"13177":{"account":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"last_update":"2026-08-06 20:57:42.000000000","reason":"A robot voted negatively on a label"}},"removed_from_attention_set":{},"hashtags":[],"change_id":"Ied6e6fd86c9fd3c5d3033f259c00886b11c91ace","subject":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure","status":"NEW","created":"2026-07-23 17:13:54.000000000","updated":"2026-08-06 20:57:42.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":false,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"72118fd55a5b94fa34db696697ebf3a484ccb2bb","_number":998543,"virtual_id_number":998543,"owner":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"actions":{},"labels":{"Verified":{"disliked":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":-1,"date":"2026-08-06 20:57: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":{"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}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-23 17:29:24.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"adf59b91970933f8dab8a180a66cf681376455dd","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-07-23 17:13:54.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"00e33b5ddbac995ed30ea1bec3e8146a8ddab239","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-23 17:29:24.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6c5a576a70064c61a0e4e0c272a68980\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/7a60beb7126243c5b1b0f38ae5957064 : SUCCESS in 8m 07s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7397804c2ccb4ee0973857fcf6aa0a3b : SUCCESS in 3m 52s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/9b5145ccaa164261a0e0381cb3eb9614 : SUCCESS in 4m 34s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/13532de04ce24256b79c632d55746e88 : SUCCESS in 5m 13s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f3330c7eef55436dbd0e471d82b50552 : SUCCESS in 8m 17s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c297263cbad442128ca7d7c2c8f11c95 : SUCCESS in 7m 33s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/899b1f2585fb46ffa4c0ca01283fd69f : SUCCESS in 6m 54s","accounts_in_message":[],"_revision_number":1},{"id":"d8f20f613b78862e5d4e24592461011760e0a118","tag":"autogenerated:gerrit:setTopic","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-07-23 17:35:44.000000000","message":"Topic set to ceilometer_use_openstack_sdk","accounts_in_message":[],"_revision_number":1},{"id":"627080befc3398007290770976f4ea00e8810632","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-07-27 20:53:52.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"b21689113a3035ee11f867ffaf32d88330926a58","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-27 21:10:30.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c1843884fc6b46978f67bf0b975a87ef\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/776c9311af28474ab736a66d3c4bdb45 : SUCCESS in 7m 19s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9d2cd5b20ce944b08ef65a54e12252cf : SUCCESS in 3m 36s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2d5726f2ef0c4925a39aba23c85718bb : SUCCESS in 4m 13s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/76be913e87004ee88ea9003f7f26c4a0 : SUCCESS in 7m 52s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f81d966e690e4181b8cb82bcbd24d85d : SUCCESS in 8m 31s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c6748f63a0c3426a80b864cdecae1897 : SUCCESS in 8m 02s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/81c46599d582497990d5fdcfdbcfb22c : SUCCESS in 6m 11s","accounts_in_message":[],"_revision_number":2},{"id":"144f4500483632804b50fee83e701a0495a0a514","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-08-04 20:58:17.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"a00d6e5632ee5c78bf317df55f8167c5edbb2693","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-04 21:11:36.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/24ec6e23bd93464790a3d9e28f53790c\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/358be4bcaa6c4364915d6438ab90c1dd : SUCCESS in 7m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/07b20aea8e8b488b8fd4a5c5f2845f71 : SUCCESS in 3m 01s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d791948df4a14b3b8c1f778a8ffbf9e0 : SUCCESS in 3m 41s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5f884077e57345b4ad2aada64e8c0e9c : SUCCESS in 3m 50s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/dd6cac062e6f4e308b6b5e6a4803eee5 : SUCCESS in 5m 55s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b4c6c8529395420c8f65f279ff169496 : SUCCESS in 5m 23s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e00e09b2fac64b0996f9dff1d80d8a16 : SUCCESS in 4m 30s","accounts_in_message":[],"_revision_number":3},{"id":"0aa0514d15e272793badad12a4272c112b9cf66e","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"date":"2026-08-06 20:36:54.000000000","message":"Uploaded patch set 4: Patch Set 3 was rebased.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":4},{"id":"72118fd55a5b94fa34db696697ebf3a484ccb2bb","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-06 20:57:42.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/a4aa0c30754c47138c2a42682d04dcc4\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/ae27e5554f9740a2afc6a4314ab1c5f0 : SUCCESS in 8m 00s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/3f8ab6d61a3e4248b2f287eb1af55d05 : FAILURE in 3m 05s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/30794cbf66e741569c97e12a7a69dec6 : FAILURE in 2m 38s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/eaa93f85016d4f8e8fc676df5f24b881 : SUCCESS in 5m 20s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/aca37d7e908c42e38434184901883995 : FAILURE in 4m 26s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/738014429f6440c9ae7ce9fee49d320f : FAILURE in 5m 09s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/caca917215eb4415b360f30ea49eb4c7 : FAILURE in 2m 45s","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"bbf02a3db9680ee30aaad181815276f3fc0b998e","revisions":{"aa648481a7269829583634fdfcb6bf01dffb0b2f":{"kind":"REWORK","_number":1,"created":"2026-07-23 17:13:54.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/43/998543/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/43/998543/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/1"}}},"commit":{"parents":[{"commit":"0eecc592e1bff43b1f19f7eb5ddd403b143ba6ad","subject":"[WIP] Use openstack SDK Image types in test_novaclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/0eecc592e1bff43b1f19f7eb5ddd403b143ba6ad"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-03 18:11:30.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-23 17:12:38.000000000","tz":-240},"subject":"Add FakeNovaClient fixture for consistent nova test infrastructure","message":"Add FakeNovaClient fixture for consistent nova test infrastructure\n\nCurrently, tests mock novaclient methods individually, leading to\ninconsistent test setup and fragile mocks. This fixture centralizes\nnova mocking, making tests more maintainable and easier to read.\n\nThis change introduces a FakeNovaClient class with FakeServerManager\nand FakeFlavorManager to provide a standardized way to define nova\nresources in tests. This fixture includes:\n\n- FakeServerManager: manages a list of servers with list(), get(),\n  and find() methods that mimic novaclient.v2.servers behavior\n- FakeFlavorManager: manages flavors with get() and find() methods\n- Default resource sets (SERVER_LIST, FLAVOR_LIST) that can be\n  overridden via constructor parameters\n- Proper exception handling (raises novaclient.exceptions.NotFound\n  when resources don\u0027t exist)\n\nThe fixture is integrated into BaseTestCase via FakeConnectionFixture,\nallowing tests to access it as self.fake_nova. Tests can customize\nthe default cloud by passing servers\u003d and flavors\u003d kwargs to\nsetup_connection(), which aligns with the pattern used for other\nOpenStack SDK services.\n\nThis novaclient integration in FakeConnectionFixture is temporary.\nOnce OpenStack SDK compute fixtures are added, reverting the\nFakeConnectionFixture changes and updating FakeNovaClient to use\nSDK types will complete the migration to SDK-based testing.\n\nChange-Id: Ied6e6fd86c9fd3c5d3033f259c00886b11c91ace\nSigned-Off-By: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/aa648481a7269829583634fdfcb6bf01dffb0b2f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/aa648481a7269829583634fdfcb6bf01dffb0b2f"}]},"branch":"refs/heads/master"},"a7b582061e098b10f72b23daf2721aba998e692c":{"kind":"REWORK","_number":2,"created":"2026-07-27 20:53:52.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/43/998543/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/43/998543/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/2"}}},"commit":{"parents":[{"commit":"7a9156be800250d58bda851d38c5bf16e20f6d9b","subject":"[WIP] Use openstack SDK Image types in test_novaclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/7a9156be800250d58bda851d38c5bf16e20f6d9b"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-03 18:11:30.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-27 19:38:16.000000000","tz":-240},"subject":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure","message":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure\n\nCurrently, tests mock novaclient methods individually, leading to\ninconsistent test setup and fragile mocks. This fixture centralizes\nnova mocking, making tests more maintainable and easier to read.\n\nThis change introduces a FakeNovaClient class with FakeServerManager\nand FakeFlavorManager to provide a standardized way to define nova\nresources in tests. This fixture includes:\n\n- FakeServerManager: manages a list of servers with list(), get(),\n  and find() methods that mimic novaclient.v2.servers behavior\n- FakeFlavorManager: manages flavors with get() and find() methods\n- Default resource sets (SERVER_LIST, FLAVOR_LIST) that can be\n  overridden via constructor parameters\n- Proper exception handling (raises novaclient.exceptions.NotFound\n  when resources don\u0027t exist)\n\nThe fixture is integrated into BaseTestCase via FakeConnectionFixture,\nallowing tests to access it as self.fake_nova. Tests can customize\nthe default cloud by passing servers\u003d and flavors\u003d kwargs to\nsetup_connection(), which aligns with the pattern used for other\nOpenStack SDK services.\n\nThis novaclient integration in FakeConnectionFixture is temporary.\nOnce OpenStack SDK compute fixtures are added, reverting the\nFakeConnectionFixture changes and updating FakeNovaClient to use\nSDK types will complete the migration to SDK-based testing.\n\nChange-Id: Ied6e6fd86c9fd3c5d3033f259c00886b11c91ace\nSigned-Off-By: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/a7b582061e098b10f72b23daf2721aba998e692c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/a7b582061e098b10f72b23daf2721aba998e692c"}]},"branch":"refs/heads/master"},"e232825a4e8a31fecf9d8a1cb2d1c761fd5ce211":{"kind":"REWORK","_number":3,"created":"2026-08-04 20:58:17.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/43/998543/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/43/998543/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/3"}}},"commit":{"parents":[{"commit":"6755d3487e5a0751c1276cb419621acad5bfca1d","subject":"Use openstack SDK Image types in test_novaclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/6755d3487e5a0751c1276cb419621acad5bfca1d"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-03 18:11:30.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-08-04 20:48:24.000000000","tz":-240},"subject":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure","message":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure\n\nCurrently, tests mock novaclient methods individually, leading to\ninconsistent test setup and fragile mocks. This fixture centralizes\nnova mocking, making tests more maintainable and easier to read.\n\nThis change introduces a FakeNovaClient class with FakeServerManager\nand FakeFlavorManager to provide a standardized way to define nova\nresources in tests. This fixture includes:\n\n- FakeServerManager: manages a list of servers with list(), get(),\n  and find() methods that mimic novaclient.v2.servers behavior\n- FakeFlavorManager: manages flavors with get() and find() methods\n- Default resource sets (SERVER_NC_LIST, FLAVOR_NC_LIST) that can\n  be overridden via constructor parameters\n- Proper exception handling (raises novaclient.exceptions.NotFound\n  when resources don\u0027t exist)\n\nThe fixture is integrated into BaseTestCase via FakeConnectionFixture,\nallowing tests to access it as self.fake_nova. Tests can customize\nthe default cloud by passing servers\u003d and flavors\u003d kwargs to\nsetup_connection(), which aligns with the pattern used for other\nOpenStack SDK services.\n\nThis novaclient integration in FakeConnectionFixture is temporary.\nOnce OpenStack SDK compute fixtures are added, reverting the\nFakeConnectionFixture changes and updating FakeNovaClient to use\nSDK types will complete the migration to SDK-based testing.\n\nChange-Id: Ied6e6fd86c9fd3c5d3033f259c00886b11c91ace\nSigned-Off-By: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/e232825a4e8a31fecf9d8a1cb2d1c761fd5ce211"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/e232825a4e8a31fecf9d8a1cb2d1c761fd5ce211"}]},"branch":"refs/heads/master"},"bbf02a3db9680ee30aaad181815276f3fc0b998e":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2026-08-06 20:36:54.000000000","uploader":{"_account_id":13177,"name":"Emma Foley","email":"efoley@redhat.com","username":"emma-l-foley"},"ref":"refs/changes/43/998543/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/ceilometer","ref":"refs/changes/43/998543/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/ceilometer refs/changes/43/998543/4"}}},"commit":{"parents":[{"commit":"16a059563f885ed8928ac4b54beb44d8ebcb2be8","subject":"Use openstack SDK Image types in test_novaclient","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/16a059563f885ed8928ac4b54beb44d8ebcb2be8"}]}],"author":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-07-03 18:11:30.000000000","tz":-240},"committer":{"name":"Emma Foley","email":"efoley@redhat.com","date":"2026-08-06 20:36:10.000000000","tz":-240},"subject":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure","message":"[WIP] Add FakeNovaClient fixture for consistent nova test infrastructure\n\nCurrently, tests mock novaclient methods individually, leading to\ninconsistent test setup and fragile mocks. This fixture centralizes\nnova mocking, making tests more maintainable and easier to read.\n\nThis change introduces a FakeNovaClient class with FakeServerManager\nand FakeFlavorManager to provide a standardized way to define nova\nresources in tests. This fixture includes:\n\n- FakeServerManager: manages a list of servers with list(), get(),\n  and find() methods that mimic novaclient.v2.servers behavior\n- FakeFlavorManager: manages flavors with get() and find() methods\n- Default resource sets (SERVER_NC_LIST, FLAVOR_NC_LIST) that can\n  be overridden via constructor parameters\n- Proper exception handling (raises novaclient.exceptions.NotFound\n  when resources don\u0027t exist)\n\nThe fixture is integrated into BaseTestCase via FakeConnectionFixture,\nallowing tests to access it as self.fake_nova. Tests can customize\nthe default cloud by passing servers\u003d and flavors\u003d kwargs to\nsetup_connection(), which aligns with the pattern used for other\nOpenStack SDK services.\n\nThis novaclient integration in FakeConnectionFixture is temporary.\nOnce OpenStack SDK compute fixtures are added, reverting the\nFakeConnectionFixture changes and updating FakeNovaClient to use\nSDK types will complete the migration to SDK-based testing.\n\nChange-Id: Ied6e6fd86c9fd3c5d3033f259c00886b11c91ace\nSigned-Off-By: Emma Foley \u003cefoley@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/bbf02a3db9680ee30aaad181815276f3fc0b998e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/ceilometer/commit/bbf02a3db9680ee30aaad181815276f3fc0b998e"}]},"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"}]}],"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":"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":""}}}]}
