)]}'
{"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"a6e50569a66fd4f4956f91504b45df7082c4e138","unresolved":false,"context_lines":[{"line_number":2361,"context_line":"                    \"VM.assert_can_migrate\", vm_ref, dest_check_data, False)"},{"line_number":2362,"context_line":"            except self._session.XenAPI.Failure as exc:"},{"line_number":2363,"context_line":"                reason \u003d exc.details[0]"},{"line_number":2364,"context_line":"                if \"VDI_NOT_IN_MAP\" in reason:"},{"line_number":2365,"context_line":"                    LOG.debug(\"Don\u0027t raise exception, %s\", reason)"},{"line_number":2366,"context_line":"                    return dest_check_data"},{"line_number":2367,"context_line":"                msg \u003d _(\u0027assert_can_migrate failed because: %s\u0027) % reason"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_bdf1b16d","line":2364,"range":{"start_line":2364,"start_character":19,"end_line":2364,"end_character":45},"updated":"2018-01-09 09:59:18.000000000","message":"Can we check that reason is exactly the VDI_NOT_IN_MAP for the specific iSCSI device?","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"a6e50569a66fd4f4956f91504b45df7082c4e138","unresolved":false,"context_lines":[{"line_number":2449,"context_line":"            sr_ref \u003d self._session.VDI.get_SR(vdi_ref)"},{"line_number":2450,"context_line":"            sr_rec \u003d self._session.SR.get_record(sr_ref)"},{"line_number":2451,"context_line":"            LOG.debug(\"Generate vdi_sr_map, sr record is %s\", sr_rec)"},{"line_number":2452,"context_line":"            if all_sr:"},{"line_number":2453,"context_line":"                dest_sr_ref \u003d sr_map.get(sr_rec[\u0027uuid\u0027], default_sr_ref)"},{"line_number":2454,"context_line":"                vdi_sr_map.update({vdi_ref: dest_sr_ref})"},{"line_number":2455,"context_line":"            elif sr_rec[\u0027type\u0027] !\u003d \u0027iscsi\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_9da14d49","line":2452,"updated":"2018-01-09 09:59:18.000000000","message":"These two branches seem to do the same thing?","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"a31d7e857d24caaecff53202cbf03ce6b1e1b237","unresolved":false,"context_lines":[{"line_number":2449,"context_line":"            sr_ref \u003d self._session.VDI.get_SR(vdi_ref)"},{"line_number":2450,"context_line":"            sr_rec \u003d self._session.SR.get_record(sr_ref)"},{"line_number":2451,"context_line":"            LOG.debug(\"Generate vdi_sr_map, sr record is %s\", sr_rec)"},{"line_number":2452,"context_line":"            if all_sr:"},{"line_number":2453,"context_line":"                dest_sr_ref \u003d sr_map.get(sr_rec[\u0027uuid\u0027], default_sr_ref)"},{"line_number":2454,"context_line":"                vdi_sr_map.update({vdi_ref: dest_sr_ref})"},{"line_number":2455,"context_line":"            elif sr_rec[\u0027type\u0027] !\u003d \u0027iscsi\u0027:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_40967e4e","line":2452,"in_reply_to":"9f91af0f_9da14d49","updated":"2018-01-09 10:18:35.000000000","message":"No, this part is confuse and I do want to refactor it.\nThis function is called by https://review.openstack.org/#/c/532118/1/nova/virt/xenapi/vmops.py@2461 and it will be called by two parts in different migration stage:\n1. check_can_migrate_source() https://review.openstack.org/#/c/532118/1/nova/virt/xenapi/vmops.py@2361\n2. live_migration() https://review.openstack.org/#/c/532118/1/nova/virt/xenapi/vmops.py@2561\n\nFor 1: we don\u0027t want only keep the mapping of local-vdi: local-dest-sr mapping, don\u0027t contain any sr-vdi: local-dest-sr mapping\nFor 2: At this point, we have already created iscsi sr at destination host, so we want to have a full mapping\n\nBut the code now isn\u0027t good for reading, so I should update/refactor this part","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"a6e50569a66fd4f4956f91504b45df7082c4e138","unresolved":false,"context_lines":[{"line_number":2455,"context_line":"            elif sr_rec[\u0027type\u0027] !\u003d \u0027iscsi\u0027:"},{"line_number":2456,"context_line":"                dest_sr_ref \u003d sr_map.get(sr_rec[\u0027uuid\u0027], default_sr_ref)"},{"line_number":2457,"context_line":"                vdi_sr_map.update({vdi_ref: dest_sr_ref})"},{"line_number":2458,"context_line":"        LOG.debug(\"Generate vdi_sr_map: %s\", vdi_sr_map)"},{"line_number":2459,"context_line":"        return vdi_sr_map"},{"line_number":2460,"context_line":""},{"line_number":2461,"context_line":"    def _call_live_migrate_command(self, command_name, vm_ref, migrate_data,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_fd8f39ca","line":2458,"range":{"start_line":2458,"start_character":19,"end_line":2458,"end_character":27},"updated":"2018-01-09 09:59:18.000000000","message":"Generated","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"a6e50569a66fd4f4956f91504b45df7082c4e138","unresolved":false,"context_lines":[{"line_number":2477,"context_line":"            vdi_map \u003d self._generate_vdi_map(migrate_data.sr_uuid_map, vm_ref,"},{"line_number":2478,"context_line":"                                             all_sr)"},{"line_number":2479,"context_line":"        vif_map \u003d {}"},{"line_number":2480,"context_line":"        if \u0027vif_uuid_map\u0027 in migrate_data:"},{"line_number":2481,"context_line":"            vif_map \u003d self._generate_vif_network_map("},{"line_number":2482,"context_line":"                vm_ref, migrate_data.vif_uuid_map)"},{"line_number":2483,"context_line":"        options \u003d {}"},{"line_number":2484,"context_line":"        self._session.call_xenapi(command_name, vm_ref,"},{"line_number":2485,"context_line":"                                  migrate_send_data, True,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_bd4d319b","line":2482,"range":{"start_line":2480,"start_character":0,"end_line":2482,"end_character":50},"updated":"2018-01-09 09:59:18.000000000","message":"What was the purpose of this change?","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"061031b5c569cdf1fdebd1c89dd3276d0a2596d9","unresolved":false,"context_lines":[{"line_number":2477,"context_line":"            vdi_map \u003d self._generate_vdi_map(migrate_data.sr_uuid_map, vm_ref,"},{"line_number":2478,"context_line":"                                             all_sr)"},{"line_number":2479,"context_line":"        vif_map \u003d {}"},{"line_number":2480,"context_line":"        if \u0027vif_uuid_map\u0027 in migrate_data:"},{"line_number":2481,"context_line":"            vif_map \u003d self._generate_vif_network_map("},{"line_number":2482,"context_line":"                vm_ref, migrate_data.vif_uuid_map)"},{"line_number":2483,"context_line":"        options \u003d {}"},{"line_number":2484,"context_line":"        self._session.call_xenapi(command_name, vm_ref,"},{"line_number":2485,"context_line":"                                  migrate_send_data, True,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_e03d528f","line":2482,"range":{"start_line":2480,"start_character":0,"end_line":2482,"end_character":50},"in_reply_to":"9f91af0f_bd4d319b","updated":"2018-01-09 10:11:43.000000000","message":"Not related with this fix.\nPreviously, I want to do some refactor of this function _call_live_migrate_command() https://review.openstack.org/#/c/532118/1/nova/virt/xenapi/vmops.py@2461 with the reason above, but I didn\u0027t have chance to do that, so this part is changed but isn\u0027t related with the fix","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"061031b5c569cdf1fdebd1c89dd3276d0a2596d9","unresolved":false,"context_lines":[{"line_number":2519,"context_line":"                           network_info, disk_info, migrate_data):"},{"line_number":2520,"context_line":"        # TODO(huanxie) Need to update the migrate_data.sr_uuid_map to"},{"line_number":2521,"context_line":"        # include local disk"},{"line_number":2522,"context_line":"        migrate_data.sr_uuid_map.update("},{"line_number":2523,"context_line":"            self.connect_block_device_volumes(block_device_info, instance))"},{"line_number":2524,"context_line":"        # update local disk mapping to sr_uuid_map"},{"line_number":2525,"context_line":""},{"line_number":2526,"context_line":"        migrate_data.vif_uuid_map \u003d self.create_interim_networks(network_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_c085ae5b","line":2523,"range":{"start_line":2522,"start_character":8,"end_line":2523,"end_character":75},"updated":"2018-01-09 10:11:43.000000000","message":"Using update instead of override the value can keep the existing information in migrate_data.sr_uuid_map we prepared during check_can_migrate_dest()","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"},{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"061031b5c569cdf1fdebd1c89dd3276d0a2596d9","unresolved":false,"context_lines":[{"line_number":2521,"context_line":"        # include local disk"},{"line_number":2522,"context_line":"        migrate_data.sr_uuid_map.update("},{"line_number":2523,"context_line":"            self.connect_block_device_volumes(block_device_info, instance))"},{"line_number":2524,"context_line":"        # update local disk mapping to sr_uuid_map"},{"line_number":2525,"context_line":""},{"line_number":2526,"context_line":"        migrate_data.vif_uuid_map \u003d self.create_interim_networks(network_info)"},{"line_number":2527,"context_line":"        LOG.debug(\"pre_live_migration, vif_uuid_map: %(vif_map)s, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_e07c7284","line":2524,"range":{"start_line":2524,"start_character":0,"end_line":2524,"end_character":50},"updated":"2018-01-09 10:11:43.000000000","message":"Ignore this line, sorry that I forgot to remove it","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"}],"nova/virt/xenapi/volumeops.py":[{"author":{"_account_id":17922,"name":"Huan Xie","email":"huan.xie@citrix.com","username":"huan"},"change_message_id":"061031b5c569cdf1fdebd1c89dd3276d0a2596d9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        return self._attach_volume(connection_info, vm_ref,"},{"line_number":43,"context_line":"                                   instance_name, mountpoint, hotplug)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def connect_volume(self, connection_info):"},{"line_number":46,"context_line":"        \"\"\"Attach volume to hypervisor, but not the VM.\"\"\""},{"line_number":47,"context_line":"        return self._attach_volume(connection_info)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def create_sr_for_volume(self, connection_data, instance_name):"},{"line_number":50,"context_line":"        sr_ref, sr_uuid \u003d self._connect_to_volume_provider("}],"source_content_type":"text/x-python","patch_set":1,"id":"9f91af0f_7d3809ed","line":47,"range":{"start_line":45,"start_character":0,"end_line":47,"end_character":51},"updated":"2018-01-09 10:11:43.000000000","message":"We cannot use this interface for vm live migration with volume because we don\u0027t have VM at destination host when we do the preparing work at dest host","commit_id":"e91a5ac0237a1396edfdf4ef878eac88cb34693c"}]}
