)]}'
{"nova/compute/api.py":[{"author":{"_account_id":27594,"name":"Jie Li","email":"lijie@unitedstack.com","username":"ramboman"},"change_message_id":"182cc9acee898a51f43e1a4bd076c4286393cd60","unresolved":false,"context_lines":[{"line_number":3425,"context_line":""},{"line_number":3426,"context_line":"            image_meta \u003d objects.ImageMeta.from_image_ref("},{"line_number":3427,"context_line":"                    context, self.image_api, rescue_image_ref)"},{"line_number":3428,"context_line":"            if image_meta.size \u003d\u003d 0:"},{"line_number":3429,"context_line":"                reason \u003d _(\"Invalid image, For volume-backed instance\""},{"line_number":3430,"context_line":"                           \"image size cannot be zero\")"},{"line_number":3431,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f91af0f_d1ce07b3","line":3428,"range":{"start_line":3428,"start_character":11,"end_line":3428,"end_character":36},"updated":"2018-01-08 01:41:27.000000000","message":"If the image size equal 0,it is prove the given image is \"volume-backed server image\".This image can \u0027t\nuse to boot system.","commit_id":"d8587497287df81da3c5108335cc23a78ec05c97"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5607da3093a4e5deb2ff66315d6f2b1fd7141e43","unresolved":false,"context_lines":[{"line_number":3416,"context_line":"            if bdm.volume_id:"},{"line_number":3417,"context_line":"                vol \u003d self.volume_api.get(context, bdm.volume_id)"},{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            if not rescue_image_ref:"},{"line_number":3421,"context_line":"                reason \u003d _(\"For volume-backed instance image_ref\""},{"line_number":3422,"context_line":"                            \"should not be None\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_40c75e97","line":3419,"range":{"start_line":3419,"start_character":8,"end_line":3419,"end_character":76},"updated":"2018-01-09 10:10:49.000000000","message":"seems you only cared libvirt, will it has any side effect to other drivers such as xen etc?","commit_id":"113e4e0558e1e68c4761ea5e47fc3bb72c301ad4"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"d42cffca42168a273300a365f4b8441d4b49c9c9","unresolved":false,"context_lines":[{"line_number":3416,"context_line":"            if bdm.volume_id:"},{"line_number":3417,"context_line":"                vol \u003d self.volume_api.get(context, bdm.volume_id)"},{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            if not rescue_image_ref:"},{"line_number":3421,"context_line":"                reason \u003d _(\"For volume-backed instance image_ref\""},{"line_number":3422,"context_line":"                            \"should not be None\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_a32af428","line":3419,"range":{"start_line":3419,"start_character":8,"end_line":3419,"end_character":76},"in_reply_to":"9f91af0f_40c75e97","updated":"2018-01-09 11:38:30.000000000","message":"yeah,I just consider the libvirt,I will add judge the driver to code","commit_id":"113e4e0558e1e68c4761ea5e47fc3bb72c301ad4"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5607da3093a4e5deb2ff66315d6f2b1fd7141e43","unresolved":false,"context_lines":[{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            if not rescue_image_ref:"},{"line_number":3421,"context_line":"                reason \u003d _(\"For volume-backed instance image_ref\""},{"line_number":3422,"context_line":"                            \"should not be None\")"},{"line_number":3423,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3424,"context_line":"                                                     reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_20457a43","line":3421,"updated":"2018-01-09 10:10:49.000000000","message":"need a blank..","commit_id":"113e4e0558e1e68c4761ea5e47fc3bb72c301ad4"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"d42cffca42168a273300a365f4b8441d4b49c9c9","unresolved":false,"context_lines":[{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            if not rescue_image_ref:"},{"line_number":3421,"context_line":"                reason \u003d _(\"For volume-backed instance image_ref\""},{"line_number":3422,"context_line":"                            \"should not be None\")"},{"line_number":3423,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3424,"context_line":"                                                     reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_03196020","line":3421,"in_reply_to":"9f91af0f_20457a43","updated":"2018-01-09 11:38:30.000000000","message":"Thank you","commit_id":"113e4e0558e1e68c4761ea5e47fc3bb72c301ad4"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"5607da3093a4e5deb2ff66315d6f2b1fd7141e43","unresolved":false,"context_lines":[{"line_number":3426,"context_line":"            image_meta \u003d objects.ImageMeta.from_image_ref("},{"line_number":3427,"context_line":"                    context, self.image_api, rescue_image_ref)"},{"line_number":3428,"context_line":"            if image_meta.size \u003d\u003d 0:"},{"line_number":3429,"context_line":"                reason \u003d _(\"Invalid image, For volume-backed instance\""},{"line_number":3430,"context_line":"                           \"image size cannot be zero\")"},{"line_number":3431,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3432,"context_line":"                                                     reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_406bdeb5","line":3429,"updated":"2018-01-09 10:10:49.000000000","message":"ditto","commit_id":"113e4e0558e1e68c4761ea5e47fc3bb72c301ad4"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"2dc997c2b836850d4eda34ae1183ae4a4876c203","unresolved":false,"context_lines":[{"line_number":3426,"context_line":"            image_meta \u003d objects.ImageMeta.from_image_ref("},{"line_number":3427,"context_line":"                    context, self.image_api, rescue_image_ref)"},{"line_number":3428,"context_line":"            if image_meta.size \u003d\u003d 0:"},{"line_number":3429,"context_line":"                reason \u003d _(\"Invalid image, For volume-backed instance \""},{"line_number":3430,"context_line":"                           \"image size cannot be zero\")"},{"line_number":3431,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3432,"context_line":"                                                     reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_86e00728","line":3429,"updated":"2018-01-10 06:19:06.000000000","message":"for","commit_id":"7678fc471291f6ef7b0f2e0910ffab64d231f1c2"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"2dc997c2b836850d4eda34ae1183ae4a4876c203","unresolved":false,"context_lines":[{"line_number":3428,"context_line":"            if image_meta.size \u003d\u003d 0:"},{"line_number":3429,"context_line":"                reason \u003d _(\"Invalid image, For volume-backed instance \""},{"line_number":3430,"context_line":"                           \"image size cannot be zero\")"},{"line_number":3431,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3432,"context_line":"                                                     reason\u003dreason)"},{"line_number":3433,"context_line":""},{"line_number":3434,"context_line":"        instance.task_state \u003d task_states.RESCUING"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_06ce37b3","line":3431,"updated":"2018-01-10 06:19:06.000000000","message":"I think \u0027InvalidImage\u0027 exception is more suitable","commit_id":"7678fc471291f6ef7b0f2e0910ffab64d231f1c2"},{"author":{"_account_id":27594,"name":"Jie Li","email":"lijie@unitedstack.com","username":"ramboman"},"change_message_id":"a3daf57a453f0e1d5cc493d04647b81016a9cce6","unresolved":false,"context_lines":[{"line_number":3428,"context_line":"            if image_meta.size \u003d\u003d 0:"},{"line_number":3429,"context_line":"                reason \u003d _(\"Invalid image, For volume-backed instance \""},{"line_number":3430,"context_line":"                           \"image size cannot be zero\")"},{"line_number":3431,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3432,"context_line":"                                                     reason\u003dreason)"},{"line_number":3433,"context_line":""},{"line_number":3434,"context_line":"        instance.task_state \u003d task_states.RESCUING"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_093de8db","line":3431,"in_reply_to":"9f91af0f_06ce37b3","updated":"2018-01-10 07:43:01.000000000","message":"You are right,thank you","commit_id":"7678fc471291f6ef7b0f2e0910ffab64d231f1c2"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"567cdb9824e1a4f333006beaa907913a5ac5e4b5","unresolved":false,"context_lines":[{"line_number":3417,"context_line":"                vol \u003d self.volume_api.get(context, bdm.volume_id)"},{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            compute_driver \u003d CONF.compute_driver"},{"line_number":3421,"context_line":"            if compute_driver !\u003d \u0027libvirt.LibvirtDriver\u0027:"},{"line_number":3422,"context_line":"                reason \u003d _(\"Rescue a volume-backed instance only support \""},{"line_number":3423,"context_line":"                           \"libvirt driver\")"},{"line_number":3424,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_da86dcb9","line":3421,"range":{"start_line":3420,"start_character":12,"end_line":3421,"end_character":57},"updated":"2018-01-10 10:00:55.000000000","message":"sorry, my bad, but this is compute/api.py\nwhich was executed by API service, that means it doesn\u0027t know which compute to run the action at this point...\n\nso we probably need figure out other ways to check","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":27594,"name":"Jie Li","email":"lijie@unitedstack.com","username":"ramboman"},"change_message_id":"322dc3d2426517d037ec191993b3aba7de367a67","unresolved":false,"context_lines":[{"line_number":3417,"context_line":"                vol \u003d self.volume_api.get(context, bdm.volume_id)"},{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            compute_driver \u003d CONF.compute_driver"},{"line_number":3421,"context_line":"            if compute_driver !\u003d \u0027libvirt.LibvirtDriver\u0027:"},{"line_number":3422,"context_line":"                reason \u003d _(\"Rescue a volume-backed instance only support \""},{"line_number":3423,"context_line":"                           \"libvirt driver\")"},{"line_number":3424,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_e2c0d6e3","line":3421,"range":{"start_line":3420,"start_character":12,"end_line":3421,"end_character":57},"in_reply_to":"9f91af0f_da86dcb9","updated":"2018-01-10 13:54:45.000000000","message":"yes,I delete it,let us think about it again.","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"306a3c4f38244f83291269ddeb4b31bf94c6bea9","unresolved":false,"context_lines":[{"line_number":3417,"context_line":"                vol \u003d self.volume_api.get(context, bdm.volume_id)"},{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            compute_driver \u003d CONF.compute_driver"},{"line_number":3421,"context_line":"            if compute_driver !\u003d \u0027libvirt.LibvirtDriver\u0027:"},{"line_number":3422,"context_line":"                reason \u003d _(\"Rescue a volume-backed instance only support \""},{"line_number":3423,"context_line":"                           \"libvirt driver\")"},{"line_number":3424,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3425,"context_line":"                                                     reason\u003dreason)"},{"line_number":3426,"context_line":"            if not rescue_image_ref:"},{"line_number":3427,"context_line":"                reason \u003d _(\"For volume-backed instance image_ref \""},{"line_number":3428,"context_line":"                           \"should not be None\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_7a58f054","line":3425,"range":{"start_line":3420,"start_character":0,"end_line":3425,"end_character":67},"updated":"2018-01-10 10:23:47.000000000","message":"I think this would be a deployment change, as it would require compute_driver to be set on the controller. I can\u0027t immediately see anywhere else it\u0027s used in api, conductor, or scheduler, so it\u0027s entirely possible that deployment tools aren\u0027t currently setting it.\n\nThis would at least require a release note. I can\u0027t immediately think of a better way to do it than this, which isn\u0027t to say there isn\u0027t one.","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"e1a33232b5a8352277dd88dfc4b0b78f4e74670c","unresolved":false,"context_lines":[{"line_number":3417,"context_line":"                vol \u003d self.volume_api.get(context, bdm.volume_id)"},{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            compute_driver \u003d CONF.compute_driver"},{"line_number":3421,"context_line":"            if compute_driver !\u003d \u0027libvirt.LibvirtDriver\u0027:"},{"line_number":3422,"context_line":"                reason \u003d _(\"Rescue a volume-backed instance only support \""},{"line_number":3423,"context_line":"                           \"libvirt driver\")"},{"line_number":3424,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3425,"context_line":"                                                     reason\u003dreason)"},{"line_number":3426,"context_line":"            if not rescue_image_ref:"},{"line_number":3427,"context_line":"                reason \u003d _(\"For volume-backed instance image_ref \""},{"line_number":3428,"context_line":"                           \"should not be None\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f96bb07_ec1ba970","line":3425,"range":{"start_line":3420,"start_character":0,"end_line":3425,"end_character":67},"in_reply_to":"9f91af0f_42a50246","updated":"2018-01-11 04:34:17.000000000","message":"no, this won\u0027t work, as you can see, openstack support more than 1 hypervisor in one cloud, you can\u0027t expect one API can manage all compute node in same type, that will break user who has KVM and VMWare solution for example..\n\nso I think we need figure out other ways, e.g consider some check in compute node instead API ndoe","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":27594,"name":"Jie Li","email":"lijie@unitedstack.com","username":"ramboman"},"change_message_id":"322dc3d2426517d037ec191993b3aba7de367a67","unresolved":false,"context_lines":[{"line_number":3417,"context_line":"                vol \u003d self.volume_api.get(context, bdm.volume_id)"},{"line_number":3418,"context_line":"                self.volume_api.check_attached(context, vol)"},{"line_number":3419,"context_line":"        if compute_utils.is_volume_backed_instance(context, instance, bdms):"},{"line_number":3420,"context_line":"            compute_driver \u003d CONF.compute_driver"},{"line_number":3421,"context_line":"            if compute_driver !\u003d \u0027libvirt.LibvirtDriver\u0027:"},{"line_number":3422,"context_line":"                reason \u003d _(\"Rescue a volume-backed instance only support \""},{"line_number":3423,"context_line":"                           \"libvirt driver\")"},{"line_number":3424,"context_line":"                raise exception.InstanceNotRescuable(instance_id\u003dinstance.uuid,"},{"line_number":3425,"context_line":"                                                     reason\u003dreason)"},{"line_number":3426,"context_line":"            if not rescue_image_ref:"},{"line_number":3427,"context_line":"                reason \u003d _(\"For volume-backed instance image_ref \""},{"line_number":3428,"context_line":"                           \"should not be None\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_42a50246","line":3425,"range":{"start_line":3420,"start_character":0,"end_line":3425,"end_character":67},"in_reply_to":"9f91af0f_7a58f054","updated":"2018-01-10 13:54:45.000000000","message":"yes,I support your opinion,maybe we should require a release note","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"57b74f9ecfc22f8907710ed3a03711a63ae899f5","unresolved":false,"context_lines":[{"line_number":2756,"context_line":"            \u0027ramdisk_id\u0027: (CONF.libvirt.rescue_ramdisk_id or"},{"line_number":2757,"context_line":"                           instance.ramdisk_id),"},{"line_number":2758,"context_line":"        }"},{"line_number":2759,"context_line":"        block_device_info \u003d None"},{"line_number":2760,"context_line":"        boot_from_volume \u003d compute_utils.is_volume_backed_instance(context,"},{"line_number":2761,"context_line":"                                                                   instance)"},{"line_number":2762,"context_line":"        if boot_from_volume:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_1ea218fd","line":2759,"range":{"start_line":2759,"start_character":8,"end_line":2759,"end_character":32},"updated":"2018-01-09 08:06:10.000000000","message":"Recue the image backed server doesn\u0027t need the block_device_info","commit_id":"113e4e0558e1e68c4761ea5e47fc3bb72c301ad4"},{"author":{"_account_id":24422,"name":"Mr Rambo","email":"lijie@unitedstack.com","username":"MrRambo"},"change_message_id":"ab8487fdcc263f4305eab7a1cff88ea1d6d5a23c","unresolved":false,"context_lines":[{"line_number":3720,"context_line":"                if block_device_mapping:"},{"line_number":3721,"context_line":"                    diskos \u003d self._get_volume_config_rescue(instance,"},{"line_number":3722,"context_line":"                                 disk_mapping, block_device_mapping)"},{"line_number":3723,"context_line":"                    block_device_mapping \u003d []"},{"line_number":3724,"context_line":"                else:"},{"line_number":3725,"context_line":"                    diskos \u003d self._get_guest_disk_config(instance,"},{"line_number":3726,"context_line":"                                                         \u0027disk\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9f91af0f_ded03022","line":3723,"range":{"start_line":3723,"start_character":19,"end_line":3723,"end_character":45},"updated":"2018-01-09 08:20:58.000000000","message":"In order not to go the rest process,we just need append diskos","commit_id":"113e4e0558e1e68c4761ea5e47fc3bb72c301ad4"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"2dc997c2b836850d4eda34ae1183ae4a4876c203","unresolved":false,"context_lines":[{"line_number":3643,"context_line":"        return disk.libvirt_fs_info(\"/\", \"ploop\")"},{"line_number":3644,"context_line":""},{"line_number":3645,"context_line":"    def _get_volume_config_rescue(self, instance, disk_mapping, bdms):"},{"line_number":3646,"context_line":"            vol \u003d block_device.get_root_bdm(bdms)"},{"line_number":3647,"context_line":"            connection_info \u003d vol[\u0027connection_info\u0027]"},{"line_number":3648,"context_line":"            info \u003d disk_mapping[\u0027disk\u0027]"},{"line_number":3649,"context_line":"            self._connect_volume(connection_info, instance)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_065cf7ea","line":3646,"updated":"2018-01-10 06:19:06.000000000","message":"indentation","commit_id":"7678fc471291f6ef7b0f2e0910ffab64d231f1c2"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"306a3c4f38244f83291269ddeb4b31bf94c6bea9","unresolved":false,"context_lines":[{"line_number":3645,"context_line":"    def _get_volume_config_rescue(self, instance, disk_mapping, bdms):"},{"line_number":3646,"context_line":"        vol \u003d block_device.get_root_bdm(bdms)"},{"line_number":3647,"context_line":"        connection_info \u003d vol[\u0027connection_info\u0027]"},{"line_number":3648,"context_line":"        info \u003d disk_mapping[\u0027disk\u0027]"},{"line_number":3649,"context_line":"        self._connect_volume(connection_info, instance)"},{"line_number":3650,"context_line":"        cfg \u003d self._get_volume_config(connection_info, info)"},{"line_number":3651,"context_line":"        return cfg"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_35ecbb28","line":3648,"updated":"2018-01-10 10:23:47.000000000","message":"This is not correct. disk_mapping[\u0027disk\u0027] contains hypervisor metadata for the local root disk, which for this kind of rescue is your rescue image, not the attached volume.","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"306a3c4f38244f83291269ddeb4b31bf94c6bea9","unresolved":false,"context_lines":[{"line_number":3647,"context_line":"        connection_info \u003d vol[\u0027connection_info\u0027]"},{"line_number":3648,"context_line":"        info \u003d disk_mapping[\u0027disk\u0027]"},{"line_number":3649,"context_line":"        self._connect_volume(connection_info, instance)"},{"line_number":3650,"context_line":"        cfg \u003d self._get_volume_config(connection_info, info)"},{"line_number":3651,"context_line":"        return cfg"},{"line_number":3652,"context_line":""},{"line_number":3653,"context_line":"    def _get_guest_storage_config(self, instance, image_meta,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_15f5f7ec","line":3650,"range":{"start_line":3650,"start_character":55,"end_line":3650,"end_character":59},"updated":"2018-01-10 10:23:47.000000000","message":"You\u0027re calling _get_volume_config passing connection_info for the volume, and disk_info for a different disk.","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"306a3c4f38244f83291269ddeb4b31bf94c6bea9","unresolved":false,"context_lines":[{"line_number":3719,"context_line":"                if block_device_mapping:"},{"line_number":3720,"context_line":"                    diskos \u003d self._get_volume_config_rescue(instance,"},{"line_number":3721,"context_line":"                                 disk_mapping, block_device_mapping)"},{"line_number":3722,"context_line":"                    block_device_mapping \u003d []"},{"line_number":3723,"context_line":"                else:"},{"line_number":3724,"context_line":"                    diskos \u003d self._get_guest_disk_config(instance,"},{"line_number":3725,"context_line":"                                                         \u0027disk\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_75e56337","line":3722,"updated":"2018-01-10 10:23:47.000000000","message":"Redundant?","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"f9959e0da13781ffae0ad4a7074731b9d7e058fe","unresolved":false,"context_lines":[{"line_number":3719,"context_line":"                if block_device_mapping:"},{"line_number":3720,"context_line":"                    diskos \u003d self._get_volume_config_rescue(instance,"},{"line_number":3721,"context_line":"                                 disk_mapping, block_device_mapping)"},{"line_number":3722,"context_line":"                    block_device_mapping \u003d []"},{"line_number":3723,"context_line":"                else:"},{"line_number":3724,"context_line":"                    diskos \u003d self._get_guest_disk_config(instance,"},{"line_number":3725,"context_line":"                                                         \u0027disk\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_eda0c7f6","line":3722,"in_reply_to":"9f91af0f_02205aab","updated":"2018-01-10 14:13:25.000000000","message":"Ah, I\u0027ve just seen why you do this.\n\nThis is really hard to read, and really fragile.","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":27594,"name":"Jie Li","email":"lijie@unitedstack.com","username":"ramboman"},"change_message_id":"5772131bcc848b3495387bcd68316610b40f2e43","unresolved":false,"context_lines":[{"line_number":3719,"context_line":"                if block_device_mapping:"},{"line_number":3720,"context_line":"                    diskos \u003d self._get_volume_config_rescue(instance,"},{"line_number":3721,"context_line":"                                 disk_mapping, block_device_mapping)"},{"line_number":3722,"context_line":"                    block_device_mapping \u003d []"},{"line_number":3723,"context_line":"                else:"},{"line_number":3724,"context_line":"                    diskos \u003d self._get_guest_disk_config(instance,"},{"line_number":3725,"context_line":"                                                         \u0027disk\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_02205aab","line":3722,"in_reply_to":"9f91af0f_75e56337","updated":"2018-01-10 14:01:16.000000000","message":"In order not to go the rest process,we just need append diskos","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"f9959e0da13781ffae0ad4a7074731b9d7e058fe","unresolved":false,"context_lines":[{"line_number":3761,"context_line":"                    self._get_disk_config_image_type())"},{"line_number":3762,"context_line":"                devices.append(diskconfig)"},{"line_number":3763,"context_line":""},{"line_number":3764,"context_line":"        for vol in block_device.get_bdms_to_connect(block_device_mapping,"},{"line_number":3765,"context_line":"                                                   mount_rootfs):"},{"line_number":3766,"context_line":"            connection_info \u003d vol[\u0027connection_info\u0027]"},{"line_number":3767,"context_line":"            vol_dev \u003d block_device.prepend_dev(vol[\u0027mount_device\u0027])"},{"line_number":3768,"context_line":"            info \u003d disk_mapping[vol_dev]"},{"line_number":3769,"context_line":"            self._connect_volume(connection_info, instance)"},{"line_number":3770,"context_line":"            if scsi_controller and scsi_controller.model \u003d\u003d \u0027virtio-scsi\u0027:"},{"line_number":3771,"context_line":"                info[\u0027unit\u0027] \u003d disk_mapping[\u0027unit\u0027]"},{"line_number":3772,"context_line":"                disk_mapping[\u0027unit\u0027] +\u003d 1"},{"line_number":3773,"context_line":"            cfg \u003d self._get_volume_config(connection_info, info)"},{"line_number":3774,"context_line":"            devices.append(cfg)"},{"line_number":3775,"context_line":"            vol[\u0027connection_info\u0027] \u003d connection_info"},{"line_number":3776,"context_line":"            vol.save()"},{"line_number":3777,"context_line":""},{"line_number":3778,"context_line":"        for d in devices:"},{"line_number":3779,"context_line":"            self._set_cache_mode(d)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_6dacb7ec","line":3776,"range":{"start_line":3764,"start_character":0,"end_line":3776,"end_character":22},"updated":"2018-01-10 14:13:25.000000000","message":"A more explicit way to achieve what you\u0027re doing above would be to guard this whole block in \u0027if not rescue\u0027.","commit_id":"a9cc2a3ea4a2b931377463d72f065d1ccfea01f1"}]}
