)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17130,"name":"melissaml","email":"ma.lei@99cloud.net","username":"malei"},"change_message_id":"9255e607a898894cbb88b3ba25b413d73ff4ac87","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Andreas Scheuring \u003candreas.scheuring@de.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-11-08 09:10:56 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Devref to explain nova-neutron interactions during live-migration"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Closes-bug: #1531511"},{"line_number":10,"context_line":"Co-Authored-By: Andreas Scheuring \u003candreas.scheuring@de.ibm.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"9a629dbe_bf94c436","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":65},"updated":"2016-11-12 12:35:19.000000000","message":"The title is not longer than 50 characters. This line is too long.","commit_id":"b79f8ef8a80c0ac91b78643949a8349ca170c3ec"}],"doc/source/devref/live_migration.rst":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"93ddf151e1accdf5133ddc1e17322c95f20648f3","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The cloud admin can perform a live-migration of a VM with the following"},{"line_number":27,"context_line":"command : ::"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":" nova live-migration $UUID $COMPUTE-HOST"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"nova will then interact with neutron to migrate VM\u0027s ports."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_5e59fd8c","line":29,"range":{"start_line":29,"start_character":27,"end_line":29,"end_character":40},"updated":"2016-02-01 07:50:28.000000000","message":"optional, please put in []","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The cloud admin can perform a live-migration of a VM with the following"},{"line_number":27,"context_line":"command : ::"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":" nova live-migration $UUID $COMPUTE-HOST"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"nova will then interact with neutron to migrate VM\u0027s ports."},{"line_number":32,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_aca1cef9","line":29,"range":{"start_line":29,"start_character":27,"end_line":29,"end_character":40},"in_reply_to":"7a5de9d1_5e59fd8c","updated":"2016-02-01 16:44:30.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"93ddf151e1accdf5133ddc1e17322c95f20648f3","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":" nova live-migration $UUID $COMPUTE-HOST"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"nova will then interact with neutron to migrate VM\u0027s ports."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1 and "},{"line_number":34,"context_line":"neutron-l2-agent1 to host2 with nova-compute2 and neutron-l2-agent2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_fedf89d3","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":59},"updated":"2016-02-01 07:50:28.000000000","message":"It will be done at post migration step, you described it so no need to duplicate here as it might be confusing","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":" nova live-migration $UUID $COMPUTE-HOST"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"nova will then interact with neutron to migrate VM\u0027s ports."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1 and "},{"line_number":34,"context_line":"neutron-l2-agent1 to host2 with nova-compute2 and neutron-l2-agent2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_0cb34251","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":59},"in_reply_to":"7a5de9d1_fedf89d3","updated":"2016-02-01 16:44:30.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"593e623fc12c7cab6c87c13e5b7b072ee08e6027","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"nova will then interact with neutron to migrate VM\u0027s ports."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1 and "},{"line_number":34,"context_line":"neutron-l2-agent1 to host2 with nova-compute2 and neutron-l2-agent2."},{"line_number":35,"context_line":"Since the VM that is about to migrate is hosted by nova-compute1, nova sends"},{"line_number":36,"context_line":"the live-migration order to nova-compute1 throw RPC."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_23b8abc7","line":33,"updated":"2016-02-01 03:26:52.000000000","message":"Tailing white space L45, L60 also","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"nova will then interact with neutron to migrate VM\u0027s ports."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1 and "},{"line_number":34,"context_line":"neutron-l2-agent1 to host2 with nova-compute2 and neutron-l2-agent2."},{"line_number":35,"context_line":"Since the VM that is about to migrate is hosted by nova-compute1, nova sends"},{"line_number":36,"context_line":"the live-migration order to nova-compute1 throw RPC."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_ccbd2a03","line":33,"in_reply_to":"7a5de9d1_23b8abc7","updated":"2016-02-01 16:44:30.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"d9dc3feb446b17e59a079f6be004fb683d7209a4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1 and "},{"line_number":34,"context_line":"neutron-l2-agent1 to host2 with nova-compute2 and neutron-l2-agent2."},{"line_number":35,"context_line":"Since the VM that is about to migrate is hosted by nova-compute1, nova sends"},{"line_number":36,"context_line":"the live-migration order to nova-compute1 throw RPC."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Pre-live-migration actions"},{"line_number":39,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_39e7a512","line":36,"updated":"2016-01-29 18:41:26.000000000","message":"s/throw/through","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1 and "},{"line_number":34,"context_line":"neutron-l2-agent1 to host2 with nova-compute2 and neutron-l2-agent2."},{"line_number":35,"context_line":"Since the VM that is about to migrate is hosted by nova-compute1, nova sends"},{"line_number":36,"context_line":"the live-migration order to nova-compute1 throw RPC."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Pre-live-migration actions"},{"line_number":39,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_ac3d4e90","line":36,"in_reply_to":"7a5de9d1_39e7a512","updated":"2016-02-01 16:44:30.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":7016,"name":"Swaminathan Vasudevan","email":"swvasude@cisco.com","username":"souminathan"},"change_message_id":"43330b6664bfc479ad260627dbe340b8a4ae110f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"--------------------------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"nova-compute1 will first ask nova-compute2 to perform pre-live-migration"},{"line_number":42,"context_line":"actions with a synchrone RPC call."},{"line_number":43,"context_line":"nova-compute2 will use neutron REST API to retrieve the list of VM\u0027s ports."},{"line_number":44,"context_line":"Then, it calls its vif driver to create the VM\u0027s port (plug_vifs())."},{"line_number":45,"context_line":"Neutron-l2-agent2 will detect this new port and configure it accordingly. "}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_c439c1a5","line":42,"range":{"start_line":42,"start_character":14,"end_line":42,"end_character":23},"updated":"2016-01-29 20:22:57.000000000","message":"synchronous","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":39,"context_line":"--------------------------"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"nova-compute1 will first ask nova-compute2 to perform pre-live-migration"},{"line_number":42,"context_line":"actions with a synchrone RPC call."},{"line_number":43,"context_line":"nova-compute2 will use neutron REST API to retrieve the list of VM\u0027s ports."},{"line_number":44,"context_line":"Then, it calls its vif driver to create the VM\u0027s port (plug_vifs())."},{"line_number":45,"context_line":"Neutron-l2-agent2 will detect this new port and configure it accordingly. "}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_0c4fc237","line":42,"range":{"start_line":42,"start_character":14,"end_line":42,"end_character":23},"in_reply_to":"7a5de9d1_c439c1a5","updated":"2016-02-01 16:44:30.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"593e623fc12c7cab6c87c13e5b7b072ee08e6027","unresolved":false,"context_lines":[{"line_number":41,"context_line":"nova-compute1 will first ask nova-compute2 to perform pre-live-migration"},{"line_number":42,"context_line":"actions with a synchrone RPC call."},{"line_number":43,"context_line":"nova-compute2 will use neutron REST API to retrieve the list of VM\u0027s ports."},{"line_number":44,"context_line":"Then, it calls its vif driver to create the VM\u0027s port (plug_vifs())."},{"line_number":45,"context_line":"Neutron-l2-agent2 will detect this new port and configure it accordingly. "},{"line_number":46,"context_line":"However, port\u0027s status won\u0027t change, since this port is not bound to"},{"line_number":47,"context_line":"nova-compute2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_63f0e391","line":44,"updated":"2016-02-01 03:26:52.000000000","message":"L43 says it is a list of ports, however this paragraph describes in a singular manner.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":41,"context_line":"nova-compute1 will first ask nova-compute2 to perform pre-live-migration"},{"line_number":42,"context_line":"actions with a synchrone RPC call."},{"line_number":43,"context_line":"nova-compute2 will use neutron REST API to retrieve the list of VM\u0027s ports."},{"line_number":44,"context_line":"Then, it calls its vif driver to create the VM\u0027s port (plug_vifs())."},{"line_number":45,"context_line":"Neutron-l2-agent2 will detect this new port and configure it accordingly. "},{"line_number":46,"context_line":"However, port\u0027s status won\u0027t change, since this port is not bound to"},{"line_number":47,"context_line":"nova-compute2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_094334b3","line":44,"in_reply_to":"7a5de9d1_63f0e391","updated":"2016-02-01 16:44:30.000000000","message":"nova will ask for the list of ports. How, in this context, as described L33, this VM has only one port.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"eefe924b92d55a931e332eb0339f80f31c06a05b","unresolved":false,"context_lines":[{"line_number":47,"context_line":"nova-compute2."},{"line_number":48,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"},{"line_number":49,"context_line":"start the live-migration."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Live-migration"},{"line_number":52,"context_line":"--------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_a94a5524","line":50,"updated":"2016-01-30 05:04:54.000000000","message":"If pre-live-migration fails, nova rollbacks(i.e calls unplug_vifs and etc..). If pre-live-migration success, nova proceeds with live-migration. There is no rollback if failure happens in live-migration and post-live-migration stages.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":47,"context_line":"nova-compute2."},{"line_number":48,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"},{"line_number":49,"context_line":"start the live-migration."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Live-migration"},{"line_number":52,"context_line":"--------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_872f0b3e","line":50,"in_reply_to":"7a5de9d1_74ec34f3","updated":"2016-02-01 16:44:30.000000000","message":"good catch, I didn\u0027t notice that stage! This makes the live-migration even racier! I\u0027ll add a TODO for the moment, and take time to better describe this situation.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"997537217afc984e6a9001f54d15dbff156f1275","unresolved":false,"context_lines":[{"line_number":47,"context_line":"nova-compute2."},{"line_number":48,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"},{"line_number":49,"context_line":"start the live-migration."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Live-migration"},{"line_number":52,"context_line":"--------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_2105a3c1","line":50,"in_reply_to":"7a5de9d1_872f0b3e","updated":"2016-02-03 14:16:27.000000000","message":"After checking in the code and with wuhongning, it doesn\u0027t seem that the port gets temporarily bound to host2. But it looks like the bottom level segment used in this context is the one that correspond to host1. Probably a new bug?","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":47,"context_line":"nova-compute2."},{"line_number":48,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"},{"line_number":49,"context_line":"start the live-migration."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Live-migration"},{"line_number":52,"context_line":"--------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_49828cc9","line":50,"in_reply_to":"7a5de9d1_a94a5524","updated":"2016-02-01 16:44:30.000000000","message":"I\u0027ll add this info, thanks.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11644,"name":"wuhongning","email":"wuhongning@huawei.com","username":"henry"},"change_message_id":"b452dfc99b69f42fffe0679afe242038ec17be2e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"nova-compute2."},{"line_number":48,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"},{"line_number":49,"context_line":"start the live-migration."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Live-migration"},{"line_number":52,"context_line":"--------------"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_74ec34f3","line":50,"in_reply_to":"7a5de9d1_a94a5524","updated":"2016-01-30 07:00:17.000000000","message":"In get_device_detail, it may need some words to describe how this port is to be temporarily bind to host2, to get it\u0027s bottom level segment, in the hierarchical port binding use cases","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"593e623fc12c7cab6c87c13e5b7b072ee08e6027","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Once live-migration succeeded, nova-compute1 sends a RPC cast to nova-compute2"},{"line_number":58,"context_line":"to tell it to perform post-live-migration actions. nova-compute1 can also"},{"line_number":59,"context_line":"trigger its post-live-migration actions."},{"line_number":60,"context_line":" "},{"line_number":61,"context_line":"Failure"},{"line_number":62,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_631ea3bc","line":59,"updated":"2016-02-01 03:26:52.000000000","message":"I may understand this wrong. To me this sub-clause means that post-live-migration actions can be triggered either by RPC cast from nova-compute2 (case#1) or proactively by nova-compute1(case#2). \nI assume case#1 is normal, so in what circumstances  does case#2 happen?","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"93ddf151e1accdf5133ddc1e17322c95f20648f3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"~~~~~~~"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Once live-migration succeeded, nova-compute1 sends a RPC cast to nova-compute2"},{"line_number":58,"context_line":"to tell it to perform post-live-migration actions. nova-compute1 can also"},{"line_number":59,"context_line":"trigger its post-live-migration actions."},{"line_number":60,"context_line":" "},{"line_number":61,"context_line":"Failure"},{"line_number":62,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_3e88c1c4","line":59,"range":{"start_line":58,"start_character":65,"end_line":59,"end_character":7},"updated":"2016-02-01 07:50:28.000000000","message":"this needs to be clarified","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":55,"context_line":"~~~~~~~"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Once live-migration succeeded, nova-compute1 sends a RPC cast to nova-compute2"},{"line_number":58,"context_line":"to tell it to perform post-live-migration actions. nova-compute1 can also"},{"line_number":59,"context_line":"trigger its post-live-migration actions."},{"line_number":60,"context_line":" "},{"line_number":61,"context_line":"Failure"},{"line_number":62,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_ac2c6e99","line":59,"range":{"start_line":58,"start_character":65,"end_line":59,"end_character":7},"in_reply_to":"7a5de9d1_3e88c1c4","updated":"2016-02-01 16:44:30.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Once live-migration succeeded, nova-compute1 sends a RPC cast to nova-compute2"},{"line_number":58,"context_line":"to tell it to perform post-live-migration actions. nova-compute1 can also"},{"line_number":59,"context_line":"trigger its post-live-migration actions."},{"line_number":60,"context_line":" "},{"line_number":61,"context_line":"Failure"},{"line_number":62,"context_line":"~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_8c29728c","line":59,"in_reply_to":"7a5de9d1_631ea3bc","updated":"2016-02-01 16:44:30.000000000","message":"compute1 and compute2 both perform post-live-migration actions. I\u0027ll clarify. You\u0027ll also see this in future UML diagrams.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"593e623fc12c7cab6c87c13e5b7b072ee08e6027","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Post-live-migration actions"},{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_831b9fc9","line":69,"updated":"2016-02-01 03:26:52.000000000","message":"port or ports?","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Post-live-migration actions"},{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_2c395ed7","line":69,"in_reply_to":"7a5de9d1_831b9fc9","updated":"2016-02-01 16:44:30.000000000","message":"only one port in this context.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"593e623fc12c7cab6c87c13e5b7b072ee08e6027","unresolved":false,"context_lines":[{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_e38053c1","line":70,"updated":"2016-02-01 03:26:52.000000000","message":"s/inform/informs","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"d9dc3feb446b17e59a079f6be004fb683d7209a4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_f99a6d6d","line":70,"updated":"2016-01-29 18:41:26.000000000","message":"typo detects","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_42082128","line":70,"in_reply_to":"7a5de9d1_94221051","updated":"2016-02-01 16:44:30.000000000","message":"yes, but let\u0027s talk about what\u0027s in tree for the moment.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11644,"name":"wuhongning","email":"wuhongning@huawei.com","username":"henry"},"change_message_id":"b452dfc99b69f42fffe0679afe242038ec17be2e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_94221051","line":70,"in_reply_to":"7a5de9d1_c980f1c1","updated":"2016-01-30 07:00:17.000000000","message":"maybe no need to informing the neutron server on compute1 any more, if the l2pop patch 269212 is merged?","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_87bf0b60","line":70,"in_reply_to":"7a5de9d1_f99a6d6d","updated":"2016-02-01 16:44:30.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"dadad8a896ba9500eaece22532fb9e6201722dd9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_c980f1c1","line":70,"in_reply_to":"7a5de9d1_f99a6d6d","updated":"2016-01-30 05:45:54.000000000","message":"it is better to describe how neutron-server do when it receive this RPC message","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":7776,"name":"Paul Carver","email":"pcarver@att.com","username":"pcarver"},"change_message_id":"c6bd06843f63ba4d495a439b9d94dc9f29251399","unresolved":false,"context_lines":[{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."},{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_8b6db1ce","line":72,"range":{"start_line":72,"start_character":59,"end_line":72,"end_character":64},"updated":"2016-02-03 00:14:37.000000000","message":"I think bound -\u003e bind","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"dadad8a896ba9500eaece22532fb9e6201722dd9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."},{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_a96c9535","line":72,"range":{"start_line":72,"start_character":21,"end_line":72,"end_character":24},"updated":"2016-01-30 05:45:54.000000000","message":"s/binding:/binding:host","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"997537217afc984e6a9001f54d15dbff156f1275","unresolved":false,"context_lines":[{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."},{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_015c2724","line":72,"range":{"start_line":72,"start_character":59,"end_line":72,"end_character":64},"in_reply_to":"5a5ae5dd_8b6db1ce","updated":"2016-02-03 14:16:27.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":69,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":70,"context_line":"Neutron-l2-agent1 detetcts the removal and inform the neutron server."},{"line_number":71,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":72,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bound the port to"},{"line_number":73,"context_line":"host2."},{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_a2531516","line":72,"range":{"start_line":72,"start_character":21,"end_line":72,"end_character":24},"in_reply_to":"7a5de9d1_a96c9535","updated":"2016-02-01 16:44:30.000000000","message":"I meant the port binding in general. The I specify that the host how will be changed.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"eefe924b92d55a931e332eb0339f80f31c06a05b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."},{"line_number":76,"context_line":"If it first processes the REST call \"update_port(binding\u003dhost2)\", the port\u0027s status"},{"line_number":77,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_e9112d05","line":77,"updated":"2016-01-30 05:04:54.000000000","message":"\"move to BUILD and then to ACTIVE\" is incorrect.\nthe port status will change to DOWN in that RPC call and portbinindings are cleared and then bound to agent2. If RPC from agent1 for setting status to DOWN comes next, this RPC (from agent1) is ignored as port is not bound to agent1 anymore.Next RPC calls from agent2 will set the port status to DOWN and then ACTIVE.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11644,"name":"wuhongning","email":"wuhongning@huawei.com","username":"henry"},"change_message_id":"c2ad0cc3f0512e586e3fe1e88c665d65dff8d2bd","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."},{"line_number":76,"context_line":"If it first processes the REST call \"update_port(binding\u003dhost2)\", the port\u0027s status"},{"line_number":77,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_cde98880","line":77,"in_reply_to":"7a5de9d1_0280e9f3","updated":"2016-02-02 06:45:58.000000000","message":"It\u0027s right. Migration doesn\u0027t need update_device_down any more, only port update from admin_state_down needs.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"997537217afc984e6a9001f54d15dbff156f1275","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."},{"line_number":76,"context_line":"If it first processes the REST call \"update_port(binding\u003dhost2)\", the port\u0027s status"},{"line_number":77,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_8117b7ec","line":77,"in_reply_to":"7a5de9d1_cde98880","updated":"2016-02-03 14:16:27.000000000","message":"ok, I\u0027ll update the spec once 215467 is merged.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":11644,"name":"wuhongning","email":"wuhongning@huawei.com","username":"henry"},"change_message_id":"b452dfc99b69f42fffe0679afe242038ec17be2e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."},{"line_number":76,"context_line":"If it first processes the REST call \"update_port(binding\u003dhost2)\", the port\u0027s status"},{"line_number":77,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_f4dfc437","line":77,"in_reply_to":"7a5de9d1_e9112d05","updated":"2016-01-30 07:00:17.000000000","message":"+1. \n\nAnd I suggestion that rpc is removed from agent1 to notify the \"DOWN\" of this port, it\u0027s useless.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"dadad8a896ba9500eaece22532fb9e6201722dd9","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."},{"line_number":76,"context_line":"If it first processes the REST call \"update_port(binding\u003dhost2)\", the port\u0027s status"},{"line_number":77,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_2967454e","line":77,"in_reply_to":"7a5de9d1_e9112d05","updated":"2016-01-30 05:45:54.000000000","message":"agree with venkata anil","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"3c66d0461532134279ab4f9d9e05f5bd7c77e703","unresolved":false,"context_lines":[{"line_number":74,"context_line":"The status of the port will change depending on which call the neutron server"},{"line_number":75,"context_line":"will process first."},{"line_number":76,"context_line":"If it first processes the REST call \"update_port(binding\u003dhost2)\", the port\u0027s status"},{"line_number":77,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_0280e9f3","line":77,"in_reply_to":"7a5de9d1_f4dfc437","updated":"2016-02-01 16:44:30.000000000","message":"You\u0027ll be right once 215467 gets merged, am I wrong?","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":10267,"name":"venkata anil","email":"anilvenkata@redhat.com","username":"anil"},"change_message_id":"eefe924b92d55a931e332eb0339f80f31c06a05b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"},{"line_number":81,"context_line":"the change of the port\u0027s status from DOWN to BUILD and then to ACTIVE."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"TODO : UML DIAGRAMS"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a5de9d1_c9da314b","line":81,"updated":"2016-01-30 05:04:54.000000000","message":"changing status from DOWN to BUILD and then ACTIVE happens through RPC calls from agent2 here.","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"997537217afc984e6a9001f54d15dbff156f1275","unresolved":false,"context_lines":[{"line_number":78,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":79,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":80,"context_line":"moves to DOWN. Then the REST call will update the binding, which will trigger"},{"line_number":81,"context_line":"the change of the port\u0027s status from DOWN to BUILD and then to ACTIVE."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"TODO : UML DIAGRAMS"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_01b0a7f3","line":81,"in_reply_to":"7a5de9d1_c9da314b","updated":"2016-02-03 14:16:27.000000000","message":"Done","commit_id":"4825008e18158b9929193664871fb993c1fcdcf0"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"4cce18c761ea2ae2f6c6f6fe260c73ceef06dc82","unresolved":false,"context_lines":[{"line_number":40,"context_line":"actions with a synchronous RPC call."},{"line_number":41,"context_line":"Nova-compute2 will use neutron REST API to retrieve the list of VM\u0027s ports."},{"line_number":42,"context_line":"Then, it calls its vif driver to create the VM\u0027s port (plug_vifs())."},{"line_number":43,"context_line":"Neutron-l2-agent2 will detect this new port and configure it accordingly."},{"line_number":44,"context_line":"However, port\u0027s status won\u0027t change, since this port is not bound to"},{"line_number":45,"context_line":"nova-compute2."},{"line_number":46,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_59098edc","line":43,"updated":"2016-02-04 05:09:04.000000000","message":"does anyone wait for the completion of this step?","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"49c152fee8465458c6194ec515c94cc5038fd943","unresolved":false,"context_lines":[{"line_number":40,"context_line":"actions with a synchronous RPC call."},{"line_number":41,"context_line":"Nova-compute2 will use neutron REST API to retrieve the list of VM\u0027s ports."},{"line_number":42,"context_line":"Then, it calls its vif driver to create the VM\u0027s port (plug_vifs())."},{"line_number":43,"context_line":"Neutron-l2-agent2 will detect this new port and configure it accordingly."},{"line_number":44,"context_line":"However, port\u0027s status won\u0027t change, since this port is not bound to"},{"line_number":45,"context_line":"nova-compute2."},{"line_number":46,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_c19c9c5f","line":43,"in_reply_to":"5a5ae5dd_59098edc","updated":"2016-02-04 09:36:26.000000000","message":"I didn\u0027t see nova waiting for any completion of this step to boot the VM. I\u0027ll check again and add a comment to the devref.","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":6788,"name":"Rossella Sblendido","email":"rsblendido@suse.com","username":"rossella-o"},"change_message_id":"955ff90bc12e6e6950e376eb5bdbb8694af94483","unresolved":false,"context_lines":[{"line_number":40,"context_line":"actions with a synchronous RPC call."},{"line_number":41,"context_line":"Nova-compute2 will use neutron REST API to retrieve the list of VM\u0027s ports."},{"line_number":42,"context_line":"Then, it calls its vif driver to create the VM\u0027s port (plug_vifs())."},{"line_number":43,"context_line":"Neutron-l2-agent2 will detect this new port and configure it accordingly."},{"line_number":44,"context_line":"However, port\u0027s status won\u0027t change, since this port is not bound to"},{"line_number":45,"context_line":"nova-compute2."},{"line_number":46,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_f319577a","line":43,"in_reply_to":"5a5ae5dd_c19c9c5f","updated":"2016-02-04 16:31:15.000000000","message":"not yet but there\u0027s a patch for it https://review.openstack.org/#/c/246910/","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"5d3fe0d4a420a93766a291d6f49177275b478329","unresolved":false,"context_lines":[{"line_number":45,"context_line":"nova-compute2."},{"line_number":46,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"},{"line_number":47,"context_line":"start the live-migration."},{"line_number":48,"context_line":"If pre-live-migration fails, nova rollbacks and port are removed from host2."},{"line_number":49,"context_line":"If pre-live-migration succeeds, nova proceeds with live-migration."},{"line_number":50,"context_line":"There is no rollback if failure happens in live-migration and"},{"line_number":51,"context_line":"post-live-migration stages."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_b3f46887","line":48,"updated":"2016-02-04 01:41:09.000000000","message":"nit: the port s/are/is","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"49c152fee8465458c6194ec515c94cc5038fd943","unresolved":false,"context_lines":[{"line_number":45,"context_line":"nova-compute2."},{"line_number":46,"context_line":"Once nova-compute2 has performed pre-live-migration actions, nova-compute1 can"},{"line_number":47,"context_line":"start the live-migration."},{"line_number":48,"context_line":"If pre-live-migration fails, nova rollbacks and port are removed from host2."},{"line_number":49,"context_line":"If pre-live-migration succeeds, nova proceeds with live-migration."},{"line_number":50,"context_line":"There is no rollback if failure happens in live-migration and"},{"line_number":51,"context_line":"post-live-migration stages."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_fe2ff73b","line":48,"in_reply_to":"5a5ae5dd_b3f46887","updated":"2016-02-04 09:36:26.000000000","message":"Done","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"5d3fe0d4a420a93766a291d6f49177275b478329","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Success"},{"line_number":57,"context_line":"~~~~~~~"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Once live-migration succeeded, both nova-compute1 and nova-compute2 "},{"line_number":60,"context_line":"perform post-live-migration actions. Nova-compute1 which is aware of"},{"line_number":61,"context_line":"the success will send a RPC cast to nova-compute2 to tell it to perform"},{"line_number":62,"context_line":"post-live-migration actions. It will then run its post-live-migration actions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_b33b0838","line":59,"updated":"2016-02-04 01:41:09.000000000","message":"nit: tailing white space","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"49c152fee8465458c6194ec515c94cc5038fd943","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Success"},{"line_number":57,"context_line":"~~~~~~~"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Once live-migration succeeded, both nova-compute1 and nova-compute2 "},{"line_number":60,"context_line":"perform post-live-migration actions. Nova-compute1 which is aware of"},{"line_number":61,"context_line":"the success will send a RPC cast to nova-compute2 to tell it to perform"},{"line_number":62,"context_line":"post-live-migration actions. It will then run its post-live-migration actions."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_de2c7b4c","line":59,"in_reply_to":"5a5ae5dd_b33b0838","updated":"2016-02-04 09:36:26.000000000","message":"Done","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"5d3fe0d4a420a93766a291d6f49177275b478329","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Post-live-migration actions"},{"line_number":70,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":73,"context_line":"Neutron-l2-agent1 detects the removal and informs the neutron server."},{"line_number":74,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":75,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bind the port to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_13ef7c88","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":2},"updated":"2016-02-04 01:41:09.000000000","message":"it would be better to name the REST calls from the two hosts. And it would be clearer to use the name in below description.\nI know the name of the call from host2 is update_port(binding\u003dhost2) from below description, what is the name of the call from host1?","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"49c152fee8465458c6194ec515c94cc5038fd943","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Post-live-migration actions"},{"line_number":70,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"On host1, nova-compute1 calls its vif driver to unplug the VM\u0027s port."},{"line_number":73,"context_line":"Neutron-l2-agent1 detects the removal and informs the neutron server."},{"line_number":74,"context_line":"On host2, nova-compute2 sends a REST call to the neutron server"},{"line_number":75,"context_line":"to tell it to update the port\u0027s binding : neutron needs to bind the port to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_7e9f8750","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":2},"in_reply_to":"5a5ae5dd_13ef7c88","updated":"2016-02-04 09:36:26.000000000","message":"nova-compute1 does not call neutron here, it does an internal call \"vif_driver.unplug()\". It\u0027s not an REST call to neutron. This will be much more clearer with UML diagram","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"5d3fe0d4a420a93766a291d6f49177275b478329","unresolved":false,"context_lines":[{"line_number":80,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":81,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":82,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":83,"context_line":"moves to DOWN. Then the REST call will update the port\u0027s binding, to bind it to"},{"line_number":84,"context_line":"host2. This update_port REST call always triggers a port-update RPC fanout message to "},{"line_number":85,"context_line":"every neutron-l2-agent. Since neutron-l2-agent2 is now hosting the port,"},{"line_number":86,"context_line":"it will take this message into account and resync the port by asking"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_73735016","line":83,"range":{"start_line":83,"start_character":23,"end_line":83,"end_character":24},"updated":"2016-02-04 01:41:09.000000000","message":"I assume the REST call here is  \"update_port(binding\u003dhost2)\", please add the name to be clear.","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"49c152fee8465458c6194ec515c94cc5038fd943","unresolved":false,"context_lines":[{"line_number":80,"context_line":"will move to BUILD and then to ACTIVE. Subsequents call from neutron-l2-agent1"},{"line_number":81,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":82,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":83,"context_line":"moves to DOWN. Then the REST call will update the port\u0027s binding, to bind it to"},{"line_number":84,"context_line":"host2. This update_port REST call always triggers a port-update RPC fanout message to "},{"line_number":85,"context_line":"every neutron-l2-agent. Since neutron-l2-agent2 is now hosting the port,"},{"line_number":86,"context_line":"it will take this message into account and resync the port by asking"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_9efe036a","line":83,"range":{"start_line":83,"start_character":23,"end_line":83,"end_character":24},"in_reply_to":"5a5ae5dd_73735016","updated":"2016-02-04 09:36:26.000000000","message":"Done","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"5d3fe0d4a420a93766a291d6f49177275b478329","unresolved":false,"context_lines":[{"line_number":81,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":82,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":83,"context_line":"moves to DOWN. Then the REST call will update the port\u0027s binding, to bind it to"},{"line_number":84,"context_line":"host2. This update_port REST call always triggers a port-update RPC fanout message to "},{"line_number":85,"context_line":"every neutron-l2-agent. Since neutron-l2-agent2 is now hosting the port,"},{"line_number":86,"context_line":"it will take this message into account and resync the port by asking"},{"line_number":87,"context_line":"the neutron server details about it through RPC messages. This will move"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_f30f4086","line":84,"updated":"2016-02-04 01:41:09.000000000","message":"nit: tailing white space","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":2888,"name":"Mathieu Rohon","email":"mathieu.rohon@gmail.com","username":"mathieu-rohon"},"change_message_id":"49c152fee8465458c6194ec515c94cc5038fd943","unresolved":false,"context_lines":[{"line_number":81,"context_line":"won\u0027t modify the port\u0027s status, since the port is not bound to host1 anymore."},{"line_number":82,"context_line":"If it first processes the RPC call from neutron-l2-agent1, the port\u0027s status"},{"line_number":83,"context_line":"moves to DOWN. Then the REST call will update the port\u0027s binding, to bind it to"},{"line_number":84,"context_line":"host2. This update_port REST call always triggers a port-update RPC fanout message to "},{"line_number":85,"context_line":"every neutron-l2-agent. Since neutron-l2-agent2 is now hosting the port,"},{"line_number":86,"context_line":"it will take this message into account and resync the port by asking"},{"line_number":87,"context_line":"the neutron server details about it through RPC messages. This will move"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a5ae5dd_fe07f77e","line":84,"in_reply_to":"5a5ae5dd_f30f4086","updated":"2016-02-04 09:36:26.000000000","message":"Done","commit_id":"c8343d3b0feb837500c3c35a38063e09d98f22fb"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"6f44cff5a694f59a0ceef6d4466b89f148e06c5a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The cloud admin can perform a live-migration of a VM with the following"},{"line_number":27,"context_line":"command : ::"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":" nova live-migration $UUID [$COMPUTE-HOST]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1,"},{"line_number":32,"context_line":"neutron-l2-agent1 and neutron-l3-agent1 to host2 with nova-compute2 and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa6399be_73f582eb","line":29,"range":{"start_line":29,"start_character":22,"end_line":29,"end_character":26},"updated":"2016-10-20 07:34:16.000000000","message":"this can also be the instance name","commit_id":"e0311d5f2ec59da68498205a1ce640cc32b0f7d3"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"44c81a37eaca4aaaee3c20cc8e8e296b45c5552b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The cloud admin can perform a live-migration of a VM with the following"},{"line_number":27,"context_line":"command : ::"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":" nova live-migration $UUID [$COMPUTE-HOST]"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Let\u0027s consider a VM with one port migrating from host1 with nova-compute1,"},{"line_number":32,"context_line":"neutron-l2-agent1 and neutron-l3-agent1 to host2 with nova-compute2 and"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa6399be_7b0c70ec","line":29,"range":{"start_line":29,"start_character":22,"end_line":29,"end_character":26},"in_reply_to":"fa6399be_73f582eb","updated":"2016-10-20 12:49:48.000000000","message":"True! On the next respin I will rephrase it and say \"this is one of the ways\" - cause there might be more...I should also switch to os client I guess. Thanks!","commit_id":"e0311d5f2ec59da68498205a1ce640cc32b0f7d3"}]}
