)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e30c9e656498d6c9abaafae6f5ada6bb60c64b0","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Sylvain Bauza \u003csbauza@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-12-21 12:19:48 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Check can destination can support mdev types"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Icb52fa5eb0adc0aa6106a90d87149456b39e79c2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1b288f65_2dda4cab","line":8,"range":{"start_line":7,"start_character":5,"end_line":8,"end_character":1},"updated":"2023-12-21 13:00:25.000000000","message":"Nit: \"Check if destination can support mdev types\"","commit_id":"0afa6b2f4aae540c02df7c01398f547124403482"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"85e3398c397aafd84c73a3afb8c5b7ff21df65b3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sylvain Bauza \u003csbauza@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-12-21 12:19:48 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"WIP: Check can destination can support mdev types"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Icb52fa5eb0adc0aa6106a90d87149456b39e79c2"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bea69c75_bbe8e5f6","line":8,"range":{"start_line":7,"start_character":5,"end_line":8,"end_character":1},"in_reply_to":"1b288f65_2dda4cab","updated":"2023-12-21 13:12:22.000000000","message":"Acknowledged","commit_id":"0afa6b2f4aae540c02df7c01398f547124403482"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0e1146269d47a9c5b0dd8d74614f1e9487fdbe90","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"86311f01_44191734","updated":"2023-12-22 09:29:06.000000000","message":"recheck looks a transient filesystem issue","commit_id":"32fca07e1d92ad0d9e6520d5145017707b6ef872"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6470ccca19901157860c5cc499008c15811ee535","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"f8d13a86_2c881632","updated":"2024-01-30 14:52:48.000000000","message":"Do three nits add up to a -1? I dunno.","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ac7392730636f501dbc4cf5d79474eab345ce883","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a1700bac_a942ad32","updated":"2024-01-26 10:19:58.000000000","message":"recheck volume timeout on ceph-multistore","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ab940ccf0e294886f29fda785bf4d0ba81eaf7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"49f4eda4_b247588a","updated":"2024-02-02 15:05:22.000000000","message":"One alignment issue to fix and unless I\u0027m missing something, you don\u0027t have a positive test for allocations with an mdev type that the dest *can* support.","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"840f830b68945016429d300c737311a972c9980e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6a57c451_35358ba0","updated":"2024-02-02 15:54:31.000000000","message":"Will provide a new revision","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"394bd5005a448ebd8eea84390c73972988695ace","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"13a73a20_9dab134f","updated":"2024-02-02 15:54:12.000000000","message":"Will provide a new revision for the nits, but for the -1 due to the missing test, look at my new comment.","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d2916174088ea14c49717ae4e0991ea827dd056d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a761ae4f_98e8b710","updated":"2024-02-02 09:43:36.000000000","message":"recheck volume checks just blown","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3bed5d194ab85d93b4bc547c14eaaa9f8a0da9c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"914947de_d170d010","updated":"2024-02-15 13:07:05.000000000","message":"recheck dependent change failed to merge","commit_id":"489aab934cc504b89201d70217466d4f53868768"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"b1780136f382c7dc897f8913593032a466b88d5a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"d6356152_0c097e67","updated":"2024-02-07 10:28:42.000000000","message":"recheck guest kernel panic","commit_id":"489aab934cc504b89201d70217466d4f53868768"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"091133a74f077b59767baf06fc8ba10bc0676d1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"8d3e4194_c7294b0f","updated":"2024-02-06 08:25:30.000000000","message":"recheck image timeouts again on nova-lvm","commit_id":"489aab934cc504b89201d70217466d4f53868768"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb9707a16a9aa3c5456ddde7f15e5158154471ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"df2f679b_894df6cb","updated":"2024-02-05 17:38:23.000000000","message":"recheck jobs taking too long","commit_id":"489aab934cc504b89201d70217466d4f53868768"}],"nova/compute/manager.py":[{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"cf69802e906634c7983d7105041054cca11acceb","unresolved":true,"context_lines":[{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            if (\u0027src_supports_mdev_live_migration\u0027 in migrate_data and"},{"line_number":8573,"context_line":"                    migrate_data.src_supports_mdev_live_migration):"},{"line_number":8574,"context_line":"                migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8575,"context_line":"                    ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8576,"context_line":"        finally:"},{"line_number":8577,"context_line":"            self.driver.cleanup_live_migration_destination_check(ctxt,"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa94d3e9_4300b4bd","line":8574,"range":{"start_line":8574,"start_character":43,"end_line":8574,"end_character":75},"updated":"2024-01-22 17:52:39.000000000","message":"I don\u0027t want to bike shed on the name, but post_check_can_live_migrate_dest is \"generic\" and here you use it only for mdev purpose.\n\nSo you could specialized the name, but as post_check_can_live_migrate_dest is a public method of the driver. I think you should keep this name, call it unconditionally and do the check for mdev inside the method.","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3fc745ecf17d85e844a50e83010c65f71b6ca0ee","unresolved":false,"context_lines":[{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            if (\u0027src_supports_mdev_live_migration\u0027 in migrate_data and"},{"line_number":8573,"context_line":"                    migrate_data.src_supports_mdev_live_migration):"},{"line_number":8574,"context_line":"                migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8575,"context_line":"                    ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8576,"context_line":"        finally:"},{"line_number":8577,"context_line":"            self.driver.cleanup_live_migration_destination_check(ctxt,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7cbfc7e8_d1e3c369","line":8574,"range":{"start_line":8574,"start_character":43,"end_line":8574,"end_character":75},"in_reply_to":"fa94d3e9_4300b4bd","updated":"2024-01-25 13:28:14.000000000","message":"Done","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6470ccca19901157860c5cc499008c15811ee535","unresolved":true,"context_lines":[{"line_number":8567,"context_line":"                # Update migrate VIFs with the newly claimed PCI devices"},{"line_number":8568,"context_line":"                self._update_migrate_vifs_profile_with_pci("},{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":9,"id":"235801b3_13f6594a","line":8571,"range":{"start_line":8570,"start_character":54,"end_line":8571,"end_character":52},"updated":"2024-01-30 14:52:48.000000000","message":"I don\u0027t see any persistence going on in that method. What do you mean by this?","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ab940ccf0e294886f29fda785bf4d0ba81eaf7c","unresolved":false,"context_lines":[{"line_number":8567,"context_line":"                # Update migrate VIFs with the newly claimed PCI devices"},{"line_number":8568,"context_line":"                self._update_migrate_vifs_profile_with_pci("},{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":9,"id":"0a2607aa_647f7704","line":8571,"range":{"start_line":8570,"start_character":54,"end_line":8571,"end_character":52},"in_reply_to":"0471b662_857e38d2","updated":"2024-02-02 15:05:22.000000000","message":"Acknowledged","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d7990a1fbc4f25a0f87c8532ad16dc73a5f5e224","unresolved":true,"context_lines":[{"line_number":8567,"context_line":"                # Update migrate VIFs with the newly claimed PCI devices"},{"line_number":8568,"context_line":"                self._update_migrate_vifs_profile_with_pci("},{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fe7d4a7b_52e482cb","line":8571,"range":{"start_line":8570,"start_character":54,"end_line":8571,"end_character":52},"in_reply_to":"235801b3_13f6594a","updated":"2024-02-01 16:47:51.000000000","message":"By the below libvirt method, we modify an LibvirtDriver attribute. That\u0027s what I say by \"persisting\", given until the service is restarting then the dictionary is used.","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fd7e5112c9fc711049586fce1804d7c89b9ac90","unresolved":true,"context_lines":[{"line_number":8567,"context_line":"                # Update migrate VIFs with the newly claimed PCI devices"},{"line_number":8568,"context_line":"                self._update_migrate_vifs_profile_with_pci("},{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":9,"id":"a027bbcf_3c78f90d","line":8571,"range":{"start_line":8570,"start_character":54,"end_line":8571,"end_character":52},"in_reply_to":"235801b3_13f6594a","updated":"2024-02-01 10:42:12.000000000","message":"i belvie he just ment that we update the dicts in memory\nwe dont persist it to the db or a file so if the agent is restated the reservation in the dict is lost but we said that was ok in this case to have a possible race\nsince the migration is likely to fail anyway if you restart the agent while its running.\n\nps havent actully reviewed this yet i just saw this comment in my email\n\ni agree its not very clear what is ment.","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7b9138013fe23a49c73e7f361fb8eb32f668c539","unresolved":true,"context_lines":[{"line_number":8567,"context_line":"                # Update migrate VIFs with the newly claimed PCI devices"},{"line_number":8568,"context_line":"                self._update_migrate_vifs_profile_with_pci("},{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bb9ab8d0_d7edddbc","line":8571,"range":{"start_line":8570,"start_character":54,"end_line":8571,"end_character":52},"in_reply_to":"a027bbcf_3c78f90d","updated":"2024-02-01 14:48:41.000000000","message":"Okay, but I don\u0027t see it being persisted (even in memory) in the driver... I must be missing it?","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0b865db1b4458d4a86629377c8089d7265bc45e0","unresolved":true,"context_lines":[{"line_number":8567,"context_line":"                # Update migrate VIFs with the newly claimed PCI devices"},{"line_number":8568,"context_line":"                self._update_migrate_vifs_profile_with_pci("},{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"}],"source_content_type":"text/x-python","patch_set":9,"id":"0471b662_857e38d2","line":8571,"range":{"start_line":8570,"start_character":54,"end_line":8571,"end_character":52},"in_reply_to":"fe7d4a7b_52e482cb","updated":"2024-02-01 17:01:04.000000000","message":"Sorry, my above reply was cached in Gerrit so I haven\u0027t answered your question.\n\nWe change the dict in the next patch : https://review.opendev.org/c/openstack/nova/+/904209/10/nova/virt/libvirt/driver.py","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6470ccca19901157860c5cc499008c15811ee535","unresolved":true,"context_lines":[{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"},{"line_number":8575,"context_line":"            self.driver.cleanup_live_migration_destination_check(ctxt,"}],"source_content_type":"text/x-python","patch_set":9,"id":"c335e0b6_f2883637","line":8572,"updated":"2024-01-30 14:52:48.000000000","message":"It\u0027s a bit unfortunate to have to add another one of these methods, all of which are confusingly-named. This seems like it comes after the migration (because of the word \"post\" in the name), but it\u0027s really a pre-check that runs after ... the OTHER pre-check :)\n\nI guess we can\u0027t really move the existing one down because we need the info to pass in the source call. Maybe a name change would be worthwhile? Maybe `check_source_migrate_data_at_dest()`?","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d7990a1fbc4f25a0f87c8532ad16dc73a5f5e224","unresolved":false,"context_lines":[{"line_number":8569,"context_line":"                    migrate_data.vifs, port_id_to_pci)"},{"line_number":8570,"context_line":"            # This should always be the last check as we persist some internal"},{"line_number":8571,"context_line":"            # dictionary value in the libvirt driver."},{"line_number":8572,"context_line":"            migrate_data \u003d self.driver.post_check_can_live_migrate_dest("},{"line_number":8573,"context_line":"                ctxt, instance, migrate_data, migration, limits, allocs)"},{"line_number":8574,"context_line":"        finally:"},{"line_number":8575,"context_line":"            self.driver.cleanup_live_migration_destination_check(ctxt,"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa44ff6a_ba9c400f","line":8572,"in_reply_to":"c335e0b6_f2883637","updated":"2024-02-01 16:47:51.000000000","message":"I\u0027ll go with a method rename 😊","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"}],"nova/tests/functional/libvirt/test_vgpu.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f89057dc32f9e4217f12b3dab0d320644714117","unresolved":true,"context_lines":[{"line_number":519,"context_line":"            enabled_mdev_types\u003d[fakelibvirt.NVIDIA_12_VGPU_TYPE],"},{"line_number":520,"context_line":"            group\u003d\u0027devices\u0027)"},{"line_number":521,"context_line":"        self.dest \u003d self.restart_compute_service(self.dest.host)"},{"line_number":522,"context_line":"        self.server \u003d self._create_server("},{"line_number":523,"context_line":"            image_uuid\u003d\u0027155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027,"},{"line_number":524,"context_line":"            flavor_id\u003dself.flavor, networks\u003d\u0027auto\u0027, host\u003dself.src.host)"},{"line_number":525,"context_line":"        # now live migrate that server"}],"source_content_type":"text/x-python","patch_set":5,"id":"c37fdd46_f3e4ff9a","line":522,"updated":"2024-01-15 11:51:33.000000000","message":"my guess is you need to call run_perodics here\n\nwe do not run them in the functional jobs by default\nand you need to run update aviable resouce classes to be able to boot after the config change.\n\nso that might be the race","commit_id":"32fca07e1d92ad0d9e6520d5145017707b6ef872"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"27d6c467a1a537ffdb6460fcd05fce7f11a27242","unresolved":false,"context_lines":[{"line_number":519,"context_line":"            enabled_mdev_types\u003d[fakelibvirt.NVIDIA_12_VGPU_TYPE],"},{"line_number":520,"context_line":"            group\u003d\u0027devices\u0027)"},{"line_number":521,"context_line":"        self.dest \u003d self.restart_compute_service(self.dest.host)"},{"line_number":522,"context_line":"        self.server \u003d self._create_server("},{"line_number":523,"context_line":"            image_uuid\u003d\u0027155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027,"},{"line_number":524,"context_line":"            flavor_id\u003dself.flavor, networks\u003d\u0027auto\u0027, host\u003dself.src.host)"},{"line_number":525,"context_line":"        # now live migrate that server"}],"source_content_type":"text/x-python","patch_set":5,"id":"14bff5bc_9a9adafb","line":522,"in_reply_to":"1bfb95b0_2b361038","updated":"2024-01-17 18:11:21.000000000","message":"Done","commit_id":"32fca07e1d92ad0d9e6520d5145017707b6ef872"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bee8f2fb3c93642d7d1a4f7db27b77a5380356d1","unresolved":true,"context_lines":[{"line_number":519,"context_line":"            enabled_mdev_types\u003d[fakelibvirt.NVIDIA_12_VGPU_TYPE],"},{"line_number":520,"context_line":"            group\u003d\u0027devices\u0027)"},{"line_number":521,"context_line":"        self.dest \u003d self.restart_compute_service(self.dest.host)"},{"line_number":522,"context_line":"        self.server \u003d self._create_server("},{"line_number":523,"context_line":"            image_uuid\u003d\u0027155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027,"},{"line_number":524,"context_line":"            flavor_id\u003dself.flavor, networks\u003d\u0027auto\u0027, host\u003dself.src.host)"},{"line_number":525,"context_line":"        # now live migrate that server"}],"source_content_type":"text/x-python","patch_set":5,"id":"1bfb95b0_2b361038","line":522,"in_reply_to":"c37fdd46_f3e4ff9a","updated":"2024-01-15 14:02:29.000000000","message":"Sounds a good idea, I\u0027ll force a periodic run before calling create (that\u0027s where it\u0027s failing, when creating it doesn\u0027t find any resources for the nvidia-11 type)","commit_id":"32fca07e1d92ad0d9e6520d5145017707b6ef872"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bff925b05a0c689cba27a88c71a6339e3f7eb65f","unresolved":true,"context_lines":[{"line_number":527,"context_line":"            client.OpenStackApiException,"},{"line_number":528,"context_line":"            self._live_migrate,"},{"line_number":529,"context_line":"            self.server, \u0027completed\u0027)"},{"line_number":530,"context_line":"        self.assertEqual(500, ex.response.status_code)"},{"line_number":531,"context_line":"        self.assertIn(\u0027NoValidHost\u0027, str(ex))"},{"line_number":532,"context_line":"        log_out \u003d self.stdlog.logger.output"},{"line_number":533,"context_line":"        # The log is fully JSON-serialized, so just check the phrase."}],"source_content_type":"text/x-python","patch_set":5,"id":"9eddc94d_af91e574","line":530,"updated":"2024-01-15 11:41:28.000000000","message":"why is a no valid host returned as a 500\nshould that not be a 409 conflict or similar?\nits not really an internal server error","commit_id":"32fca07e1d92ad0d9e6520d5145017707b6ef872"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bee8f2fb3c93642d7d1a4f7db27b77a5380356d1","unresolved":false,"context_lines":[{"line_number":527,"context_line":"            client.OpenStackApiException,"},{"line_number":528,"context_line":"            self._live_migrate,"},{"line_number":529,"context_line":"            self.server, \u0027completed\u0027)"},{"line_number":530,"context_line":"        self.assertEqual(500, ex.response.status_code)"},{"line_number":531,"context_line":"        self.assertIn(\u0027NoValidHost\u0027, str(ex))"},{"line_number":532,"context_line":"        log_out \u003d self.stdlog.logger.output"},{"line_number":533,"context_line":"        # The log is fully JSON-serialized, so just check the phrase."}],"source_content_type":"text/x-python","patch_set":5,"id":"48a2790a_b4b3208f","line":530,"in_reply_to":"2ad5e91d_92a1b4bf","updated":"2024-01-15 14:02:29.000000000","message":"Other functional tests wrap the same exception fwiw.","commit_id":"32fca07e1d92ad0d9e6520d5145017707b6ef872"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7f89057dc32f9e4217f12b3dab0d320644714117","unresolved":false,"context_lines":[{"line_number":527,"context_line":"            client.OpenStackApiException,"},{"line_number":528,"context_line":"            self._live_migrate,"},{"line_number":529,"context_line":"            self.server, \u0027completed\u0027)"},{"line_number":530,"context_line":"        self.assertEqual(500, ex.response.status_code)"},{"line_number":531,"context_line":"        self.assertIn(\u0027NoValidHost\u0027, str(ex))"},{"line_number":532,"context_line":"        log_out \u003d self.stdlog.logger.output"},{"line_number":533,"context_line":"        # The log is fully JSON-serialized, so just check the phrase."}],"source_content_type":"text/x-python","patch_set":5,"id":"2ad5e91d_92a1b4bf","line":530,"in_reply_to":"9eddc94d_af91e574","updated":"2024-01-15 11:51:33.000000000","message":"oh its just a raw nova excptiop without setting a code \nhttps://opendev.org/openstack/nova/src/commit/fed123085d9fc2306833840326c1c6a93deba09d/nova/exception.py#L1243\nso it is a 500. that seams to be a bug in my view but thats not whay this is failing","commit_id":"32fca07e1d92ad0d9e6520d5145017707b6ef872"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"cf69802e906634c7983d7105041054cca11acceb","unresolved":true,"context_lines":[{"line_number":540,"context_line":"                      \u0027\u0027 % server[\u0027id\u0027],"},{"line_number":541,"context_line":"                      log_out)"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def test_live_migration_fails_due_to_non_supported_types(self):"},{"line_number":544,"context_line":"        self.flags("},{"line_number":545,"context_line":"            enabled_mdev_types\u003d[fakelibvirt.NVIDIA_11_VGPU_TYPE],"},{"line_number":546,"context_line":"            group\u003d\u0027devices\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"d2ab8fab_bf22ef41","line":543,"range":{"start_line":543,"start_character":8,"end_line":543,"end_character":60},"updated":"2024-01-22 17:52:39.000000000","message":"nit: test_live_migration_fails_due_to_non_supported_mdev_types","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3fc745ecf17d85e844a50e83010c65f71b6ca0ee","unresolved":false,"context_lines":[{"line_number":540,"context_line":"                      \u0027\u0027 % server[\u0027id\u0027],"},{"line_number":541,"context_line":"                      log_out)"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    def test_live_migration_fails_due_to_non_supported_types(self):"},{"line_number":544,"context_line":"        self.flags("},{"line_number":545,"context_line":"            enabled_mdev_types\u003d[fakelibvirt.NVIDIA_11_VGPU_TYPE],"},{"line_number":546,"context_line":"            group\u003d\u0027devices\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7c75c654_de354b86","line":543,"range":{"start_line":543,"start_character":8,"end_line":543,"end_character":60},"in_reply_to":"d2ab8fab_bf22ef41","updated":"2024-01-25 13:28:14.000000000","message":"Done","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dad146c80043cd47ff1c1645e002ed6f987e2a0a","unresolved":true,"context_lines":[{"line_number":560,"context_line":"            client.OpenStackApiException,"},{"line_number":561,"context_line":"            self._live_migrate,"},{"line_number":562,"context_line":"            self.server, \u0027completed\u0027)"},{"line_number":563,"context_line":"        self.assertEqual(500, ex.response.status_code)"},{"line_number":564,"context_line":"        self.assertIn(\u0027NoValidHost\u0027, str(ex))"},{"line_number":565,"context_line":"        log_out \u003d self.stdlog.logger.output"},{"line_number":566,"context_line":"        # The log is fully JSON-serialized, so just check the phrase."}],"source_content_type":"text/x-python","patch_set":11,"id":"aeea1507_c9aa415c","line":563,"updated":"2024-02-14 11:36:05.000000000","message":"it always bugged me that we use 500 for no valid host.\nbut there is no better http status code for “the request you made was entirly vailid but all the resouces are currently in use)”\n\nwith that said i think we are getting this because of the cast as call fixutre right?\n\nor perhaps we are just using the old microversion form 2.34 live migrate is an async call and you have to check the instnace action event.\n\nin either case you can make this a blocking call with the older microversion so this is fine.","commit_id":"489aab934cc504b89201d70217466d4f53868768"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ab940ccf0e294886f29fda785bf4d0ba81eaf7c","unresolved":true,"context_lines":[{"line_number":3627,"context_line":"                                       mock.call(self.context, CONF.host)])"},{"line_number":3628,"context_line":"            mock_check_dest.assert_called_once_with(self.context, instance,"},{"line_number":3629,"context_line":"                        src_info, dest_info, block_migration, disk_over_commit)"},{"line_number":3630,"context_line":""},{"line_number":3631,"context_line":"            mock_event.assert_called_once_with("},{"line_number":3632,"context_line":"                self.context, \u0027compute_check_can_live_migrate_destination\u0027,"},{"line_number":3633,"context_line":"                CONF.host, instance.uuid, graceful_exit\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":10,"id":"0c6d0b4f_5c6a69ce","side":"PARENT","line":3630,"updated":"2024-02-02 15:05:22.000000000","message":"Random whitespace damage","commit_id":"baa78326ddc3d120370134663afcf50cda607d56"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c03cff7711236fd4e4c696129d42f2d3f83e3e17","unresolved":false,"context_lines":[{"line_number":3627,"context_line":"                                       mock.call(self.context, CONF.host)])"},{"line_number":3628,"context_line":"            mock_check_dest.assert_called_once_with(self.context, instance,"},{"line_number":3629,"context_line":"                        src_info, dest_info, block_migration, disk_over_commit)"},{"line_number":3630,"context_line":""},{"line_number":3631,"context_line":"            mock_event.assert_called_once_with("},{"line_number":3632,"context_line":"                self.context, \u0027compute_check_can_live_migrate_destination\u0027,"},{"line_number":3633,"context_line":"                CONF.host, instance.uuid, graceful_exit\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":10,"id":"ab89a3e9_5d42cd94","side":"PARENT","line":3630,"in_reply_to":"0c6d0b4f_5c6a69ce","updated":"2024-02-05 14:09:51.000000000","message":"Done","commit_id":"baa78326ddc3d120370134663afcf50cda607d56"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ab940ccf0e294886f29fda785bf4d0ba81eaf7c","unresolved":true,"context_lines":[{"line_number":11717,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver,"},{"line_number":11718,"context_line":"                       \u0027_get_supported_vgpu_types\u0027)"},{"line_number":11719,"context_line":"    def test_check_source_migrate_data_at_dest_types_not_supported(self,"},{"line_number":11720,"context_line":"                                                                  mock_get):"},{"line_number":11721,"context_line":"        \"\"\"Raises an exception if the destination doesn\u0027t support the source"},{"line_number":11722,"context_line":"        mdev types."},{"line_number":11723,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"daa9030e_a18de804","line":11720,"range":{"start_line":11720,"start_character":66,"end_line":11720,"end_character":74},"updated":"2024-02-02 15:05:22.000000000","message":"This is misaligned","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c03cff7711236fd4e4c696129d42f2d3f83e3e17","unresolved":false,"context_lines":[{"line_number":11717,"context_line":"    @mock.patch.object(libvirt_driver.LibvirtDriver,"},{"line_number":11718,"context_line":"                       \u0027_get_supported_vgpu_types\u0027)"},{"line_number":11719,"context_line":"    def test_check_source_migrate_data_at_dest_types_not_supported(self,"},{"line_number":11720,"context_line":"                                                                  mock_get):"},{"line_number":11721,"context_line":"        \"\"\"Raises an exception if the destination doesn\u0027t support the source"},{"line_number":11722,"context_line":"        mdev types."},{"line_number":11723,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a5c4b95_1afc4f28","line":11720,"range":{"start_line":11720,"start_character":66,"end_line":11720,"end_character":74},"in_reply_to":"daa9030e_a18de804","updated":"2024-02-05 14:09:51.000000000","message":"Done","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ab940ccf0e294886f29fda785bf4d0ba81eaf7c","unresolved":true,"context_lines":[{"line_number":11736,"context_line":"                          drvr.check_source_migrate_data_at_dest,"},{"line_number":11737,"context_line":"                          self.context, instance_ref, dest_check_data,"},{"line_number":11738,"context_line":"                          None, None, allocations)"},{"line_number":11739,"context_line":""},{"line_number":11740,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027)"},{"line_number":11741,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getVersion\u0027)"},{"line_number":11742,"context_line":"    def _test_host_can_support_mdev_lm(self, mock_getversion,"}],"source_content_type":"text/x-python","patch_set":10,"id":"331fde31_b21a4346","line":11739,"updated":"2024-02-02 15:05:22.000000000","message":"There is no test case for having source_mdev_types that *are* supported?","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"394bd5005a448ebd8eea84390c73972988695ace","unresolved":true,"context_lines":[{"line_number":11736,"context_line":"                          drvr.check_source_migrate_data_at_dest,"},{"line_number":11737,"context_line":"                          self.context, instance_ref, dest_check_data,"},{"line_number":11738,"context_line":"                          None, None, allocations)"},{"line_number":11739,"context_line":""},{"line_number":11740,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027)"},{"line_number":11741,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getVersion\u0027)"},{"line_number":11742,"context_line":"    def _test_host_can_support_mdev_lm(self, mock_getversion,"}],"source_content_type":"text/x-python","patch_set":10,"id":"645c35e2_f934d0b6","line":11739,"in_reply_to":"331fde31_b21a4346","updated":"2024-02-02 15:54:12.000000000","message":"As this is supported by the next change, that\u0027s why I provided the test there : https://review.opendev.org/c/openstack/nova/+/904209/13/nova/tests/unit/virt/libvirt/test_driver.py#11779","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3791ad4edd26934cd304e71f987d9c4ba7d0be02","unresolved":false,"context_lines":[{"line_number":11736,"context_line":"                          drvr.check_source_migrate_data_at_dest,"},{"line_number":11737,"context_line":"                          self.context, instance_ref, dest_check_data,"},{"line_number":11738,"context_line":"                          None, None, allocations)"},{"line_number":11739,"context_line":""},{"line_number":11740,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getLibVersion\u0027)"},{"line_number":11741,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027getVersion\u0027)"},{"line_number":11742,"context_line":"    def _test_host_can_support_mdev_lm(self, mock_getversion,"}],"source_content_type":"text/x-python","patch_set":10,"id":"f8ea3e94_e9f8581d","line":11739,"in_reply_to":"645c35e2_f934d0b6","updated":"2024-02-02 16:01:53.000000000","message":"I mean, okay, but it seems like unit tests for specific things you can cover in each change make sense to me. You\u0027re testing that invalid stuff is rejected I\u0027m not sure why not check the positive case as well. It\u0027s just hard to be okay with this patch on its own without them.\n\nBut, okay, as long as it\u0027s going to be covered I guess.","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"}],"nova/virt/driver.py":[{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"cf69802e906634c7983d7105041054cca11acceb","unresolved":true,"context_lines":[{"line_number":1322,"context_line":"        \"\"\""},{"line_number":1323,"context_line":"        raise NotImplementedError()"},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":"    def post_check_can_live_migrate_dest(self, ctxt, instance, migrate_data,"},{"line_number":1326,"context_line":"                                         migration, limits, allocs):"},{"line_number":1327,"context_line":"        \"\"\"Runs the last checks on the destination after the source returned"},{"line_number":1328,"context_line":"        the migrate_data."}],"source_content_type":"text/x-python","patch_set":8,"id":"9d2e3231_78913c47","line":1325,"range":{"start_line":1325,"start_character":8,"end_line":1325,"end_character":40},"updated":"2024-01-22 17:52:39.000000000","message":"Should you not implement this method also for the other drivers ?","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3fc745ecf17d85e844a50e83010c65f71b6ca0ee","unresolved":false,"context_lines":[{"line_number":1322,"context_line":"        \"\"\""},{"line_number":1323,"context_line":"        raise NotImplementedError()"},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":"    def post_check_can_live_migrate_dest(self, ctxt, instance, migrate_data,"},{"line_number":1326,"context_line":"                                         migration, limits, allocs):"},{"line_number":1327,"context_line":"        \"\"\"Runs the last checks on the destination after the source returned"},{"line_number":1328,"context_line":"        the migrate_data."}],"source_content_type":"text/x-python","patch_set":8,"id":"7201e9aa_f2928e0d","line":1325,"range":{"start_line":1325,"start_character":8,"end_line":1325,"end_character":40},"in_reply_to":"9d2e3231_78913c47","updated":"2024-01-25 13:28:14.000000000","message":"excellent point, I actually rather need to return migrate_data inconditionnally, like we do with post_claim_migrate_data below. Done.","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e30c9e656498d6c9abaafae6f5ada6bb60c64b0","unresolved":true,"context_lines":[{"line_number":543,"context_line":"        # This dict is for knowing which mdevs are already claimed by some"},{"line_number":544,"context_line":"        # instance. This is keyed by instance UUIDs and the value is a list"},{"line_number":545,"context_line":"        # of mediated device UUIDs."},{"line_number":546,"context_line":"        self.instance_claimed_mdevs \u003d {}"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"        # Handles ongoing device manipultion in libvirt where we wait for the"},{"line_number":549,"context_line":"        # events about success or failure."}],"source_content_type":"text/x-python","patch_set":2,"id":"53603137_c114cd06","line":546,"range":{"start_line":546,"start_character":13,"end_line":546,"end_character":35},"updated":"2023-12-21 13:00:25.000000000","message":"I know you marked it WIP; so it looks like the instance_claimed_mdevs method is still yet to come.","commit_id":"0afa6b2f4aae540c02df7c01398f547124403482"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"85e3398c397aafd84c73a3afb8c5b7ff21df65b3","unresolved":false,"context_lines":[{"line_number":543,"context_line":"        # This dict is for knowing which mdevs are already claimed by some"},{"line_number":544,"context_line":"        # instance. This is keyed by instance UUIDs and the value is a list"},{"line_number":545,"context_line":"        # of mediated device UUIDs."},{"line_number":546,"context_line":"        self.instance_claimed_mdevs \u003d {}"},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"        # Handles ongoing device manipultion in libvirt where we wait for the"},{"line_number":549,"context_line":"        # events about success or failure."}],"source_content_type":"text/x-python","patch_set":2,"id":"6e07f85d_5d9fc464","line":546,"range":{"start_line":546,"start_character":13,"end_line":546,"end_character":35},"in_reply_to":"53603137_c114cd06","updated":"2023-12-21 13:12:22.000000000","message":"indeed","commit_id":"0afa6b2f4aae540c02df7c01398f547124403482"},{"author":{"_account_id":6962,"name":"Kashyap Chamarthy","email":"kchamart@redhat.com","username":"kashyapc"},"change_message_id":"4e30c9e656498d6c9abaafae6f5ada6bb60c64b0","unresolved":true,"context_lines":[{"line_number":9792,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9793,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"},{"line_number":9794,"context_line":"            # Do all the types are supported by this compute ?"},{"line_number":9795,"context_line":"            if not all(map(lambda type: type in self.supported_vgpu_types,"},{"line_number":9796,"context_line":"                           src_mdev_types.values())):"},{"line_number":9797,"context_line":"                reason \u003d (_(\u0027Unable to migrate %(instance_uuid)s: \u0027"},{"line_number":9798,"context_line":"                            \u0027Source mdev types %(src_types)s are not \u0027"},{"line_number":9799,"context_line":"                            \u0027supported by this compute : %(dest_types)s \u0027 %"}],"source_content_type":"text/x-python","patch_set":2,"id":"02248b9b_cbfd5285","line":9796,"range":{"start_line":9795,"start_character":0,"end_line":9796,"end_character":53},"updated":"2023-12-21 13:00:25.000000000","message":"So, IIUC, whether the given mdev-types are supported on a compute host is being done by _get_supported_vgpu_types()","commit_id":"0afa6b2f4aae540c02df7c01398f547124403482"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"85e3398c397aafd84c73a3afb8c5b7ff21df65b3","unresolved":false,"context_lines":[{"line_number":9792,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9793,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"},{"line_number":9794,"context_line":"            # Do all the types are supported by this compute ?"},{"line_number":9795,"context_line":"            if not all(map(lambda type: type in self.supported_vgpu_types,"},{"line_number":9796,"context_line":"                           src_mdev_types.values())):"},{"line_number":9797,"context_line":"                reason \u003d (_(\u0027Unable to migrate %(instance_uuid)s: \u0027"},{"line_number":9798,"context_line":"                            \u0027Source mdev types %(src_types)s are not \u0027"},{"line_number":9799,"context_line":"                            \u0027supported by this compute : %(dest_types)s \u0027 %"}],"source_content_type":"text/x-python","patch_set":2,"id":"4b0c3646_6061b7cd","line":9796,"range":{"start_line":9795,"start_character":0,"end_line":9796,"end_character":53},"in_reply_to":"02248b9b_cbfd5285","updated":"2023-12-21 13:12:22.000000000","message":"Correct, we know which types are supported by a node by the self.supported_vgpu_types list (which is created by the method you told which is called in init_host())","commit_id":"0afa6b2f4aae540c02df7c01398f547124403482"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"cf69802e906634c7983d7105041054cca11acceb","unresolved":true,"context_lines":[{"line_number":9790,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9791,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"},{"line_number":9792,"context_line":"            # Do all the types are supported by this compute ?"},{"line_number":9793,"context_line":"            if not all(map(lambda type: type in self.supported_vgpu_types,"},{"line_number":9794,"context_line":"                           src_mdev_types.values())):"},{"line_number":9795,"context_line":"                reason \u003d (_(\u0027Unable to migrate %(instance_uuid)s: \u0027"},{"line_number":9796,"context_line":"                            \u0027Source mdev types %(src_types)s are not \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"d1388896_1e06d0d8","line":9793,"range":{"start_line":9793,"start_character":33,"end_line":9793,"end_character":45},"updated":"2024-01-22 17:52:39.000000000","message":"Even if it\u0027s not big deal, you should not use type, as it is not a good practice.\nhttps://stackoverflow.com/questions/10568087/is-it-safe-to-use-the-python-word-type-in-my-code","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3fc745ecf17d85e844a50e83010c65f71b6ca0ee","unresolved":false,"context_lines":[{"line_number":9790,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9791,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"},{"line_number":9792,"context_line":"            # Do all the types are supported by this compute ?"},{"line_number":9793,"context_line":"            if not all(map(lambda type: type in self.supported_vgpu_types,"},{"line_number":9794,"context_line":"                           src_mdev_types.values())):"},{"line_number":9795,"context_line":"                reason \u003d (_(\u0027Unable to migrate %(instance_uuid)s: \u0027"},{"line_number":9796,"context_line":"                            \u0027Source mdev types %(src_types)s are not \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"f2f25962_79965849","line":9793,"range":{"start_line":9793,"start_character":33,"end_line":9793,"end_character":45},"in_reply_to":"d1388896_1e06d0d8","updated":"2024-01-25 13:28:14.000000000","message":"Good catch. Done.","commit_id":"3ac7ae41ee77530a27bd33c942a9176832c41e7c"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6470ccca19901157860c5cc499008c15811ee535","unresolved":true,"context_lines":[{"line_number":9788,"context_line":"        if not (\u0027src_supports_mdev_live_migration\u0027 in migrate_data and"},{"line_number":9789,"context_line":"                migrate_data.src_supports_mdev_live_migration):"},{"line_number":9790,"context_line":"            return migrate_data"},{"line_number":9791,"context_line":"        if migrate_data.obj_attr_is_set(\u0027source_mdev_types\u0027):"},{"line_number":9792,"context_line":"            # The instance that needs to be live-migrated has some mdevs"},{"line_number":9793,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9794,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"}],"source_content_type":"text/x-python","patch_set":9,"id":"a6da40fa_29088ff5","line":9791,"updated":"2024-01-30 14:52:48.000000000","message":"You use `in` above (and in earlier patches), why not use it here?","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"d7990a1fbc4f25a0f87c8532ad16dc73a5f5e224","unresolved":false,"context_lines":[{"line_number":9788,"context_line":"        if not (\u0027src_supports_mdev_live_migration\u0027 in migrate_data and"},{"line_number":9789,"context_line":"                migrate_data.src_supports_mdev_live_migration):"},{"line_number":9790,"context_line":"            return migrate_data"},{"line_number":9791,"context_line":"        if migrate_data.obj_attr_is_set(\u0027source_mdev_types\u0027):"},{"line_number":9792,"context_line":"            # The instance that needs to be live-migrated has some mdevs"},{"line_number":9793,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9794,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"}],"source_content_type":"text/x-python","patch_set":9,"id":"127a416f_c57bc2ef","line":9791,"in_reply_to":"a6da40fa_29088ff5","updated":"2024-02-01 16:47:51.000000000","message":"Done","commit_id":"1b869fa7e6b124bbb5a8f6517077a3d76722420e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ab940ccf0e294886f29fda785bf4d0ba81eaf7c","unresolved":true,"context_lines":[{"line_number":9790,"context_line":"            # The instance that needs to be live-migrated has some mdevs"},{"line_number":9791,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9792,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"},{"line_number":9793,"context_line":"            # Do all the types are supported by this compute ?"},{"line_number":9794,"context_line":"            if not all(map(lambda m_type: m_type in self.supported_vgpu_types,"},{"line_number":9795,"context_line":"                           src_mdev_types.values())):"},{"line_number":9796,"context_line":"                reason \u003d (_(\u0027Unable to migrate %(instance_uuid)s: \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6d3218_1bcf8a7c","line":9793,"range":{"start_line":9793,"start_character":14,"end_line":9793,"end_character":16},"updated":"2024-02-02 15:05:22.000000000","message":"\"are\"","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c03cff7711236fd4e4c696129d42f2d3f83e3e17","unresolved":false,"context_lines":[{"line_number":9790,"context_line":"            # The instance that needs to be live-migrated has some mdevs"},{"line_number":9791,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9792,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"},{"line_number":9793,"context_line":"            # Do all the types are supported by this compute ?"},{"line_number":9794,"context_line":"            if not all(map(lambda m_type: m_type in self.supported_vgpu_types,"},{"line_number":9795,"context_line":"                           src_mdev_types.values())):"},{"line_number":9796,"context_line":"                reason \u003d (_(\u0027Unable to migrate %(instance_uuid)s: \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"906005e7_27219cc5","line":9793,"range":{"start_line":9793,"start_character":14,"end_line":9793,"end_character":16},"in_reply_to":"fa6d3218_1bcf8a7c","updated":"2024-02-05 14:09:51.000000000","message":"Done","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7ab940ccf0e294886f29fda785bf4d0ba81eaf7c","unresolved":true,"context_lines":[{"line_number":9799,"context_line":"                          {\u0027instance_uuid\u0027: instance.uuid,"},{"line_number":9800,"context_line":"                           \u0027src_types\u0027: list(src_mdev_types.values()),"},{"line_number":9801,"context_line":"                           \u0027dest_types\u0027: self.supported_vgpu_types}))"},{"line_number":9802,"context_line":"                raise exception.MigrationPreCheckError(reason)"},{"line_number":9803,"context_line":"        return migrate_data"},{"line_number":9804,"context_line":""},{"line_number":9805,"context_line":"    def post_claim_migrate_data(self, context, instance, migrate_data, claim):"}],"source_content_type":"text/x-python","patch_set":10,"id":"a22a1f04_a76a1e04","line":9802,"updated":"2024-02-02 15:05:22.000000000","message":"Okay, so we\u0027re just checking whether we support all the mdev types that are incoming, but not whether or not we have available inventory, right?","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"3791ad4edd26934cd304e71f987d9c4ba7d0be02","unresolved":false,"context_lines":[{"line_number":9799,"context_line":"                          {\u0027instance_uuid\u0027: instance.uuid,"},{"line_number":9800,"context_line":"                           \u0027src_types\u0027: list(src_mdev_types.values()),"},{"line_number":9801,"context_line":"                           \u0027dest_types\u0027: self.supported_vgpu_types}))"},{"line_number":9802,"context_line":"                raise exception.MigrationPreCheckError(reason)"},{"line_number":9803,"context_line":"        return migrate_data"},{"line_number":9804,"context_line":""},{"line_number":9805,"context_line":"    def post_claim_migrate_data(self, context, instance, migrate_data, claim):"}],"source_content_type":"text/x-python","patch_set":10,"id":"f14c6dbd_5d0186b7","line":9802,"in_reply_to":"805d91cd_4819019e","updated":"2024-02-02 16:01:53.000000000","message":"Acknowledged","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"394bd5005a448ebd8eea84390c73972988695ace","unresolved":true,"context_lines":[{"line_number":9799,"context_line":"                          {\u0027instance_uuid\u0027: instance.uuid,"},{"line_number":9800,"context_line":"                           \u0027src_types\u0027: list(src_mdev_types.values()),"},{"line_number":9801,"context_line":"                           \u0027dest_types\u0027: self.supported_vgpu_types}))"},{"line_number":9802,"context_line":"                raise exception.MigrationPreCheckError(reason)"},{"line_number":9803,"context_line":"        return migrate_data"},{"line_number":9804,"context_line":""},{"line_number":9805,"context_line":"    def post_claim_migrate_data(self, context, instance, migrate_data, claim):"}],"source_content_type":"text/x-python","patch_set":10,"id":"805d91cd_4819019e","line":9802,"in_reply_to":"a22a1f04_a76a1e04","updated":"2024-02-02 15:54:12.000000000","message":"We look at that by the next change : https://review.opendev.org/c/openstack/nova/+/904209/13/nova/virt/libvirt/driver.py#9836","commit_id":"5194d45c92465282d99a64969868f2068a6bb300"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dad146c80043cd47ff1c1645e002ed6f987e2a0a","unresolved":true,"context_lines":[{"line_number":9791,"context_line":"            src_mdev_types \u003d migrate_data.source_mdev_types"},{"line_number":9792,"context_line":"            # As a reminder, src_mdev_types is a dict of mdev UUID and its type"},{"line_number":9793,"context_line":"            # Are all the types supported by this compute ?"},{"line_number":9794,"context_line":"            if not all(map(lambda m_type: m_type in self.supported_vgpu_types,"},{"line_number":9795,"context_line":"                           src_mdev_types.values())):"},{"line_number":9796,"context_line":"                reason \u003d (_(\u0027Unable to migrate %(instance_uuid)s: \u0027"},{"line_number":9797,"context_line":"                            \u0027Source mdev types %(src_types)s are not \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"d19dbca8_8f02fb5e","line":9794,"updated":"2024-02-14 11:36:05.000000000","message":"this could also have been a generator expression to early out  but sure this is equally vaild since the dict lenght will be small","commit_id":"489aab934cc504b89201d70217466d4f53868768"}]}
