)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2b0f717a23523486d09ed5066b3d077fd9f5a12f","unresolved":true,"context_lines":[{"line_number":10,"context_line":"  in functional tests."},{"line_number":11,"context_line":"* Do not raise InternalError in LibvirtDriver during"},{"line_number":12,"context_line":"  type checking; otherwise, class attributes are not initialized,"},{"line_number":13,"context_line":"  causing the mypy linter to fail."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I250e9204cd8b8c6d6a71575d536736a892d8b5a8"},{"line_number":16,"context_line":"Signed-off-by: Artem Vasilyev \u003cartem.v.vasilyev@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a8b3b5d_c768fbd1","line":13,"updated":"2025-08-01 15:13:29.000000000","message":"supprot for running the test on anything other then linux is best effort\njust an fyi, i have run them on wsl and macos before but neither are technially supproted as nova is not supproted on either plathform in general.","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b63bb31b794e60915b4b2cef1530c6259816f9c5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  in functional tests."},{"line_number":11,"context_line":"* Do not raise InternalError in LibvirtDriver during"},{"line_number":12,"context_line":"  type checking; otherwise, class attributes are not initialized,"},{"line_number":13,"context_line":"  causing the mypy linter to fail."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I250e9204cd8b8c6d6a71575d536736a892d8b5a8"},{"line_number":16,"context_line":"Signed-off-by: Artem Vasilyev \u003cartem.v.vasilyev@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"601d0229_7bde0202","line":13,"in_reply_to":"7a8b3b5d_c768fbd1","updated":"2026-04-17 16:04:04.000000000","message":"Done","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3f9d745f56edf1ea273470bda9be508e1014483a","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Finucane \u003cstephenfin@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-04-16 17:53:16 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix functional tests and mypy on macOS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* Mocked /proc/meminfo access to fix starting compute services"},{"line_number":10,"context_line":"  in functional tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"988b6484_32e3f43a","line":7,"updated":"2026-04-17 13:42:50.000000000","message":"functional: OK (487.15\u003dsetup[19.28]+cmd[467.02,0.85] seconds)\n\nso i can conform the fucntional test do now work on macos\nas does mypy\nmypy: OK (17.21\u003dsetup[14.67]+cmd[2.54] seconds)\n\nso once we fix the unit test regresion this shoudl eb good to go.\n\nthe same test fails on macos the saem way\n\nnova.tests.unit.virt.libvirt.test_host.HostTestCase.test_get_memory_used\n------------------------------------------------------------------------\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/Users/sean/repos/nova/nova/tests/unit/virt/libvirt/test_host.py\", line 1154, in test_get_memory_used\n    self.assertEqual(6866, self.host.get_memory_mb_used())\n\n      File \"/Users/sean/repos/nova/.tox/py3/lib/python3.12/site-packages/testtools/testcase.py\", line 513, in assertEqual\n    self.assertThat(observed, matcher, message)\n\n      File \"/Users/sean/repos/nova/.tox/py3/lib/python3.12/site-packages/testtools/testcase.py\", line 704, in assertThat\n    raise mismatch_error\n\n    testtools.matchers._impl.MismatchError: 6866 !\u003d 5574\n    \nso this is a cross plathform regression","commit_id":"7bb282a054300733f3e418087aed02e64ca905d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b63bb31b794e60915b4b2cef1530c6259816f9c5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Finucane \u003cstephenfin@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-04-16 17:53:16 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix functional tests and mypy on macOS"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"* Mocked /proc/meminfo access to fix starting compute services"},{"line_number":10,"context_line":"  in functional tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"aaa2f9f1_80f6ed22","line":7,"in_reply_to":"988b6484_32e3f43a","updated":"2026-04-17 16:04:04.000000000","message":"Done","commit_id":"7bb282a054300733f3e418087aed02e64ca905d4"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2b0f717a23523486d09ed5066b3d077fd9f5a12f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4edfa16d_5fd78764","updated":"2025-08-01 15:13:29.000000000","message":"+2 but we will need wider input about if we shoudl modify code to allow development on unsupported platforms","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"61009593e1823fcd5a8c0f882d55aa98c5060e68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"66f2eddd_2ddfe871","updated":"2025-08-01 15:22:38.000000000","message":"Fine with the test/fixture stuff.. I don\u0027t really like the libvirt runtime check.","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":29525,"name":"Artem Vasilyev","email":"artem.v.vasilyev@gmail.com","username":"artem.v.vasilyev"},"change_message_id":"e35e50f2a62815f8418ea5268c02405e45a4fab7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b68e0bc0_b2619393","updated":"2025-08-05 11:17:52.000000000","message":"recheck","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e7510578cdbb220b440ba09a2d5c7db4bb5cc20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a68ce681_a6d054aa","updated":"2025-12-08 18:13:25.000000000","message":"fwiw, I think the controversial bit was the runtime check, not fixing type checks on Mac. I don\u0027t see any reason not to make the mypy config change but that can be a separate fix now.","commit_id":"bf5523721ad698f2a5699bfc1f1170f03894080d"},{"author":{"_account_id":29525,"name":"Artem Vasilyev","email":"artem.v.vasilyev@gmail.com","username":"artem.v.vasilyev"},"change_message_id":"c7da5543da9a564e2147bcc2f904e95953bacabc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a6f26815_993eac96","in_reply_to":"a68ce681_a6d054aa","updated":"2025-12-09 07:41:19.000000000","message":"So I misunderstood what platform\u003dlinux is for, I assumed it would make mypy run only on linux platform. Now added it to config, mypy successfully passes on macos","commit_id":"bf5523721ad698f2a5699bfc1f1170f03894080d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4963cd97facb97299cc86a5e957664944ed8d894","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f7c6ba1c_ad83aab1","updated":"2026-04-10 16:44:45.000000000","message":"Looking at this again, we can make this simpler.","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2ce2a5dbccad2d2ba408d22a31c7b6f664cf4f17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ba3ea8e3_c418b9f7","updated":"2026-04-16 16:54:00.000000000","message":"fixed my own nits","commit_id":"7bb282a054300733f3e418087aed02e64ca905d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d1e89d1a7437df3d81d961ee829a7062c94c8e1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"15c15141_987eb957","updated":"2026-04-17 13:34:51.000000000","message":"im testing this locally  https://review.opendev.org/c/openstack/nova/+/985014 should fix the macos specific unit test failerus but i think the new failrue is actully a regresssion in this patch","commit_id":"7bb282a054300733f3e418087aed02e64ca905d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f31af0a6574f4fa01dd48a727f13628e6a44b77e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e6ebafb0_1ab7291d","updated":"2026-04-17 15:33:27.000000000","message":"the two failure on py3 are fixed on master this just was not rebased\n\n\n  py3: FAIL code 1 (140.53\u003dsetup[4.03]+cmd[136.49] seconds)\n  functional: OK (455.67\u003dsetup[0.47]+cmd[454.28,0.91] seconds)\n  mypy: OK (0.65\u003dsetup[0.53]+cmd[0.12] seconds)\n  pep8: OK (47.91\u003dsetup[12.05]+cmd[34.11,1.75] seconds)\n  \n  \n  nova.tests.unit.compute.test_utils.ComputeUtilsTestCase.test_get_machine_ips\n----------------------------------------------------------------------------\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/Users/sean/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py\", line 1396, in patched\n    return func(*newargs, **newkeywargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n      File \"/Users/sean/repos/nova/nova/tests/unit/compute/test_utils.py\", line 1168, in test_get_machine_ips\n    fakeaddr(family\u003dsocket.AF_PACKET, address\u003d\u002710:00:00:00:00:10\u0027)\n                    ^^^^^^^^^^^^^^^^\n\n    AttributeError: module \u0027socket\u0027 has no attribute \u0027AF_PACKET\u0027\n\n\nCaptured pythonlogging:\n~~~~~~~~~~~~~~~~~~~~~~~\n    2026-04-17 16:28:42,942 WARNING [oslo_policy.policy] Policy Rules [\u0027os_compute_api:extensions\u0027, \u0027os_compute_api:os-floating-ip-pools\u0027, \u0027os_compute_api:os-quota-sets:defaults\u0027, \u0027os_compute_api:os-availability-zone:list\u0027, \u0027os_compute_api:limits\u0027, \u0027project_manager_api\u0027, \u0027project_member_api\u0027, \u0027project_reader_api\u0027, \u0027service_api\u0027, \u0027project_manager_or_admin\u0027, \u0027project_member_or_admin\u0027, \u0027project_reader_or_admin\u0027, \u0027service_or_admin\u0027, \u0027os_compute_api:limits:other_project\u0027, \u0027os_compute_api:os-lock-server:unlock:unlock_override\u0027, \u0027os_compute_api:servers:create:zero_disk_flavor\u0027, \u0027compute:servers:resize:cross_cell\u0027, \u0027os_compute_api:os-shelve:unshelve_to_host\u0027] specified in policy files are the same as the defaults provided by the service. You can remove these rules from policy files which will make maintenance easier. You can detect these redundant rules by ``oslopolicy-list-redundant`` tool also.\n\n\nnova.tests.unit.virt.disk.test_inject.VirtDiskTest.test_inject_admin_password\n-----------------------------------------------------------------------------\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/Users/sean/repos/nova/nova/tests/unit/virt/disk/test_inject.py\", line 181, in test_inject_admin_password\n    diskapi._inject_admin_password_into_fs(\"123456\", vfs)\n\n      File \"/Users/sean/repos/nova/nova/virt/disk/api.py\", line 608, in _inject_admin_password_into_fs\n    new_shadow_data \u003d _set_passwd(admin_user, admin_passwd,\n                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n      File \"/Users/sean/repos/nova/nova/virt/disk/api.py\", line 648, in _set_passwd\n    encrypted_passwd \u003d secretutils.crypt_password(\n                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n      File \"/Users/sean/repos/nova/.tox/py3/lib/python3.12/site-packages/oslo_utils/secretutils.py\", line 68, in crypt_password\n    raise RuntimeError(\u0027libcrypt is not available\u0027)\n\n    RuntimeError: libcrypt is not available\n    \n\nso this looks good to me","commit_id":"0b7420f025b9cb55b790be1c72fb8d1bb55f65a5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"51cb8db5858f219118ceed3cac5fee94419a5054","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6214dc46_42065de0","updated":"2026-04-24 11:31:58.000000000","message":"recheck","commit_id":"017a44fc964e4f64fe783a9d64e11514317f3530"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"87f881409bf8a42d3b379ad27e390230ef6f6b3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"663ec784_2709d6e7","updated":"2026-04-17 22:48:53.000000000","message":"recheck unrelated failure","commit_id":"017a44fc964e4f64fe783a9d64e11514317f3530"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f8fbb4fe7a6a002f3b83f99b897ac080ba966f77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"9508fa7e_13c4785f","updated":"2026-04-17 16:30:54.000000000","message":"the fialure was unrelated\n\nPulling container image quay.io/ceph/ceph:v20...\nNon-zero exit code 125 from /usr/bin/podman pull quay.io/ceph/ceph:v20\n/usr/bin/podman: stderr Trying to pull quay.io/ceph/ceph:v20...\n/usr/bin/podman: stderr Error: initializing source docker://quay.io/ceph/ceph:v20: pinging container registry quay.io: received unexpected HTTP status: 504 Gateway Time-out\nError: Failed command: /usr/bin/podman pull quay.io/ceph/ceph:v20\n\nthe rebase will trigger the jobs and it now mean py3 \n\nand the two previously failing test now skip after the rebase\n\n{0} nova.tests.unit.compute.test_utils.ComputeUtilsTestCase.test_get_machine_ips ... SKIPPED: AF_PACKET not supported on this system\n{1} nova.tests.unit.virt.disk.test_inject.VirtDiskTest.test_inject_admin_password ... SKIPPED: libcrypt is not available\n\n\u003d\u003d\u003d\u003d\u003d\u003d\nTotals\n\u003d\u003d\u003d\u003d\u003d\u003d\nRan: 2 tests in 0.0358 sec.\n - Passed: 0\n - Skipped: 2\n - Expected Fail: 0\n - Unexpected Success: 0\n - Failed: 0\nSum of execute time for each test: 0.0631 sec.\n\nso this should now be all good","commit_id":"017a44fc964e4f64fe783a9d64e11514317f3530"}],"nova/tests/fixtures/libvirt.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5793656d837fa2273d941e0f5daf0d6741f48958","unresolved":true,"context_lines":[{"line_number":2645,"context_line":"class LibvirtFixture(fixtures.Fixture):"},{"line_number":2646,"context_line":"    \"\"\"Performs global setup/stubbing for all libvirt tests."},{"line_number":2647,"context_line":"    \"\"\""},{"line_number":2648,"context_line":""},{"line_number":2649,"context_line":"    def __init__(self, stub_os_vif\u003dTrue, stub_avail_memory\u003dTrue):"},{"line_number":2650,"context_line":"        self.stub_os_vif \u003d stub_os_vif"},{"line_number":2651,"context_line":"        self.stub_avail_memory \u003d stub_avail_memory"},{"line_number":2652,"context_line":"        self.pci_address_to_mac_map \u003d collections.defaultdict("},{"line_number":2653,"context_line":"            lambda: \u002752:54:00:1e:59:c6\u0027)"},{"line_number":2654,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"8bca4ec8_a6d66fc1","line":2651,"range":{"start_line":2648,"start_character":1,"end_line":2651,"end_character":50},"updated":"2026-04-10 16:44:12.000000000","message":"Per my comment below.\n\n```suggestion\n\n    def __init__(self, stub_os_vif\u003dTrue):\n        self.stub_os_vif \u003d stub_os_vif\n```","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b4e0dc96b87efd78fc5c517a4f4a627d14612425","unresolved":false,"context_lines":[{"line_number":2645,"context_line":"class LibvirtFixture(fixtures.Fixture):"},{"line_number":2646,"context_line":"    \"\"\"Performs global setup/stubbing for all libvirt tests."},{"line_number":2647,"context_line":"    \"\"\""},{"line_number":2648,"context_line":""},{"line_number":2649,"context_line":"    def __init__(self, stub_os_vif\u003dTrue, stub_avail_memory\u003dTrue):"},{"line_number":2650,"context_line":"        self.stub_os_vif \u003d stub_os_vif"},{"line_number":2651,"context_line":"        self.stub_avail_memory \u003d stub_avail_memory"},{"line_number":2652,"context_line":"        self.pci_address_to_mac_map \u003d collections.defaultdict("},{"line_number":2653,"context_line":"            lambda: \u002752:54:00:1e:59:c6\u0027)"},{"line_number":2654,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"bfe9e126_67960c45","line":2651,"range":{"start_line":2648,"start_character":1,"end_line":2651,"end_character":50},"in_reply_to":"8bca4ec8_a6d66fc1","updated":"2026-04-16 16:53:48.000000000","message":"Done","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5793656d837fa2273d941e0f5daf0d6741f48958","unresolved":true,"context_lines":[{"line_number":2720,"context_line":"        self.mock_uname \u003d self.useFixture("},{"line_number":2721,"context_line":"            fixtures.MockPatch(\u0027os.uname\u0027, return_value\u003dfake_uname)).mock"},{"line_number":2722,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":2723,"context_line":"            \u0027nova.virt.libvirt.driver.sys.platform\u0027, \u0027linux\u0027))"},{"line_number":2724,"context_line":""},{"line_number":2725,"context_line":"        if self.stub_avail_memory:"},{"line_number":2726,"context_line":"            # mock /proc/meminfo access"},{"line_number":2727,"context_line":"            self.useFixture(fixtures.MockPatch("},{"line_number":2728,"context_line":"                \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2729,"context_line":"                return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2730,"context_line":""},{"line_number":2731,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2732,"context_line":""},{"line_number":2733,"context_line":"        def fake_exists(path):"}],"source_content_type":"text/x-python","patch_set":8,"id":"43272c1f_e661c684","line":2730,"range":{"start_line":2723,"start_character":0,"end_line":2730,"end_character":1},"updated":"2026-04-10 16:44:12.000000000","message":"Can we just do this regardless? I suspect we can also simplify to mock the function that relies on `_get_avail_memory_kb` since it\u0027ll give us consistent results across all hosts.\n\n```suggestion\n            \u0027nova.virt.libvirt.driver.sys.platform\u0027, \u0027linux\u0027))\n        self.useFixture(fixtures.MockPatch(\n            \u0027nova.virt.libvirt.host.Host.get_memory_mb_used\u0027,\n            return_value\u003d0))\n\n```","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":29525,"name":"Artem Vasilyev","email":"artem.v.vasilyev@gmail.com","username":"artem.v.vasilyev"},"change_message_id":"6800fadd7440b0ff40b4913a592bc3cb0ec19262","unresolved":true,"context_lines":[{"line_number":2720,"context_line":"        self.mock_uname \u003d self.useFixture("},{"line_number":2721,"context_line":"            fixtures.MockPatch(\u0027os.uname\u0027, return_value\u003dfake_uname)).mock"},{"line_number":2722,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":2723,"context_line":"            \u0027nova.virt.libvirt.driver.sys.platform\u0027, \u0027linux\u0027))"},{"line_number":2724,"context_line":""},{"line_number":2725,"context_line":"        if self.stub_avail_memory:"},{"line_number":2726,"context_line":"            # mock /proc/meminfo access"},{"line_number":2727,"context_line":"            self.useFixture(fixtures.MockPatch("},{"line_number":2728,"context_line":"                \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2729,"context_line":"                return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2730,"context_line":""},{"line_number":2731,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2732,"context_line":""},{"line_number":2733,"context_line":"        def fake_exists(path):"}],"source_content_type":"text/x-python","patch_set":8,"id":"4fd13d76_3571c8cc","line":2730,"range":{"start_line":2723,"start_character":0,"end_line":2730,"end_character":1},"in_reply_to":"3819311e_2107d8ac","updated":"2026-04-17 14:07:20.000000000","message":"If mocking this unconditionally, it breaks test_get_memory_used unit test","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b4e0dc96b87efd78fc5c517a4f4a627d14612425","unresolved":false,"context_lines":[{"line_number":2720,"context_line":"        self.mock_uname \u003d self.useFixture("},{"line_number":2721,"context_line":"            fixtures.MockPatch(\u0027os.uname\u0027, return_value\u003dfake_uname)).mock"},{"line_number":2722,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":2723,"context_line":"            \u0027nova.virt.libvirt.driver.sys.platform\u0027, \u0027linux\u0027))"},{"line_number":2724,"context_line":""},{"line_number":2725,"context_line":"        if self.stub_avail_memory:"},{"line_number":2726,"context_line":"            # mock /proc/meminfo access"},{"line_number":2727,"context_line":"            self.useFixture(fixtures.MockPatch("},{"line_number":2728,"context_line":"                \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2729,"context_line":"                return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2730,"context_line":""},{"line_number":2731,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2732,"context_line":""},{"line_number":2733,"context_line":"        def fake_exists(path):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3819311e_2107d8ac","line":2730,"range":{"start_line":2723,"start_character":0,"end_line":2730,"end_character":1},"in_reply_to":"43272c1f_e661c684","updated":"2026-04-16 16:53:48.000000000","message":"Done","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fabd356c809271792dafff05430fe5070214d706","unresolved":true,"context_lines":[{"line_number":2720,"context_line":"        self.mock_uname \u003d self.useFixture("},{"line_number":2721,"context_line":"            fixtures.MockPatch(\u0027os.uname\u0027, return_value\u003dfake_uname)).mock"},{"line_number":2722,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":2723,"context_line":"            \u0027nova.virt.libvirt.driver.sys.platform\u0027, \u0027linux\u0027))"},{"line_number":2724,"context_line":""},{"line_number":2725,"context_line":"        if self.stub_avail_memory:"},{"line_number":2726,"context_line":"            # mock /proc/meminfo access"},{"line_number":2727,"context_line":"            self.useFixture(fixtures.MockPatch("},{"line_number":2728,"context_line":"                \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2729,"context_line":"                return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2730,"context_line":""},{"line_number":2731,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2732,"context_line":""},{"line_number":2733,"context_line":"        def fake_exists(path):"}],"source_content_type":"text/x-python","patch_set":8,"id":"ea623063_c540980b","line":2730,"range":{"start_line":2723,"start_character":0,"end_line":2730,"end_character":1},"in_reply_to":"4fd13d76_3571c8cc","updated":"2026-04-17 14:16:45.000000000","message":"So we\u0027ve learned. I updated the test to remove the nested mock.","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b63bb31b794e60915b4b2cef1530c6259816f9c5","unresolved":false,"context_lines":[{"line_number":2720,"context_line":"        self.mock_uname \u003d self.useFixture("},{"line_number":2721,"context_line":"            fixtures.MockPatch(\u0027os.uname\u0027, return_value\u003dfake_uname)).mock"},{"line_number":2722,"context_line":"        self.useFixture(fixtures.MonkeyPatch("},{"line_number":2723,"context_line":"            \u0027nova.virt.libvirt.driver.sys.platform\u0027, \u0027linux\u0027))"},{"line_number":2724,"context_line":""},{"line_number":2725,"context_line":"        if self.stub_avail_memory:"},{"line_number":2726,"context_line":"            # mock /proc/meminfo access"},{"line_number":2727,"context_line":"            self.useFixture(fixtures.MockPatch("},{"line_number":2728,"context_line":"                \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2729,"context_line":"                return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2730,"context_line":""},{"line_number":2731,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2732,"context_line":""},{"line_number":2733,"context_line":"        def fake_exists(path):"}],"source_content_type":"text/x-python","patch_set":8,"id":"d9ffceb9_84ffcdab","line":2730,"range":{"start_line":2723,"start_character":0,"end_line":2730,"end_character":1},"in_reply_to":"ea623063_c540980b","updated":"2026-04-17 16:04:04.000000000","message":"Done","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d1e89d1a7437df3d81d961ee829a7062c94c8e1c","unresolved":true,"context_lines":[{"line_number":2724,"context_line":"        # mock /proc/meminfo access"},{"line_number":2725,"context_line":"        self.useFixture(fixtures.MockPatch("},{"line_number":2726,"context_line":"            \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2727,"context_line":"            return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2728,"context_line":""},{"line_number":2729,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2730,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9dea8b06_42650e4b","line":2727,"updated":"2026-04-17 13:34:51.000000000","message":"https://b6fb961759099b9433ee-f8d3aa66ce3962c6e3c5c35044bdfdd4.ssl.cf2.rackcdn.com/openstack/21c7a9e194ba4719a5c579a3e58cdf4d/testr_results.html\n\nthis faliure looks ligit.","commit_id":"7bb282a054300733f3e418087aed02e64ca905d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b63bb31b794e60915b4b2cef1530c6259816f9c5","unresolved":false,"context_lines":[{"line_number":2724,"context_line":"        # mock /proc/meminfo access"},{"line_number":2725,"context_line":"        self.useFixture(fixtures.MockPatch("},{"line_number":2726,"context_line":"            \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2727,"context_line":"            return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2728,"context_line":""},{"line_number":2729,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2730,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"6dbcea15_94107b97","line":2727,"in_reply_to":"8303090b_365fabc7","updated":"2026-04-17 16:04:04.000000000","message":"Done","commit_id":"7bb282a054300733f3e418087aed02e64ca905d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"71a49ba3c3c51b1f4c32874cf449b6d70c851b74","unresolved":true,"context_lines":[{"line_number":2724,"context_line":"        # mock /proc/meminfo access"},{"line_number":2725,"context_line":"        self.useFixture(fixtures.MockPatch("},{"line_number":2726,"context_line":"            \u0027nova.virt.libvirt.host.Host._get_avail_memory_kb\u0027,"},{"line_number":2727,"context_line":"            return_value\u003d10 * 1024 * 1024))  # 10 GB"},{"line_number":2728,"context_line":""},{"line_number":2729,"context_line":"        real_exists \u003d os.path.exists"},{"line_number":2730,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"8303090b_365fabc7","line":2727,"in_reply_to":"9dea8b06_42650e4b","updated":"2026-04-17 13:36:33.000000000","message":"i guess teh faileur is in used memofy rather then aviable but one may have affected the other so we need to review this closer\n\n\nTraceback (most recent call last):\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/unit/virt/libvirt/test_host.py\", line 1154, in test_get_memory_used\n    self.assertEqual(6866, self.host.get_memory_mb_used())\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/py311/lib/python3.11/site-packages/testtools/testcase.py\", line 513, in assertEqual\n    self.assertThat(observed, matcher, message)\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/py311/lib/python3.11/site-packages/testtools/testcase.py\", line 704, in assertThat\n    raise mismatch_error\ntesttools.matchers._impl.MismatchError: 6866 !\u003d 5574","commit_id":"7bb282a054300733f3e418087aed02e64ca905d4"}],"nova/tests/unit/virt/libvirt/test_host.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5793656d837fa2273d941e0f5daf0d6741f48958","unresolved":true,"context_lines":[{"line_number":71,"context_line":"    def setUp(self):"},{"line_number":72,"context_line":"        super(HostTestCase, self).setUp()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.useFixture(nova_fixtures.LibvirtFixture(stub_avail_memory\u003dFalse))"},{"line_number":75,"context_line":"        self.host \u003d self._create_host(\"qemu:///system\")"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _create_host(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":8,"id":"87816dec_3c4a912a","line":74,"updated":"2026-04-10 16:44:12.000000000","message":"```suggestion\n        self.useFixture(nova_fixtures.LibvirtFixture())\n```","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b4e0dc96b87efd78fc5c517a4f4a627d14612425","unresolved":false,"context_lines":[{"line_number":71,"context_line":"    def setUp(self):"},{"line_number":72,"context_line":"        super(HostTestCase, self).setUp()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        self.useFixture(nova_fixtures.LibvirtFixture(stub_avail_memory\u003dFalse))"},{"line_number":75,"context_line":"        self.host \u003d self._create_host(\"qemu:///system\")"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _create_host(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":8,"id":"dcbb0fb4_6300855f","line":74,"in_reply_to":"87816dec_3c4a912a","updated":"2026-04-16 16:53:48.000000000","message":"Done","commit_id":"bb9517f5b8af8a83479a1f46482c58017d311fce"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2b0f717a23523486d09ed5066b3d077fd9f5a12f","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        }"},{"line_number":473,"context_line":"        super(LibvirtDriver, self).__init__(virtapi)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        if not sys.platform.startswith(\u0027linux\u0027) and not ty.TYPE_CHECKING:"},{"line_number":476,"context_line":"            raise exception.InternalError("},{"line_number":477,"context_line":"                _(\u0027The libvirt driver only works on Linux\u0027))"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"c801450d_05a5356a","line":475,"updated":"2025-08-01 15:13:29.000000000","message":"i guess this is OK as well\nwe generally avoid changing runtime code to facilitate tooling but\nthis is probably fine.\n\nif we had to do this in a lot of places however we would probably not merge the patch.","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b63bb31b794e60915b4b2cef1530c6259816f9c5","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        }"},{"line_number":473,"context_line":"        super(LibvirtDriver, self).__init__(virtapi)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        if not sys.platform.startswith(\u0027linux\u0027) and not ty.TYPE_CHECKING:"},{"line_number":476,"context_line":"            raise exception.InternalError("},{"line_number":477,"context_line":"                _(\u0027The libvirt driver only works on Linux\u0027))"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b25c7803_3291a43d","line":475,"in_reply_to":"a4884d86_d6599716","updated":"2026-04-17 16:04:04.000000000","message":"Done","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":29525,"name":"Artem Vasilyev","email":"artem.v.vasilyev@gmail.com","username":"artem.v.vasilyev"},"change_message_id":"6f049bb444e681050674098ab4a6cdbeacec50b6","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        }"},{"line_number":473,"context_line":"        super(LibvirtDriver, self).__init__(virtapi)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        if not sys.platform.startswith(\u0027linux\u0027) and not ty.TYPE_CHECKING:"},{"line_number":476,"context_line":"            raise exception.InternalError("},{"line_number":477,"context_line":"                _(\u0027The libvirt driver only works on Linux\u0027))"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a4884d86_d6599716","line":475,"in_reply_to":"ada3a64a_d0a89895","updated":"2025-12-08 08:41:13.000000000","message":"Removed contoversial mypy fix leaving just functional test fix","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5ff0d467f67313a8bb7a4e318f1050576db3db1b","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        }"},{"line_number":473,"context_line":"        super(LibvirtDriver, self).__init__(virtapi)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        if not sys.platform.startswith(\u0027linux\u0027) and not ty.TYPE_CHECKING:"},{"line_number":476,"context_line":"            raise exception.InternalError("},{"line_number":477,"context_line":"                _(\u0027The libvirt driver only works on Linux\u0027))"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ada3a64a_d0a89895","line":475,"in_reply_to":"bf629c34_d14993e0","updated":"2025-08-01 16:45:06.000000000","message":"(linux users can confirm that this works by setting this to something else like `foobar` - mypy doesn\u0027t seem to care about actual value)","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9e6598ed6b6056c8c159a032f238dec810c993dc","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        }"},{"line_number":473,"context_line":"        super(LibvirtDriver, self).__init__(virtapi)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        if not sys.platform.startswith(\u0027linux\u0027) and not ty.TYPE_CHECKING:"},{"line_number":476,"context_line":"            raise exception.InternalError("},{"line_number":477,"context_line":"                _(\u0027The libvirt driver only works on Linux\u0027))"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bf629c34_d14993e0","line":475,"in_reply_to":"c1433ad5_9d2b4eb1","updated":"2025-08-01 16:42:49.000000000","message":"You want to set the `[mypy] platform` key in `setup.cfg`\n\n```\n[mypy]\nplatform \u003d \u0027linux\u0027\n```\n\nhttps://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-platform","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"61009593e1823fcd5a8c0f882d55aa98c5060e68","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        }"},{"line_number":473,"context_line":"        super(LibvirtDriver, self).__init__(virtapi)"},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        if not sys.platform.startswith(\u0027linux\u0027) and not ty.TYPE_CHECKING:"},{"line_number":476,"context_line":"            raise exception.InternalError("},{"line_number":477,"context_line":"                _(\u0027The libvirt driver only works on Linux\u0027))"},{"line_number":478,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"c1433ad5_9d2b4eb1","line":475,"in_reply_to":"c801450d_05a5356a","updated":"2025-08-01 15:22:38.000000000","message":"I don\u0027t like this, personally. As a macos user, I\u0027d rather just say that mypy isn\u0027t expected to work on macos, or do something else to avoid hitting this.\n\nActually, TBH, I\u0027d rather just turn off all the mypy stuff anyway :D","commit_id":"4a69305f71cee8f7fc3bf50d9f8941d49ff91047"}]}
