)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"432f8181b6089ac65c0d682b673fb608ea3b8942","unresolved":false,"context_lines":[{"line_number":19,"context_line":"_allocate_mdev() code to be able to support non-reshaped VGPU inventories."},{"line_number":20,"context_line":"Given moving to grenade checking the VGPU reshape testing wouldn\u0027t be"},{"line_number":21,"context_line":"trivial, we accept to still provide support for non-nested RPs in this"},{"line_number":22,"context_line":"specific _allocate_mdevs() libvirt. This sucks a bit, but that doesn\u0027t harm."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Partially-Implements: bp/vgpu-multiple-types"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df33271e_b423baa6","line":22,"range":{"start_line":22,"start_character":36,"end_line":22,"end_character":76},"updated":"2020-04-02 12:18:16.000000000","message":"i think we will need to keep this logic around for as long as we have the reshape code since we need to keep the reshape functional test until that is removed.","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f690522455b64a147f68de3cb85eaee2531cf412","unresolved":false,"context_lines":[{"line_number":19,"context_line":"_allocate_mdev() code to be able to support non-reshaped VGPU inventories."},{"line_number":20,"context_line":"Given moving to grenade checking the VGPU reshape testing wouldn\u0027t be"},{"line_number":21,"context_line":"trivial, we accept to still provide support for non-nested RPs in this"},{"line_number":22,"context_line":"specific _allocate_mdevs() libvirt. This sucks a bit, but that doesn\u0027t harm."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Partially-Implements: bp/vgpu-multiple-types"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"df33271e_ab421e3c","line":22,"range":{"start_line":22,"start_character":36,"end_line":22,"end_character":76},"in_reply_to":"df33271e_b423baa6","updated":"2020-04-03 10:01:03.000000000","message":"Done","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9ad68daad9a3eab05dc26b873f323456e9abb033","unresolved":false,"context_lines":[{"line_number":21,"context_line":"Given moving to grenade checking the VGPU reshape testing wouldn\u0027t be"},{"line_number":22,"context_line":"trivial, we accept to still provide support for non-nested RPs in this"},{"line_number":23,"context_line":"specific _allocate_mdevs() libvirt. This sucks a bit, but we need to"},{"line_number":24,"context_line":"keep it for a while and that doesn\u0027t harm."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Partially-Implements: bp/vgpu-multiple-types"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"df33271e_39fd873a","line":24,"updated":"2020-04-07 07:58:37.000000000","message":"Yeah, we need to be able to create a pre-condition state in the functional test that is like _before the reshape_ then trigger a reshape. Right now creating the per-condition is done by creating an instance via the API. If we don\u0027t want to keep the old code around to support that then we can try to create and instance with some deeper interface, or by mocking out some part of the new code from the libvirt layer. None of it will look nice though. :/","commit_id":"55e0592e70cd6a1f92845ae47f25209bd2d02d24"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"be063897c3e1241ac90aed2a7a7b0ce8d9b66df0","unresolved":false,"context_lines":[{"line_number":23,"context_line":"specific _allocate_mdevs() libvirt. This sucks a bit, but we need to"},{"line_number":24,"context_line":"keep it for a while and that doesn\u0027t harm."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Partially-Implements: bp/vgpu-multiple-types"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I6a1cebb6676b20b76e451fc3bde5ea54bbf16ff7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_4207b01d","line":26,"updated":"2020-04-07 09:55:17.000000000","message":"nit it seems gerrit does not support this syntax as it does not create a clickable link on the UI.","commit_id":"7dce3e975018662e7094fdf772ecb640580a64a4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"69ecc793c6dcdab80d38138f23f649820520fc4f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"specific _allocate_mdevs() libvirt. This sucks a bit, but we need to"},{"line_number":24,"context_line":"keep it for a while and that doesn\u0027t harm."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Partially-Implements: bp/vgpu-multiple-types"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I6a1cebb6676b20b76e451fc3bde5ea54bbf16ff7"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"df33271e_47305408","line":26,"in_reply_to":"df33271e_4207b01d","updated":"2020-04-07 16:25:48.000000000","message":"it was the case before... :(","commit_id":"7dce3e975018662e7094fdf772ecb640580a64a4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"75033057ed38fe15c00a6168cdd69d3141aa26b0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provide the parent pGPU when creating a new vGPU"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now that all compute node Resource Providers are reshaped (since Stein),"},{"line_number":10,"context_line":"we know that each of them have children RPs if they have pGPUs."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"That\u0027s why we can now pass the parent PCI ID (for the pGPU) when wanting"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"df33271e_0f092d94","line":9,"range":{"start_line":9,"start_character":59,"end_line":9,"end_character":70},"updated":"2020-04-08 10:23:49.000000000","message":"Could you reference I511d26dc6487fadfcf22ba747abd385068e975a4","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48688a70e67b67acb03dccf3d1dc5aadd1337ce5","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provide the parent pGPU when creating a new vGPU"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now that all compute node Resource Providers are reshaped (since Stein),"},{"line_number":10,"context_line":"we know that each of them have children RPs if they have pGPUs."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"That\u0027s why we can now pass the parent PCI ID (for the pGPU) when wanting"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"df33271e_816991bf","line":9,"range":{"start_line":9,"start_character":59,"end_line":9,"end_character":70},"in_reply_to":"df33271e_0f092d94","updated":"2020-04-08 10:55:06.000000000","message":"This would respin the whole series, can we just leave it as a comment unless I *need* to respin ?","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"4a98462aa8546572d2c5e6f99261d9f0400d797f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provide the parent pGPU when creating a new vGPU"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Now that all compute node Resource Providers are reshaped (since Stein),"},{"line_number":10,"context_line":"we know that each of them have children RPs if they have pGPUs."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"That\u0027s why we can now pass the parent PCI ID (for the pGPU) when wanting"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"df33271e_a1ee55b1","line":9,"range":{"start_line":9,"start_character":59,"end_line":9,"end_character":70},"in_reply_to":"df33271e_816991bf","updated":"2020-04-08 11:15:08.000000000","message":"Yup of course.","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"bd3109a25a6aed5f5626fa10c4027b4c4207ed0a","unresolved":false,"context_lines":[{"line_number":796,"context_line":"                # Count how many vGPUs are in use for this instance"},{"line_number":797,"context_line":"                dev_info \u003d self._get_mediated_device_information(dev_name)"},{"line_number":798,"context_line":"                parent \u003d dev_info[\u0027parent\u0027]"},{"line_number":799,"context_line":"                mdev_created \u003d self._create_new_mediated_device("},{"line_number":800,"context_line":"                    parent, uuid\u003dmdev_uuid)"},{"line_number":801,"context_line":""},{"line_number":802,"context_line":"    def _set_multiattach_support(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_41d3a5d5","line":799,"updated":"2020-04-01 15:31:42.000000000","message":"F841 local variable \u0027mdev_created\u0027 is assigned to but never used","commit_id":"ddf8f600555a51a6343e8ad4b1af5c21a3fbd610"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"432f8181b6089ac65c0d682b673fb608ea3b8942","unresolved":false,"context_lines":[{"line_number":6924,"context_line":"        mdevs \u003d self._get_mediated_devices(requested_types)"},{"line_number":6925,"context_line":"        available_mdevs \u003d set()"},{"line_number":6926,"context_line":"        for mdev in mdevs:"},{"line_number":6927,"context_line":"            # FIXME(sbauza): Make the parent argument mandatory once we fix the"},{"line_number":6928,"context_line":"            # reshape functional test"},{"line_number":6929,"context_line":"            if parent is None or mdev[\u0027parent\u0027] \u003d\u003d parent:"},{"line_number":6930,"context_line":"                available_mdevs.add(mdev[\"uuid\"])"},{"line_number":6931,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_b9d293cf","line":6928,"range":{"start_line":6927,"start_character":12,"end_line":6928,"end_character":37},"updated":"2020-04-02 12:18:16.000000000","message":"you have already made it mandatory by making it a positional are.\n\nit can still be none but it is now mandatory to be passed","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f690522455b64a147f68de3cb85eaee2531cf412","unresolved":false,"context_lines":[{"line_number":6924,"context_line":"        mdevs \u003d self._get_mediated_devices(requested_types)"},{"line_number":6925,"context_line":"        available_mdevs \u003d set()"},{"line_number":6926,"context_line":"        for mdev in mdevs:"},{"line_number":6927,"context_line":"            # FIXME(sbauza): Make the parent argument mandatory once we fix the"},{"line_number":6928,"context_line":"            # reshape functional test"},{"line_number":6929,"context_line":"            if parent is None or mdev[\u0027parent\u0027] \u003d\u003d parent:"},{"line_number":6930,"context_line":"                available_mdevs.add(mdev[\"uuid\"])"},{"line_number":6931,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_8b0f5a2c","line":6928,"range":{"start_line":6927,"start_character":12,"end_line":6928,"end_character":37},"in_reply_to":"df33271e_b9d293cf","updated":"2020-04-03 10:01:03.000000000","message":"Done","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"432f8181b6089ac65c0d682b673fb608ea3b8942","unresolved":false,"context_lines":[{"line_number":6946,"context_line":"        devices \u003d self._get_mdev_capable_devices(supported_types)"},{"line_number":6947,"context_line":"        for device in devices:"},{"line_number":6948,"context_line":"            dev_name \u003d device[\u0027dev_id\u0027]"},{"line_number":6949,"context_line":"            # FIXME(sbauza): Make the parent argument mandatory once we fix the"},{"line_number":6950,"context_line":"            # reshape functional test"},{"line_number":6951,"context_line":"            if parent is not None and dev_name !\u003d parent:"},{"line_number":6952,"context_line":"                # The device is not the one that was called, not creating"},{"line_number":6953,"context_line":"                # the mdev"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_b9b9f379","line":6950,"range":{"start_line":6949,"start_character":10,"end_line":6950,"end_character":37},"updated":"2020-04-02 12:18:16.000000000","message":"again its a postional arg so it is mandatoy in the signiture it just can be None currently.","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f690522455b64a147f68de3cb85eaee2531cf412","unresolved":false,"context_lines":[{"line_number":6946,"context_line":"        devices \u003d self._get_mdev_capable_devices(supported_types)"},{"line_number":6947,"context_line":"        for device in devices:"},{"line_number":6948,"context_line":"            dev_name \u003d device[\u0027dev_id\u0027]"},{"line_number":6949,"context_line":"            # FIXME(sbauza): Make the parent argument mandatory once we fix the"},{"line_number":6950,"context_line":"            # reshape functional test"},{"line_number":6951,"context_line":"            if parent is not None and dev_name !\u003d parent:"},{"line_number":6952,"context_line":"                # The device is not the one that was called, not creating"},{"line_number":6953,"context_line":"                # the mdev"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_eb1a666c","line":6950,"range":{"start_line":6949,"start_character":10,"end_line":6950,"end_character":37},"in_reply_to":"df33271e_b9b9f379","updated":"2020-04-03 10:01:03.000000000","message":"Done","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"432f8181b6089ac65c0d682b673fb608ea3b8942","unresolved":false,"context_lines":[{"line_number":7011,"context_line":"        # FIXME(sbauza): The functional reshape test assumes that we could"},{"line_number":7012,"context_line":"        # run _allocate_mdevs() against non-nested RPs but this is impossible"},{"line_number":7013,"context_line":"        # as all inventories have been reshaped *before now* since it\u0027s done"},{"line_number":7014,"context_line":"        # on nova-compute restart."},{"line_number":7015,"context_line":"        # That said, since fixing the functional test isn\u0027t easy yet, let\u0027s"},{"line_number":7016,"context_line":"        # assume we still support a non-nested RP for now."},{"line_number":7017,"context_line":"        if allocated_rp.parent_uuid is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_19629f0a","line":7014,"range":{"start_line":7014,"start_character":26,"end_line":7014,"end_character":33},"updated":"2020-04-02 12:18:16.000000000","message":"its done as part of init_host right or in general that agent start/init","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f690522455b64a147f68de3cb85eaee2531cf412","unresolved":false,"context_lines":[{"line_number":7011,"context_line":"        # FIXME(sbauza): The functional reshape test assumes that we could"},{"line_number":7012,"context_line":"        # run _allocate_mdevs() against non-nested RPs but this is impossible"},{"line_number":7013,"context_line":"        # as all inventories have been reshaped *before now* since it\u0027s done"},{"line_number":7014,"context_line":"        # on nova-compute restart."},{"line_number":7015,"context_line":"        # That said, since fixing the functional test isn\u0027t easy yet, let\u0027s"},{"line_number":7016,"context_line":"        # assume we still support a non-nested RP for now."},{"line_number":7017,"context_line":"        if allocated_rp.parent_uuid is None:"}],"source_content_type":"text/x-python","patch_set":5,"id":"df33271e_cb15e23e","line":7014,"range":{"start_line":7014,"start_character":26,"end_line":7014,"end_character":33},"in_reply_to":"df33271e_19629f0a","updated":"2020-04-03 10:01:03.000000000","message":"Done","commit_id":"441cc4cca87e47ea39f8d82086147e737f7343c4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9ad68daad9a3eab05dc26b873f323456e9abb033","unresolved":false,"context_lines":[{"line_number":788,"context_line":"        \"\"\""},{"line_number":789,"context_line":"        # NOTE(sbauza): Since this method is called when restarting"},{"line_number":790,"context_line":"        # the nova-compute service, we are *sure* that the Resource providers"},{"line_number":791,"context_line":"        # for this node were reshaped before."},{"line_number":792,"context_line":"        mdevs \u003d self._get_all_assigned_mediated_devices()"},{"line_number":793,"context_line":"        for (mdev_uuid, instance_uuid) in six.iteritems(mdevs):"},{"line_number":794,"context_line":"            if not self._is_existing_mdev(mdev_uuid):"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_1c17d147","line":791,"updated":"2020-04-07 07:58:37.000000000","message":"_recreate_assigned_mediated_devices() is called _before_ the virt driver can trigger a reshape.\n\n_recreate_assigned_mediated_devices is called from manager.init_host:\n\n  File \"/home/opnfv/rtox/nova/functional-py37/nova/service.py\", line 158, in start\n    self.manager.init_host()\n  File \"/home/opnfv/rtox/nova/functi\n    onal-py37/nova/compute/manager.py\", line 1395, in init_host\n    self.driver.init_host(host\u003dself.host)\n  File \"/home/opnfv/rtox/nova/functional-py37/nova/virt/libvirt/driver.py\", line 720, in init_host\n    print(\u0027\u0027.join(traceback.format_stack()))\n\nhttps://github.com/openstack/nova/blob/cd16ae25c865f25dbb313976b3d8ef9372db80af/nova/service.py#L158\n\n////\n\nupdate_provide_tree with startup\u003dTrue flag is called from mamanger.pre_start_hook:\n\n  File \"/home/opnfv/rtox/nova/functional-py37/nova/service.py\", line 176, in start\n    self.manager.pre_start_hook()\n  File \"/home/opnfv/rtox/nova/functional-py37/nova/compute/manager.py\", line 1538, in pre_start_hook\n    startup\u003dTrue)\n  File \"/home/opnfv/rtox/nova/functional-py37/nova/compute/manager.py\", line 9726, in update_available_resource\n    startup\u003dstartup)\n  File \"/home/opnfv/rtox/nova/functional-py37/nova/compute/manager.py\", line 9650, in _update_available_resource_for_node\n    startup\u003dstartup)\n  File \"/home/opnfv/rtox/nova/functional-py37/nova/compute/resource_tracker.py\", line 843, in update_available_resource\n\nhttps://github.com/openstack/nova/blob/cd16ae25c865f25dbb313976b3d8ef9372db80af/nova/service.py#L176\n\nbottom line, init_host called first in startup and that calls the _recreate_assigned_mediated_devices() then pre_start_hook is called and that can trigger a reshape. So your assumption here is not true. :/","commit_id":"55e0592e70cd6a1f92845ae47f25209bd2d02d24"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"53962f92ed94300910012b602ee4c0c7d0c5fd7b","unresolved":false,"context_lines":[{"line_number":788,"context_line":"        \"\"\""},{"line_number":789,"context_line":"        # NOTE(sbauza): This method just calls sysfs to recreate mediated"},{"line_number":790,"context_line":"        # devices by looking up existing guest XMLs and doesn\u0027t use"},{"line_number":791,"context_line":"        # the Placement API so it works with or without a vGPU reshape."},{"line_number":792,"context_line":"        mdevs \u003d self._get_all_assigned_mediated_devices()"},{"line_number":793,"context_line":"        for (mdev_uuid, instance_uuid) in six.iteritems(mdevs):"},{"line_number":794,"context_line":"            if not self._is_existing_mdev(mdev_uuid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_e2e084fb","line":791,"updated":"2020-04-07 09:54:12.000000000","message":"+1 much better. thanks.","commit_id":"7dce3e975018662e7094fdf772ecb640580a64a4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"53962f92ed94300910012b602ee4c0c7d0c5fd7b","unresolved":false,"context_lines":[{"line_number":793,"context_line":"        for (mdev_uuid, instance_uuid) in six.iteritems(mdevs):"},{"line_number":794,"context_line":"            if not self._is_existing_mdev(mdev_uuid):"},{"line_number":795,"context_line":"                dev_name \u003d libvirt_utils.mdev_uuid2name(mdev_uuid)"},{"line_number":796,"context_line":"                # Count how many vGPUs are in use for this instance"},{"line_number":797,"context_line":"                dev_info \u003d self._get_mediated_device_information(dev_name)"},{"line_number":798,"context_line":"                parent \u003d dev_info[\u0027parent\u0027]"},{"line_number":799,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_62911447","line":796,"updated":"2020-04-07 09:54:12.000000000","message":"do we real count that here?","commit_id":"7dce3e975018662e7094fdf772ecb640580a64a4"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"69ecc793c6dcdab80d38138f23f649820520fc4f","unresolved":false,"context_lines":[{"line_number":793,"context_line":"        for (mdev_uuid, instance_uuid) in six.iteritems(mdevs):"},{"line_number":794,"context_line":"            if not self._is_existing_mdev(mdev_uuid):"},{"line_number":795,"context_line":"                dev_name \u003d libvirt_utils.mdev_uuid2name(mdev_uuid)"},{"line_number":796,"context_line":"                # Count how many vGPUs are in use for this instance"},{"line_number":797,"context_line":"                dev_info \u003d self._get_mediated_device_information(dev_name)"},{"line_number":798,"context_line":"                parent \u003d dev_info[\u0027parent\u0027]"},{"line_number":799,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_a707a01d","line":796,"in_reply_to":"df33271e_62911447","updated":"2020-04-07 16:25:48.000000000","message":"you\u0027re right, it was just a wrong copy/paste","commit_id":"7dce3e975018662e7094fdf772ecb640580a64a4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"75033057ed38fe15c00a6168cdd69d3141aa26b0","unresolved":false,"context_lines":[{"line_number":717,"context_line":"                        \"force_raw_images to True.\")"},{"line_number":718,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":721,"context_line":"        # across reboots."},{"line_number":722,"context_line":"        self._recreate_assigned_mediated_devices()"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        self._check_cpu_compatibility()"},{"line_number":725,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_ea92f7f5","line":722,"range":{"start_line":720,"start_character":0,"end_line":722,"end_character":50},"updated":"2020-04-08 10:23:49.000000000","message":"Not related to this change but isn\u0027t this too late if instances with vGPUs attached have already been restarted?","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"7b06983b6865b85e0117f302f2e24b0bbc84c8a4","unresolved":false,"context_lines":[{"line_number":717,"context_line":"                        \"force_raw_images to True.\")"},{"line_number":718,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":721,"context_line":"        # across reboots."},{"line_number":722,"context_line":"        self._recreate_assigned_mediated_devices()"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        self._check_cpu_compatibility()"},{"line_number":725,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_01062187","line":722,"range":{"start_line":720,"start_character":0,"end_line":722,"end_character":50},"in_reply_to":"df33271e_e14fbd67","updated":"2020-04-08 11:14:32.000000000","message":"Yeah apologies I was thinking about CONF.resume_guests_state_on_host_boot but that doesn\u0027t happen until *after* this has been called on the driver so sysfs will be correct by the time Nova attempts to launch instances.","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"48688a70e67b67acb03dccf3d1dc5aadd1337ce5","unresolved":false,"context_lines":[{"line_number":717,"context_line":"                        \"force_raw_images to True.\")"},{"line_number":718,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":719,"context_line":""},{"line_number":720,"context_line":"        # TODO(sbauza): Remove this code once mediated devices are persisted"},{"line_number":721,"context_line":"        # across reboots."},{"line_number":722,"context_line":"        self._recreate_assigned_mediated_devices()"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":"        self._check_cpu_compatibility()"},{"line_number":725,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_e14fbd67","line":722,"range":{"start_line":720,"start_character":0,"end_line":722,"end_character":50},"in_reply_to":"df33271e_ea92f7f5","updated":"2020-04-08 10:55:06.000000000","message":"I haven\u0027t seen the issue when testing since you need to spawn the instances after (we just talk about recreating a sysfs object)","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae517443c5f2fdfb88d5f278816d4fdda6732fc8","unresolved":false,"context_lines":[{"line_number":795,"context_line":"                dev_name \u003d libvirt_utils.mdev_uuid2name(mdev_uuid)"},{"line_number":796,"context_line":"                dev_info \u003d self._get_mediated_device_information(dev_name)"},{"line_number":797,"context_line":"                parent \u003d dev_info[\u0027parent\u0027]"},{"line_number":798,"context_line":"                self._create_new_mediated_device(parent, uuid\u003dmdev_uuid)"},{"line_number":799,"context_line":""},{"line_number":800,"context_line":"    def _set_multiattach_support(self):"},{"line_number":801,"context_line":"        # Check to see if multiattach is supported. Based on bugzilla"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_dd1371b7","line":798,"updated":"2020-04-08 16:10:42.000000000","message":"Note to other reviewers: this is the meat of the change","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae517443c5f2fdfb88d5f278816d4fdda6732fc8","unresolved":false,"context_lines":[{"line_number":6945,"context_line":"        devices \u003d self._get_mdev_capable_devices(supported_types)"},{"line_number":6946,"context_line":"        for device in devices:"},{"line_number":6947,"context_line":"            dev_name \u003d device[\u0027dev_id\u0027]"},{"line_number":6948,"context_line":"            # FIXME(sbauza): No longer accept the parent value to be nullable"},{"line_number":6949,"context_line":"            # once we fix the reshape functional test"},{"line_number":6950,"context_line":"            if parent is not None and dev_name !\u003d parent:"},{"line_number":6951,"context_line":"                # The device is not the one that was called, not creating"},{"line_number":6952,"context_line":"                # the mdev"},{"line_number":6953,"context_line":"                continue"},{"line_number":6954,"context_line":"            # For the moment, the libvirt driver only supports one"},{"line_number":6955,"context_line":"            # type per host"},{"line_number":6956,"context_line":"            # TODO(sbauza): Once we support more than one type, make"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_5dd001f8","line":6953,"range":{"start_line":6948,"start_character":0,"end_line":6953,"end_character":24},"updated":"2020-04-08 16:10:42.000000000","message":"Was this an optimization? I\u0027m having a hard time figuring out why it was necessary to move this","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"924fdda96da0fed3c4e3cbb6a06e6d31a7aa40b6","unresolved":false,"context_lines":[{"line_number":6945,"context_line":"        devices \u003d self._get_mdev_capable_devices(supported_types)"},{"line_number":6946,"context_line":"        for device in devices:"},{"line_number":6947,"context_line":"            dev_name \u003d device[\u0027dev_id\u0027]"},{"line_number":6948,"context_line":"            # FIXME(sbauza): No longer accept the parent value to be nullable"},{"line_number":6949,"context_line":"            # once we fix the reshape functional test"},{"line_number":6950,"context_line":"            if parent is not None and dev_name !\u003d parent:"},{"line_number":6951,"context_line":"                # The device is not the one that was called, not creating"},{"line_number":6952,"context_line":"                # the mdev"},{"line_number":6953,"context_line":"                continue"},{"line_number":6954,"context_line":"            # For the moment, the libvirt driver only supports one"},{"line_number":6955,"context_line":"            # type per host"},{"line_number":6956,"context_line":"            # TODO(sbauza): Once we support more than one type, make"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_ddc6d116","line":6953,"range":{"start_line":6948,"start_character":0,"end_line":6953,"end_character":24},"in_reply_to":"df33271e_5dd001f8","updated":"2020-04-08 16:15:02.000000000","message":"I wanted the parent attribute to be first checked since now it becomes mandatory to provide it (but you can still have a None value with a non-reshaped env).\n\nI agree this is not super important, just an optimisation indeed.","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ae517443c5f2fdfb88d5f278816d4fdda6732fc8","unresolved":false,"context_lines":[{"line_number":7040,"context_line":""},{"line_number":7041,"context_line":"        supported_types \u003d self._get_supported_vgpu_types()"},{"line_number":7042,"context_line":"        # Which mediated devices are created but not assigned to a guest ?"},{"line_number":7043,"context_line":"        mdevs_available \u003d self._get_existing_mdevs_not_assigned("},{"line_number":7044,"context_line":"            parent_device, supported_types)"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"        chosen_mdevs \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_1d35d946","line":7043,"range":{"start_line":7043,"start_character":31,"end_line":7043,"end_character":63},"updated":"2020-04-08 16:10:42.000000000","message":"Weird that you didn\u0027t the call to \u0027_get_supported_vgpu_types\u0027 into this function too","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"924fdda96da0fed3c4e3cbb6a06e6d31a7aa40b6","unresolved":false,"context_lines":[{"line_number":7040,"context_line":""},{"line_number":7041,"context_line":"        supported_types \u003d self._get_supported_vgpu_types()"},{"line_number":7042,"context_line":"        # Which mediated devices are created but not assigned to a guest ?"},{"line_number":7043,"context_line":"        mdevs_available \u003d self._get_existing_mdevs_not_assigned("},{"line_number":7044,"context_line":"            parent_device, supported_types)"},{"line_number":7045,"context_line":""},{"line_number":7046,"context_line":"        chosen_mdevs \u003d []"}],"source_content_type":"text/x-python","patch_set":8,"id":"df33271e_fdec7590","line":7043,"range":{"start_line":7043,"start_character":31,"end_line":7043,"end_character":63},"in_reply_to":"df33271e_1d35d946","updated":"2020-04-08 16:15:02.000000000","message":"I wanted to lookup the config only a very few times and pass down the values at once, but also see the next change, I\u0027m now only doing it once at startup.","commit_id":"4987e46b4c253348d884dec78e28605e04c044e5"}]}
