)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"03dc2d975327c621d70a224fcdf358ffb3a7d4f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b817b62d_8e4b912c","updated":"2024-08-20 13:00:13.000000000","message":"the general approch you have taken is correct  so +1 for direction.\n\nif you have time to split the object change into its own patch that wold be preferable as it simplifes some potential future backports for bug fixes.\nits not strictly requried but prefered.\n\nwhen adding a new flavor extraspec and image properly i generally like to see a release note to advertise that the new properties exist.\n\nthe extra spec validation partly helps with that as it will cause the falvor docs to be auto updated. \n\nhttps://221fb9e546e953ee7722-3afa46560b963cc68a684638a849ebb2.ssl.cf2.rackcdn.com/926126/3/check/openstack-tox-docs/36e9899/docs/configuration/extra-specs.html#hw:sound_model\n\nif you split this i would keep that change in the change that adds the in the first virt driver that uses it ie the libvirt dirver.\n\nill re reivew this when i have more time i just wanted to give you this quick feedback first","commit_id":"7b690e5269d8b39fd575a9b21caf554066500273"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"9b96d705ece1b6f0ca4fc901e33e79933dc2b96d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2b10631f_fb884559","updated":"2024-08-22 10:14:56.000000000","message":"recheck","commit_id":"ca453d73d3773fa2b66d30fdac3929d753ca77b7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"3ac2532b79cfb38ee90e211bddf7b112373722fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"567616ef_c0812f93","updated":"2024-12-31 10:52:50.000000000","message":"recheck","commit_id":"0a960afbd781a2cd80e6da8684bc3202df3bce47"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"408674fe_ea072fef","updated":"2025-01-29 19:40:23.000000000","message":"-1 for the lack of teh libvirt/qemu version check for virtio\nwant to defer adding that to a followup patch or adress that in this one?","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6a0070064818f775d1e43e21aa978e0451228446","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3a106663_9bd28b74","updated":"2025-01-29 20:18:08.000000000","message":"oh can you also add a release not for  this and the next change in the series.","commit_id":"04f96430dd9daca154c62ab68f90533cf8c7ee7d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cbb97a2297769b4737f1ab4438c79e8350a2e68c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"5c14d567_dc57120e","updated":"2025-01-29 19:52:48.000000000","message":"thinking about this more we may also want to have a compute service version bump for this.\n\nwe need to either do a min compute service version check on upgrade to prevent creating instance usign this untill all comptues are upgraded  in the api, \n\nlike this\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L117\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L1152-L1171\n\nor a conductor check like we do for live migation where we only want to fail it if the specifc host dont suprpot it\n\nhttps://github.com/openstack/nova/blob/master/nova/conductor/tasks/live_migrate.py#L47-L55\n\nthat is much much more complex so i think its better to do the api level check and just fail spawn if the min compute version si not above the new one for this feature.","commit_id":"04f96430dd9daca154c62ab68f90533cf8c7ee7d"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"d0e1c231991ee601971b563245126079802fa2e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"467dd7fb_57a83c60","updated":"2025-02-05 09:17:05.000000000","message":"Sean, do you have a preference for either approach?","commit_id":"18a78cc3c8919db2cc44d87aee697f3d56b45d69"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f8359253e9647e38bbc7ed889c75d415279ab734","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"fcf1756b_53ed628f","in_reply_to":"467dd7fb_57a83c60","updated":"2025-02-05 21:13:07.000000000","message":"i think you were asking about the unconditional filter.\n\nat present that is protecting against landing on host that do support virtio\n\nsince the other prefilter is optional we can\u0027t rely on it so I would keep it as is for now.\n\nwe may decide to refactor this later but I don\u0027t see a reason to change it currently.\n\nwe do not need to add traits request for the other models since we knwo all host will supprot it based on teh min version check so you have added supprot for the only edgecase.","commit_id":"18a78cc3c8919db2cc44d87aee697f3d56b45d69"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"32e7b7a32856716c9adfc9cb51e1ffb8f3d19b9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"5d208105_a57f950d","updated":"2025-05-22 03:58:39.000000000","message":"recheck unrelated failure","commit_id":"999a33d1e2c75b3ddd5da567fdf2f660645845e0"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"ba006b70ee496c608901f228c8c5bda7b10e6110","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"275cd50a_191d2d76","updated":"2025-05-26 21:42:09.000000000","message":"recheck cinder failure","commit_id":"669d4bce18fb2213b56c04afcd89f7fcc9ca58c7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"41b635a4e4611e1d2f76fdebe82c51bed282cb18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":37,"id":"11736b91_d43e8202","updated":"2025-05-25 20:25:10.000000000","message":"recheck grendade timeout","commit_id":"669d4bce18fb2213b56c04afcd89f7fcc9ca58c7"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"e57cc6e8099e48ef1dc71f6b55f366eb221db1b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"6b07acd5_693a6552","updated":"2025-06-27 09:28:50.000000000","message":"recheck grenade failure","commit_id":"ae2e311981f3780866f79ced4735056252e230db"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"6ba79724fa8679e2f361115a14dc52a4a2f3af7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"8f9189bb_c1e51405","updated":"2025-06-27 21:09:56.000000000","message":"recheck grenade timeout","commit_id":"ae2e311981f3780866f79ced4735056252e230db"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"e4c436a406ca8c6e6c84dfc83f87017e2c4e0224","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"064a584d_b7e38c00","updated":"2025-06-29 05:20:54.000000000","message":"recheck nova-ovs-hybrid-plug","commit_id":"ae2e311981f3780866f79ced4735056252e230db"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"597b72b705310581ce34689064db2b5a52a49de8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"774f3076_904321c2","updated":"2025-06-28 07:32:29.000000000","message":"recheck tempest integrated compute sad","commit_id":"ae2e311981f3780866f79ced4735056252e230db"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"c9e91d502794c19678a0401296d442dffa1e4d21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":41,"id":"e94a72e2_aca038c0","updated":"2025-06-29 08:47:10.000000000","message":"recheck nova-ovs-hybrid-plug","commit_id":"42b549c9faa17586a71fb0b1c82d9e6a5f482050"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f7ffe85bbfa6f869ccc26a6a14e2b797eb81c9c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"0b5ec083_a5cf634a","updated":"2025-07-01 21:55:32.000000000","message":"recheck  differnt broken packages...\n\n\nThe following packages have unmet dependencies:\n qemu-block-extra : Depends: qemu-system-any (\u003d 1:8.2.2+ds-0ubuntu1.7) or\n                             qemu-utils (\u003d 1:8.2.2+ds-0ubuntu1.7) but 1:8.2.2+ds-0ubuntu1.8 is to be installed\nE: Unable to correct problems, you have held broken packages.","commit_id":"5357c27faf189c2948e31a1bf19e46cfe7a62d20"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"ef3b9a6c6cdc406dc13dd5e8957e98b9d57f700f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"5f17d218_01128dfc","updated":"2025-07-01 19:30:08.000000000","message":"recheck bad ubuntu packages","commit_id":"5357c27faf189c2948e31a1bf19e46cfe7a62d20"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"e2855496caddc62ea28c5d2a1060788129a65ef3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"68c08a77_1e3f2f0e","updated":"2025-07-02 08:35:24.000000000","message":"recheck bad ubuntu packages","commit_id":"5357c27faf189c2948e31a1bf19e46cfe7a62d20"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"67df96874b30ea2545c7308e3b5194721661c8a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"3498a0d5_8824a8d4","updated":"2025-07-01 07:08:30.000000000","message":"recheck ceph","commit_id":"5357c27faf189c2948e31a1bf19e46cfe7a62d20"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"4d6857130d424a874d9bd61a5bade973d0ed952a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"cbe4c317_11fb4b5d","updated":"2025-07-01 03:38:35.000000000","message":"recheck ceph","commit_id":"5357c27faf189c2948e31a1bf19e46cfe7a62d20"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"d32a0c2502cb82b6e64be37cb197c4a63d8954e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":42,"id":"c99265d7_5315e997","updated":"2025-07-01 01:15:40.000000000","message":"recheck neutron tags case sensitivity fix","commit_id":"5357c27faf189c2948e31a1bf19e46cfe7a62d20"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"576534614f3feaf223604d4188314d164e8a0386","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":43,"id":"f158d19e_68dd1664","updated":"2025-07-07 00:56:46.000000000","message":"recheck grenade","commit_id":"1b09a57a1b49ce19554e1daaf90cddc1ee969634"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"77166415233c84f498262fd33703a0266eca809a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":43,"id":"c7581586_493a6904","updated":"2025-07-07 04:39:14.000000000","message":"recheck nova-live-migration","commit_id":"1b09a57a1b49ce19554e1daaf90cddc1ee969634"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4b85e95432a92c2055bbd3c6b04cbe1d0c7c7004","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":44,"id":"168161c4_4a0970df","updated":"2025-07-08 23:14:21.000000000","message":"just updated for signed off by still looks fine to me","commit_id":"183896a79bc45338b1d847ec9ae4a449411fb4f6"}],"nova/objects/fields.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":true,"context_lines":[{"line_number":864,"context_line":"    ICH6 \u003d \u0027ich6\u0027"},{"line_number":865,"context_line":"    ICH9 \u003d \u0027ich9\u0027"},{"line_number":866,"context_line":"    USB \u003d \u0027usb\u0027"},{"line_number":867,"context_line":"    VIRTIO \u003d \u0027virtio\u0027"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    ALL \u003d (SB16, ES1370, PCSPK, AC97, ICH6, ICH9, USB, VIRTIO,)"},{"line_number":870,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"229083e7_39ca9b2d","line":867,"updated":"2025-01-29 19:40:23.000000000","message":"virtio was added in libvirt 10.4.0 which means we will need a libvirt version check.\nhttps://libvirt.org/formatdomain.html#sound-devices\n\nchoices are sb16, es1370, pcspk, ac97 (Since 0.6.0), ich6 (Since 0.8.8), ich9 (Since 1.1.3), usb (Since 1.2.8), ich7 (Since 6.7.0, bhyve only) and virtio (Since 10.4.0 and QEMU 8.2.0).\n\nideally, we woudl also report these as traits, we can do that as a followup\nthese woudl be comptue capalitbiy traits\n\nso we woudl create a new file in \n\nhttps://github.com/openstack/os-traits/tree/master/os_traits/compute\n\nlike https://github.com/openstack/os-traits/blob/master/os_traits/compute/graphics.py\n\nwhere we report the supproted graphics models for a give host.\n\nthat will allow us to schduler on them ensuring live migration supprot.\n\nall the rest are supproted by our min libvirt version.\n```\n# DO NOT FORGET to update this document when touching any versions below!\nMIN_LIBVIRT_VERSION \u003d (7, 0, 0)\nMIN_QEMU_VERSION \u003d (5, 2, 0)\nNEXT_MIN_LIBVIRT_VERSION \u003d (8, 0, 0)\nNEXT_MIN_QEMU_VERSION \u003d (6, 2, 0)\n```\nhttps://github.com/openstack/nova/blob/03ddf02dba98beb8698332f314a195fca8bd1027/nova/virt/libvirt/driver.py#L219-L225\n\n\nwe could also just not add virtio this cycle and defer that to a follwoup.\nthat woudl also remvoe any possiblity of a live migation issue.","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"31a5a4d4935e433b6355769fa9d6f7d28362a42a","unresolved":true,"context_lines":[{"line_number":864,"context_line":"    ICH6 \u003d \u0027ich6\u0027"},{"line_number":865,"context_line":"    ICH9 \u003d \u0027ich9\u0027"},{"line_number":866,"context_line":"    USB \u003d \u0027usb\u0027"},{"line_number":867,"context_line":"    VIRTIO \u003d \u0027virtio\u0027"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    ALL \u003d (SB16, ES1370, PCSPK, AC97, ICH6, ICH9, USB, VIRTIO,)"},{"line_number":870,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"460dbf22_b022aec2","line":867,"in_reply_to":"229083e7_39ca9b2d","updated":"2025-01-30 19:13:39.000000000","message":"Should we not also then add a trait for the USB controllers we support, so that if we ever extend that we\u0027re covered as well?\n\nIt looks like Debian 12 is too old to support virtio sound, but RHEL 9 and friends are new enough. So I think there is some value in trying to support virtio sound on RHEL 9 if possible.\n\nhttps://review.opendev.org/c/openstack/os-traits/+/940418 is a first swing at the os-traits change.","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1ca34bdaadd04970b6826a57e5611bc5e22dfc2a","unresolved":false,"context_lines":[{"line_number":864,"context_line":"    ICH6 \u003d \u0027ich6\u0027"},{"line_number":865,"context_line":"    ICH9 \u003d \u0027ich9\u0027"},{"line_number":866,"context_line":"    USB \u003d \u0027usb\u0027"},{"line_number":867,"context_line":"    VIRTIO \u003d \u0027virtio\u0027"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"    ALL \u003d (SB16, ES1370, PCSPK, AC97, ICH6, ICH9, USB, VIRTIO,)"},{"line_number":870,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"991dee2e_c4d5b735","line":867,"in_reply_to":"460dbf22_b022aec2","updated":"2025-05-23 07:31:24.000000000","message":"Done","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"}],"nova/scheduler/request_filter.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb9707af0ae8ebe8392ae79552906b52b9b3b3db","unresolved":true,"context_lines":[{"line_number":213,"context_line":"        \u0027hw_architecture\u0027: \u0027HW_ARCH\u0027,"},{"line_number":214,"context_line":"        \u0027hw_emulation_architecture\u0027: \u0027COMPUTE_ARCH\u0027,"},{"line_number":215,"context_line":"        \u0027hw_viommu_model\u0027: \u0027COMPUTE_VIOMMU\u0027,"},{"line_number":216,"context_line":"    }"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"    trait_names \u003d []"},{"line_number":219,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"0ad995c5_38d8f356","line":216,"updated":"2025-02-04 19:49:50.000000000","message":"so normlaly we woudl just extend this to supprot the soudn devices","commit_id":"18a78cc3c8919db2cc44d87aee697f3d56b45d69"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cb9707af0ae8ebe8392ae79552906b52b9b3b3db","unresolved":true,"context_lines":[{"line_number":462,"context_line":""},{"line_number":463,"context_line":"    request_spec.root_required.add(os_traits.COMPUTE_SOUND_MODEL_VIRTIO)"},{"line_number":464,"context_line":"    LOG.debug(\u0027virtio_sound_filter added trait COMPUTE_SOUND_MODEL_VIRTIO\u0027)"},{"line_number":465,"context_line":"    return True"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"ALL_REQUEST_FILTERS \u003d ["}],"source_content_type":"text/x-python","patch_set":26,"id":"5885b089_93b1db0d","line":465,"updated":"2025-02-04 19:49:50.000000000","message":"but here you are adding a new un contional  prefilter\nexipclitly for the virito trait as that is the only one you need to schdule on as all other options are supproted by our min libvirt/qemu.\n\nthis is a vlid approch to not requireing a min verison check.","commit_id":"18a78cc3c8919db2cc44d87aee697f3d56b45d69"}],"nova/virt/hardware.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":true,"context_lines":[{"line_number":665,"context_line":"    threads_per_core \u003d max(map(len, host_cell.siblings)) or 1"},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    LOG.debug(\u0027Packing an instance onto a set of siblings: \u0027"},{"line_number":668,"context_line":"              \u0027    host_cell_free_siblings: %(siblings)s\u0027"},{"line_number":669,"context_line":"              \u0027    instance_cell: %(cells)s\u0027"},{"line_number":670,"context_line":"              \u0027    host_cell_id: %(host_cell_id)s\u0027"},{"line_number":671,"context_line":"              \u0027    threads_per_core: %(threads_per_core)s\u0027"}],"source_content_type":"text/x-python","patch_set":21,"id":"31aadbd0_ea08b5b6","line":668,"range":{"start_line":668,"start_character":15,"end_line":668,"end_character":19},"updated":"2025-01-29 19:40:23.000000000","message":"nit: we shoudl not do padding in the log link this, \neach of these string will be concatenated into one string with 4 spaces.\n\nI\u0027m confliced if i should ask you to fix it or not but if im not mistaken this is an unrelated formatting change. i suspect this was your ide as such it woudl be better to just remove this form the commit but that by it self id not enouch to respin.","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":true,"context_lines":[{"line_number":907,"context_line":"    if pinning is None or (num_cpu_reserved and not cpuset_reserved):"},{"line_number":908,"context_line":"        return"},{"line_number":909,"context_line":"    LOG.debug(\u0027Selected cores for pinning: %s, in cell %s\u0027, pinning,"},{"line_number":910,"context_line":"              host_cell.id)"},{"line_number":911,"context_line":""},{"line_number":912,"context_line":"    instance_cell.pin_vcpus(*pinning)"},{"line_number":913,"context_line":"    instance_cell.id \u003d host_cell.id"}],"source_content_type":"text/x-python","patch_set":21,"id":"fe84c888_d1908cb6","line":910,"updated":"2025-01-29 19:40:23.000000000","message":"same with this\n\nit shoudl acutlly be\n```\n LOG.debug(\n     \u0027Selected cores for pinning: %s, in cell %s\u0027, pinning,\n      host_cell.id)\n```\nif we are being pedantic although your version is also an improvement","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":true,"context_lines":[{"line_number":1507,"context_line":""},{"line_number":1508,"context_line":"    nodes \u003d flavor_nodes or image_nodes"},{"line_number":1509,"context_line":"    if nodes is not None and (not strutils.is_int_like(nodes) or"},{"line_number":1510,"context_line":"                              int(nodes) \u003c 1):"},{"line_number":1511,"context_line":"        raise exception.InvalidNUMANodesNumber(nodes\u003dnodes)"},{"line_number":1512,"context_line":""},{"line_number":1513,"context_line":"    return int(nodes) if nodes else nodes"}],"source_content_type":"text/x-python","patch_set":21,"id":"f0a52b67_91eaed89","line":1510,"updated":"2025-01-29 19:40:23.000000000","message":"and this.","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":true,"context_lines":[{"line_number":2914,"context_line":"        raise exception.ForbiddenSharesNotConfiguredCorrectly()"},{"line_number":2915,"context_line":""},{"line_number":2916,"context_line":""},{"line_number":2917,"context_line":"def get_sound_model("},{"line_number":2918,"context_line":"    flavor: \u0027objects.Flavor\u0027,"},{"line_number":2919,"context_line":"    image_meta: \u0027objects.ImageMeta\u0027,"},{"line_number":2920,"context_line":") -\u003e ty.Optional[str]:"}],"source_content_type":"text/x-python","patch_set":21,"id":"6fc20e6e_ce98a69f","line":2917,"range":{"start_line":2917,"start_character":4,"end_line":2917,"end_character":19},"updated":"2025-01-29 19:40:23.000000000","message":"super nit: by convention we append _constraint to these functions but this is also acceptable.\n\nits because this is enforcing an API and scheduling constraint but i think people will undersand that this is doing with out that.","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":true,"context_lines":[{"line_number":6840,"context_line":"        sound_model \u003d hardware.get_sound_model(flavor, image_meta)"},{"line_number":6841,"context_line":"        if not sound_model:"},{"line_number":6842,"context_line":"            return None"},{"line_number":6843,"context_line":""},{"line_number":6844,"context_line":"        sound_device \u003d vconfig.LibvirtConfigGuestSound(sound_model)"},{"line_number":6845,"context_line":"        guest.add_device(sound_device)"},{"line_number":6846,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"d4830ab1_4decf033","line":6843,"updated":"2025-01-29 19:40:23.000000000","message":"so here you shoudl be checking the libvirt version in the case of virtio.\nagain that woudl not be needed if we defer that type to a later patch.","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8add6e99359b95d62f902e97d9ba406300871b6a","unresolved":true,"context_lines":[{"line_number":13085,"context_line":"        )"},{"line_number":13086,"context_line":""},{"line_number":13087,"context_line":"        # remove version dependent vif models if we are on older libvirt/qemu"},{"line_number":13088,"context_line":"        igb_supported \u003d self._host.has_min_version("},{"line_number":13089,"context_line":"            MIN_IGB_LIBVIRT_VERSION, MIN_IGB_QEMU_VERSION)"},{"line_number":13090,"context_line":"        if not igb_supported:"},{"line_number":13091,"context_line":"            supported_models \u003d ["},{"line_number":13092,"context_line":"                model for model in supported_models"},{"line_number":13093,"context_line":"                if model !\u003d network_model.VIF_MODEL_IGB]"},{"line_number":13094,"context_line":""},{"line_number":13095,"context_line":"        # construct the corresponding standard trait from the VIF model name"},{"line_number":13096,"context_line":"        return {"},{"line_number":13097,"context_line":"            f\u0027COMPUTE_NET_VIF_MODEL_{model.replace(\"-\", \"_\").upper()}\u0027: model"}],"source_content_type":"text/x-python","patch_set":21,"id":"d1720d9e_1bddef6d","line":13094,"range":{"start_line":13088,"start_character":0,"end_line":13094,"end_character":1},"updated":"2025-01-29 19:40:23.000000000","message":"this is more or less the correct way to check if something is supported.\n\nthis is relying on reporting traits to ensure that you never scheduled to a host that does not support it.\n\nif you were reporting triats this is where you would do the filtering.\nso since you do not have traits for the models you need to do the check when generating the xml as part fo _add_sound_device.\nif its not supproted you shoudl raise an exception and \nand set the instnace to error.\n\ni woudl be tempted to use  DestinationHypervisorTooOld\n\nbut that was intended for live migation\n\nBuildAbortException or UnsupportedHardware might be better.\n\n\nclass UnsupportedHardware(Invalid):\n    msg_fmt \u003d _(\"Requested hardware \u0027%(model)s\u0027 is not supported by \"\n                \"the \u0027%(virt)s\u0027 virt driver\") \n                \nhttps://github.com/openstack/nova/blob/master/nova/exception.py#L1580-L1582","commit_id":"961bace37d8cbad257abea4273413b498997b3a8"}]}
