)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1363596dbb46105fa358078b68be9c17c0b10991","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Split-network-plane-for-live-migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we do live migration with QEMU/KVM driver,"},{"line_number":10,"context_line":"e use hostname of target compute node as the"},{"line_number":11,"context_line":"target of live migration. So the RPC call and live"},{"line_number":12,"context_line":"migration traffic will be in same network plane."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a710552_d936f902","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":1},"updated":"2015-12-15 14:21:29.000000000","message":"s/e use hostname/we use the hostname/ ?","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e1189e1e1886cb110d8d213fdb0e651c0d4b43d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Split-network-plane-for-live-migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When we do live migration with QEMU/KVM driver,"},{"line_number":10,"context_line":"e use hostname of target compute node as the"},{"line_number":11,"context_line":"target of live migration. So the RPC call and live"},{"line_number":12,"context_line":"migration traffic will be in same network plane."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a710552_bf208c9c","line":10,"in_reply_to":"5a710552_d936f902","updated":"2015-12-16 01:45:33.000000000","message":"Done","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1363596dbb46105fa358078b68be9c17c0b10991","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds an new option live_migration_transport_ip"},{"line_number":15,"context_line":"in configuration file, set None as default value."},{"line_number":16,"context_line":"When pre_live_migration() execute in destination host, set"},{"line_number":17,"context_line":"the option into pre_migration_data, if it\u0027s not None."},{"line_number":18,"context_line":"When driver.live_migration() execute in source host,"},{"line_number":19,"context_line":"if this option is present in pre_migration_data, the ip"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a710552_543f30b4","line":16,"range":{"start_line":16,"start_character":26,"end_line":16,"end_character":33},"updated":"2015-12-15 14:21:29.000000000","message":"s/execute in/executes on/ or s/execute in /is executed on/","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e1189e1e1886cb110d8d213fdb0e651c0d4b43d","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds an new option live_migration_transport_ip"},{"line_number":15,"context_line":"in configuration file, set None as default value."},{"line_number":16,"context_line":"When pre_live_migration() execute in destination host, set"},{"line_number":17,"context_line":"the option into pre_migration_data, if it\u0027s not None."},{"line_number":18,"context_line":"When driver.live_migration() execute in source host,"},{"line_number":19,"context_line":"if this option is present in pre_migration_data, the ip"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a710552_df2318a6","line":16,"in_reply_to":"5a710552_543f30b4","updated":"2015-12-16 01:45:33.000000000","message":"Done","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1363596dbb46105fa358078b68be9c17c0b10991","unresolved":false,"context_lines":[{"line_number":15,"context_line":"in configuration file, set None as default value."},{"line_number":16,"context_line":"When pre_live_migration() execute in destination host, set"},{"line_number":17,"context_line":"the option into pre_migration_data, if it\u0027s not None."},{"line_number":18,"context_line":"When driver.live_migration() execute in source host,"},{"line_number":19,"context_line":"if this option is present in pre_migration_data, the ip"},{"line_number":20,"context_line":"address is used instead of CONF.libvirt.live_migration_uri"},{"line_number":21,"context_line":"as the uri for live migration, if it\u0027s None, then the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a710552_746eecca","line":18,"range":{"start_line":18,"start_character":29,"end_line":18,"end_character":36},"updated":"2015-12-15 14:21:29.000000000","message":"same as above","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e1189e1e1886cb110d8d213fdb0e651c0d4b43d","unresolved":false,"context_lines":[{"line_number":15,"context_line":"in configuration file, set None as default value."},{"line_number":16,"context_line":"When pre_live_migration() execute in destination host, set"},{"line_number":17,"context_line":"the option into pre_migration_data, if it\u0027s not None."},{"line_number":18,"context_line":"When driver.live_migration() execute in source host,"},{"line_number":19,"context_line":"if this option is present in pre_migration_data, the ip"},{"line_number":20,"context_line":"address is used instead of CONF.libvirt.live_migration_uri"},{"line_number":21,"context_line":"as the uri for live migration, if it\u0027s None, then the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a710552_7f3b04d2","line":18,"in_reply_to":"5a710552_746eecca","updated":"2015-12-16 01:45:33.000000000","message":"Done","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"2981f3c040da1e26b91dbf68fb5b9f290a939f63","unresolved":false,"context_lines":[{"line_number":11,"context_line":"target of live migration. So the RPC call and live"},{"line_number":12,"context_line":"migration traffic will be in same network plane."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch adds an new option live_migration_transport_target"},{"line_number":15,"context_line":"in configuration file, set None as default value."},{"line_number":16,"context_line":"When pre_live_migration() executes on destination host, set"},{"line_number":17,"context_line":"the option into pre_migration_data, if it\u0027s not None."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":29,"id":"9a68dd71_963952f5","line":14,"range":{"start_line":14,"start_character":16,"end_line":14,"end_character":23},"updated":"2016-01-26 09:42:03.000000000","message":"a new","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8541195d21f816de30ea1f0a4540e51c09f8215c","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"This patch (BP) focuses only on the QEMU/KVM driver,"},{"line_number":25,"context_line":"the implementations for other drivers should be done"},{"line_number":26,"context_line":"if separate blueprint."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I81c783886497a844fb4b38d0f2a3d6c18a99831c"},{"line_number":29,"context_line":"Co-Authored-By: Rui Chen \u003cchenrui.momo@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":29,"id":"9a68dd71_c4a38fff","line":26,"updated":"2016-01-26 11:00:55.000000000","message":"s/if separate/in a separate/","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"53c5ef436b408256730ea1a4aae1818289ee0695","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"Change-Id: I81c783886497a844fb4b38d0f2a3d6c18a99831c"},{"line_number":29,"context_line":"Co-Authored-By: Rui Chen \u003cchenrui.momo@gmail.com\u003e"},{"line_number":30,"context_line":"Implements: blueprint split-network-plane-for-live-migration"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":32,"id":"9a68dd71_e1753732","line":30,"updated":"2016-01-27 03:17:38.000000000","message":"DocImpact is missed.","commit_id":"3e654077c38e19ac31beb25007f31f357f987a60"}],"nova/objects/migrate_data.py":[{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"e17255bf0ab877f1a49d696440d71fd6a7890563","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":108,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":109,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":110,"context_line":"        \u0027live_migration_transport_target\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":111,"context_line":"    }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":22,"id":"da6ed579_a97a14bb","line":110,"updated":"2016-01-15 13:17:16.000000000","message":"Doesn\u0027t it require a version bump and a backward compatibility?","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7160fd8b3a4f4c7160ce25be98e47146b3008c4a","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":108,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":109,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":110,"context_line":"        \u0027live_migration_transport_target\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":111,"context_line":"    }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba63e191_26a13daa","line":110,"in_reply_to":"ba63e191_8b2cb4ac","updated":"2016-01-19 07:50:10.000000000","message":"Hmm, when I started coding, this was not an object. I will look into it.","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"ee962eb85dc4eb10663f4bb8323e28bd7cb317b8","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":108,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":109,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":110,"context_line":"        \u0027live_migration_transport_target\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":111,"context_line":"    }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba63e191_8b2cb4ac","line":110,"in_reply_to":"da6ed579_2234bb48","updated":"2016-01-19 06:35:09.000000000","message":"hi Kevin I don\u0027t get why you not to bump object version since you added a new attr?","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2c8517976866f1f8ea5fad5b219c01627486de13","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":108,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":109,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":110,"context_line":"        \u0027live_migration_transport_target\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":111,"context_line":"    }"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":22,"id":"da6ed579_2234bb48","line":110,"in_reply_to":"da6ed579_a97a14bb","updated":"2016-01-18 02:31:20.000000000","message":"bump the migration object?","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"401982a5b52f5cd4004b560199b963589ae2f9c4","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027live_migration_transport_target\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":26,"id":"9a68dd71_c5bc6908","line":112,"range":{"start_line":112,"start_character":75,"end_line":112,"end_character":77},"updated":"2016-01-22 15:45:50.000000000","message":"All fields in this object are related to \u0027live migration\u0027 so including \u0027live_migration\u0027 in the property name is pointless.\n\nLets just call this \u0027target_connect_addr\u0027","commit_id":"e41ea62d87705ac812dee035de3496685898faf5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"5d94cc3dab32d3894aa0456b790cf2bb15dcb628","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027live_migration_transport_target\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":26,"id":"9a68dd71_2b187c74","line":112,"range":{"start_line":112,"start_character":75,"end_line":112,"end_character":77},"in_reply_to":"9a68dd71_c5bc6908","updated":"2016-01-25 06:42:46.000000000","message":"Done","commit_id":"e41ea62d87705ac812dee035de3496685898faf5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8541195d21f816de30ea1f0a4540e51c09f8215c","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027target_connect_addr\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_645e6314","line":112,"updated":"2016-01-26 11:00:55.000000000","message":"Is this expected to be an IPv4/6 field only? If so, we have specialized oslo.versionedobjects.fields.IPAddress fields for that.","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a1218ed74e8c6d10c228a491f614113a46cf21a2","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027target_connect_addr\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_7f67caea","line":112,"in_reply_to":"9a68dd71_645e6314","updated":"2016-01-26 11:29:54.000000000","message":"No, we can also use hostname for this. The current migrate_uri uses hostname.","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8541195d21f816de30ea1f0a4540e51c09f8215c","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        graphics_vnc \u003d legacy.pop(\u0027graphics_listen_addr_vnc\u0027, None)"},{"line_number":149,"context_line":"        graphics_spice \u003d legacy.pop(\u0027graphics_listen_addr_spice\u0027, None)"},{"line_number":150,"context_line":"        transport_target \u003d legacy.pop(\u0027target_connect_addr\u0027, None)"},{"line_number":151,"context_line":"        live_result \u003d {"},{"line_number":152,"context_line":"            \u0027graphics_listen_addrs\u0027: {"},{"line_number":153,"context_line":"                \u0027vnc\u0027: graphics_vnc and str(graphics_vnc),"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_049a07c6","line":150,"updated":"2016-01-26 11:00:55.000000000","message":"We should not be adding more fields to the legacy dict representation.","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a1218ed74e8c6d10c228a491f614113a46cf21a2","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        graphics_vnc \u003d legacy.pop(\u0027graphics_listen_addr_vnc\u0027, None)"},{"line_number":149,"context_line":"        graphics_spice \u003d legacy.pop(\u0027graphics_listen_addr_spice\u0027, None)"},{"line_number":150,"context_line":"        transport_target \u003d legacy.pop(\u0027target_connect_addr\u0027, None)"},{"line_number":151,"context_line":"        live_result \u003d {"},{"line_number":152,"context_line":"            \u0027graphics_listen_addrs\u0027: {"},{"line_number":153,"context_line":"                \u0027vnc\u0027: graphics_vnc and str(graphics_vnc),"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_1f9faeb5","line":150,"in_reply_to":"9a68dd71_049a07c6","updated":"2016-01-26 11:29:54.000000000","message":"Done","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8541195d21f816de30ea1f0a4540e51c09f8215c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            self.graphics_listen_addr_spice \u003d \\"},{"line_number":179,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027spice\u0027)"},{"line_number":180,"context_line":"            self.target_connect_addr \u003d\\"},{"line_number":181,"context_line":"                pre_result[\u0027target_connect_addr\u0027]"},{"line_number":182,"context_line":"            if \u0027serial_listen_addr\u0027 in pre_result:"},{"line_number":183,"context_line":"                self.serial_listen_addr \u003d pre_result[\u0027serial_listen_addr\u0027]"},{"line_number":184,"context_line":"            self._bdms_from_legacy(pre_result)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_249f0bb6","line":181,"updated":"2016-01-26 11:00:55.000000000","message":"The legacy dict representation should not have target_connect_addr in it, right?","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a1218ed74e8c6d10c228a491f614113a46cf21a2","unresolved":false,"context_lines":[{"line_number":178,"context_line":"            self.graphics_listen_addr_spice \u003d \\"},{"line_number":179,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027spice\u0027)"},{"line_number":180,"context_line":"            self.target_connect_addr \u003d\\"},{"line_number":181,"context_line":"                pre_result[\u0027target_connect_addr\u0027]"},{"line_number":182,"context_line":"            if \u0027serial_listen_addr\u0027 in pre_result:"},{"line_number":183,"context_line":"                self.serial_listen_addr \u003d pre_result[\u0027serial_listen_addr\u0027]"},{"line_number":184,"context_line":"            self._bdms_from_legacy(pre_result)"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_5f5e8613","line":181,"in_reply_to":"9a68dd71_249f0bb6","updated":"2016-01-26 11:29:54.000000000","message":"Done","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"694913e8aff6c9b6e9f864aab1c8413e0ce92193","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027target_connect_addr\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_613866d4","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":65},"updated":"2016-01-28 06:40:30.000000000","message":"I guess we need new method \"obj_make_compatible\"?","commit_id":"2ffd91172f4b746e4739d0f9a9ded1383016c2f8"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6dfa11bf9a32b617b4e69413908e84e82e488a8b","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027target_connect_addr\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_c7636ab0","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":65},"in_reply_to":"7a5de9d1_0cfa0943","updated":"2016-01-28 08:08:00.000000000","message":"OK, I see your point","commit_id":"2ffd91172f4b746e4739d0f9a9ded1383016c2f8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"fcd7f6706d369556acf8ca780b19c27b85594437","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027target_connect_addr\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_a72c2e4b","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":65},"in_reply_to":"7a5de9d1_0cfa0943","updated":"2016-01-28 08:09:27.000000000","message":"like this https://github.com/openstack/nova/blob/master/nova/objects/fixed_ip.py#L72","commit_id":"2ffd91172f4b746e4739d0f9a9ded1383016c2f8"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"39c95082f4bc707065baacb4133cc8d4b961f5ff","unresolved":false,"context_lines":[{"line_number":109,"context_line":"        \u0027graphics_listen_addr_spice\u0027: fields.IPAddressField(nullable\u003dTrue),"},{"line_number":110,"context_line":"        \u0027serial_listen_addr\u0027: fields.StringField(),"},{"line_number":111,"context_line":"        \u0027bdms\u0027: fields.ListOfObjectsField(\u0027LibvirtLiveMigrateBDMInfo\u0027),"},{"line_number":112,"context_line":"        \u0027target_connect_addr\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":113,"context_line":"    }"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def _bdms_to_legacy(self, legacy):"}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_0cfa0943","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":65},"in_reply_to":"7a5de9d1_613866d4","updated":"2016-01-28 07:48:28.000000000","message":"Can you give some more detailed information about this?","commit_id":"2ffd91172f4b746e4739d0f9a9ded1383016c2f8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"694913e8aff6c9b6e9f864aab1c8413e0ce92193","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027vnc\u0027)"},{"line_number":178,"context_line":"            self.graphics_listen_addr_spice \u003d \\"},{"line_number":179,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027spice\u0027)"},{"line_number":180,"context_line":"            self.target_connect_addr \u003d pre_result[\u0027target_connect_addr\u0027]"},{"line_number":181,"context_line":"            if \u0027serial_listen_addr\u0027 in pre_result:"},{"line_number":182,"context_line":"                self.serial_listen_addr \u003d pre_result[\u0027serial_listen_addr\u0027]"},{"line_number":183,"context_line":"            self._bdms_from_legacy(pre_result)"}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_5e750bc9","line":180,"range":{"start_line":180,"start_character":12,"end_line":180,"end_character":72},"updated":"2016-01-28 06:40:30.000000000","message":"So if dest node is old node and source node is new, then \"self.compute_rpcapi.pre_live_migration\" will return a pre_migration_data without the key \u0027target_connect_addr\u0027. Then we will get a KeyError at here.","commit_id":"2ffd91172f4b746e4739d0f9a9ded1383016c2f8"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8f325aff46c7e8409323d95ac48b719f0a6cfebd","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027vnc\u0027)"},{"line_number":178,"context_line":"            self.graphics_listen_addr_spice \u003d \\"},{"line_number":179,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027spice\u0027)"},{"line_number":180,"context_line":"            self.target_connect_addr \u003d pre_result[\u0027target_connect_addr\u0027]"},{"line_number":181,"context_line":"            if \u0027serial_listen_addr\u0027 in pre_result:"},{"line_number":182,"context_line":"                self.serial_listen_addr \u003d pre_result[\u0027serial_listen_addr\u0027]"},{"line_number":183,"context_line":"            self._bdms_from_legacy(pre_result)"}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_47ad3ae8","line":180,"range":{"start_line":180,"start_character":12,"end_line":180,"end_character":72},"in_reply_to":"7a5de9d1_5e750bc9","updated":"2016-01-28 08:00:08.000000000","message":"Hm, you are correct, will fix it with pre_result.get(\u0027target_connect_addr\u0027), I think that will work.","commit_id":"2ffd91172f4b746e4739d0f9a9ded1383016c2f8"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"39c95082f4bc707065baacb4133cc8d4b961f5ff","unresolved":false,"context_lines":[{"line_number":177,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027vnc\u0027)"},{"line_number":178,"context_line":"            self.graphics_listen_addr_spice \u003d \\"},{"line_number":179,"context_line":"                pre_result[\u0027graphics_listen_addrs\u0027].get(\u0027spice\u0027)"},{"line_number":180,"context_line":"            self.target_connect_addr \u003d pre_result[\u0027target_connect_addr\u0027]"},{"line_number":181,"context_line":"            if \u0027serial_listen_addr\u0027 in pre_result:"},{"line_number":182,"context_line":"                self.serial_listen_addr \u003d pre_result[\u0027serial_listen_addr\u0027]"},{"line_number":183,"context_line":"            self._bdms_from_legacy(pre_result)"}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_4c87a1b5","line":180,"range":{"start_line":180,"start_character":12,"end_line":180,"end_character":72},"in_reply_to":"7a5de9d1_5e750bc9","updated":"2016-01-28 07:48:28.000000000","message":"Hm... didn\u0027t realized this before I will have a check","commit_id":"2ffd91172f4b746e4739d0f9a9ded1383016c2f8"}],"nova/objects/service.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"401982a5b52f5cd4004b560199b963589ae2f9c4","unresolved":false,"context_lines":[{"line_number":65,"context_line":")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# \\TODO(berrange): Remove NovaObjectDictCompat"},{"line_number":69,"context_line":"@base.NovaObjectRegistry.register"},{"line_number":70,"context_line":"class Service(base.NovaPersistentObject, base.NovaObject,"},{"line_number":71,"context_line":"              base.NovaObjectDictCompat):"}],"source_content_type":"text/x-python","patch_set":26,"id":"9a68dd71_65449d1a","line":68,"updated":"2016-01-22 15:45:50.000000000","message":"Typo crept in here - don\u0027t change this","commit_id":"e41ea62d87705ac812dee035de3496685898faf5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"5d94cc3dab32d3894aa0456b790cf2bb15dcb628","unresolved":false,"context_lines":[{"line_number":65,"context_line":")"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"# \\TODO(berrange): Remove NovaObjectDictCompat"},{"line_number":69,"context_line":"@base.NovaObjectRegistry.register"},{"line_number":70,"context_line":"class Service(base.NovaPersistentObject, base.NovaObject,"},{"line_number":71,"context_line":"              base.NovaObjectDictCompat):"}],"source_content_type":"text/x-python","patch_set":26,"id":"9a68dd71_cbec402c","line":68,"in_reply_to":"9a68dd71_65449d1a","updated":"2016-01-25 06:42:46.000000000","message":"Done","commit_id":"e41ea62d87705ac812dee035de3496685898faf5"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"dd9581d3af0b0d5daa7718f3497ca39ad2642103","unresolved":false,"context_lines":[{"line_number":7769,"context_line":"                                        \"/fake/instance/dir\", None)"},{"line_number":7770,"context_line":""},{"line_number":7771,"context_line":"    def test_pre_live_migration_works_correctly_mocked(self):"},{"line_number":7772,"context_line":"        target_ret \u003d {"},{"line_number":7773,"context_line":"        \u0027graphics_listen_addrs\u0027: {\u0027spice\u0027: \u0027127.0.0.1\u0027, \u0027vnc\u0027: \u0027127.0.0.1\u0027},"},{"line_number":7774,"context_line":"        \u0027target_connect_addr\u0027: None,"},{"line_number":7775,"context_line":"        \u0027serial_listen_addr\u0027: \u0027127.0.0.1\u0027,"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a68dd71_9fd71ebf","line":7772,"range":{"start_line":7772,"start_character":8,"end_line":7772,"end_character":18},"updated":"2016-01-26 11:37:20.000000000","message":"nit: what about adding factory method for building this, as it\u0027s pretty similar to target_ret on line 7794","commit_id":"889fa4e2c636c5c89d5cd2f601c1ee2d88f68897"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d9cf56a2b5f9654717e33a934d3ed50ecdac9be8","unresolved":false,"context_lines":[{"line_number":7769,"context_line":"                                        \"/fake/instance/dir\", None)"},{"line_number":7770,"context_line":""},{"line_number":7771,"context_line":"    def test_pre_live_migration_works_correctly_mocked(self):"},{"line_number":7772,"context_line":"        target_ret \u003d {"},{"line_number":7773,"context_line":"        \u0027graphics_listen_addrs\u0027: {\u0027spice\u0027: \u0027127.0.0.1\u0027, \u0027vnc\u0027: \u0027127.0.0.1\u0027},"},{"line_number":7774,"context_line":"        \u0027target_connect_addr\u0027: None,"},{"line_number":7775,"context_line":"        \u0027serial_listen_addr\u0027: \u0027127.0.0.1\u0027,"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a68dd71_3f571228","line":7772,"range":{"start_line":7772,"start_character":8,"end_line":7772,"end_character":18},"in_reply_to":"9a68dd71_9fd71ebf","updated":"2016-01-26 11:40:13.000000000","message":"will work on this","commit_id":"889fa4e2c636c5c89d5cd2f601c1ee2d88f68897"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f11dc65a579a7f5dec80155dee38b933be6ec6a4","unresolved":false,"context_lines":[{"line_number":7885,"context_line":"                                    \u0027type\u0027: \u0027disk\u0027}}}}"},{"line_number":7886,"context_line":"        self.assertEqual("},{"line_number":7887,"context_line":"            result.to_legacy_dict("},{"line_number":7888,"context_line":"                pre_migration_result\u003dTrue)[\u0027pre_live_migration_result\u0027],"},{"line_number":7889,"context_line":"            target_ret)"},{"line_number":7890,"context_line":""},{"line_number":7891,"context_line":"    def test_pre_live_migration_block_with_config_drive_mocked(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a68dd71_bf9d420c","line":7888,"updated":"2016-01-26 11:37:39.000000000","message":"This will fail the above. Why are we adding target_connect_addr to the legacy dict return at all?","commit_id":"889fa4e2c636c5c89d5cd2f601c1ee2d88f68897"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"b1e2d2f1d351672fff63aa092fb6a96e1b130967","unresolved":false,"context_lines":[{"line_number":7885,"context_line":"                                    \u0027type\u0027: \u0027disk\u0027}}}}"},{"line_number":7886,"context_line":"        self.assertEqual("},{"line_number":7887,"context_line":"            result.to_legacy_dict("},{"line_number":7888,"context_line":"                pre_migration_result\u003dTrue)[\u0027pre_live_migration_result\u0027],"},{"line_number":7889,"context_line":"            target_ret)"},{"line_number":7890,"context_line":""},{"line_number":7891,"context_line":"    def test_pre_live_migration_block_with_config_drive_mocked(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a68dd71_15e1cfd0","line":7888,"in_reply_to":"9a68dd71_bf9d420c","updated":"2016-01-26 12:08:23.000000000","message":"Hi, after I checked again, I think we have to add this option to the method to_legacy_dict too. As in https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L5126 we will transform it before use, if we don\u0027t add it to the dict, it will not work?","commit_id":"889fa4e2c636c5c89d5cd2f601c1ee2d88f68897"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d9cf56a2b5f9654717e33a934d3ed50ecdac9be8","unresolved":false,"context_lines":[{"line_number":7885,"context_line":"                                    \u0027type\u0027: \u0027disk\u0027}}}}"},{"line_number":7886,"context_line":"        self.assertEqual("},{"line_number":7887,"context_line":"            result.to_legacy_dict("},{"line_number":7888,"context_line":"                pre_migration_result\u003dTrue)[\u0027pre_live_migration_result\u0027],"},{"line_number":7889,"context_line":"            target_ret)"},{"line_number":7890,"context_line":""},{"line_number":7891,"context_line":"    def test_pre_live_migration_block_with_config_drive_mocked(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"9a68dd71_1f4ece96","line":7888,"in_reply_to":"9a68dd71_bf9d420c","updated":"2016-01-26 11:40:13.000000000","message":"sorry I missed this one.","commit_id":"889fa4e2c636c5c89d5cd2f601c1ee2d88f68897"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4fe764d574e9b92febe46857ef75b2aefb46af1b","unresolved":false,"context_lines":[{"line_number":6803,"context_line":"            connection_info\u003dconnection_info)"},{"line_number":6804,"context_line":"        migrate_data \u003d objects.LibvirtLiveMigrateData("},{"line_number":6805,"context_line":"            serial_listen_addr\u003d\u0027\u0027,"},{"line_number":6806,"context_line":"            target_connect_addr\u003dNone,"},{"line_number":6807,"context_line":"            bdms\u003d[bdm])"},{"line_number":6808,"context_line":""},{"line_number":6809,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_f080cd4b","line":6806,"range":{"start_line":6806,"start_character":12,"end_line":6806,"end_character":36},"updated":"2016-02-02 11:34:55.000000000","message":"looks like we only test target_connect_addr \u003d\u003d None for _live_migration_operation method, can we test one with valid value?","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9a273966a5efcb48016a974b72a2b8dd8f7742d2","unresolved":false,"context_lines":[{"line_number":6803,"context_line":"            connection_info\u003dconnection_info)"},{"line_number":6804,"context_line":"        migrate_data \u003d objects.LibvirtLiveMigrateData("},{"line_number":6805,"context_line":"            serial_listen_addr\u003d\u0027\u0027,"},{"line_number":6806,"context_line":"            target_connect_addr\u003dNone,"},{"line_number":6807,"context_line":"            bdms\u003d[bdm])"},{"line_number":6808,"context_line":""},{"line_number":6809,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_b4500260","line":6806,"range":{"start_line":6806,"start_character":12,"end_line":6806,"end_character":36},"in_reply_to":"7a5de9d1_06676f26","updated":"2016-02-02 13:50:54.000000000","message":"No, that is for \u0027pre_live_migration\u0027","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"e4ecda81d6326b8fed83a2beda0ad863a79309ad","unresolved":false,"context_lines":[{"line_number":6803,"context_line":"            connection_info\u003dconnection_info)"},{"line_number":6804,"context_line":"        migrate_data \u003d objects.LibvirtLiveMigrateData("},{"line_number":6805,"context_line":"            serial_listen_addr\u003d\u0027\u0027,"},{"line_number":6806,"context_line":"            target_connect_addr\u003dNone,"},{"line_number":6807,"context_line":"            bdms\u003d[bdm])"},{"line_number":6808,"context_line":""},{"line_number":6809,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_d7b4a083","line":6806,"range":{"start_line":6806,"start_character":12,"end_line":6806,"end_character":36},"in_reply_to":"7a5de9d1_b4500260","updated":"2016-02-02 14:09:12.000000000","message":"okay, then we need for live_migration","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":6803,"context_line":"            connection_info\u003dconnection_info)"},{"line_number":6804,"context_line":"        migrate_data \u003d objects.LibvirtLiveMigrateData("},{"line_number":6805,"context_line":"            serial_listen_addr\u003d\u0027\u0027,"},{"line_number":6806,"context_line":"            target_connect_addr\u003dNone,"},{"line_number":6807,"context_line":"            bdms\u003d[bdm])"},{"line_number":6808,"context_line":""},{"line_number":6809,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_06676f26","line":6806,"range":{"start_line":6806,"start_character":12,"end_line":6806,"end_character":36},"in_reply_to":"7a5de9d1_f080cd4b","updated":"2016-02-02 12:35:34.000000000","message":"Alex, I think Kevin has done it in 7887, Kevin?","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4fe764d574e9b92febe46857ef75b2aefb46af1b","unresolved":false,"context_lines":[{"line_number":7884,"context_line":"        drvr._create_images_and_backing(self.context, self.test_instance,"},{"line_number":7885,"context_line":"                                        \"/fake/instance/dir\", None)"},{"line_number":7886,"context_line":""},{"line_number":7887,"context_line":"    def generate_target_ret(self, target_connect_addr\u003dNone):"},{"line_number":7888,"context_line":"        target_ret \u003d {"},{"line_number":7889,"context_line":"        \u0027graphics_listen_addrs\u0027: {\u0027spice\u0027: \u0027127.0.0.1\u0027, \u0027vnc\u0027: \u0027127.0.0.1\u0027},"},{"line_number":7890,"context_line":"        \u0027target_connect_addr\u0027: target_connect_addr,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_ed5eb678","line":7887,"range":{"start_line":7887,"start_character":8,"end_line":7887,"end_character":27},"updated":"2016-02-02 11:34:55.000000000","message":"this should be private method.","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":7884,"context_line":"        drvr._create_images_and_backing(self.context, self.test_instance,"},{"line_number":7885,"context_line":"                                        \"/fake/instance/dir\", None)"},{"line_number":7886,"context_line":""},{"line_number":7887,"context_line":"    def generate_target_ret(self, target_connect_addr\u003dNone):"},{"line_number":7888,"context_line":"        target_ret \u003d {"},{"line_number":7889,"context_line":"        \u0027graphics_listen_addrs\u0027: {\u0027spice\u0027: \u0027127.0.0.1\u0027, \u0027vnc\u0027: \u0027127.0.0.1\u0027},"},{"line_number":7890,"context_line":"        \u0027target_connect_addr\u0027: target_connect_addr,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_46eec7b5","line":7887,"range":{"start_line":7887,"start_character":8,"end_line":7887,"end_character":27},"in_reply_to":"7a5de9d1_ed5eb678","updated":"2016-02-02 12:35:34.000000000","message":"+1","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":7905,"context_line":"        return target_ret"},{"line_number":7906,"context_line":""},{"line_number":7907,"context_line":"    def test_pre_live_migration_works_correctly_mocked(self):"},{"line_number":7908,"context_line":"        target_ret \u003d self.generate_target_ret()"},{"line_number":7909,"context_line":"        self._test_pre_live_migration_works_correctly_mocked(target_ret)"},{"line_number":7910,"context_line":""},{"line_number":7911,"context_line":"    def test_pre_live_migration_with_transport_ip(self):"},{"line_number":7912,"context_line":"        self.flags(live_migration_connect_addr\u003d\u0027127.0.0.2\u0027,"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_c1db814e","line":7909,"range":{"start_line":7908,"start_character":0,"end_line":7909,"end_character":72},"updated":"2016-02-02 12:35:34.000000000","message":"just call self._test_pre_live_migration_works_correctly_mocked()","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":7909,"context_line":"        self._test_pre_live_migration_works_correctly_mocked(target_ret)"},{"line_number":7910,"context_line":""},{"line_number":7911,"context_line":"    def test_pre_live_migration_with_transport_ip(self):"},{"line_number":7912,"context_line":"        self.flags(live_migration_connect_addr\u003d\u0027127.0.0.2\u0027,"},{"line_number":7913,"context_line":"                   group\u003d\u0027libvirt\u0027)"},{"line_number":7914,"context_line":"        target_ret \u003d self.generate_target_ret(\u0027127.0.0.2\u0027)"},{"line_number":7915,"context_line":"        self._test_pre_live_migration_works_correctly_mocked(target_ret)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_06168fa7","line":7912,"range":{"start_line":7912,"start_character":48,"end_line":7912,"end_character":57},"updated":"2016-02-02 12:35:34.000000000","message":"maybe you will need a hostname like one?\n\nBeside, as I commented before, we assume that admin should make sure the live_migration_connect_addr valid one, and we don\u0027t have a \u0027bad\u0027 case.\n\nSince lots of people agree that we don\u0027t need to take care about \u0027bad\u0027 host name, I have no comments on it.","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":7912,"context_line":"        self.flags(live_migration_connect_addr\u003d\u0027127.0.0.2\u0027,"},{"line_number":7913,"context_line":"                   group\u003d\u0027libvirt\u0027)"},{"line_number":7914,"context_line":"        target_ret \u003d self.generate_target_ret(\u0027127.0.0.2\u0027)"},{"line_number":7915,"context_line":"        self._test_pre_live_migration_works_correctly_mocked(target_ret)"},{"line_number":7916,"context_line":""},{"line_number":7917,"context_line":"    def _test_pre_live_migration_works_correctly_mocked(self,"},{"line_number":7918,"context_line":"                                                        target_ret\u003dNone):"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_61ededee","line":7915,"updated":"2016-02-02 12:35:34.000000000","message":"self._test_pre_live_migration_works_correctly_mocked(\u0027127.0.0.1\u0027)","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":7915,"context_line":"        self._test_pre_live_migration_works_correctly_mocked(target_ret)"},{"line_number":7916,"context_line":""},{"line_number":7917,"context_line":"    def _test_pre_live_migration_works_correctly_mocked(self,"},{"line_number":7918,"context_line":"                                                        target_ret\u003dNone):"},{"line_number":7919,"context_line":"        # Creating testdata"},{"line_number":7920,"context_line":"        vol \u003d {\u0027block_device_mapping\u0027: ["},{"line_number":7921,"context_line":"           {\u0027connection_info\u0027: {\u0027serial\u0027: \u002712345\u0027, u\u0027data\u0027:"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_61e3ad34","line":7918,"range":{"start_line":7918,"start_character":56,"end_line":7918,"end_character":71},"updated":"2016-02-02 12:35:34.000000000","message":"use target_connect_addr\u003dNone","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":7968,"context_line":"        result \u003d drvr.pre_live_migration("},{"line_number":7969,"context_line":"            c, instance, vol, nw_info, None,"},{"line_number":7970,"context_line":"            migrate_data\u003dmigrate_data)"},{"line_number":7971,"context_line":"        if not target_ret:"},{"line_number":7972,"context_line":"            target_ret \u003d self.generate_target_ret()"},{"line_number":7973,"context_line":"        self.assertEqual("},{"line_number":7974,"context_line":"            result.to_legacy_dict("},{"line_number":7975,"context_line":"                pre_migration_result\u003dTrue)[\u0027pre_live_migration_result\u0027],"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_61688d88","line":7972,"range":{"start_line":7971,"start_character":1,"end_line":7972,"end_character":51},"updated":"2016-02-02 12:35:34.000000000","message":"This is odd and hacking, how about removing if and use this:\n\ntarget_ret \u003d self.generate_target_ret(target_connect_addr)","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"218ff6e9076214507eb6023f0ee7e5b64024d4fb","unresolved":false,"context_lines":[{"line_number":8031,"context_line":"        self._test_pre_live_migration_works_correctly_mocked()"},{"line_number":8032,"context_line":""},{"line_number":8033,"context_line":"    def test_pre_live_migration_with_transport_ip(self):"},{"line_number":8034,"context_line":"        self.flags(live_migration_connect_addr\u003d\u0027127.0.0.2\u0027,"},{"line_number":8035,"context_line":"                   group\u003d\u0027libvirt\u0027)"},{"line_number":8036,"context_line":"        target_ret \u003d self._generate_target_ret(\u0027127.0.0.2\u0027)"},{"line_number":8037,"context_line":"        self._test_pre_live_migration_works_correctly_mocked(target_ret)"}],"source_content_type":"text/x-python","patch_set":40,"id":"5a5ae5dd_0822b0b9","line":8034,"range":{"start_line":8034,"start_character":19,"end_line":8034,"end_character":46},"updated":"2016-02-04 21:34:40.000000000","message":"You forgot to change flag name in test","commit_id":"eb6fc65ce9ea609e1bfbc08ff0bbe8c88d00490e"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"9bb57c53b4266442b7dd53ab94b9479b11a783a2","unresolved":false,"context_lines":[{"line_number":5658,"context_line":"            serial_listen_addr \u003d pre_live_migrate_data.get("},{"line_number":5659,"context_line":"                                     \u0027serial_listen_addr\u0027)"},{"line_number":5660,"context_line":"            transport_ip \u003d pre_live_migrate_data.get("},{"line_number":5661,"context_line":"                                            \u0027pre_live_migrate_data\u0027)"},{"line_number":5662,"context_line":""},{"line_number":5663,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"},{"line_number":5664,"context_line":"                                      None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_a1cc2836","line":5661,"updated":"2015-11-16 21:45:19.000000000","message":"this could be rewritten with smth like:\ntransport_ip \u003d pre_live_migrate_data.get(\u0027pre_live_migrate_data\u0027):\nif transport_ip:\n  dest \u003d transport_ip","commit_id":"b3671faec1a46f7200bcc433a4c574f9e83d7a57"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"4e2db626a61e3cf4ba775bd994582f4e8325ff27","unresolved":false,"context_lines":[{"line_number":5658,"context_line":"            serial_listen_addr \u003d pre_live_migrate_data.get("},{"line_number":5659,"context_line":"                                     \u0027serial_listen_addr\u0027)"},{"line_number":5660,"context_line":"            transport_ip \u003d pre_live_migrate_data.get("},{"line_number":5661,"context_line":"                                            \u0027pre_live_migrate_data\u0027)"},{"line_number":5662,"context_line":""},{"line_number":5663,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"},{"line_number":5664,"context_line":"                                      None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_98e5cea9","line":5661,"in_reply_to":"ba8a016a_a1cc2836","updated":"2015-11-17 01:30:08.000000000","message":"Ah, good point, Thanks my bad.","commit_id":"b3671faec1a46f7200bcc433a4c574f9e83d7a57"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"9bb57c53b4266442b7dd53ab94b9479b11a783a2","unresolved":false,"context_lines":[{"line_number":5687,"context_line":"                                               listen_addrs,"},{"line_number":5688,"context_line":"                                               serial_listen_addr)"},{"line_number":5689,"context_line":"                try:"},{"line_number":5690,"context_line":"                    if transport_ip:"},{"line_number":5691,"context_line":"                        dom.migrateToURI2("},{"line_number":5692,"context_line":"                            CONF.libvirt.live_migration_uri %"},{"line_number":5693,"context_line":"                            transport_ip,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_e1e2309f","line":5690,"updated":"2015-11-16 21:45:19.000000000","message":"ditto","commit_id":"b3671faec1a46f7200bcc433a4c574f9e83d7a57"},{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"67f18a43dee7b3b82d694355e8f011bcf887040d","unresolved":false,"context_lines":[{"line_number":5670,"context_line":"                self._check_graphics_addresses_can_live_migrate(listen_addrs)"},{"line_number":5671,"context_line":"                self._verify_serial_console_is_disabled()"},{"line_number":5672,"context_line":"                if live_migration_transport_ip:"},{"line_number":5673,"context_line":"                    dest \u003d live_migration_transport_ip"},{"line_number":5674,"context_line":"                dom.migrateToURI(CONF.libvirt.live_migration_uri % dest,"},{"line_number":5675,"context_line":"                                 logical_sum,"},{"line_number":5676,"context_line":"                                 None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_0384f5d1","line":5673,"updated":"2015-11-17 13:43:08.000000000","message":"better, but I believe you can do this once, right after line 5661.","commit_id":"c8f39a079ac85a70ec7bf20c774388543b2873b4"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"3d967098ad35f42ca636dbb716af6e879a9c022e","unresolved":false,"context_lines":[{"line_number":5670,"context_line":"                self._check_graphics_addresses_can_live_migrate(listen_addrs)"},{"line_number":5671,"context_line":"                self._verify_serial_console_is_disabled()"},{"line_number":5672,"context_line":"                if live_migration_transport_ip:"},{"line_number":5673,"context_line":"                    dest \u003d live_migration_transport_ip"},{"line_number":5674,"context_line":"                dom.migrateToURI(CONF.libvirt.live_migration_uri % dest,"},{"line_number":5675,"context_line":"                                 logical_sum,"},{"line_number":5676,"context_line":"                                 None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba8a016a_901325b8","line":5673,"in_reply_to":"ba8a016a_0384f5d1","updated":"2015-11-18 01:04:31.000000000","message":"Ah, why am I so stupid, thank you again.","commit_id":"c8f39a079ac85a70ec7bf20c774388543b2873b4"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"8011a4e3ef67c62284042ef2a3e4da4ff16476e7","unresolved":false,"context_lines":[{"line_number":5658,"context_line":"            serial_listen_addr \u003d pre_live_migrate_data.get("},{"line_number":5659,"context_line":"                                     \u0027serial_listen_addr\u0027)"},{"line_number":5660,"context_line":"            live_migration_transport_ip \u003d pre_live_migrate_data.get("},{"line_number":5661,"context_line":"                                              \u0027live_migration_transport_ip\u0027)"},{"line_number":5662,"context_line":"            if live_migration_transport_ip:"},{"line_number":5663,"context_line":"                    dest \u003d live_migration_transport_ip"},{"line_number":5664,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_07a1b3f7","line":5661,"updated":"2015-11-30 11:40:51.000000000","message":"Just wonder if we can remove this if-statement and just do\ndest \u003d pre_live_migrate_data.get(\u0027live_migration_transport_ip\u0027, dest)","commit_id":"3e97a0ace47ad7f929e5c90db8d982faeec9aae3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"34dc3e5ba9a2fd4a8369fc392e60f10762ad8a45","unresolved":false,"context_lines":[{"line_number":5658,"context_line":"            serial_listen_addr \u003d pre_live_migrate_data.get("},{"line_number":5659,"context_line":"                                     \u0027serial_listen_addr\u0027)"},{"line_number":5660,"context_line":"            live_migration_transport_ip \u003d pre_live_migrate_data.get("},{"line_number":5661,"context_line":"                                              \u0027live_migration_transport_ip\u0027)"},{"line_number":5662,"context_line":"            if live_migration_transport_ip:"},{"line_number":5663,"context_line":"                    dest \u003d live_migration_transport_ip"},{"line_number":5664,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a8ffd7b_cbacd28e","line":5661,"in_reply_to":"9a8ffd7b_07a1b3f7","updated":"2015-12-01 12:31:42.000000000","message":"Done","commit_id":"3e97a0ace47ad7f929e5c90db8d982faeec9aae3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1363596dbb46105fa358078b68be9c17c0b10991","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    cfg.BoolOpt(\u0027use_usb_tablet\u0027,"},{"line_number":153,"context_line":"                default\u003dTrue,"},{"line_number":154,"context_line":"                help\u003d\u0027Sync virtual and real mouse cursors in Windows VMs\u0027),"},{"line_number":155,"context_line":"    cfg.StrOpt(\u0027live_migration_transport_ip\u0027,"},{"line_number":156,"context_line":"               default\u003dNone,"},{"line_number":157,"context_line":"               help\u003d\u0027Live migration target ip \u0027"},{"line_number":158,"context_line":"                    \u0027(if set to None, destination host \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a710552_148e8878","line":155,"range":{"start_line":155,"start_character":16,"end_line":155,"end_character":43},"updated":"2015-12-15 14:21:29.000000000","message":"Do we only support IP address or it can be a hostname too?","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e1189e1e1886cb110d8d213fdb0e651c0d4b43d","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    cfg.BoolOpt(\u0027use_usb_tablet\u0027,"},{"line_number":153,"context_line":"                default\u003dTrue,"},{"line_number":154,"context_line":"                help\u003d\u0027Sync virtual and real mouse cursors in Windows VMs\u0027),"},{"line_number":155,"context_line":"    cfg.StrOpt(\u0027live_migration_transport_ip\u0027,"},{"line_number":156,"context_line":"               default\u003dNone,"},{"line_number":157,"context_line":"               help\u003d\u0027Live migration target ip \u0027"},{"line_number":158,"context_line":"                    \u0027(if set to None, destination host \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a710552_bf6e4cc7","line":155,"in_reply_to":"5a710552_148e8878","updated":"2015-12-16 01:45:33.000000000","message":"hmm, Thanks alot, hostname will also work.","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1363596dbb46105fa358078b68be9c17c0b10991","unresolved":false,"context_lines":[{"line_number":6335,"context_line":"        # Store vncserver_listen and latest disk device info"},{"line_number":6336,"context_line":"        res_data \u003d {\u0027graphics_listen_addrs\u0027: {}, \u0027volume\u0027: {},"},{"line_number":6337,"context_line":"                    \u0027serial_listen_addr\u0027: {},"},{"line_number":6338,"context_line":"                    \u0027live_migration_transport_ip\u0027: None}"},{"line_number":6339,"context_line":"        res_data[\u0027graphics_listen_addrs\u0027][\u0027vnc\u0027] \u003d CONF.vnc.vncserver_listen"},{"line_number":6340,"context_line":"        res_data[\u0027graphics_listen_addrs\u0027][\u0027spice\u0027] \u003d CONF.spice.server_listen"},{"line_number":6341,"context_line":"        res_data[\u0027serial_listen_addr\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a710552_54cf3056","line":6338,"updated":"2015-12-15 14:21:29.000000000","message":"This addition is not needed as in L6357 you anyhow assign a value to the \u0027live_migration_transport_ip\u0027 key","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e1189e1e1886cb110d8d213fdb0e651c0d4b43d","unresolved":false,"context_lines":[{"line_number":6335,"context_line":"        # Store vncserver_listen and latest disk device info"},{"line_number":6336,"context_line":"        res_data \u003d {\u0027graphics_listen_addrs\u0027: {}, \u0027volume\u0027: {},"},{"line_number":6337,"context_line":"                    \u0027serial_listen_addr\u0027: {},"},{"line_number":6338,"context_line":"                    \u0027live_migration_transport_ip\u0027: None}"},{"line_number":6339,"context_line":"        res_data[\u0027graphics_listen_addrs\u0027][\u0027vnc\u0027] \u003d CONF.vnc.vncserver_listen"},{"line_number":6340,"context_line":"        res_data[\u0027graphics_listen_addrs\u0027][\u0027spice\u0027] \u003d CONF.spice.server_listen"},{"line_number":6341,"context_line":"        res_data[\u0027serial_listen_addr\u0027] \u003d \\"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a710552_3f633cde","line":6338,"in_reply_to":"5a710552_54cf3056","updated":"2015-12-16 01:45:33.000000000","message":"Done","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"ee962eb85dc4eb10663f4bb8323e28bd7cb317b8","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                help\u003d\u0027Sync virtual and real mouse cursors in Windows VMs\u0027),"},{"line_number":157,"context_line":"    cfg.StrOpt(\u0027live_migration_transport_target\u0027,"},{"line_number":158,"context_line":"               default\u003dNone,"},{"line_number":159,"context_line":"               help\u003d\u0027Live migration target ip or hostname \u0027"},{"line_number":160,"context_line":"                    \u0027(if set to None, destination host \u0027"},{"line_number":161,"context_line":"                    \u0027will be used)\u0027),"},{"line_number":162,"context_line":"    cfg.StrOpt(\u0027live_migration_uri\u0027,"},{"line_number":163,"context_line":"               default\u003d\"qemu+tcp://%s/system\","},{"line_number":164,"context_line":"               help\u003d\u0027Migration target URI \u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba63e191_0b5f6473","line":161,"range":{"start_line":159,"start_character":0,"end_line":161,"end_character":37},"updated":"2016-01-19 06:35:09.000000000","message":"hmm.. I think this help message is not very clear, but I am not English native speaker, can\u0027t help.","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7160fd8b3a4f4c7160ce25be98e47146b3008c4a","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                help\u003d\u0027Sync virtual and real mouse cursors in Windows VMs\u0027),"},{"line_number":157,"context_line":"    cfg.StrOpt(\u0027live_migration_transport_target\u0027,"},{"line_number":158,"context_line":"               default\u003dNone,"},{"line_number":159,"context_line":"               help\u003d\u0027Live migration target ip or hostname \u0027"},{"line_number":160,"context_line":"                    \u0027(if set to None, destination host \u0027"},{"line_number":161,"context_line":"                    \u0027will be used)\u0027),"},{"line_number":162,"context_line":"    cfg.StrOpt(\u0027live_migration_uri\u0027,"},{"line_number":163,"context_line":"               default\u003d\"qemu+tcp://%s/system\","},{"line_number":164,"context_line":"               help\u003d\u0027Migration target URI \u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba63e191_64740e9c","line":161,"range":{"start_line":159,"start_character":0,"end_line":161,"end_character":37},"in_reply_to":"ba63e191_0b5f6473","updated":"2016-01-19 07:50:10.000000000","message":"I will try to update this","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"ee962eb85dc4eb10663f4bb8323e28bd7cb317b8","unresolved":false,"context_lines":[{"line_number":5745,"context_line":"                listen_addrs[\u0027spice\u0027] \u003d str("},{"line_number":5746,"context_line":"                    migrate_data.graphics_listen_addr_spice)"},{"line_number":5747,"context_line":"            serial_listen_addr \u003d migrate_data.serial_listen_addr"},{"line_number":5748,"context_line":"            if \u0027live_migration_transport_target\u0027 in migrate_data:"},{"line_number":5749,"context_line":"                dest \u003d str(migrate_data.live_migration_transport_target)"},{"line_number":5750,"context_line":""},{"line_number":5751,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"},{"line_number":5752,"context_line":"                                      None)"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba63e191_6be5c0a6","line":5749,"range":{"start_line":5748,"start_character":0,"end_line":5749,"end_character":72},"updated":"2016-01-19 06:35:09.000000000","message":"would that be much more validation good to test if live_migration_transport_target is a valid host name of ip address before using it?\n\nif they are not valid, warning and fall back to use dest host name.","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7160fd8b3a4f4c7160ce25be98e47146b3008c4a","unresolved":false,"context_lines":[{"line_number":5745,"context_line":"                listen_addrs[\u0027spice\u0027] \u003d str("},{"line_number":5746,"context_line":"                    migrate_data.graphics_listen_addr_spice)"},{"line_number":5747,"context_line":"            serial_listen_addr \u003d migrate_data.serial_listen_addr"},{"line_number":5748,"context_line":"            if \u0027live_migration_transport_target\u0027 in migrate_data:"},{"line_number":5749,"context_line":"                dest \u003d str(migrate_data.live_migration_transport_target)"},{"line_number":5750,"context_line":""},{"line_number":5751,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"},{"line_number":5752,"context_line":"                                      None)"}],"source_content_type":"text/x-python","patch_set":22,"id":"ba63e191_e7b0008e","line":5749,"range":{"start_line":5748,"start_character":0,"end_line":5749,"end_character":72},"in_reply_to":"ba63e191_6be5c0a6","updated":"2016-01-19 07:50:10.000000000","message":"Hm, this is a good point, but I think as this is a config option, and we want to support both ip and hostname, it should be the administrator who make sure those options are valid.","commit_id":"b09082fc89c64428bea44dd6820aea8f0dab25e6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"401982a5b52f5cd4004b560199b963589ae2f9c4","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    cfg.BoolOpt(\u0027use_usb_tablet\u0027,"},{"line_number":157,"context_line":"                default\u003dTrue,"},{"line_number":158,"context_line":"                help\u003d\u0027Sync virtual and real mouse cursors in Windows VMs\u0027),"},{"line_number":159,"context_line":"    cfg.StrOpt(\u0027live_migration_transport_target\u0027,"},{"line_number":160,"context_line":"               default\u003dNone,"},{"line_number":161,"context_line":"               help\u003d\u0027Live migration target ip or hostname \u0027"},{"line_number":162,"context_line":"                    \u0027(if this option is set to be None,\u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"9a68dd71_0575a162","line":159,"range":{"start_line":159,"start_character":47,"end_line":159,"end_character":49},"updated":"2016-01-22 15:45:50.000000000","message":"Lets call this live_migration_connect_addr","commit_id":"e41ea62d87705ac812dee035de3496685898faf5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"5d94cc3dab32d3894aa0456b790cf2bb15dcb628","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    cfg.BoolOpt(\u0027use_usb_tablet\u0027,"},{"line_number":157,"context_line":"                default\u003dTrue,"},{"line_number":158,"context_line":"                help\u003d\u0027Sync virtual and real mouse cursors in Windows VMs\u0027),"},{"line_number":159,"context_line":"    cfg.StrOpt(\u0027live_migration_transport_target\u0027,"},{"line_number":160,"context_line":"               default\u003dNone,"},{"line_number":161,"context_line":"               help\u003d\u0027Live migration target ip or hostname \u0027"},{"line_number":162,"context_line":"                    \u0027(if this option is set to be None,\u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"9a68dd71_ab11cc05","line":159,"range":{"start_line":159,"start_character":47,"end_line":159,"end_character":49},"in_reply_to":"9a68dd71_0575a162","updated":"2016-01-25 06:42:46.000000000","message":"Done","commit_id":"e41ea62d87705ac812dee035de3496685898faf5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"8541195d21f816de30ea1f0a4540e51c09f8215c","unresolved":false,"context_lines":[{"line_number":5787,"context_line":"                listen_addrs[\u0027spice\u0027] \u003d str("},{"line_number":5788,"context_line":"                    migrate_data.graphics_listen_addr_spice)"},{"line_number":5789,"context_line":"            serial_listen_addr \u003d migrate_data.serial_listen_addr"},{"line_number":5790,"context_line":"            if \u0027target_connect_addr\u0027 in migrate_data:"},{"line_number":5791,"context_line":"                dest \u003d str(migrate_data.target_connect_addr)"},{"line_number":5792,"context_line":""},{"line_number":5793,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_4461dfd2","line":5790,"updated":"2016-01-26 11:00:55.000000000","message":"migrate_data is a nova object and therefore even if migrate_data.target_connect_addr is None, the above will return True. Please use:\n\n if migrate_data.target_connect_addr is not None:","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"a1218ed74e8c6d10c228a491f614113a46cf21a2","unresolved":false,"context_lines":[{"line_number":5787,"context_line":"                listen_addrs[\u0027spice\u0027] \u003d str("},{"line_number":5788,"context_line":"                    migrate_data.graphics_listen_addr_spice)"},{"line_number":5789,"context_line":"            serial_listen_addr \u003d migrate_data.serial_listen_addr"},{"line_number":5790,"context_line":"            if \u0027target_connect_addr\u0027 in migrate_data:"},{"line_number":5791,"context_line":"                dest \u003d str(migrate_data.target_connect_addr)"},{"line_number":5792,"context_line":""},{"line_number":5793,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"}],"source_content_type":"text/x-python","patch_set":29,"id":"9a68dd71_df7fd664","line":5790,"in_reply_to":"9a68dd71_4461dfd2","updated":"2016-01-26 11:29:54.000000000","message":"Done","commit_id":"a4f2ffb221cd4c70ed1759b3e1b8ccf5b5b36193"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"694913e8aff6c9b6e9f864aab1c8413e0ce92193","unresolved":false,"context_lines":[{"line_number":5773,"context_line":"                migration_flags \u003d self._block_migration_flags"},{"line_number":5774,"context_line":"            else:"},{"line_number":5775,"context_line":"                migration_flags \u003d self._live_migration_flags"},{"line_number":5776,"context_line":""},{"line_number":5777,"context_line":"            listen_addrs \u003d {}"},{"line_number":5778,"context_line":"            if \u0027graphics_listen_addr_vnc\u0027 in migrate_data:"},{"line_number":5779,"context_line":"                listen_addrs[\u0027vnc\u0027] \u003d str("}],"source_content_type":"text/x-python","patch_set":33,"id":"7a5de9d1_5ec8ab55","side":"PARENT","line":5776,"updated":"2016-01-28 06:40:30.000000000","message":"this is unrelated change","commit_id":"2d705bea4ed3119bcfcf0717f51aa87e9c6aaef5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4fe764d574e9b92febe46857ef75b2aefb46af1b","unresolved":false,"context_lines":[{"line_number":161,"context_line":"               help\u003d\u0027Live migration target ip or hostname \u0027"},{"line_number":162,"context_line":"                    \u0027(if this option is set to be None,\u0027"},{"line_number":163,"context_line":"                    \u0027the config option of live_migration_uri\u0027"},{"line_number":164,"context_line":"                    \u0027will be used as the destination uri)\u0027),"},{"line_number":165,"context_line":"    cfg.StrOpt(\u0027live_migration_uri\u0027,"},{"line_number":166,"context_line":"               default\u003d\"qemu+tcp://%s/system\","},{"line_number":167,"context_line":"               help\u003d\u0027Migration target URI \u0027"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_6d3e462b","line":164,"range":{"start_line":164,"start_character":41,"end_line":164,"end_character":56},"updated":"2016-02-02 11:34:55.000000000","message":"what is \u0027destination uri\u0027 point to? looks like this isn\u0027t clear for user. Maybe we can say if None is set, the address  of compute node\u0027s hostname pointed to will be used. But please don\u0027t trust my English.","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4fe764d574e9b92febe46857ef75b2aefb46af1b","unresolved":false,"context_lines":[{"line_number":5876,"context_line":"                    migrate_data.graphics_listen_addr_spice)"},{"line_number":5877,"context_line":"            serial_listen_addr \u003d migrate_data.serial_listen_addr"},{"line_number":5878,"context_line":"            if migrate_data.target_connect_addr is not None:"},{"line_number":5879,"context_line":"                dest \u003d str(migrate_data.target_connect_addr)"},{"line_number":5880,"context_line":""},{"line_number":5881,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"},{"line_number":5882,"context_line":"                                      None)"}],"source_content_type":"text/x-python","patch_set":37,"id":"7a5de9d1_3bedebef","line":5879,"range":{"start_line":5879,"start_character":23,"end_line":5879,"end_character":60},"updated":"2016-02-02 11:34:55.000000000","message":"just want to ask why we need \u0027str()\u0027?","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"39c43b95b1ce6ec9e676a683bcae5f72d6319e7f","unresolved":false,"context_lines":[{"line_number":5876,"context_line":"                    migrate_data.graphics_listen_addr_spice)"},{"line_number":5877,"context_line":"            serial_listen_addr \u003d migrate_data.serial_listen_addr"},{"line_number":5878,"context_line":"            if migrate_data.target_connect_addr is not None:"},{"line_number":5879,"context_line":"                dest \u003d str(migrate_data.target_connect_addr)"},{"line_number":5880,"context_line":""},{"line_number":5881,"context_line":"            migratable_flag \u003d getattr(libvirt, \u0027VIR_DOMAIN_XML_MIGRATABLE\u0027,"},{"line_number":5882,"context_line":"                                      None)"}],"source_content_type":"text/x-python","patch_set":38,"id":"5a5ae5dd_d35cb7ef","line":5879,"range":{"start_line":5879,"start_character":23,"end_line":5879,"end_character":60},"updated":"2016-02-03 08:05:56.000000000","message":"sorry, I didn\u0027t see any reason we should use \u0027str()\u0027 at here.","commit_id":"b20374ae2c5232d578093bd98066e37535a06a57"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"904898ca891777a9165437fdeb57dd4ddc9ff908","unresolved":false,"context_lines":[{"line_number":161,"context_line":"               help\u003d\u0027Live migration target ip or hostname \u0027"},{"line_number":162,"context_line":"                    \u0027(if this option is set to be None,\u0027"},{"line_number":163,"context_line":"                    \u0027the hostname of the migration target\u0027"},{"line_number":164,"context_line":"                    \u0027compute node will be used)\u0027),"},{"line_number":165,"context_line":"    cfg.StrOpt(\u0027live_migration_uri\u0027,"},{"line_number":166,"context_line":"               default\u003d\"qemu+tcp://%s/system\","},{"line_number":167,"context_line":"               help\u003d\u0027Migration target URI \u0027"}],"source_content_type":"text/x-python","patch_set":39,"id":"5a5ae5dd_5d196878","line":164,"updated":"2016-02-04 12:00:31.000000000","message":"I think my primary concern here is naming. This option is an inbound option, the live_migration_uri is an outbound option. If you had host A \u0026 B you would configure:\n\nlive_migration_uri on A to tell you the protocol to talk to B\nbut live_migration_connect_addr on A is the dest to use to when B talks to you.\n\nIt actually kind of feels like live_migration_uri is in the wrong place, and should be an inbound option as well that A advertises. Then we\u0027d only need one option. pre_migration would feed that up from A.\n\nThat would kind of be a nice refactor and deprecation.","commit_id":"db6d8a53a8b736310a350c7cc6c0fc88d21b02d7"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"218ff6e9076214507eb6023f0ee7e5b64024d4fb","unresolved":false,"context_lines":[{"line_number":6593,"context_line":"        migrate_data.graphics_listen_addr_spice \u003d CONF.spice.server_listen"},{"line_number":6594,"context_line":"        migrate_data.serial_listen_addr \u003d \\"},{"line_number":6595,"context_line":"            CONF.serial_console.proxyclient_address"},{"line_number":6596,"context_line":"        # Store live_migration_connect_addr"},{"line_number":6597,"context_line":"        migrate_data.target_connect_addr \u003d \\"},{"line_number":6598,"context_line":"            CONF.libvirt.live_migration_inbound_addr"},{"line_number":6599,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"5a5ae5dd_881c6078","line":6596,"range":{"start_line":6596,"start_character":16,"end_line":6596,"end_character":43},"updated":"2016-02-04 21:34:40.000000000","message":"In case you reroll please change this comment to reflect new name","commit_id":"eb6fc65ce9ea609e1bfbc08ff0bbe8c88d00490e"}],"releasenotes/notes/bp-split-network-plane-for-live-migration-40bc127734173759.yaml":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1363596dbb46105fa358078b68be9c17c0b10991","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new option \"live_migration_transport_ip\" has been added"},{"line_number":5,"context_line":"    in the configuration file, set None as default value."},{"line_number":6,"context_line":"    When pre_live_migration() execute in destination host, set"},{"line_number":7,"context_line":"    the option into pre_migration_data, if it\u0027s not None."},{"line_number":8,"context_line":"    When driver.live_migration() execute in source host,"},{"line_number":9,"context_line":"    if this option is present in pre_migration_data, the ip"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"5a710552_740cac94","line":6,"range":{"start_line":6,"start_character":30,"end_line":6,"end_character":37},"updated":"2015-12-15 14:21:29.000000000","message":"same comment as in the commit message","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e1189e1e1886cb110d8d213fdb0e651c0d4b43d","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new option \"live_migration_transport_ip\" has been added"},{"line_number":5,"context_line":"    in the configuration file, set None as default value."},{"line_number":6,"context_line":"    When pre_live_migration() execute in destination host, set"},{"line_number":7,"context_line":"    the option into pre_migration_data, if it\u0027s not None."},{"line_number":8,"context_line":"    When driver.live_migration() execute in source host,"},{"line_number":9,"context_line":"    if this option is present in pre_migration_data, the ip"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"5a710552_ff9b74c7","line":6,"in_reply_to":"5a710552_740cac94","updated":"2015-12-16 01:45:33.000000000","message":"Done","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1363596dbb46105fa358078b68be9c17c0b10991","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    in the configuration file, set None as default value."},{"line_number":6,"context_line":"    When pre_live_migration() execute in destination host, set"},{"line_number":7,"context_line":"    the option into pre_migration_data, if it\u0027s not None."},{"line_number":8,"context_line":"    When driver.live_migration() execute in source host,"},{"line_number":9,"context_line":"    if this option is present in pre_migration_data, the ip"},{"line_number":10,"context_line":"    address is used instead of CONF.libvirt.live_migration_uri"},{"line_number":11,"context_line":"    as the uri for live migration, if it\u0027s None, then the"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"5a710552_f4209cf9","line":8,"range":{"start_line":8,"start_character":33,"end_line":8,"end_character":40},"updated":"2015-12-15 14:21:29.000000000","message":"ditto","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e1189e1e1886cb110d8d213fdb0e651c0d4b43d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    in the configuration file, set None as default value."},{"line_number":6,"context_line":"    When pre_live_migration() execute in destination host, set"},{"line_number":7,"context_line":"    the option into pre_migration_data, if it\u0027s not None."},{"line_number":8,"context_line":"    When driver.live_migration() execute in source host,"},{"line_number":9,"context_line":"    if this option is present in pre_migration_data, the ip"},{"line_number":10,"context_line":"    address is used instead of CONF.libvirt.live_migration_uri"},{"line_number":11,"context_line":"    as the uri for live migration, if it\u0027s None, then the"}],"source_content_type":"text/x-yaml","patch_set":10,"id":"5a710552_1f9f60b5","line":8,"in_reply_to":"5a710552_f4209cf9","updated":"2015-12-16 01:45:33.000000000","message":"Done","commit_id":"22c17bfb9910d23ff02e3ae5a2c3e399e2afd859"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4fe764d574e9b92febe46857ef75b2aefb46af1b","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    in the configuration file, set None as default value."},{"line_number":6,"context_line":"    When pre_live_migration() executes on destination host, set"},{"line_number":7,"context_line":"    the option into pre_migration_data, if it\u0027s not None."},{"line_number":8,"context_line":"    When driver.live_migration() executes on source host,"},{"line_number":9,"context_line":"    if this option is present in pre_migration_data, the ip"},{"line_number":10,"context_line":"    address is used instead of CONF.libvirt.live_migration_uri"},{"line_number":11,"context_line":"    as the uri for live migration, if it\u0027s None, then the"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"7a5de9d1_4da90a7b","line":8,"range":{"start_line":8,"start_character":9,"end_line":8,"end_character":32},"updated":"2016-02-02 11:34:55.000000000","message":"I think this expose too much detail about nova implementation for user.","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"4fa40c9e699f7ecefa16fb779310d48955078d85","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    in the configuration file, set None as default value."},{"line_number":6,"context_line":"    When pre_live_migration() executes on destination host, set"},{"line_number":7,"context_line":"    the option into pre_migration_data, if it\u0027s not None."},{"line_number":8,"context_line":"    When driver.live_migration() executes on source host,"},{"line_number":9,"context_line":"    if this option is present in pre_migration_data, the ip"},{"line_number":10,"context_line":"    address is used instead of CONF.libvirt.live_migration_uri"},{"line_number":11,"context_line":"    as the uri for live migration, if it\u0027s None, then the"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"7a5de9d1_e6ba5371","line":8,"range":{"start_line":8,"start_character":9,"end_line":8,"end_character":32},"in_reply_to":"7a5de9d1_4da90a7b","updated":"2016-02-02 12:35:34.000000000","message":"Agree with Alex, this notes should be wrote for admin/users, just tell what this option `live_migration_connect_add` done should be OK.","commit_id":"cc9d2615f0cda857d2c79a3ed52d49f1dc591702"}]}
