)]}'
{"specs/ocata/approved/neutron-interaction-refresh-ocata.rst":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":16,"context_line":"There are also several longstanding bugs that are proving hard to fix without"},{"line_number":17,"context_line":"deep thought around how Nova and Neutron interact."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"With the imminent deprecation of nova-network, we can look at how the"},{"line_number":20,"context_line":"Network API can move to be neutron centric, rather than nova-network centric."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This spec is laying out the path to take back control of the Nova and Neutron"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_4121f89e","line":19,"updated":"2016-08-16 03:09:34.000000000","message":"Didn\u0027t the deprecation happen? You meant (optimistically) removal? :)","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":16,"context_line":"There are also several longstanding bugs that are proving hard to fix without"},{"line_number":17,"context_line":"deep thought around how Nova and Neutron interact."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"With the imminent deprecation of nova-network, we can look at how the"},{"line_number":20,"context_line":"Network API can move to be neutron centric, rather than nova-network centric."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"This spec is laying out the path to take back control of the Nova and Neutron"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_6b3a809a","line":19,"in_reply_to":"3ac371cc_4121f89e","updated":"2016-08-18 09:40:47.000000000","message":"ah, yeah, not sure we did it yet. We haven\u0027t done it properly if we did.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  * Not saving state between validate_networks and allocate_for_instance"},{"line_number":40,"context_line":"  * Neutron doesn\u0027t return all the info we need (port\u0027s floating IPs)"},{"line_number":41,"context_line":"  * Regularly polling the list of neutron extensions, cache not great."},{"line_number":42,"context_line":"    Is the port binding extension actually optional?"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* somehow leaking ports (maybe in part due to timeouts during port create?)"},{"line_number":45,"context_line":"  need to make sure we never \"leak\" ports."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_e19e24b7","line":42,"updated":"2016-08-16 03:09:34.000000000","message":"I\u0027d say that at this point we cannot claim port binding to be optional.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  * Not saving state between validate_networks and allocate_for_instance"},{"line_number":40,"context_line":"  * Neutron doesn\u0027t return all the info we need (port\u0027s floating IPs)"},{"line_number":41,"context_line":"  * Regularly polling the list of neutron extensions, cache not great."},{"line_number":42,"context_line":"    Is the port binding extension actually optional?"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* somehow leaking ports (maybe in part due to timeouts during port create?)"},{"line_number":45,"context_line":"  need to make sure we never \"leak\" ports."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_ab5758c8","line":42,"in_reply_to":"3ac371cc_e19e24b7","updated":"2016-08-18 09:40:47.000000000","message":"yeah, that makes sense.\n\ndoing that would remove *lots* of crazy if statements.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"* need all the port information before calling the scheduler,"},{"line_number":48,"context_line":"  for routed/segmented network aware scheduling"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"TODO - what are we missing here..."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Use Cases"},{"line_number":53,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_215b1c30","line":50,"updated":"2016-08-16 03:09:34.000000000","message":"using elevated credentials throughout, which is far from being ideal.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":47,"context_line":"* need all the port information before calling the scheduler,"},{"line_number":48,"context_line":"  for routed/segmented network aware scheduling"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"TODO - what are we missing here..."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Use Cases"},{"line_number":53,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_2bc4083e","line":50,"in_reply_to":"3ac371cc_215b1c30","updated":"2016-08-18 09:40:47.000000000","message":"+100","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"* VM is eventually active on destination"},{"line_number":85,"context_line":"* (optionally) start post copy, where new VM is active, but old still present"},{"line_number":86,"context_line":"* finish any setup on the destination host"},{"line_number":87,"context_line":"* clean up resources on source host (finally delete VIFs)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"TODO: need to referece the live-migrate state machine work by Timofey Durakov"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_41273864","line":87,"updated":"2016-08-16 03:09:34.000000000","message":"Rollback in case of partial failures?","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":84,"context_line":"* VM is eventually active on destination"},{"line_number":85,"context_line":"* (optionally) start post copy, where new VM is active, but old still present"},{"line_number":86,"context_line":"* finish any setup on the destination host"},{"line_number":87,"context_line":"* clean up resources on source host (finally delete VIFs)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"TODO: need to referece the live-migrate state machine work by Timofey Durakov"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_cb6bb41c","line":87,"in_reply_to":"3ac371cc_41273864","updated":"2016-08-18 09:40:47.000000000","message":"We currently have a point of no return, basically once live-migrate completes, we don\u0027t rollback, we turn instance into error state and make the admin tidy it up.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Proposed change"},{"line_number":94,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Here are the following steps we should take:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Move all validation into validate_network"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_01c8a021","line":96,"updated":"2016-08-16 03:09:34.000000000","message":"I wonder if some of these steps become easier to tackle if we took a step back and reconsidered some of the aspects of API [1]. IMO most complexity arises from the interface complexity itself. \n\n[1] https://github.com/openstack/nova/tree/master/nova/network/api.py","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Proposed change"},{"line_number":94,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Here are the following steps we should take:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Move all validation into validate_network"},{"line_number":99,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_0bf78c59","line":96,"in_reply_to":"3ac371cc_01c8a021","updated":"2016-08-18 09:40:47.000000000","message":"So a lot of that complexity is due to the current API semantics.\n\nI think we actually need to think more carefully about network_info_cache and if we should actually do that thing any more.\n\nOr at least, we can be clear on what can change, what is likely to change and what is static.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Optimize the _get_instance_nw_info() for network_info_cache updates"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"  * Ideally the list_ports call should contain all the required data."},{"line_number":148,"context_line":"    Currently we are missing:"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    * currently we also fetch info on all associated networks, it seems only"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_41361853","line":147,"updated":"2016-08-16 03:09:34.000000000","message":"If there is most stuff we can pack into a response to minimize chattiness, I am all in favor; we just need a clear idea of how often these requests come in, potentially stuff can get stale more quickly.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"* Optimize the _get_instance_nw_info() for network_info_cache updates"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"  * Ideally the list_ports call should contain all the required data."},{"line_number":148,"context_line":"    Currently we are missing:"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    * currently we also fetch info on all associated networks, it seems only"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_2e5536c5","line":147,"in_reply_to":"3ac371cc_41361853","updated":"2016-08-18 09:40:47.000000000","message":"+1","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":155,"context_line":"      dns_nameservers and additional host_routes."},{"line_number":156,"context_line":"    * finding the dhcp_server is an extra list_port for each subnet,"},{"line_number":157,"context_line":"      on a per port basis"},{"line_number":158,"context_line":"    * We could use updated_at times to avoid re-fetching some data,"},{"line_number":159,"context_line":"      i.e. adding some caching, but ideally we just get this in a single"},{"line_number":160,"context_line":"      API call."},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_c14a08c5","line":158,"updated":"2016-08-16 03:09:34.000000000","message":"we don\u0027t have temporal filters in place for all resources yet, this is something we should prioritize going forward.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":155,"context_line":"      dns_nameservers and additional host_routes."},{"line_number":156,"context_line":"    * finding the dhcp_server is an extra list_port for each subnet,"},{"line_number":157,"context_line":"      on a per port basis"},{"line_number":158,"context_line":"    * We could use updated_at times to avoid re-fetching some data,"},{"line_number":159,"context_line":"      i.e. adding some caching, but ideally we just get this in a single"},{"line_number":160,"context_line":"      API call."},{"line_number":161,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_ae0e46e2","line":158,"in_reply_to":"3ac371cc_c14a08c5","updated":"2016-08-18 09:40:47.000000000","message":"This might be on an aggregate, which is a bit odd I guess.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":183,"context_line":"      when doing port create (on error the created ports will be deleted)"},{"line_number":184,"context_line":"    * Need a new Neutron API, so we don\u0027t need to update each port separately"},{"line_number":185,"context_line":"    * This should stop the race between mutliple boot requests trying to use"},{"line_number":186,"context_line":"      the same port_id"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  * List both public and private networks in a single API call"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_0161c039","line":186,"updated":"2016-08-16 03:09:34.000000000","message":"not sure I fully understand this: are you suggesting we have an API that sets the device ID of a list of preprovisioned ports, and you want this done atomically?","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":183,"context_line":"      when doing port create (on error the created ports will be deleted)"},{"line_number":184,"context_line":"    * Need a new Neutron API, so we don\u0027t need to update each port separately"},{"line_number":185,"context_line":"    * This should stop the race between mutliple boot requests trying to use"},{"line_number":186,"context_line":"      the same port_id"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"  * List both public and private networks in a single API call"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_6ebd6ed7","line":186,"in_reply_to":"3ac371cc_0161c039","updated":"2016-08-18 09:40:47.000000000","message":"I am not sure we need the list.\n\nI think we want a compare and swap style device ID update. Like make sure we go from empty-\u003eme rather than empty-\u003esomeoneelse-\u003eme as two people race each other.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4304fdb2eadc1a80e37c6d59806dced76ee0fed8","unresolved":false,"context_lines":[{"line_number":193,"context_line":"      API with an explicit list of network_uuids, that works fine)."},{"line_number":194,"context_line":"    * We should split _get_available_networks into its two use cases,"},{"line_number":195,"context_line":"      were possible, so we don\u0027t confusingly call the expensive method"},{"line_number":196,"context_line":"      twice, with slightly different arguments each time"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  * Single API call to show a list of port_uuids"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ad45d7e_8c9ea705","line":196,"updated":"2016-08-12 18:07:15.000000000","message":"So we need to check if we use an admin token, without list the net uuids, I suspect we don\u0027t\n\nTalking to kevinbenton, turns out there is a bug if you use an admin token, you only see global shared not RBAC shared nets.\n\nBut generally, we can just drop the shared\u003dFalse thing, and we will get all the networks we want to see in a single API call. Boom!","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":198,"context_line":"  * Single API call to show a list of port_uuids"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    * Rather than check each port_uuid passed in serially, it would be good"},{"line_number":201,"context_line":"      to check them all in a single API call"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"  * Complete TODO around listing specific security groups, or at least only"},{"line_number":204,"context_line":"    ask for the security group attributes we need to know about."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_21715ce1","line":201,"updated":"2016-08-16 03:09:34.000000000","message":"you mean show?","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":198,"context_line":"  * Single API call to show a list of port_uuids"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    * Rather than check each port_uuid passed in serially, it would be good"},{"line_number":201,"context_line":"      to check them all in a single API call"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"  * Complete TODO around listing specific security groups, or at least only"},{"line_number":204,"context_line":"    ask for the security group attributes we need to know about."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_2ec89673","line":201,"in_reply_to":"3ac371cc_21715ce1","updated":"2016-08-18 09:40:47.000000000","message":"yeah.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"  * Single API call to atomically create multiple ports?"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  * Bulk update atomic update to multiple ports at once?"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"  * Allow port binding and DNS updates with the same token"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_416e1802","line":208,"updated":"2016-08-16 03:09:34.000000000","message":"It\u0027s unlikely Neutron is gonna expose these last two. No more orchestration concessions: get-me-a-network was the last :P","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"  * Single API call to atomically create multiple ports?"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  * Bulk update atomic update to multiple ports at once?"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"  * Allow port binding and DNS updates with the same token"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_aeaac682","line":208,"in_reply_to":"3ac371cc_416e1802","updated":"2016-08-18 09:40:47.000000000","message":"Yeah, thats fair enough.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  * Bulk update atomic update to multiple ports at once?"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"  * Allow port binding and DNS updates with the same token"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"* Fixing the live-migration flow"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_817810c6","line":210,"updated":"2016-08-16 03:09:34.000000000","message":"I understand some of the limitations were due to Designate.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  * Bulk update atomic update to multiple ports at once?"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"  * Allow port binding and DNS updates with the same token"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"* Fixing the live-migration flow"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_2e76d63d","line":210,"in_reply_to":"3ac371cc_817810c6","updated":"2016-08-18 09:40:47.000000000","message":"So I think we can do this with the dual token.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2d436f90690841d725c3f1b1fc715f826f5bc161","unresolved":false,"context_lines":[{"line_number":223,"context_line":"    we can do what we want for migration (ish), but live-migrate has"},{"line_number":224,"context_line":"    restrictions I don\u0027t yet fully understand"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"TODO... any others?"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Alternatives"},{"line_number":229,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ad45d7e_77721caf","line":226,"updated":"2016-08-12 18:12:34.000000000","message":"Lets stop using the admin client, except for background refresh and port_binding stuff.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6800fe191b116e79f371e3363bb736f4441a1a7b","unresolved":false,"context_lines":[{"line_number":223,"context_line":"    we can do what we want for migration (ish), but live-migrate has"},{"line_number":224,"context_line":"    restrictions I don\u0027t yet fully understand"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"TODO... any others?"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"Alternatives"},{"line_number":229,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9ad45d7e_5781d84c","line":226,"in_reply_to":"9ad45d7e_77721caf","updated":"2016-08-12 18:14:05.000000000","message":"Hmm, that background refresh could use some kind of observer role.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":228,"context_line":"Alternatives"},{"line_number":229,"context_line":"------------"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"We have spoken about a \"fast path\" between Nova and the Neutron Agent that"},{"line_number":232,"context_line":"both run on the same host. Currently we have a call back"},{"line_number":233,"context_line":"What other ways could we do this thing? Why aren\u0027t we using those? This doesn\u0027t"},{"line_number":234,"context_line":"have to be a full literature review, but it should demonstrate that thought has"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_e13464fc","line":231,"updated":"2016-08-16 03:09:34.000000000","message":"What do you mean by this? We could discover whether a fast path is possible, but in general we can\u0027t assume there is an agent on the host as many Neutron backends do not have one.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"16bbfe9ab9951cae0743d234fe89c0d8efaa8a4e","unresolved":false,"context_lines":[{"line_number":274,"context_line":"Other deployer impact"},{"line_number":275,"context_line":"---------------------"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"To get the main benefits of this work, you will need to upgrade Neutron."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Developer impact"},{"line_number":280,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_4113b866","line":277,"updated":"2016-08-16 03:09:34.000000000","message":"as well as Nova, I guess.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"baa74e974de5794f10ca4584da0a1bb530306513","unresolved":false,"context_lines":[{"line_number":274,"context_line":"Other deployer impact"},{"line_number":275,"context_line":"---------------------"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"To get the main benefits of this work, you will need to upgrade Neutron."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"Developer impact"},{"line_number":280,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3ac371cc_e4b21d4b","line":277,"in_reply_to":"3ac371cc_4113b866","updated":"2016-08-18 09:40:47.000000000","message":"heh, true.","commit_id":"62e33f2ba1b5d21a5e298986c3cd47c1947c93b0"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4f86d3ecfaac445819e2c2cdffe2f8fbe886a445","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"There are several problems and bugs we are currently hitting:"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"* minimizing the downtime during live-migration operations"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* handling port quotas incorrectly (in validate_networks)"},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_6969d9f8","line":31,"range":{"start_line":31,"start_character":2,"end_line":31,"end_character":58},"updated":"2016-09-16 17:51:38.000000000","message":"IMHO this should be change to problem description instead of desire goal, given that you are listing problems and bugs,","commit_id":"51ad3b3472afe7c0080f004dadabb31af0485108"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"10d9683c915736312b938df365ef810c332862f6","unresolved":false,"context_lines":[{"line_number":48,"context_line":"* need all the port information before calling the scheduler,"},{"line_number":49,"context_line":"  for routed/segmented network aware scheduling"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"TODO - what are we missing here..."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Use Cases"},{"line_number":54,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa7ab95a_217eafe4","line":51,"updated":"2016-08-26 09:44:38.000000000","message":"Is it worth to add live migration issue here? In case of successful live migration nova rebinds port to destination host in post live migration step, but it might fail due to wrong configuration or an issue with software. At this point it is way too late to rollback live migration, so nova should know be able to do some kind of a check in pre live migration phase.","commit_id":"51ad3b3472afe7c0080f004dadabb31af0485108"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4f86d3ecfaac445819e2c2cdffe2f8fbe886a445","unresolved":false,"context_lines":[{"line_number":73,"context_line":"** wait for plug event callback from neutron"},{"line_number":74,"context_line":"** start instance, now networking is ready"},{"line_number":75,"context_line":"* (Live-)Migration / Rebuild / Evacuate"},{"line_number":76,"context_line":"** TOOD: additional binding on new host"},{"line_number":77,"context_line":"** plug VIFs on new host"},{"line_number":78,"context_line":"** ? wait for plug vif callback from neutron"},{"line_number":79,"context_line":"** (live-migration occurs)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_ac7e8f67","line":76,"range":{"start_line":76,"start_character":3,"end_line":76,"end_character":7},"updated":"2016-09-16 17:51:38.000000000","message":"s/TOOD/TODO","commit_id":"51ad3b3472afe7c0080f004dadabb31af0485108"},{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"4f86d3ecfaac445819e2c2cdffe2f8fbe886a445","unresolved":false,"context_lines":[{"line_number":122,"context_line":""},{"line_number":123,"context_line":"  * Right now we validate twice, some bits in validate_network"},{"line_number":124,"context_line":"    and some bits in allocate_for_instance"},{"line_number":125,"context_line":"  * This means we need to add NetworkRequestList a cache of the"},{"line_number":126,"context_line":"    data we get back for neutron, so allocate_for_instance knows"},{"line_number":127,"context_line":"    what it needs to do next. See Data Model Impact for details on that."},{"line_number":128,"context_line":"  * This should reduce the number of API calls we make to Neutron"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7a8ec9b2_2c50bfd3","line":125,"range":{"start_line":125,"start_character":51,"end_line":125,"end_character":56},"updated":"2016-09-16 17:51:38.000000000","message":"Are you planning to store the datetime of the last time when the network was validated it?","commit_id":"51ad3b3472afe7c0080f004dadabb31af0485108"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"10d9683c915736312b938df365ef810c332862f6","unresolved":false,"context_lines":[{"line_number":244,"context_line":"    rather than just doing adhoc migration_host target, we could track both"},{"line_number":245,"context_line":"    port bindings, but here were must tell neutron which one is active"},{"line_number":246,"context_line":"    (at least for some backends we have to), or rather when the destination"},{"line_number":247,"context_line":"    goes active. Post Copy complicates when that happens."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"* Live-migrate supporting moving between neutron backends"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa7ab95a_fc3630b3","line":247,"range":{"start_line":247,"start_character":17,"end_line":247,"end_character":56},"updated":"2016-08-26 09:44:38.000000000","message":"We do have full control over live migration switch to post-copy, why this complicates things? There isn\u0027t any automated mechanism that switches pre-copy live migration to post-copy phase outside of nova. In standard pre-copy live migration we don\u0027t know at which point qemu will switch workload to destination, this sounds harder as we need to poll qemu to get all the data.","commit_id":"51ad3b3472afe7c0080f004dadabb31af0485108"}]}
