)]}'
{"specs/newton/approved/specify-multiple-live-migrate-hosts.rst":[{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"bc1c2adaedf17598eb11a10835756383f9494727","unresolved":false,"context_lines":[{"line_number":51,"context_line":"the exceptions that currently raise a BadRequest. If there are most hostnames"},{"line_number":52,"context_line":"to try, it will retry with the next hostname in the list, until either the call"},{"line_number":53,"context_line":"does not raise an error, or the list of hostnames is exhausted. In the latter"},{"line_number":54,"context_line":"situation, a BadRequest exception will be raised."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Novaclient may also have to be modified to accept multiple arguments for the"},{"line_number":57,"context_line":"host, and turn that into a comma-separated list that is passed to the Nova API."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_3665541d","line":54,"updated":"2016-02-06 02:56:12.000000000","message":"how will the user know which host succeeded?","commit_id":"aa66f774755ad30a24a87cf8e407937cf3b8bfe0"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"0eda39191fdfde8d675274d8e23d72d9c12727fd","unresolved":false,"context_lines":[{"line_number":51,"context_line":"the exceptions that currently raise a BadRequest. If there are most hostnames"},{"line_number":52,"context_line":"to try, it will retry with the next hostname in the list, until either the call"},{"line_number":53,"context_line":"does not raise an error, or the list of hostnames is exhausted. In the latter"},{"line_number":54,"context_line":"situation, a BadRequest exception will be raised."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Novaclient may also have to be modified to accept multiple arguments for the"},{"line_number":57,"context_line":"host, and turn that into a comma-separated list that is passed to the Nova API."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_a0dea3da","line":54,"in_reply_to":"5a5ae5dd_3665541d","updated":"2016-02-08 17:41:07.000000000","message":"They won\u0027t, at least from this call. The point is that *any* of the hosts passed in are acceptable. If the caller needs to know which host the instance was live migrated to, there are existing ways to query that.","commit_id":"aa66f774755ad30a24a87cf8e407937cf3b8bfe0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"c7d7bcf6143207b66fd1dc94c785aa544aa14f06","unresolved":false,"context_lines":[{"line_number":51,"context_line":"the exceptions that currently raise a BadRequest. If there are most hostnames"},{"line_number":52,"context_line":"to try, it will retry with the next hostname in the list, until either the call"},{"line_number":53,"context_line":"does not raise an error, or the list of hostnames is exhausted. In the latter"},{"line_number":54,"context_line":"situation, a BadRequest exception will be raised."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Novaclient may also have to be modified to accept multiple arguments for the"},{"line_number":57,"context_line":"host, and turn that into a comma-separated list that is passed to the Nova API."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_07357a45","line":54,"in_reply_to":"5a5ae5dd_a0dea3da","updated":"2016-02-14 02:02:23.000000000","message":"So could you add this in?","commit_id":"aa66f774755ad30a24a87cf8e407937cf3b8bfe0"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8f507823bf2ad4252738bb171b601944d56dcd1a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"the exceptions that currently raise a BadRequest. If there are most hostnames"},{"line_number":52,"context_line":"to try, it will retry with the next hostname in the list, until either the call"},{"line_number":53,"context_line":"does not raise an error, or the list of hostnames is exhausted. In the latter"},{"line_number":54,"context_line":"situation, a BadRequest exception will be raised."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Novaclient may also have to be modified to accept multiple arguments for the"},{"line_number":57,"context_line":"host, and turn that into a comma-separated list that is passed to the Nova API."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_26ac9233","line":54,"in_reply_to":"dae33548_07357a45","updated":"2016-02-16 19:30:42.000000000","message":"That would make this an incompatible change. If the caller needs to know which host failed, they can always query the migration to find out that information.","commit_id":"aa66f774755ad30a24a87cf8e407937cf3b8bfe0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"fec7fc65cc2976dfe3c3376f48ad0971c37b246c","unresolved":false,"context_lines":[{"line_number":51,"context_line":"the exceptions that currently raise a BadRequest. If there are most hostnames"},{"line_number":52,"context_line":"to try, it will retry with the next hostname in the list, until either the call"},{"line_number":53,"context_line":"does not raise an error, or the list of hostnames is exhausted. In the latter"},{"line_number":54,"context_line":"situation, a BadRequest exception will be raised."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Novaclient may also have to be modified to accept multiple arguments for the"},{"line_number":57,"context_line":"host, and turn that into a comma-separated list that is passed to the Nova API."}],"source_content_type":"text/x-rst","patch_set":1,"id":"dae33548_717da96d","line":54,"in_reply_to":"dae33548_26ac9233","updated":"2016-02-17 00:57:53.000000000","message":"You got me wrong. I meant could you add the description on the method of how to get the host that the VM migrated to in to the spec. Not asking you to add that functionality.","commit_id":"aa66f774755ad30a24a87cf8e407937cf3b8bfe0"},{"author":{"_account_id":11347,"name":"Rui Zang","email":"rui.zang@yandex.com","username":"rzang"},"change_message_id":"bc1c2adaedf17598eb11a10835756383f9494727","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    b) allow the host parameter to be specified multiple times; e.g.:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        --host aa --host bb --host cc"},{"line_number":124,"context_line":" "},{"line_number":125,"context_line":"In either case, the hosts will be sent to the Nova API as a comma-separated"},{"line_number":126,"context_line":"list."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_b67944ca","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":1},"updated":"2016-02-06 02:56:12.000000000","message":"I believe this is why jenkins failed","commit_id":"aa66f774755ad30a24a87cf8e407937cf3b8bfe0"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"0eda39191fdfde8d675274d8e23d72d9c12727fd","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    b) allow the host parameter to be specified multiple times; e.g.:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        --host aa --host bb --host cc"},{"line_number":124,"context_line":" "},{"line_number":125,"context_line":"In either case, the hosts will be sent to the Nova API as a comma-separated"},{"line_number":126,"context_line":"list."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a5ae5dd_60e42bab","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":1},"in_reply_to":"5a5ae5dd_b67944ca","updated":"2016-02-08 17:41:07.000000000","message":"Done","commit_id":"aa66f774755ad30a24a87cf8e407937cf3b8bfe0"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"01d33ebc89bd1b055c340545a4ef5db28a95dde7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/specify-multiple-live-migrate-hosts"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Live migration requests to a specific host can now fail because the host will"},{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts, with Nova trying each one, in order, until one"},{"line_number":17,"context_line":"succeeds."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_e93574da","line":14,"updated":"2016-05-16 15:31:47.000000000","message":"I think there will be three cases:\n1. Scheduler decides which host\n2. Target host is specified but validated by scheduler\n3. Target host is specified (force)","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"1b19c8c595438fbe8abca8d8926a262a0ed6388e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/specify-multiple-live-migrate-hosts"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Live migration requests to a specific host can now fail because the host will"},{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts, with Nova trying each one, in order, until one"},{"line_number":17,"context_line":"succeeds."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_f40162b0","line":14,"in_reply_to":"1a122d0e_e93574da","updated":"2016-05-20 19:39:35.000000000","message":"Right. The only one that is a concern is #2. We will not be forcing a host, as that\u0027s an operator decision. The idea is to respect the scheduler\u0027s say in the matter.","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"01d33ebc89bd1b055c340545a4ef5db28a95dde7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts, with Nova trying each one, in order, until one"},{"line_number":17,"context_line":"succeeds."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_8d35ebdb","line":17,"updated":"2016-05-16 15:31:47.000000000","message":"Is this really the problem? I would have thought the scheduler would chose from the set, not go through them in order?","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"1b19c8c595438fbe8abca8d8926a262a0ed6388e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts, with Nova trying each one, in order, until one"},{"line_number":17,"context_line":"succeeds."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_34a3eab3","line":17,"in_reply_to":"1a122d0e_8d35ebdb","updated":"2016-05-20 19:39:35.000000000","message":"This was based on discussions on IRC, where this design was suggested by alaski. I think your idea of having the scheduler choose from a set of hosts would also work well.","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"01d33ebc89bd1b055c340545a4ef5db28a95dde7","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As a deployer trying to optimize resource usage in my cloud, I sometimes need"},{"line_number":33,"context_line":"to live migrate instances to different hosts. As there may be several"},{"line_number":34,"context_line":"acceptable hosts, I would like to pass that list of hosts to Nova instead of"},{"line_number":35,"context_line":"manually passing them one at a time until one succeeds."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As an automated tool that is trying to optimize resource usage in a cloud, I"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_8dbfabfa","line":34,"updated":"2016-05-16 15:31:47.000000000","message":"If there are several acceptable hosts the scheduler should chose which to use?","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"1b19c8c595438fbe8abca8d8926a262a0ed6388e","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"As a deployer trying to optimize resource usage in my cloud, I sometimes need"},{"line_number":33,"context_line":"to live migrate instances to different hosts. As there may be several"},{"line_number":34,"context_line":"acceptable hosts, I would like to pass that list of hosts to Nova instead of"},{"line_number":35,"context_line":"manually passing them one at a time until one succeeds."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As an automated tool that is trying to optimize resource usage in a cloud, I"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_94d0d6f7","line":34,"in_reply_to":"1a122d0e_8dbfabfa","updated":"2016-05-20 19:39:35.000000000","message":"As above, that would be fine, too.","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"01d33ebc89bd1b055c340545a4ef5db28a95dde7","unresolved":false,"context_lines":[{"line_number":34,"context_line":"acceptable hosts, I would like to pass that list of hosts to Nova instead of"},{"line_number":35,"context_line":"manually passing them one at a time until one succeeds."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As an automated tool that is trying to optimize resource usage in a cloud, I"},{"line_number":38,"context_line":"would like to let Nova know of all the acceptable hosts for live migrating an"},{"line_number":39,"context_line":"instance, rather than having to implement the retry loop around this call and"},{"line_number":40,"context_line":"potentially making multiple round-trip API calls."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_6dffafaa","line":37,"updated":"2016-05-16 15:31:47.000000000","message":"Isn\u0027t this is the same use case as above really.\n\nReading the introduction above it seems the order is important to you. I guess your trying to get some intersection between what the nova scheduler thinks and what an external optimizer (second external scheduler) thinks. Is that actually what you are trying to do?\n\n...now I\u0027ve read the IRC reference I see you are trying to do something like that. Still interested to see why the order gives a better answer. The reason I ask is I have another case for giving a collection of hosts as a destination but expect the scheduler to chose the one it likes best. Would that need to be another API?","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"1b19c8c595438fbe8abca8d8926a262a0ed6388e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"acceptable hosts, I would like to pass that list of hosts to Nova instead of"},{"line_number":35,"context_line":"manually passing them one at a time until one succeeds."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"As an automated tool that is trying to optimize resource usage in a cloud, I"},{"line_number":38,"context_line":"would like to let Nova know of all the acceptable hosts for live migrating an"},{"line_number":39,"context_line":"instance, rather than having to implement the retry loop around this call and"},{"line_number":40,"context_line":"potentially making multiple round-trip API calls."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_d401be07","line":37,"in_reply_to":"1a122d0e_6dffafaa","updated":"2016-05-20 19:39:35.000000000","message":"While there may be a few cases where order is important, I don\u0027t think that that\u0027s the concern. Avoiding multiple live-migrate calls in a try/fail loop is what is needed.\n\nLooking back over the IRC chat, I think that what alaski proposed is actually closer to what you\u0027re describing. I probably had that try/fail loop in the forefront of my thinking that I just applied his suggestion to it.","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"01d33ebc89bd1b055c340545a4ef5db28a95dde7","unresolved":false,"context_lines":[{"line_number":72,"context_line":"between getting the result and then calling live migrate with that host. There"},{"line_number":73,"context_line":"could also be thousands of acceptable hosts in a large cloud, and this would"},{"line_number":74,"context_line":"require pagination and multiple calls to get them all, further increasing the"},{"line_number":75,"context_line":"likelihood of stale information."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Data model impact"},{"line_number":78,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_57ae802e","line":75,"updated":"2016-05-16 15:31:47.000000000","message":"This reminds me of a dilbert cartoon where the dilbert asks the product manager what the customers want them to build and the product manager says \"I have a better idea - tell me all the things you can build and I\u0027ll pick which one I like.\"\n\nI keep thinking about your comment that the external optimizer doesn\u0027t know where things can go. I\u0027m not sure I believe that such an optimizer can work.\n\nAnother approach could be for the optimizer to chose a list of resources and not prioritize them? I guess what I am getting at is that you seem to have very specific reasons for what you are proposing but you haven\u0027t stated them. It would be good to hear more about it.","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"1b19c8c595438fbe8abca8d8926a262a0ed6388e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"between getting the result and then calling live migrate with that host. There"},{"line_number":73,"context_line":"could also be thousands of acceptable hosts in a large cloud, and this would"},{"line_number":74,"context_line":"require pagination and multiple calls to get them all, further increasing the"},{"line_number":75,"context_line":"likelihood of stale information."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Data model impact"},{"line_number":78,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bab6814e_b76a3cb1","line":75,"in_reply_to":"dab17558_57ae802e","updated":"2016-05-20 19:39:35.000000000","message":"Paul, a system external to nova can only know so much. Available capacity is easy; it would never pick a destination host on which the VM couldn\u0027t fit. What is the issue are the things that the scheduler takes into account that aren\u0027t visible to the outside (pci requirements, extra-specs matching, affinity rules). These could cause a host which looks acceptable from the outside to fail.","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"01d33ebc89bd1b055c340545a4ef5db28a95dde7","unresolved":false,"context_lines":[{"line_number":207,"context_line":"20:40, and ends at 21:36; apologies for the wrapping, but the URL is too long:"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova."},{"line_number":210,"context_line":"2016-02-03.log.html"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"History"},{"line_number":213,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_d21d5e74","line":210,"updated":"2016-05-16 15:31:47.000000000","message":"URLs should not be wrapped. It would be good if this was explained in the above text. I did have to read it to get some context and it was painful. The ref is good, but the reader should not need to rely on it to understand the spec.","commit_id":"ba5849a021238f14726e9cb4bb9e1e781a3a57c9"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7d77fe70107407c30688167ad5202fe684957bc4","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/specify-multiple-live-migrate-hosts"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Live migration requests to a specific host can now fail because the host will"},{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts that the Nova scheduler can select from."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_62978690","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":29},"updated":"2016-05-26 12:00:29.000000000","message":"that\u0027s only partially true and you know why. I explicitely left a possibility to use a \u0027force\u0027 option in case operators prefer to bypass the scheduler.\n\nSince operators look at the specs, please add this.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9ae8cedd57aa953114e0320b6f0e7c5c1b602971","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/specify-multiple-live-migrate-hosts"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Live migration requests to a specific host can now fail because the host will"},{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts that the Nova scheduler can select from."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_2b5439fc","line":14,"range":{"start_line":13,"start_character":0,"end_line":14,"end_character":29},"in_reply_to":"bab6814e_62978690","updated":"2016-05-26 15:38:43.000000000","message":"OK, that\u0027s true, but the whole point of having the scheduler check the move is to improve situations like this, where the mover only has partial insight into the requirements. I\u0027ll add some text to clear that up.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"0dd2dd036a0ad76f7cef92d3be0ee98e5ec7e925","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Live migration requests to a specific host can now fail because the host will"},{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts that the Nova scheduler can select from."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_063847ed","line":16,"updated":"2016-05-26 14:29:21.000000000","message":"It should be made clear that the list is ranked. IMHO, the automated tool can provide a prioritized list of possible hosts according to the cloud provider goal.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9ae8cedd57aa953114e0320b6f0e7c5c1b602971","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Live migration requests to a specific host can now fail because the host will"},{"line_number":14,"context_line":"be validated by the scheduler. This may result in several round-trips to the"},{"line_number":15,"context_line":"API before a valid host is found. It would be much more efficient to also"},{"line_number":16,"context_line":"accept a list of hosts that the Nova scheduler can select from."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_eee2359f","line":16,"in_reply_to":"bab6814e_063847ed","updated":"2016-05-26 15:38:43.000000000","message":"Unfortunately, I don\u0027t believe that this will be possible. If you really have a situation where the choice of host from that list is important, you really would need to split into separate calls, and manage the retry from the calling space, not within Nova.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7d77fe70107407c30688167ad5202fe684957bc4","unresolved":false,"context_lines":[{"line_number":22,"context_line":"scheduler, it is possible that calls will fail, due to the specified target not"},{"line_number":23,"context_line":"passing the original request\u0027s specifications. In order to avoid multiple calls"},{"line_number":24,"context_line":"to the live_migration API, it would be more efficient to also accept a list of"},{"line_number":25,"context_line":"hostnames from which the scheduler can select one. If none fo the hosts pass"},{"line_number":26,"context_line":"the scheduler\u0027s filters, only then would a 400 Bad Request be returned."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"There was an IRC discussion in #openstack-nova on 2016-02-03 in which different"},{"line_number":29,"context_line":"ideas were discussed, with the approach embodied in this spec being favored by"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_62e826e3","line":26,"range":{"start_line":25,"start_character":51,"end_line":26,"end_character":71},"updated":"2016-05-26 12:00:29.000000000","message":"that\u0027s not possible, given the API call is asynchronous. \nPlease review my change, you\u0027ll see that we\u0027ll be accepting a destination (only returning 400 if the destination is not existing) but having an NoValidHost ERROR asynchronously.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9ae8cedd57aa953114e0320b6f0e7c5c1b602971","unresolved":false,"context_lines":[{"line_number":22,"context_line":"scheduler, it is possible that calls will fail, due to the specified target not"},{"line_number":23,"context_line":"passing the original request\u0027s specifications. In order to avoid multiple calls"},{"line_number":24,"context_line":"to the live_migration API, it would be more efficient to also accept a list of"},{"line_number":25,"context_line":"hostnames from which the scheduler can select one. If none fo the hosts pass"},{"line_number":26,"context_line":"the scheduler\u0027s filters, only then would a 400 Bad Request be returned."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"There was an IRC discussion in #openstack-nova on 2016-02-03 in which different"},{"line_number":29,"context_line":"ideas were discussed, with the approach embodied in this spec being favored by"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_0b85f5cd","line":26,"range":{"start_line":25,"start_character":51,"end_line":26,"end_character":71},"in_reply_to":"bab6814e_62e826e3","updated":"2016-05-26 15:38:43.000000000","message":"Ah, good catch. Forgot to change that from the approach in the previous version of this spec.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7d77fe70107407c30688167ad5202fe684957bc4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"all as the best compromise of different interests. The discussion begins at"},{"line_number":31,"context_line":"20:40, and ends at 21:36:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2016-02-03.log.html"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_4249a230","line":33,"updated":"2016-05-26 12:00:29.000000000","message":"not sure I like to see a log here, you should just explain that there was a discussion that left you created this spec.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9ae8cedd57aa953114e0320b6f0e7c5c1b602971","unresolved":false,"context_lines":[{"line_number":30,"context_line":"all as the best compromise of different interests. The discussion begins at"},{"line_number":31,"context_line":"20:40, and ends at 21:36:"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2016-02-03.log.html"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_eea7d54d","line":33,"in_reply_to":"bab6814e_4249a230","updated":"2016-05-26 15:38:43.000000000","message":"Heh, I moved it here specifically on Paul\u0027s request. And I think it\u0027s good to link, as I know that I personally interpreted some comments one way, and upon re-reading the logs, came to understand that my initial understanding was wrong.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7d77fe70107407c30688167ad5202fe684957bc4","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"In order to implement this change, the live migration code in"},{"line_number":52,"context_line":"nova/api/openstack/compute/migrate_server.py will need to be changed."},{"line_number":53,"context_line":"Specifically,the `_migrate_live` method will be modified to determine if the"},{"line_number":54,"context_line":"value passed in the request body is a single hostname or comma-separated list"},{"line_number":55,"context_line":"of hostnames. Single hostnames will be converted to a one-element list. The"},{"line_number":56,"context_line":"corresponding methods in the conductor and scheduler will also be amended to"},{"line_number":57,"context_line":"accept a list of hostnames. The HostManager\u0027s newly-added (as of"},{"line_number":58,"context_line":"https://review.openstack.org/#/c/314509/8/nova/scheduler/host_manager.py@508)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_0284ba08","line":55,"range":{"start_line":53,"start_character":0,"end_line":55,"end_character":13},"updated":"2016-05-26 12:00:29.000000000","message":"That\u0027s already done by https://review.openstack.org/#/c/318334/, not sure you need to comment that implementation detail.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9ae8cedd57aa953114e0320b6f0e7c5c1b602971","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"In order to implement this change, the live migration code in"},{"line_number":52,"context_line":"nova/api/openstack/compute/migrate_server.py will need to be changed."},{"line_number":53,"context_line":"Specifically,the `_migrate_live` method will be modified to determine if the"},{"line_number":54,"context_line":"value passed in the request body is a single hostname or comma-separated list"},{"line_number":55,"context_line":"of hostnames. Single hostnames will be converted to a one-element list. The"},{"line_number":56,"context_line":"corresponding methods in the conductor and scheduler will also be amended to"},{"line_number":57,"context_line":"accept a list of hostnames. The HostManager\u0027s newly-added (as of"},{"line_number":58,"context_line":"https://review.openstack.org/#/c/314509/8/nova/scheduler/host_manager.py@508)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_0b117504","line":55,"range":{"start_line":53,"start_character":0,"end_line":55,"end_character":13},"in_reply_to":"bab6814e_0284ba08","updated":"2016-05-26 15:38:43.000000000","message":"I\u0027m looking at https://review.openstack.org/#/c/318334/3/nova/api/openstack/compute/migrate_server.py@74, and that appears to be unchanged. I\u0027m not sure what change you\u0027re referring to. It appears to be maintaining the type of the request (i.e., if a string is passed, it stays a string. If a list is passed, it stays a list)","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ed785da3bc4c116c725dc8f11269880ed372f84a","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"In order to implement this change, the live migration code in"},{"line_number":52,"context_line":"nova/api/openstack/compute/migrate_server.py will need to be changed."},{"line_number":53,"context_line":"Specifically,the `_migrate_live` method will be modified to determine if the"},{"line_number":54,"context_line":"value passed in the request body is a single hostname or comma-separated list"},{"line_number":55,"context_line":"of hostnames. Single hostnames will be converted to a one-element list. The"},{"line_number":56,"context_line":"corresponding methods in the conductor and scheduler will also be amended to"},{"line_number":57,"context_line":"accept a list of hostnames. The HostManager\u0027s newly-added (as of"},{"line_number":58,"context_line":"https://review.openstack.org/#/c/314509/8/nova/scheduler/host_manager.py@508)"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_1866cdba","line":55,"range":{"start_line":53,"start_character":0,"end_line":55,"end_character":13},"in_reply_to":"bab6814e_0b117504","updated":"2016-05-26 20:42:08.000000000","message":"My bad, I was referring to the point we verify if the host string is related to an existing ComputeNode by https://review.openstack.org/#/c/318334/3/nova/compute/api.py@3387\n\nAnyway, the above paragraph seems to be an implementation detail, not really needed.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"7d77fe70107407c30688167ad5202fe684957bc4","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    a) require the hosts to be sent in a comma-delimited list; e.g:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        --host aa,bb,cc"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    b) allow the host parameter to be specified multiple times; e.g.:"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_a2c16e31","line":126,"updated":"2016-05-26 12:00:29.000000000","message":"not sure a list of destinations is good TBH, I wonder if we shouldn\u0027t rather ask the admin user to give us an aggregate (because only admins can provide us an host anyway, they know the possibilities, right?)","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"9ae8cedd57aa953114e0320b6f0e7c5c1b602971","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    a) require the hosts to be sent in a comma-delimited list; e.g:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        --host aa,bb,cc"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    b) allow the host parameter to be specified multiple times; e.g.:"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_eb887124","line":126,"in_reply_to":"bab6814e_a2c16e31","updated":"2016-05-26 15:38:43.000000000","message":"So would you prefer to have the admin create an aggregate just for this single request? And then also be responsible for deleting the aggregate after the migration is complete? That sounds like unnecessary work that will be error-prone, as well as adding several additional API calls.","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c52f1017545ae58b5750a1dc8006a511963d65cc","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    a) require the hosts to be sent in a comma-delimited list; e.g:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        --host aa,bb,cc"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    b) allow the host parameter to be specified multiple times; e.g.:"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bab6814e_b8db414e","line":126,"in_reply_to":"bab6814e_eb887124","updated":"2016-05-26 20:44:11.000000000","message":"IDK honestly, what I think is that operators could maybe want to say \"okay, this rack please\" which could be having like 12 or more hosts...","commit_id":"3004f8187619aff8bafc180dd168a0e600c2235c"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a34deae5cd232006117917735f60febba37eef22","unresolved":false,"context_lines":[{"line_number":66,"context_line":"https://review.openstack.org/#/c/314509/8/nova/scheduler/host_manager.py@508)"},{"line_number":67,"context_line":"method _get_hosts_matching_request() will be amended to handle more than one"},{"line_number":68,"context_line":"host name, too. The scheduler will then select from this list of specified"},{"line_number":69,"context_line":"hosts."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Novaclient / openstackclient may also have to be modified to accept multiple"},{"line_number":72,"context_line":"arguments for the host, and turn that into a comma-separated list that is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_bdbe9dab","line":69,"updated":"2016-05-26 16:57:17.000000000","message":"Doesn\u0027t this change the select_destinations API, and as such we need to update the objects we use to pass the data? We should discuss those changes here, and how that change affects rolling upgrades (or not).","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa40eef7e24e633b6b75cabfaa08b5c53c07ff4e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"https://review.openstack.org/#/c/314509/8/nova/scheduler/host_manager.py@508)"},{"line_number":67,"context_line":"method _get_hosts_matching_request() will be amended to handle more than one"},{"line_number":68,"context_line":"host name, too. The scheduler will then select from this list of specified"},{"line_number":69,"context_line":"hosts."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Novaclient / openstackclient may also have to be modified to accept multiple"},{"line_number":72,"context_line":"arguments for the host, and turn that into a comma-separated list that is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_f8978945","line":69,"in_reply_to":"bab6814e_bdbe9dab","updated":"2016-05-26 20:47:13.000000000","message":"Right, I think it\u0027s the main modification that it\u0027s not explained : I created a Destination object having host/node fields nested to the RequestSpec.requested_destination field, what would you change then ?\n\nWould it be then a DestinationList (which doesn\u0027t exist yet) ?","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"828d21b7cf83a40ae966626e58b316a54a745094","unresolved":false,"context_lines":[{"line_number":66,"context_line":"https://review.openstack.org/#/c/314509/8/nova/scheduler/host_manager.py@508)"},{"line_number":67,"context_line":"method _get_hosts_matching_request() will be amended to handle more than one"},{"line_number":68,"context_line":"host name, too. The scheduler will then select from this list of specified"},{"line_number":69,"context_line":"hosts."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Novaclient / openstackclient may also have to be modified to accept multiple"},{"line_number":72,"context_line":"arguments for the host, and turn that into a comma-separated list that is"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_7ebee165","line":69,"in_reply_to":"bab6814e_f8978945","updated":"2016-05-26 22:09:58.000000000","message":"OK, that\u0027s a good point. I never know where to draw the line between too little and too much implementation detail. I\u0027ll add this.\n\n@Sylvain: yes, I think a DestinationList would be appropriate.","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a34deae5cd232006117917735f60febba37eef22","unresolved":false,"context_lines":[{"line_number":68,"context_line":"host name, too. The scheduler will then select from this list of specified"},{"line_number":69,"context_line":"hosts."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Novaclient / openstackclient may also have to be modified to accept multiple"},{"line_number":72,"context_line":"arguments for the host, and turn that into a comma-separated list that is"},{"line_number":73,"context_line":"passed to the Nova API.  Optionally, the current code could remain as is, and"},{"line_number":74,"context_line":"the user would have to type in the hosts as a comma-separated string to the"},{"line_number":75,"context_line":"`--host` argument. In either case, the documentation will have to be updated."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_fdbb05c2","line":75,"range":{"start_line":71,"start_character":0,"end_line":75,"end_character":77},"updated":"2016-05-26 16:57:17.000000000","message":"These things should go in \"Other end user impact\"","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"828d21b7cf83a40ae966626e58b316a54a745094","unresolved":false,"context_lines":[{"line_number":68,"context_line":"host name, too. The scheduler will then select from this list of specified"},{"line_number":69,"context_line":"hosts."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"Novaclient / openstackclient may also have to be modified to accept multiple"},{"line_number":72,"context_line":"arguments for the host, and turn that into a comma-separated list that is"},{"line_number":73,"context_line":"passed to the Nova API.  Optionally, the current code could remain as is, and"},{"line_number":74,"context_line":"the user would have to type in the hosts as a comma-separated string to the"},{"line_number":75,"context_line":"`--host` argument. In either case, the documentation will have to be updated."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Alternatives"},{"line_number":78,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_5e1ddd71","line":75,"range":{"start_line":71,"start_character":0,"end_line":75,"end_character":77},"in_reply_to":"bab6814e_fdbb05c2","updated":"2016-05-26 22:09:58.000000000","message":"Done","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a34deae5cd232006117917735f60febba37eef22","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    host or list of hosts, the scheduler will select from them. If you omit"},{"line_number":111,"context_line":"    this parameter, the scheduler chooses a host.\""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Neither the normal response codes nor the error response codes would change."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Security impact"},{"line_number":116,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_fd8dc531","line":113,"updated":"2016-05-26 16:57:17.000000000","message":"So this will require a microversion.\n\nGiven it requires one, can\u0027t we do this properly and allow a host_list param, that takes a list? Or something similar?","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa40eef7e24e633b6b75cabfaa08b5c53c07ff4e","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    host or list of hosts, the scheduler will select from them. If you omit"},{"line_number":111,"context_line":"    this parameter, the scheduler chooses a host.\""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Neither the normal response codes nor the error response codes would change."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Security impact"},{"line_number":116,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_989abd60","line":113,"in_reply_to":"bab6814e_fd8dc531","updated":"2016-05-26 20:47:13.000000000","message":"Agreed, it needs a microversion because we change the host parameter value.","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"828d21b7cf83a40ae966626e58b316a54a745094","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    host or list of hosts, the scheduler will select from them. If you omit"},{"line_number":111,"context_line":"    this parameter, the scheduler chooses a host.\""},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Neither the normal response codes nor the error response codes would change."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Security impact"},{"line_number":116,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_3ef1f995","line":113,"in_reply_to":"bab6814e_fd8dc531","updated":"2016-05-26 22:09:58.000000000","message":"Yes, totally right on the need for a microversion. I had that in mind, but forgot to include it in the spec.\n\nSo I\u0027m not sure what you\u0027re proposing: add an additional \u0027host_list\u0027 param, or change \u0027host\u0027 to \u0027host_list\u0027? I would hope it\u0027s the second, as I don\u0027t like the idea of being able to pass both a single host and a list of hosts in the same request.\n\nIt still feels cleaner to have the \u0027host\u0027 parameter mean \u0027one or more hosts\u0027.","commit_id":"124247f0c2f55a9dd5a0dfaa46f7637222ed72ec"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb974cf750066b3b553d8165b86e00777b6fe1a8","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Currently the requested host is represented by a Destination object. We propose"},{"line_number":74,"context_line":"to add a DestinationList object, and convert the code that expects a single"},{"line_number":75,"context_line":"Destination to handle a DestinationList of zero or more Destination objects."},{"line_number":76,"context_line":"The RequestSpec object will also be updated so that its \u0027requested_destination\u0027"},{"line_number":77,"context_line":"field is changed to be a ``ListOfObjects(\u0027Destination\u0027)`` field. The"},{"line_number":78,"context_line":"RequestSpec class will also have to have a compatibility check that will"},{"line_number":79,"context_line":"convert this field according to the target_version."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_77f0f6fe","line":77,"range":{"start_line":76,"start_character":0,"end_line":77,"end_character":65},"updated":"2016-05-31 13:39:53.000000000","message":"you can\u0027t modify the type of an object field like that with a minor version. Instead, you have to add a new field (let\u0027s call it requested_destination*s* eg.) and then you deprecate the use of requested_destination (at least by commenting the field) so that a major non-backwards compatible version of RequestSpec can drop that field.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"85d93c2f825979668803895ac8317a160d1c8cee","unresolved":false,"context_lines":[{"line_number":73,"context_line":"Currently the requested host is represented by a Destination object. We propose"},{"line_number":74,"context_line":"to add a DestinationList object, and convert the code that expects a single"},{"line_number":75,"context_line":"Destination to handle a DestinationList of zero or more Destination objects."},{"line_number":76,"context_line":"The RequestSpec object will also be updated so that its \u0027requested_destination\u0027"},{"line_number":77,"context_line":"field is changed to be a ``ListOfObjects(\u0027Destination\u0027)`` field. The"},{"line_number":78,"context_line":"RequestSpec class will also have to have a compatibility check that will"},{"line_number":79,"context_line":"convert this field according to the target_version."},{"line_number":80,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_4765541c","line":77,"range":{"start_line":76,"start_character":0,"end_line":77,"end_character":65},"in_reply_to":"9abb7d3a_77f0f6fe","updated":"2016-06-07 18:19:46.000000000","message":"Ah, thanks; didn\u0027t realize that. I\u0027ll make that change as you describe.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb974cf750066b3b553d8165b86e00777b6fe1a8","unresolved":false,"context_lines":[{"line_number":76,"context_line":"The RequestSpec object will also be updated so that its \u0027requested_destination\u0027"},{"line_number":77,"context_line":"field is changed to be a ``ListOfObjects(\u0027Destination\u0027)`` field. The"},{"line_number":78,"context_line":"RequestSpec class will also have to have a compatibility check that will"},{"line_number":79,"context_line":"convert this field according to the target_version."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Since this will change the way that the \u0027host\u0027 parameter is interpreted by the"},{"line_number":82,"context_line":"API, it will require a new microversion."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_17e08a28","line":79,"updated":"2016-05-31 13:39:53.000000000","message":"see my point above","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6335378f4ec275181cf13224eb17f03e8f6fd3cf","unresolved":false,"context_lines":[{"line_number":109,"context_line":"require a new microversion. The existing documentation for the call for live"},{"line_number":110,"context_line":"migration would only have to be changed with respect to the `host` parameter."},{"line_number":111,"context_line":"It would have to be updated to explain that acceptable values are either a"},{"line_number":112,"context_line":"single string representing the target host, or a comma-separated list of target"},{"line_number":113,"context_line":"hosts, in addition to being omitted. The proposed wording would be:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    \"The host or hosts to which you wish to migrate the server. You may specify"},{"line_number":116,"context_line":"    a single host or a list of hosts, separated by commas. If you specify a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_9712bf07","line":113,"range":{"start_line":112,"start_character":47,"end_line":113,"end_character":5},"updated":"2016-05-31 12:25:22.000000000","message":"Its this bit I hate, we should have a host_list: [\"asdf\",\"asdf\"]. We could drop host, and only support host_list, as the list could just contain one element.\n\nI don\u0027t think we should add structure inside the string element, that seems like a hack to me.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"85d93c2f825979668803895ac8317a160d1c8cee","unresolved":false,"context_lines":[{"line_number":109,"context_line":"require a new microversion. The existing documentation for the call for live"},{"line_number":110,"context_line":"migration would only have to be changed with respect to the `host` parameter."},{"line_number":111,"context_line":"It would have to be updated to explain that acceptable values are either a"},{"line_number":112,"context_line":"single string representing the target host, or a comma-separated list of target"},{"line_number":113,"context_line":"hosts, in addition to being omitted. The proposed wording would be:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    \"The host or hosts to which you wish to migrate the server. You may specify"},{"line_number":116,"context_line":"    a single host or a list of hosts, separated by commas. If you specify a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_a794f842","line":113,"range":{"start_line":112,"start_character":47,"end_line":113,"end_character":5},"in_reply_to":"9abb7d3a_576b3285","updated":"2016-06-07 18:19:46.000000000","message":"Yeah, I didn\u0027t write this well. The comma-separated list was strictly for the CLI; by the time it gets to Nova it should be a proper JSON list.\n\nI preferred not to rename the parameter, but if it makes it clearer, I\u0027ll make that change.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb974cf750066b3b553d8165b86e00777b6fe1a8","unresolved":false,"context_lines":[{"line_number":109,"context_line":"require a new microversion. The existing documentation for the call for live"},{"line_number":110,"context_line":"migration would only have to be changed with respect to the `host` parameter."},{"line_number":111,"context_line":"It would have to be updated to explain that acceptable values are either a"},{"line_number":112,"context_line":"single string representing the target host, or a comma-separated list of target"},{"line_number":113,"context_line":"hosts, in addition to being omitted. The proposed wording would be:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    \"The host or hosts to which you wish to migrate the server. You may specify"},{"line_number":116,"context_line":"    a single host or a list of hosts, separated by commas. If you specify a"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_576b3285","line":113,"range":{"start_line":112,"start_character":47,"end_line":113,"end_character":5},"in_reply_to":"9abb7d3a_9712bf07","updated":"2016-05-31 13:39:53.000000000","message":"Agreed, if we provide a microversion, we can just drop the host parameter and use another one which would be a list.\n\nFar better from an input validation (and UX) point of view.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6335378f4ec275181cf13224eb17f03e8f6fd3cf","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        --host aa --host bb --host cc"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"In either case, the hosts will be sent to the Nova API as a comma-separated"},{"line_number":148,"context_line":"list. The documentation for the usage for this parameter will also have to be"},{"line_number":149,"context_line":"updated."},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_97e0fffb","line":147,"updated":"2016-05-31 12:25:22.000000000","message":"we should pick a winner in this spec. I would go for (b) myself as it matches what we do with --port etc.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"85d93c2f825979668803895ac8317a160d1c8cee","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        --host aa --host bb --host cc"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"In either case, the hosts will be sent to the Nova API as a comma-separated"},{"line_number":148,"context_line":"list. The documentation for the usage for this parameter will also have to be"},{"line_number":149,"context_line":"updated."},{"line_number":150,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_4706f486","line":147,"in_reply_to":"9abb7d3a_97e0fffb","updated":"2016-06-07 18:19:46.000000000","message":"That was my preference too. OK, I\u0027ll revise to only present that option.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bb974cf750066b3b553d8165b86e00777b6fe1a8","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"In either case, the hosts will be sent to the Nova API as a comma-separated"},{"line_number":148,"context_line":"list. The documentation for the usage for this parameter will also have to be"},{"line_number":149,"context_line":"updated."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Performance Impact"},{"line_number":152,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_37edceef","line":149,"updated":"2016-05-31 13:39:53.000000000","message":"I\u0027m just worried by some operator then coming there, and say \"okay, this is cool, but given I have a rack with 100 computes that I want to provide as a destination, would it be possible to not list all my computes, please ?\"\n\nNot answering that question now makes me worried about yet another microversion we could do in the future for such slight (but painful) difference.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"85d93c2f825979668803895ac8317a160d1c8cee","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"In either case, the hosts will be sent to the Nova API as a comma-separated"},{"line_number":148,"context_line":"list. The documentation for the usage for this parameter will also have to be"},{"line_number":149,"context_line":"updated."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"Performance Impact"},{"line_number":152,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7aa08908_1b9284f6","line":149,"in_reply_to":"9abb7d3a_37edceef","updated":"2016-06-07 18:19:46.000000000","message":"If the situation were really that all 100 computes were acceptable, she could batch them on the client side into say, groups of 5 or 10. The odds of all of them failing should be pretty small. This is similar to the comment about ranking hosts in order of preference, whose resolution was to rank on the client side, and only submit those with equal ranking at a time.\n\nThe only other option I see is to add a \u0027host_aggregate\u0027 parameter that would limit migrations to only hosts in that aggregate, and require the admin to create (and then later delete) the aggregate for this one call. But I think that this is getting far beyond the need at hand by thinking about every future refinement that may be requested.","commit_id":"d0d057cdd6c96347cb5bbb0f1d6cda42a6a40a4b"},{"author":{"_account_id":17473,"name":"yindesheng","email":"yin.desheng@zte.com.cn","username":"yindesheng"},"change_message_id":"6f6be87a91db8b56e0a1de54071b561ac09adb5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7aa08908_d51e5c5e","updated":"2016-06-16 04:04:27.000000000","message":"Targeting to a host list is difficult, it is more easier to migrate it to an given AZ. And it can achieve the same purpose.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ca77639c0019da089629530b31324eed8c87840d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3aaa91ec_3c25efc1","in_reply_to":"3aaa91ec_5a58c2fa","updated":"2016-06-28 16:18:03.000000000","message":"AZs simply wouldn\u0027t work, as a host can only be in one AZ at a time. So let\u0027s drop that from discussion.\n\nI guess I have a hard time understanding how this is simpler, unless you assume that all potential groups of target hosts are already in defined aggregates, which is highly unlikely. Because here is the process:\n\n1) you decide to live migrate a VM.\n2) you determine the acceptable host(s)\n\nNow if you want to use aggregates: \n\n2a) you create the aggregate\n2b) for every host:\n2bb)    add the host to the aggregate\n\nNote that if you have, say, 10 hosts, that would involve 11 additional API calls.\n\n3) Call live migration, passing either a) list of hosts or b) aggregate\n\n4) Verify that the migration succeeded\n\nAgain for aggregates:\n4a) for every host:\n4aa)   remove host from aggregate\n4b) delete aggregate\n\nSo, for the case of 10 hosts, you have to make 22 additional API calls. In general, for N hosts you will have to make (N*2)+2 more API calls.\n\nSo how much would that bet be? :)","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f421eca41065a40471c4442063f2114293669023","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3aaa91ec_5a58c2fa","in_reply_to":"7aa08908_322e9642","updated":"2016-06-28 15:00:42.000000000","message":"See, Ed, I\u0027m almost sure a lot of people would want to provide an aggregate (or an AZ) for that... Betting what ?","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"0e6a514d673418b19922940cd302cd868a414628","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7aa08908_3794ec42","in_reply_to":"7aa08908_d51e5c5e","updated":"2016-06-16 13:46:01.000000000","message":"That would require creating a separate AZ each time such a live migration would be needed. This is the same issue as relying on host aggregates as the target: you need to create the specific AZ/agg for the acceptable hosts, do the live migration, and then delete the AZ/agg when the migration is complete. AZs are more problematic for this because a host can only be in a single AZ at a time.\n\nThe use cases explain the intent: an automated tool, such as the Watcher project, might identify a problem and determine that moving some VMs will achieve the solution. There may be several target hosts that will be acceptable, so this spec is simply allowing a list of hosts to be passed, and the scheduler will select from that list.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":17473,"name":"yindesheng","email":"yin.desheng@zte.com.cn","username":"yindesheng"},"change_message_id":"dddce350a8bab9c269060b5698271df0ca075f7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7aa08908_322e9642","in_reply_to":"7aa08908_d51e5c5e","updated":"2016-06-17 04:11:28.000000000","message":"Yes, it\u0027s an useful work in Watcher project. Such as migrating a VM from an overload host to some underload hosts.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"7b8663408b22484af0dac78f657820d9be187b10","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Since this will change the way that the \u0027host\u0027 parameter is interpreted by the"},{"line_number":84,"context_line":"API, it will require a new API microversion. In this microversion, the current"},{"line_number":85,"context_line":"\u0027hsot\u0027 parameter will be removed, and a new \u0027host_list\u0027 parameter will be used,"},{"line_number":86,"context_line":"as it more clearly indicates the nature of the parameter value."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a9d85d2_4bcc9d35","line":85,"updated":"2016-06-20 15:12:18.000000000","message":"nit:host","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f421eca41065a40471c4442063f2114293669023","unresolved":false,"context_lines":[{"line_number":106,"context_line":"None"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"REST API impact"},{"line_number":109,"context_line":"---------------"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The API would be changed to drop the existing \u0027host\u0027 parameter, and replace it"},{"line_number":112,"context_line":"with a \u0027host_list\u0027 parameter.  This will require a new API microversion. The"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3aaa91ec_3aea16ad","line":109,"updated":"2016-06-28 15:00:42.000000000","message":"Some people worked on having the os-evacuate and os-migrateLive REST actions to be quite the same, I\u0027m a bit sad if then evacuate would only accept a single destination while live-migration could ask for more.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ca77639c0019da089629530b31324eed8c87840d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"None"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"REST API impact"},{"line_number":109,"context_line":"---------------"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The API would be changed to drop the existing \u0027host\u0027 parameter, and replace it"},{"line_number":112,"context_line":"with a \u0027host_list\u0027 parameter.  This will require a new API microversion. The"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3aaa91ec_396d0133","line":109,"in_reply_to":"3aaa91ec_3aea16ad","updated":"2016-06-28 16:18:03.000000000","message":"Is there a use case for needing multiple hosts for evacuate? If so, then that could be proposed as another spec. The logic changes would be nearly identical. But the main use case for this change is automated live migration, and I\u0027m not aware of any analogous effort to automate evacuation.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f421eca41065a40471c4442063f2114293669023","unresolved":false,"context_lines":[{"line_number":112,"context_line":"with a \u0027host_list\u0027 parameter.  This will require a new API microversion. The"},{"line_number":113,"context_line":"existing documentation for the call for live migration would only have to be"},{"line_number":114,"context_line":"changed to note the parameter name change, and the functional change associated"},{"line_number":115,"context_line":"with this new parameter of being able to accept zero, one, or many host names."},{"line_number":116,"context_line":"The proposed wording would be:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    \"The host or hosts to which you wish to migrate the server. You may omit"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3aaa91ec_5a828201","line":115,"updated":"2016-06-28 15:00:42.000000000","message":"How the \u0027force\u0027 body argument could be related to a list of destinations ?","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"e5a5af3a1f5f72ed08c7a638cd27e3c6a5760915","unresolved":false,"context_lines":[{"line_number":112,"context_line":"with a \u0027host_list\u0027 parameter.  This will require a new API microversion. The"},{"line_number":113,"context_line":"existing documentation for the call for live migration would only have to be"},{"line_number":114,"context_line":"changed to note the parameter name change, and the functional change associated"},{"line_number":115,"context_line":"with this new parameter of being able to accept zero, one, or many host names."},{"line_number":116,"context_line":"The proposed wording would be:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    \"The host or hosts to which you wish to migrate the server. You may omit"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aa78d24_b7602da6","line":115,"in_reply_to":"3aaa91ec_59f72d59","updated":"2016-07-07 20:46:52.000000000","message":"+1 on warning. Auto-picking first one isn\u0027t so obvious. A 400 response could be sent back as well.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ca77639c0019da089629530b31324eed8c87840d","unresolved":false,"context_lines":[{"line_number":112,"context_line":"with a \u0027host_list\u0027 parameter.  This will require a new API microversion. The"},{"line_number":113,"context_line":"existing documentation for the call for live migration would only have to be"},{"line_number":114,"context_line":"changed to note the parameter name change, and the functional change associated"},{"line_number":115,"context_line":"with this new parameter of being able to accept zero, one, or many host names."},{"line_number":116,"context_line":"The proposed wording would be:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    \"The host or hosts to which you wish to migrate the server. You may omit"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3aaa91ec_59f72d59","line":115,"in_reply_to":"3aaa91ec_5a828201","updated":"2016-06-28 16:18:03.000000000","message":"Ah, good catch. I suppose that if force is True, then the first destination would be used. If someone specified both force\u003dTrue and more than one destination, that should be logged as a warning.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"f421eca41065a40471c4442063f2114293669023","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    from which the scheduler will choose.\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Neither the normal response codes nor the error response codes would change."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3aaa91ec_7ae2de02","line":124,"updated":"2016-06-28 15:00:42.000000000","message":"What if I\u0027m proposing as an operator : hostA, hostB, hostC but hostC doesn\u0027t exist ? Wouldn\u0027t I have still a 409 ?","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ca77639c0019da089629530b31324eed8c87840d","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    from which the scheduler will choose.\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Neither the normal response codes nor the error response codes would change."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3aaa91ec_99335513","line":124,"in_reply_to":"3aaa91ec_7ae2de02","updated":"2016-06-28 16:18:03.000000000","message":"I would prefer to raise a 404, just as in the single host case.","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"e5a5af3a1f5f72ed08c7a638cd27e3c6a5760915","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    from which the scheduler will choose.\""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"Neither the normal response codes nor the error response codes would change."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Security impact"},{"line_number":126,"context_line":"---------------"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1aa78d24_b7d2ed59","line":124,"in_reply_to":"3aaa91ec_99335513","updated":"2016-07-07 20:46:52.000000000","message":"+1","commit_id":"1f5dc2d0d9582569af90dea15f47141e9d320de5"}],"specs/ocata/approved/specify-multiple-live-migrate-hosts.rst":[{"author":{"_account_id":6608,"name":"Paul Carlton","email":"paul.carlton2@hpe.com","username":"paul-carlton2"},"change_message_id":"7cd9d0aec7a7650d3909f1d03c53765f0c7364ac","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Since this will change the way that the \u0027host\u0027 parameter is interpreted by the"},{"line_number":84,"context_line":"API, it will require a new API microversion. In this microversion, the current"},{"line_number":85,"context_line":"\u0027hsot\u0027 parameter will be removed, and a new \u0027host_list\u0027 parameter will be used,"},{"line_number":86,"context_line":"as it more clearly indicates the nature of the parameter value."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bacf61ea_be3c11c9","line":85,"updated":"2016-07-29 15:52:01.000000000","message":"host","commit_id":"bb0395f1d7b195c1d88e0e9a151cf23b6249460f"}]}
