)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2b2fa5f9011a82caf6c9deb6b43da2b9be1aa2bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6f6ea9e6_fca6ee75","updated":"2022-04-20 16:39:57.000000000","message":"Looking for clarity on what happens to the instance AZ in this case...","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bb319f02_f77d3883","updated":"2022-03-08 13:08:01.000000000","message":"honestly i think im ok with this spec as it is.\nits rare that i say that for a first revision of a spec but we\nhad spoken about this on irc before and you added the alternative i raised\nwhich i agree should be an alternative not the perused path.\n\ni have made some clarifying coments inline but this is a very straight forward extension\nto the API and mirrors other APIs we already have such as the boot to host api so i\ndon\u0027t see this as being controversial.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28881a375f354e2611f9a1298589cbbf9cc9c1be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5e706cc2_b37a75ab","updated":"2022-04-13 11:13:06.000000000","message":"removing +2 while nits are adressed.\nin general i still think this is more or less fine but i agree with gibi and sylvain that it shoudl be \"host\" to be consitent with the other apis and with the other nits inline.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9f7cbc32e5ba530ec6856925e9a7e4a630c7502f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"04c8fbbb_3cdc26b6","updated":"2022-05-04 10:45:49.000000000","message":"I had some nits that are not about the -1, but I also have some concerns : \n - you should either explain more what would happen for the instance AZ, or you shouldn\u0027t explain it\n - you should tell which exception you will return if both a AZ and a host are provided","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1a6b95f429202c415a039af9e15e5735828852a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b5f40f7f_eb654645","updated":"2022-05-04 08:00:23.000000000","message":"The content looks good to me. +1 only as you need to make pep8 happy anyhow.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d521b1cb056159578207893feecf109cd999bf53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"86781a6e_b5b91a36","updated":"2022-05-03 15:21:43.000000000","message":"the pep8 issue is just a line lenght issue.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5cc7f96a53f8b28d42126b5cb21102c8777611a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"65ff936f_97645910","updated":"2022-05-10 09:02:59.000000000","message":"Clarifying my thoughts.","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4bc203361a8913aac8fe1198b80de1b35ec27339","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ded469ff_e534ecaf","updated":"2022-05-10 08:32:32.000000000","message":"Well, I would have a lot of things to say about the current unshelving method that modifies the RequestSpec AZ, but this is unrelated to your spec, so... +2.\n\nI have a few other nits that we could either fix by a new revision if needed or by a follow-up.","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c45eb6550e164b785ae8106393d7c92611d57b8d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e9bb54b5_63fd1387","updated":"2022-05-18 14:54:24.000000000","message":"Femto -1 for the spec as I just want to just see a consensus.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dd671948a47918f85cbe9864d42bce1932b5aa73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"f553bf95_d6ec01cc","updated":"2022-05-17 11:53:02.000000000","message":"I\u0027m OK with this.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e5102811ec4cd168520f2d5fe427f0cd72f5c4f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3b770989_8302fb70","updated":"2022-05-17 17:49:10.000000000","message":"So many options but...I think the new table seems reasonable. Thanks for laying it out for us ELI5 people. A couple more questions but I think this is okay.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"60be31f532175ae0fbd332ba16a9f2d935c26bc6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1c61e606_2e2fdd7f","updated":"2022-05-18 17:48:37.000000000","message":"droping +2 while gibi and dan come to an agreement","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"04957cddcbfe821a387f1a12d83f49e6656dc88f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b5d9f6fb_a0c521d4","updated":"2022-05-17 13:00:19.000000000","message":"im also fine with this version but im going to leave +w to sylvain or dan","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"67c86f24b2bf638ce419769a7aafe08ee34effd5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e169d0d9_592d8d0d","updated":"2022-05-23 15:57:25.000000000","message":"A femto-nit that doesn\u0027t need to hold the spec to be accepted.\n","commit_id":"ce983fd5adeecbe4f01893dce32f0cb5bd061f03"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1f95ae4ea767d6abd3f6508996a72a22149aa10c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cff41a15_e5695d7a","updated":"2022-05-23 16:25:19.000000000","message":"It think we are aligned. I keep +A until Dan can check it","commit_id":"ce983fd5adeecbe4f01893dce32f0cb5bd061f03"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"ffa9fc395e5dc26908c3c0b782b552d336139521","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8e250aef_8dce3558","updated":"2022-05-23 16:46:15.000000000","message":"Dan is happy, Gibi was happy and I\u0027m happy, so let\u0027s merge it.\nThanks René for the hard work, appreciated.","commit_id":"0fc8a027736a4a46e74f7478d9f00590cab69db4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"048c951ef2035b7902668d96e178f067713a821b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"51a1806d_4be6442c","updated":"2022-05-23 16:45:25.000000000","message":"Just fixed typos","commit_id":"0fc8a027736a4a46e74f7478d9f00590cab69db4"}],"specs/zed/approved/unshelve-to-host.rst":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/unshelve-to-host"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint proposes to allow administrator to specify ``destination_host``"},{"line_number":14,"context_line":"to unshelve a shelved offloaded server."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"57dd1b75_eee2cb15","line":13,"range":{"start_line":13,"start_character":60,"end_line":13,"end_character":76},"updated":"2022-04-13 08:49:10.000000000","message":"host","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/unshelve-to-host"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This blueprint proposes to allow administrator to specify ``destination_host``"},{"line_number":14,"context_line":"to unshelve a shelved offloaded server."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c7cbd489_36168e17","line":13,"range":{"start_line":13,"start_character":60,"end_line":13,"end_character":76},"in_reply_to":"57dd1b75_eee2cb15","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":"As a administrator, I want to specify a destination host when executing"},{"line_number":25,"context_line":"unshelve on a shelved-offloaded instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"},{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":"Add a new microversion to extend the unshelve API behavior to support a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0be85e43_7e3fe5c4","line":26,"updated":"2022-03-08 13:08:01.000000000","message":"ack so this is currently restricted to an admin because normal endusers do dnot know the hostnames of compute hosts.\n\nin the parlance of the new secure rbac terminology this will require project_admin acces as it requires admin prvilages and is a project scoped resources.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":"As a administrator, I want to specify a destination host when executing"},{"line_number":25,"context_line":"unshelve on a shelved-offloaded instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"},{"line_number":28,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":29,"context_line":"Add a new microversion to extend the unshelve API behavior to support a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f7b06592_bd32162b","line":26,"in_reply_to":"0be85e43_7e3fe5c4","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":29,"context_line":"Add a new microversion to extend the unshelve API behavior to support a"},{"line_number":30,"context_line":"specific destination host."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Add ``destination_host`` attribute to unshelve Action request body."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fcc43426_5e0f9643","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":22},"updated":"2022-04-13 08:49:10.000000000","message":"s/destination_host/host","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Add a new microversion to extend the unshelve API behavior to support a"},{"line_number":30,"context_line":"specific destination host."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Add ``destination_host`` attribute to unshelve Action request body."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"25a9793c_b8f7868d","line":32,"range":{"start_line":32,"start_character":6,"end_line":32,"end_character":22},"in_reply_to":"fcc43426_5e0f9643","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Add 2 checks:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- Ensure the user is an administrator."},{"line_number":39,"context_line":"- Ensure the instance state is ``shelved_offloaded``."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bd8858d2_a659c77b","line":38,"updated":"2022-04-13 08:49:10.000000000","message":"well, for the existing policy, but sure.\nFor the next policy, the user should be a project admin, I guess\n\nhttps://specs.openstack.org/openstack/keystone-specs/specs/keystone/rocky/define-default-roles.html#project-admin","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Add 2 checks:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"- Ensure the user is an administrator."},{"line_number":39,"context_line":"- Ensure the instance state is ``shelved_offloaded``."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bf03edb1_233d7257","line":38,"in_reply_to":"bd8858d2_a659c77b","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":42,"context_line":"Alternatives"},{"line_number":43,"context_line":"------------"},{"line_number":44,"context_line":"The current proposal rejects unshelve to a specific host if the instance state"},{"line_number":45,"context_line":"is not shelve_offloaded."},{"line_number":46,"context_line":"Alternatively, a request to unshelve to a specific host would change the"},{"line_number":47,"context_line":"instance state to shelve_offloaded automatically. So the user would not have to"},{"line_number":48,"context_line":"worry about the initial instance state."}],"source_content_type":"text/x-rst","patch_set":1,"id":"08eb2afe_a193bff8","line":45,"range":{"start_line":45,"start_character":7,"end_line":45,"end_character":23},"updated":"2022-04-13 08:49:10.000000000","message":"nit: shelved_offloaded","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":42,"context_line":"Alternatives"},{"line_number":43,"context_line":"------------"},{"line_number":44,"context_line":"The current proposal rejects unshelve to a specific host if the instance state"},{"line_number":45,"context_line":"is not shelve_offloaded."},{"line_number":46,"context_line":"Alternatively, a request to unshelve to a specific host would change the"},{"line_number":47,"context_line":"instance state to shelve_offloaded automatically. So the user would not have to"},{"line_number":48,"context_line":"worry about the initial instance state."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a1b9150f_61cb7f36","line":45,"range":{"start_line":45,"start_character":7,"end_line":45,"end_character":23},"in_reply_to":"08eb2afe_a193bff8","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":46,"context_line":"Alternatively, a request to unshelve to a specific host would change the"},{"line_number":47,"context_line":"instance state to shelve_offloaded automatically. So the user would not have to"},{"line_number":48,"context_line":"worry about the initial instance state."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Data model impact"},{"line_number":51,"context_line":"-----------------"},{"line_number":52,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"717c8c8d_abd25b6c","line":49,"updated":"2022-03-08 13:08:01.000000000","message":"ack thanks for including this.\n\nthat would have been done by calling shelve offload internally waiting for the offload and then unshleiving to the desired host.\n\nsince that is something the end user can do manually we have elected to not include that complexity in this proposal.\n+1","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Alternatively, a request to unshelve to a specific host would change the"},{"line_number":47,"context_line":"instance state to shelve_offloaded automatically. So the user would not have to"},{"line_number":48,"context_line":"worry about the initial instance state."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Data model impact"},{"line_number":51,"context_line":"-----------------"},{"line_number":52,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a8da4abf_5422201b","line":49,"in_reply_to":"717c8c8d_abd25b6c","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":58,"context_line":"``destination_host`` mutually exclusive."},{"line_number":59,"context_line":"So the api can be called with only 3 ways:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"- {\u0027unshelve\u0027: null}   (Keep compatibility with previous microversions)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"4221d6f6_43b61bb5","line":59,"updated":"2022-04-13 08:49:10.000000000","message":"you should tell which exact API would be modified. Look at other specs, for example https://specs.openstack.org/openstack/nova-specs/specs/wallaby/implemented/modernize-os-hypervisors-api.html#rest-api-impact","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":58,"context_line":"``destination_host`` mutually exclusive."},{"line_number":59,"context_line":"So the api can be called with only 3 ways:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"- {\u0027unshelve\u0027: null}   (Keep compatibility with previous microversions)"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a6c312b_8a7b4781","line":59,"in_reply_to":"4221d6f6_43b61bb5","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a58bbff8316b4fb61c8a250807eaa7bef13662da","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"50c4f7b6_216df6d8","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"updated":"2022-04-06 15:53:12.000000000","message":"It is called \"host\" in the evac, cold and live migrate API. So for consistency sake we should calls this \"host\" too","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1526a83ac0e19096c9fbf46d65017c8927f77fd1","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2199cde0_07863e6a","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"0cd484b3_fded09b5","updated":"2022-05-10 09:16:46.000000000","message":"this is still unresolved\n\nwe have 3 options that we can take. but the spec does not explcitly sate what will happen for case 1 and 2\nhttps://etherpad.opendev.org/p/unshelve-to-host\n\ncan we update the spec with the worked examples and state wich of the the options will be implemtned for case 2.\n\ni belive 2.3 is your intent but we need to capture that in the sepc","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"676620b4309f74b53a4f9815a93a468c511f132c","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ea535b66_d7f59e16","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"2199cde0_07863e6a","updated":"2022-05-10 12:06:49.000000000","message":"we had a good discussion and some etherpadding around the topic. See details and agreement here https://etherpad.opendev.org/p/unshelve-to-host#L63","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f213ea35069a53c5214a45b0076c79570e0cdc02","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fb6f4378_1bc1c009","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"3e7eb8e6_4680a93b","updated":"2022-04-28 10:00:26.000000000","message":"this is the proposed scheme change\nhttps://review.opendev.org/c/openstack/nova/+/831507/4/nova/api/openstack/compute/schemas/shelve.py\n\nand the current draft code will pass an az of none when the destination host is set\nhttps://review.opendev.org/c/openstack/nova/+/831507/4/nova/api/openstack/compute/shelve.py#103\n\nwhich is the same behaviour as unshelve without an az so presumable in that case we will use the existing az.\n\nI have not check the rest of the code but I would expect that if the host was in the incorrect az then either placement or the az filter would eliminate the host.\n\nso right now I don\u0027t think the implementation would provide a way to implicitly unshelve to a host in a different using the new parameter and your can\u0027t explicitly do it since the scheme does not allow the host and az to be set at the same time.\n\nyou sound have to use the legacy az:host syntax assuming that is supported by this api.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"35c6a68ac7c3e264e058c3f4ee1dcc888ca87334","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3e7eb8e6_4680a93b","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"40dadff6_9ad2136d","updated":"2022-04-28 09:51:00.000000000","message":"hum since we are using one of in the schema update we would have to do a you said and update the az.\n\nI was expecting unshelve to host to fail if the az did not match the instance current az.\n\nso yes we should clarify either the draft scheme is wrong and we should support specifying both az and host to explicitly opt into cross az behaviour and reject it if there is a confict or we should do as dan implies and implicitly modify the az when you specify the host to match the az.\n\n\ngood catch this is not properly addressed by the current spec.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ab93186c_60584420","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"50c4f7b6_216df6d8","updated":"2022-04-13 08:49:10.000000000","message":"Agreed with gibi here, please respin for this quick nit.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"04957cddcbfe821a387f1a12d83f49e6656dc88f","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c29d212d_77ed3119","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"660f1cca_e8fe6bc4","updated":"2022-05-17 13:00:19.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2b2fa5f9011a82caf6c9deb6b43da2b9be1aa2bc","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"40dadff6_9ad2136d","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"ab93186c_60584420","updated":"2022-04-20 16:39:57.000000000","message":"I\u0027m not entirely sure what the behavior is currently... An instance still has an AZ while offloaded, and I assume the AZ is updated to the provided one, or not if none is specified right? So if they provide a host (especially one not in the original AZ) we will update the instance AZ accordingly right? Probably worth mentioning here.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"789effa2677a42b0095f61a31ac11c30a15e9dd6","unresolved":true,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"660f1cca_e8fe6bc4","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"ea535b66_d7f59e16","updated":"2022-05-11 13:12:54.000000000","message":"Remaining open question in the doc","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"or"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0cd484b3_fded09b5","line":69,"range":{"start_line":69,"start_character":17,"end_line":69,"end_character":33},"in_reply_to":"fb6f4378_1bc1c009","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"- {\u0027unshelve\u0027: {}}"},{"line_number":75,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e, \u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":76,"context_line":"- {\u0027unshelve\u0027: {\u0027foo\u0027: \u003cstring\u003e}}"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"dca38b43_3ab51974","line":74,"updated":"2022-03-08 13:08:01.000000000","message":"we have had this discusion else where i actully think this should be allowed in all our apis and w shoul treat null and {} interchangeable.\n\nto me theis is an existing defect and you are just being consitent so we can keep this as you have written but many non nova rest apis use {} as a placeholder not null when a value is not provided.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"Everything else is not allowed, examples:"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"- {\u0027unshelve\u0027: {}}"},{"line_number":75,"context_line":"- {\u0027unshelve\u0027: {\u0027destination_host\u0027: \u003cfqdn\u003e, \u0027destination_host\u0027: \u003cfqdn\u003e}}"},{"line_number":76,"context_line":"- {\u0027unshelve\u0027: {\u0027foo\u0027: \u003cstring\u003e}}"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"e16a6cb5_e598c15c","line":74,"in_reply_to":"dca38b43_3ab51974","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Other end user impact"},{"line_number":87,"context_line":"---------------------"},{"line_number":88,"context_line":"The python-novaclient and python-openstackclient will be updated."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Performance Impact"},{"line_number":91,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a978ed51_44c3eaa2","line":88,"range":{"start_line":88,"start_character":26,"end_line":88,"end_character":48},"updated":"2022-03-08 13:08:01.000000000","message":"and only the osc cli will have new support for the micro version added.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Other end user impact"},{"line_number":87,"context_line":"---------------------"},{"line_number":88,"context_line":"The python-novaclient and python-openstackclient will be updated."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Performance Impact"},{"line_number":91,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c43b18b2_ead3136d","line":88,"range":{"start_line":88,"start_character":4,"end_line":88,"end_character":21},"updated":"2022-03-08 13:08:01.000000000","message":"so this will just be extended with the python helper functions","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Other end user impact"},{"line_number":87,"context_line":"---------------------"},{"line_number":88,"context_line":"The python-novaclient and python-openstackclient will be updated."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Performance Impact"},{"line_number":91,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a20b843d_8a048ae1","line":88,"range":{"start_line":88,"start_character":26,"end_line":88,"end_character":48},"in_reply_to":"a978ed51_44c3eaa2","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Other end user impact"},{"line_number":87,"context_line":"---------------------"},{"line_number":88,"context_line":"The python-novaclient and python-openstackclient will be updated."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Performance Impact"},{"line_number":91,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2954ad63_7f18d442","line":88,"range":{"start_line":88,"start_character":4,"end_line":88,"end_character":21},"in_reply_to":"c43b18b2_ead3136d","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":114,"context_line":"Feature Liaison"},{"line_number":115,"context_line":"---------------"},{"line_number":116,"context_line":"Feature liaison:"},{"line_number":117,"context_line":"  sbauza"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Work Items"},{"line_number":120,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d9cc594c_7b05d983","line":117,"updated":"2022-03-08 13:08:01.000000000","message":"+1 ack","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":114,"context_line":"Feature Liaison"},{"line_number":115,"context_line":"---------------"},{"line_number":116,"context_line":"Feature liaison:"},{"line_number":117,"context_line":"  sbauza"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Work Items"},{"line_number":120,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"58ff1d50_e71c1674","line":117,"in_reply_to":"d9cc594c_7b05d983","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":"- Add related unit tests"},{"line_number":132,"context_line":"- Add related functional tests"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Documentation Impact"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":136,"context_line":"Add docs that mention unshelve to host after the microversion."}],"source_content_type":"text/x-rst","patch_set":1,"id":"19bdbf9c_e8719bc0","line":133,"updated":"2022-03-08 13:08:01.000000000","message":"nit: you will also need to modify the api sample tests.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":"- Add related unit tests"},{"line_number":132,"context_line":"- Add related functional tests"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Documentation Impact"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":136,"context_line":"Add docs that mention unshelve to host after the microversion."}],"source_content_type":"text/x-rst","patch_set":1,"id":"da9d2cec_092e2ffd","line":133,"in_reply_to":"19bdbf9c_e8719bc0","updated":"2022-04-13 08:49:10.000000000","message":"+1","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":130,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":131,"context_line":"- Add related unit tests"},{"line_number":132,"context_line":"- Add related functional tests"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Documentation Impact"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":136,"context_line":"Add docs that mention unshelve to host after the microversion."}],"source_content_type":"text/x-rst","patch_set":1,"id":"73e584ab_dccf5f62","line":133,"in_reply_to":"da9d2cec_092e2ffd","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"350d4e6180d91ba887fad63825387ce8fb38fd1a","unresolved":true,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Documentation Impact"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":136,"context_line":"Add docs that mention unshelve to host after the microversion."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"References"},{"line_number":139,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e0f95950_ce79d78c","line":136,"updated":"2022-03-08 13:08:01.000000000","message":"you will need to update the api ref and the unshleve docs.","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"423461950d003732d198d38d2b259f040f4ef467","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Documentation Impact"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":136,"context_line":"Add docs that mention unshelve to host after the microversion."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"References"},{"line_number":139,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e2e41d0e_e076316c","line":136,"in_reply_to":"5daf30b6_25f2265c","updated":"2022-05-03 14:01:17.000000000","message":"Done","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"8ee86ea4037bdf1b30dd361826dce7ffdf630182","unresolved":true,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Documentation Impact"},{"line_number":135,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":136,"context_line":"Add docs that mention unshelve to host after the microversion."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"References"},{"line_number":139,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5daf30b6_25f2265c","line":136,"in_reply_to":"e0f95950_ce79d78c","updated":"2022-04-13 08:49:10.000000000","message":"+1","commit_id":"9bef200971035ea78c04b63c0a00402a68a1ac6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d521b1cb056159578207893feecf109cd999bf53","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":"As a project administrator, I want to specify a destination host when executing"},{"line_number":25,"context_line":"unshelve on a shelved-offloaded instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"979b10c4_c0387921","line":24,"range":{"start_line":24,"start_character":5,"end_line":24,"end_character":26},"updated":"2022-05-03 15:21:43.000000000","message":"nit: ``project_admin`` i.e. the persona name rather than project administrator","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcc779b7f1c26e133546e3c77ccf38dcf97a1cec","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":"As a project administrator, I want to specify a destination host when executing"},{"line_number":25,"context_line":"unshelve on a shelved-offloaded instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f691a99d_9f0f278f","line":24,"range":{"start_line":24,"start_character":5,"end_line":24,"end_character":26},"in_reply_to":"0b407a6b_7aa85e58","updated":"2022-05-04 14:59:17.000000000","message":"well a system admin cant operate on project scoped resources so they would not be able to unshelve with a system or domain admin token in the new rbac world with system scope enforcement then only a porject_admin would have the correct permissions.\n\nas part of the rbac take 2 piviot that happend we defiend porject_admin as the operator  that runs the cloud.\n\ni am kind of assuming that we will proceed with gmans \"boot on specific hypervisor with new RBAC\" spec https://review.opendev.org/c/openstack/nova-specs/+/833165\n\nthat uses project_admin for boot to specfic host so it makes sense to me that we would align unshelve to the same  role.\nhttps://review.opendev.org/c/openstack/nova-specs/+/833165/1/specs/zed/approved/server-boot-on-specific-hypervisor-with-new-rbac.rst#34","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b110e10caef87a98ffd5d7f1bfb73b142449858a","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":"As a project administrator, I want to specify a destination host when executing"},{"line_number":25,"context_line":"unshelve on a shelved-offloaded instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6262eff3_0cdb1ae6","line":24,"range":{"start_line":24,"start_character":5,"end_line":24,"end_character":26},"in_reply_to":"200ab0ed_7513c734","updated":"2022-05-06 12:14:25.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31573bcec57765c37a98436ecd8e7aabd512e1db","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":"As a project administrator, I want to specify a destination host when executing"},{"line_number":25,"context_line":"unshelve on a shelved-offloaded instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"0b407a6b_7aa85e58","line":24,"range":{"start_line":24,"start_character":5,"end_line":24,"end_character":26},"in_reply_to":"979b10c4_c0387921","updated":"2022-05-04 14:07:03.000000000","message":"Is that right though? Currently project_admin can\u0027t see hypervisors and thus can\u0027t reliably provide a proper hostname. Are you suggesting this change to be presumptive about that happening at some point?\n\nIf it were me, I would just change this to \u0027administrator\u0027 to be vaguely correct instead of specifically incorrect (currently).","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c24790cd1b3c7ee7b2ea2a4e062d983bbc499afc","unresolved":true,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Use Cases"},{"line_number":23,"context_line":"---------"},{"line_number":24,"context_line":"As a project administrator, I want to specify a destination host when executing"},{"line_number":25,"context_line":"unshelve on a shelved-offloaded instance."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"200ab0ed_7513c734","line":24,"range":{"start_line":24,"start_character":5,"end_line":24,"end_character":26},"in_reply_to":"f691a99d_9f0f278f","updated":"2022-05-04 15:03:37.000000000","message":"Right, so the distinction you\u0027re making is project:admin vs system:admin, not to be confused with project:manager, which was, at some point, called project_admin :)\n\nI think \u0027admin\u0027 or \u0027administrator\u0027 is as specific as we need to be here, reflecting the current state of the world.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9f7cbc32e5ba530ec6856925e9a7e4a630c7502f","unresolved":true,"context_lines":[{"line_number":29,"context_line":"Add a new microversion to extend the unshelve API behavior to support a"},{"line_number":30,"context_line":"specific destination host."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Add ``host`` attribute to unshelve Action request body."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Add 2 checks:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"184198be_55c1765d","line":32,"range":{"start_line":32,"start_character":26,"end_line":32,"end_character":55},"updated":"2022-05-04 10:45:49.000000000","message":"nit : POST /server/uuid/action for unshelve request body.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b110e10caef87a98ffd5d7f1bfb73b142449858a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"Add a new microversion to extend the unshelve API behavior to support a"},{"line_number":30,"context_line":"specific destination host."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"Add ``host`` attribute to unshelve Action request body."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Add 2 checks:"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"018776cf_cc9a64d3","line":32,"range":{"start_line":32,"start_character":26,"end_line":32,"end_character":55},"in_reply_to":"184198be_55c1765d","updated":"2022-05-06 12:14:25.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d521b1cb056159578207893feecf109cd999bf53","unresolved":true,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Add 2 checks:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Ensure the user is a project administrator."},{"line_number":37,"context_line":"- Ensure the instance state is ``shelved_offloaded``."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f41eac69_90f621f5","line":36,"range":{"start_line":36,"start_character":23,"end_line":36,"end_character":44},"updated":"2022-05-03 15:21:43.000000000","message":"``project_admin``","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b110e10caef87a98ffd5d7f1bfb73b142449858a","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Add 2 checks:"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"- Ensure the user is a project administrator."},{"line_number":37,"context_line":"- Ensure the instance state is ``shelved_offloaded``."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"}],"source_content_type":"text/x-rst","patch_set":2,"id":"34fe7d7f_a89a852f","line":36,"range":{"start_line":36,"start_character":23,"end_line":36,"end_character":44},"in_reply_to":"f41eac69_90f621f5","updated":"2022-05-06 12:14:25.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9f7cbc32e5ba530ec6856925e9a7e4a630c7502f","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"},{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"46fa0836_13a08b19","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":39},"updated":"2022-05-04 10:45:49.000000000","message":"This will depend whether the AZFilter is in use or not.\nEither the instance was created with a specific AZ, and then it would get a NoValidHost if the admin asks for a host which is not in the current AZ, or if the instance was not created for a specific AZ (and if we don\u0027t have a specific default AZ), then indeed it will change the AZ for the instance.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"fee6fc1e425dae57b0eb7a89f4ac03be1cf3081e","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"},{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a245cc45_6bcd267f","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":39},"in_reply_to":"393bde75_49bffe8c","updated":"2022-05-05 09:54:00.000000000","message":"I did a couple of functional tests to check the behavior:\nIn fact, the unshelve_offload action set the az to None.\n\nSo unshelve to an az or unshelve to a host will set the correct az to the instance.\n\nHowever then, using objects.RequestSpec.get_by_instance_uuid() method to recreate a request_spec:\nunshelve to an az --\u003e the request_spec.availability_zone propertie has the az set to the one required.\nunshelve to a host --\u003e the request_spec.availability_zone propertie has the az set to None.\n\nIt sounds good to me as this is what has been requested first.\nBut we could also set the az to the host one within unshelve to a host, so the next request_spec will probably have request_spec.availability_zone set to the host az. Do you think it is better ?","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d776baad12dfa2902f0a05b10d03b492963cc3e","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"},{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"500a57ed_d9063d8c","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":39},"in_reply_to":"46fa0836_13a08b19","updated":"2022-05-04 11:49:21.000000000","message":"well yes and no. if you are not useing the az filter we recommend that you enabel az with placement\nif you dont enable either then you should not use AZ in your cloud.\n\ni think the AZ in the request spec is what need to be updated so that future move operations will continue to use the new az although we should mirror what unshelve ot az does.\n\nie whatever that currently updates we shoudl update.\nif it does not update anything then we shoudl do the same although i would proably consider that a bug.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31573bcec57765c37a98436ecd8e7aabd512e1db","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"},{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"8ae57bff_2b7dd26a","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":39},"in_reply_to":"500a57ed_d9063d8c","updated":"2022-05-04 14:07:03.000000000","message":"His point is still valid though, AFAIK. We should not always implicitly update the AZ, meaning give an instance an AZ pinning when it has none currently.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcc779b7f1c26e133546e3c77ccf38dcf97a1cec","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"},{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"393bde75_49bffe8c","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":39},"in_reply_to":"8ae57bff_2b7dd26a","updated":"2022-05-04 14:59:17.000000000","message":"ack that is true we should update it if i had an explict request initally but not if it didnt right?\n\nand also ensure that that is consitent with unshelve to az.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be0b70deb95761a98e169ce8ceddfe7d160def80","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"If the destination host provided by the user has a different availability"},{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"40658903_27f17942","line":42,"range":{"start_line":41,"start_character":0,"end_line":42,"end_character":39},"in_reply_to":"a245cc45_6bcd267f","updated":"2022-05-11 13:11:24.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d521b1cb056159578207893feecf109cd999bf53","unresolved":true,"context_lines":[{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"},{"line_number":46,"context_line":"The current proposal rejects unshelve to a specific host if the instance state"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1e579a59_26d24b38","line":43,"updated":"2022-05-03 15:21:43.000000000","message":"ok so this will need to be updated in both the request spec and teh instance.\nso that future move operateions will take account of the new az.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b110e10caef87a98ffd5d7f1bfb73b142449858a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"zone than the one when the instance was shelved."},{"line_number":41,"context_line":"In such a case, the instance availability zone will be implicitly updated"},{"line_number":42,"context_line":"with the one from the destination host."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"},{"line_number":46,"context_line":"The current proposal rejects unshelve to a specific host if the instance state"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1dab7b04_2b3a9b8c","line":43,"in_reply_to":"1e579a59_26d24b38","updated":"2022-05-06 12:14:25.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"9f7cbc32e5ba530ec6856925e9a7e4a630c7502f","unresolved":true,"context_lines":[{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Starting from the new API microversion, the ``/servers/{server_id}/action``"},{"line_number":63,"context_line":"API can be called with a post and the following body:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d4474fc8_92fc94bc","line":60,"updated":"2022-05-04 10:45:49.000000000","message":"++\n\nI guess you will return a HTTP409 exception ?","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31573bcec57765c37a98436ecd8e7aabd512e1db","unresolved":true,"context_lines":[{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Starting from the new API microversion, the ``/servers/{server_id}/action``"},{"line_number":63,"context_line":"API can be called with a post and the following body:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"57eb50e0_206f5a97","line":60,"in_reply_to":"2757f82c_c860f324","updated":"2022-05-04 14:07:03.000000000","message":"Yep, 409 is:\n\n The request could not be completed due to a conflict with the\n current state of the target resource\n\nSo that means \"this isn\u0027t shelved-offloaded\" is a 409. An incorrect request (violating the mutually-exclusive-ness of two properties) would be 400.\n\nAlso 409 for shelved (instead of -offloaded) I think.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b110e10caef87a98ffd5d7f1bfb73b142449858a","unresolved":false,"context_lines":[{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Starting from the new API microversion, the ``/servers/{server_id}/action``"},{"line_number":63,"context_line":"API can be called with a post and the following body:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"0494e459_2badbd53","line":60,"in_reply_to":"38efd1c8_0fbe5897","updated":"2022-05-06 12:14:25.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"dcc779b7f1c26e133546e3c77ccf38dcf97a1cec","unresolved":true,"context_lines":[{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Starting from the new API microversion, the ``/servers/{server_id}/action``"},{"line_number":63,"context_line":"API can be called with a post and the following body:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"706f85ef_56b4d0bd","line":60,"in_reply_to":"57eb50e0_206f5a97","updated":"2022-05-04 14:59:17.000000000","message":"yep 409 if the vm is shelved instead of shelve-offloaded\nand 400 for violating the mutually-exclusive-ness i think is correct","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"fee6fc1e425dae57b0eb7a89f4ac03be1cf3081e","unresolved":true,"context_lines":[{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Starting from the new API microversion, the ``/servers/{server_id}/action``"},{"line_number":63,"context_line":"API can be called with a post and the following body:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"38efd1c8_0fbe5897","line":60,"in_reply_to":"706f85ef_56b4d0bd","updated":"2022-05-05 09:54:00.000000000","message":"In fact currently the code rises a 400 (not 409) in both case. I\u0027m gonna change according to Sean\u0027s proposal. And make this clear in the spec.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1d776baad12dfa2902f0a05b10d03b492963cc3e","unresolved":true,"context_lines":[{"line_number":57,"context_line":"---------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Starting from the new API microversion, the ``/servers/{server_id}/action``"},{"line_number":63,"context_line":"API can be called with a post and the following body:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2757f82c_c860f324","line":60,"in_reply_to":"d4474fc8_92fc94bc","updated":"2022-05-04 11:49:21.000000000","message":"400 (bad request) is probably  more correct then 409 (conflict) would normally be say if the vm was not shelved and you asked nova to unshelve it i.e. the state of the resouce does not match the preconditions.\n\nthis si an error in the payload of the request rather then an error in the sate of the instance.\n\nboth would work i guess but 400 seams better to me.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d521b1cb056159578207893feecf109cd999bf53","unresolved":true,"context_lines":[{"line_number":138,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":139,"context_line":"- Add related unit tests"},{"line_number":140,"context_line":"- Add related functional tests"},{"line_number":141,"context_line":"- Add tempest tests"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Documentation Impact"},{"line_number":144,"context_line":"\u003d\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":"94a7beba_3bf4b9a7","line":141,"updated":"2022-05-03 15:21:43.000000000","message":"nit: you can add tempest tests for this but its not generally required.\nthe api sample tests are different.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"ebe9f6a83f0c49b2f8bbbdb9d4c1ecb2d891c997","unresolved":true,"context_lines":[{"line_number":138,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":139,"context_line":"- Add related unit tests"},{"line_number":140,"context_line":"- Add related functional tests"},{"line_number":141,"context_line":"- Add tempest tests"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Documentation Impact"},{"line_number":144,"context_line":"\u003d\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":"9fb4c72e_62140511","line":141,"in_reply_to":"533ffb02_4c647bd0","updated":"2022-05-05 10:23:08.000000000","message":"I think functional tests fully cover it.\nBut I would like to add a tempest test to better dive into them.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31573bcec57765c37a98436ecd8e7aabd512e1db","unresolved":true,"context_lines":[{"line_number":138,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":139,"context_line":"- Add related unit tests"},{"line_number":140,"context_line":"- Add related functional tests"},{"line_number":141,"context_line":"- Add tempest tests"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Documentation Impact"},{"line_number":144,"context_line":"\u003d\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":"533ffb02_4c647bd0","line":141,"in_reply_to":"94a7beba_3bf4b9a7","updated":"2022-05-04 14:07:03.000000000","message":"I think tempest tests for this are a good idea.","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b110e10caef87a98ffd5d7f1bfb73b142449858a","unresolved":false,"context_lines":[{"line_number":138,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":139,"context_line":"- Add related unit tests"},{"line_number":140,"context_line":"- Add related functional tests"},{"line_number":141,"context_line":"- Add tempest tests"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"Documentation Impact"},{"line_number":144,"context_line":"\u003d\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":"e41c4bb8_0ce84c62","line":141,"in_reply_to":"9fb4c72e_62140511","updated":"2022-05-06 12:14:25.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d521b1cb056159578207893feecf109cd999bf53","unresolved":true,"context_lines":[{"line_number":143,"context_line":"Documentation Impact"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":"The API reference and the unshelve documentation will be updated to explain"},{"line_number":146,"context_line":"the new behavior brought by the new microversion."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"References"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c80f5640_7dc8798c","line":146,"range":{"start_line":146,"start_character":17,"end_line":146,"end_character":24},"updated":"2022-05-03 15:21:43.000000000","message":"nit: introduced or enabled","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"b110e10caef87a98ffd5d7f1bfb73b142449858a","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Documentation Impact"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":"The API reference and the unshelve documentation will be updated to explain"},{"line_number":146,"context_line":"the new behavior brought by the new microversion."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"References"},{"line_number":149,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"68b943ea_ed6835cc","line":146,"range":{"start_line":146,"start_character":17,"end_line":146,"end_character":24},"in_reply_to":"c80f5640_7dc8798c","updated":"2022-05-06 12:14:25.000000000","message":"Done","commit_id":"cc4543293e46fec091a6389375c977a8dc120718"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4bc203361a8913aac8fe1198b80de1b35ec27339","unresolved":true,"context_lines":[{"line_number":37,"context_line":"- Ensure the instance state is ``shelved_offloaded``."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The instance will be shelved_offloaded to the host provided by the user,"},{"line_number":40,"context_line":"whatever the host availability_zone."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Note: The instance availability zone will be updated by nova accordingly."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"467e8464_7641c623","line":40,"updated":"2022-05-10 08:32:32.000000000","message":"rather, whatever the previous RequestSpec AZ value (as I see in your PS2 comment)\nI mean, if a user wanted to create an instance only for a \u0027az1\u0027 AZ (so it would only usehosts within \u0027az1\u0027 and any move operation should only move it to any compute within \u0027az1\u0027), it would tho be possible to move *off \u0027az1\u0027 by unshelving to, per say, host_az2 which is within \u0027az2\u0027 AZ.\n\nThat being said, this current behaviour is unrelated to your spec, so I\u0027m not asking you to change this.","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be0b70deb95761a98e169ce8ceddfe7d160def80","unresolved":false,"context_lines":[{"line_number":37,"context_line":"- Ensure the instance state is ``shelved_offloaded``."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The instance will be shelved_offloaded to the host provided by the user,"},{"line_number":40,"context_line":"whatever the host availability_zone."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Note: The instance availability zone will be updated by nova accordingly."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"62bd908b_c542841f","line":40,"in_reply_to":"3c381fe8_d963c7cf","updated":"2022-05-11 13:11:24.000000000","message":"Done","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"5cc7f96a53f8b28d42126b5cb21102c8777611a8","unresolved":true,"context_lines":[{"line_number":37,"context_line":"- Ensure the instance state is ``shelved_offloaded``."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The instance will be shelved_offloaded to the host provided by the user,"},{"line_number":40,"context_line":"whatever the host availability_zone."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Note: The instance availability zone will be updated by nova accordingly."},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3c381fe8_d963c7cf","line":40,"in_reply_to":"467e8464_7641c623","updated":"2022-05-10 09:02:59.000000000","message":"Actually, discussing it more on IRC, I have a concern about the AZ contract we made.\n\nIf the user asked for \u0027AZ1\u0027 explicitely but we move to hostB which is on \u0027AZ2\u0027, we need to explain in this spec what would be the change for the RequestSpec : I personally feel we should set RequestSpec.az to \u0027az2\u0027 in order to keep the stickiness to an AZ (that\u0027s what the user asked).","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4bc203361a8913aac8fe1198b80de1b35ec27339","unresolved":true,"context_lines":[{"line_number":39,"context_line":"The instance will be shelved_offloaded to the host provided by the user,"},{"line_number":40,"context_line":"whatever the host availability_zone."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Note: The instance availability zone will be updated by nova accordingly."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"07caadcd_14939982","line":42,"updated":"2022-05-10 08:32:32.000000000","message":"yup indeed.","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be0b70deb95761a98e169ce8ceddfe7d160def80","unresolved":false,"context_lines":[{"line_number":39,"context_line":"The instance will be shelved_offloaded to the host provided by the user,"},{"line_number":40,"context_line":"whatever the host availability_zone."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Note: The instance availability zone will be updated by nova accordingly."},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Alternatives"},{"line_number":45,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"0ce103f4_411c7d10","line":42,"in_reply_to":"07caadcd_14939982","updated":"2022-05-11 13:11:24.000000000","message":"Done","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4bc203361a8913aac8fe1198b80de1b35ec27339","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":"An error in such case will rise a http 400."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Ensure the instance state is ``shelved_offloaded``."},{"line_number":64,"context_line":"An error in such case will rise a http 409."}],"source_content_type":"text/x-rst","patch_set":3,"id":"41c03517_c85de424","line":61,"range":{"start_line":61,"start_character":39,"end_line":61,"end_character":42},"updated":"2022-05-10 08:32:32.000000000","message":"nit: will return a HTTP400 exception.","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be0b70deb95761a98e169ce8ceddfe7d160def80","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Change the validation schema making ``availability_zone`` and"},{"line_number":60,"context_line":"``host`` mutually exclusive."},{"line_number":61,"context_line":"An error in such case will rise a http 400."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Ensure the instance state is ``shelved_offloaded``."},{"line_number":64,"context_line":"An error in such case will rise a http 409."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5923eacf_b049c603","line":61,"range":{"start_line":61,"start_character":39,"end_line":61,"end_character":42},"in_reply_to":"41c03517_c85de424","updated":"2022-05-11 13:11:24.000000000","message":"Done","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4bc203361a8913aac8fe1198b80de1b35ec27339","unresolved":true,"context_lines":[{"line_number":61,"context_line":"An error in such case will rise a http 400."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Ensure the instance state is ``shelved_offloaded``."},{"line_number":64,"context_line":"An error in such case will rise a http 409."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Starting from the new API microversion, the"},{"line_number":67,"context_line":"POST ``/servers/{server_id}/action``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5f729459_5940cb80","line":64,"updated":"2022-05-10 08:32:32.000000000","message":"I\u0027m OK : \n- 400 if you provide both AZ and host values\n- 409 if your instance isn\u0027t yet offloaded","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"be0b70deb95761a98e169ce8ceddfe7d160def80","unresolved":false,"context_lines":[{"line_number":61,"context_line":"An error in such case will rise a http 400."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Ensure the instance state is ``shelved_offloaded``."},{"line_number":64,"context_line":"An error in such case will rise a http 409."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Starting from the new API microversion, the"},{"line_number":67,"context_line":"POST ``/servers/{server_id}/action``"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ec84f24b_087c5864","line":64,"in_reply_to":"5f729459_5940cb80","updated":"2022-05-11 13:11:24.000000000","message":"Done","commit_id":"1c874d0a03f7c7918ade2ef99cf61238ae275edd"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"59dd0a6995a393e31dd6850b2a3c03a65563a1f2","unresolved":true,"context_lines":[{"line_number":64,"context_line":"| No AZ    | No AZ, no host         | Free scheduling, reqspec.AZ kept None  |"},{"line_number":65,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":66,"context_line":"| No AZ    | AZ but, no host        | **Schedule in the AZ, keep the         |"},{"line_number":67,"context_line":"|          |                        | reqspec.AZ as None**                   |"},{"line_number":68,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":69,"context_line":"| No AZ    | No AZ but host         | Schedule on host, keep the reqspec.AZ  |"},{"line_number":70,"context_line":"|          |                        | as None                                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4e418148_5bfa985a","line":67,"updated":"2022-05-11 13:22:50.000000000","message":"This one sounds tricky to me. As the reqspec.AZ must be specified to move the server to the new AZ. But the reqspec.AZ field should then be removed or not kept.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ad979e68602a768e0c817152bc1fe33ab6c5788e","unresolved":true,"context_lines":[{"line_number":64,"context_line":"| No AZ    | No AZ, no host         | Free scheduling, reqspec.AZ kept None  |"},{"line_number":65,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":66,"context_line":"| No AZ    | AZ but, no host        | **Schedule in the AZ, keep the         |"},{"line_number":67,"context_line":"|          |                        | reqspec.AZ as None**                   |"},{"line_number":68,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":69,"context_line":"| No AZ    | No AZ but host         | Schedule on host, keep the reqspec.AZ  |"},{"line_number":70,"context_line":"|          |                        | as None                                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e7484429_34fb94ec","line":67,"in_reply_to":"4e418148_5bfa985a","updated":"2022-05-11 14:17:01.000000000","message":"Yeah it worth noting that you have to update the RequestSpec after the scheduling to achieve this behavior","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a49720883fe488e7cbe83539cfa8fcf77853464f","unresolved":true,"context_lines":[{"line_number":64,"context_line":"| No AZ    | No AZ, no host         | Free scheduling, reqspec.AZ kept None  |"},{"line_number":65,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":66,"context_line":"| No AZ    | AZ but, no host        | **Schedule in the AZ, keep the         |"},{"line_number":67,"context_line":"|          |                        | reqspec.AZ as None**                   |"},{"line_number":68,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":69,"context_line":"| No AZ    | No AZ but host         | Schedule on host, keep the reqspec.AZ  |"},{"line_number":70,"context_line":"|          |                        | as None                                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c086f283_dff3676b","line":67,"in_reply_to":"4e418148_5bfa985a","updated":"2022-05-11 14:20:47.000000000","message":"you would use the temporay mutation decorator to allow you to modify the request spec but ensure that chang is not commited.\n\nalternitivly a clean option is proably to add an avaiablity zone filed to \nhttps://github.com/openstack/nova/blob/e81211318a29c5f07ee2b9c753dbab041ee01c21/nova/objects/request_spec.py#L967\n\nalthough you coudl use the aggregates field to specify the requried aggreate corresponding to the AZ\nhttps://github.com/openstack/nova/blob/e81211318a29c5f07ee2b9c753dbab041ee01c21/nova/scheduler/request_filter.py#L138-L166\u003d","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c45eb6550e164b785ae8106393d7c92611d57b8d","unresolved":true,"context_lines":[{"line_number":64,"context_line":"| No AZ    | No AZ, no host         | Free scheduling, reqspec.AZ kept None  |"},{"line_number":65,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":66,"context_line":"| No AZ    | AZ but, no host        | **Schedule in the AZ, keep the         |"},{"line_number":67,"context_line":"|          |                        | reqspec.AZ as None**                   |"},{"line_number":68,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":69,"context_line":"| No AZ    | No AZ but host         | Schedule on host, keep the reqspec.AZ  |"},{"line_number":70,"context_line":"|          |                        | as None                                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5bf172b0_b331c799","line":67,"in_reply_to":"c086f283_dff3676b","updated":"2022-05-18 14:54:24.000000000","message":"Honestly, I don\u0027t see a problem here. We could just remove this .save() call if the original AZ was None :\n\nhttps://github.com/openstack/nova/blob/4939318649650b60dd07d161b80909e70d0e093e/nova/compute/api.py#L4470","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ad979e68602a768e0c817152bc1fe33ab6c5788e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"|          |                        | pointing that AZ                       |"},{"line_number":74,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":75,"context_line":"| With AZ  | AZ but no host         | Schedule to the new AZ, update the     |"},{"line_number":76,"context_line":"|          |                        | reqspec.AZ to the new AZ               |"},{"line_number":77,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":78,"context_line":"| With AZ  | No AZ but host         | Schedule to host, update reqspec.AZ    |"},{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4ac0bf86_dff27692","line":76,"updated":"2022-05-11 14:17:01.000000000","message":"hm, this is now not symmetric with the No AZ -\u003e AZ case. There we keep the original value of the RequestSpec but here in the AZ -\u003e other AZ case we update the RequestSpec to the new value. This will be confusing from the user perspective as in both case the unshelve requested an AZ, the scheduling does the same, use the AZ in the unshelve request, but then the resulting state is different, the first case leaves the instance unpinned while the second case re-pins the instance to the new AZ.\n\nI\u0027m not saying this is wrong. Maybe this is OK, but we need to properly document this in the API ref as it can be surprising.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e5102811ec4cd168520f2d5fe427f0cd72f5c4f2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"|          |                        | pointing that AZ                       |"},{"line_number":74,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":75,"context_line":"| With AZ  | AZ but no host         | Schedule to the new AZ, update the     |"},{"line_number":76,"context_line":"|          |                        | reqspec.AZ to the new AZ               |"},{"line_number":77,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":78,"context_line":"| With AZ  | No AZ but host         | Schedule to host, update reqspec.AZ    |"},{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b3c04519_f72deb2b","line":76,"in_reply_to":"4ac0bf86_dff27692","updated":"2022-05-17 17:49:10.000000000","message":"I\u0027m confused, this is the current behavior from L55 right?","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4f974108ae8344915e3a1e09fe911995ff13081e","unresolved":true,"context_lines":[{"line_number":73,"context_line":"|          |                        | pointing that AZ                       |"},{"line_number":74,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":75,"context_line":"| With AZ  | AZ but no host         | Schedule to the new AZ, update the     |"},{"line_number":76,"context_line":"|          |                        | reqspec.AZ to the new AZ               |"},{"line_number":77,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":78,"context_line":"| With AZ  | No AZ but host         | Schedule to host, update reqspec.AZ    |"},{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b13f45d3_a15a4d74","line":76,"in_reply_to":"967ea5f6_1625ef30","updated":"2022-05-18 13:54:11.000000000","message":"Aha, I see, that\u0027s the new behavior L66 above.\n\nI agree, it\u0027s very confusing to sometimes provide an AZ and pin and other times not. That seems like something we should avoid.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c45eb6550e164b785ae8106393d7c92611d57b8d","unresolved":true,"context_lines":[{"line_number":73,"context_line":"|          |                        | pointing that AZ                       |"},{"line_number":74,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":75,"context_line":"| With AZ  | AZ but no host         | Schedule to the new AZ, update the     |"},{"line_number":76,"context_line":"|          |                        | reqspec.AZ to the new AZ               |"},{"line_number":77,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":78,"context_line":"| With AZ  | No AZ but host         | Schedule to host, update reqspec.AZ    |"},{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"64e7d471_d2e3baf9","line":76,"in_reply_to":"b13f45d3_a15a4d74","updated":"2022-05-18 14:54:24.000000000","message":"Yeah, we said that if the AZ was pinned before, we should continue to pin it even we change the AZ for the new one.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fedb74f7acb1723b10e76ae3362783cbcfe4271e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"|          |                        | pointing that AZ                       |"},{"line_number":74,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":75,"context_line":"| With AZ  | AZ but no host         | Schedule to the new AZ, update the     |"},{"line_number":76,"context_line":"|          |                        | reqspec.AZ to the new AZ               |"},{"line_number":77,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":78,"context_line":"| With AZ  | No AZ but host         | Schedule to host, update reqspec.AZ    |"},{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c883087b_9b06e600","line":76,"in_reply_to":"b3c04519_f72deb2b","updated":"2022-05-17 17:54:19.000000000","message":"yes it is\n\ntoday if you pass the AZ we update it regardless of the orginal az request.\n\nso this is just line 55 above.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"06b921fb168b5f1e2eac92c5b97c1b5705905511","unresolved":true,"context_lines":[{"line_number":73,"context_line":"|          |                        | pointing that AZ                       |"},{"line_number":74,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":75,"context_line":"| With AZ  | AZ but no host         | Schedule to the new AZ, update the     |"},{"line_number":76,"context_line":"|          |                        | reqspec.AZ to the new AZ               |"},{"line_number":77,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":78,"context_line":"| With AZ  | No AZ but host         | Schedule to host, update reqspec.AZ    |"},{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"967ea5f6_1625ef30","line":76,"in_reply_to":"c607d2a6_6ccc9c93","updated":"2022-05-18 12:08:48.000000000","message":"I was confusing. Sorry. Let me try again:\n\nOld behavior:\nNo AZ -\u003e AZ \u003d\u003e pin to the new AZ (1)\n\nNew behavior:\nNo AZ -\u003e AZ \u003d\u003e move to the new AZ but do not pin to the new AZ. (2)\nAZ1 -\u003e AZ2 \u003d\u003e move to the new AZ2 and pin to AZ2. (3)\n\n* So (1) and (2) means the new behavior will be different from the old one\n* Also (2) and (3) are not symmetric in both case you provide a new AZ but in (2) you are not pinned to the new AZ while in (3) you are pinned to the new AZ.\n\nI still think this is OK, but we need to carefully documenting this as it can be surprising","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"02c9ce0af24564ab82f4d86f22ba12aa60f54225","unresolved":true,"context_lines":[{"line_number":73,"context_line":"|          |                        | pointing that AZ                       |"},{"line_number":74,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":75,"context_line":"| With AZ  | AZ but no host         | Schedule to the new AZ, update the     |"},{"line_number":76,"context_line":"|          |                        | reqspec.AZ to the new AZ               |"},{"line_number":77,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":78,"context_line":"| With AZ  | No AZ but host         | Schedule to host, update reqspec.AZ    |"},{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c607d2a6_6ccc9c93","line":76,"in_reply_to":"c883087b_9b06e600","updated":"2022-05-17 17:54:59.000000000","message":"sorry didnt mean to mark that resovled","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e5102811ec4cd168520f2d5fe427f0cd72f5c4f2","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"31a2475c_03e1f431","line":82,"updated":"2022-05-17 17:49:10.000000000","message":"This is probably okay, but.. is it necessary? Seems like as long as the AZ and host match, we should allow them to unshelve and pin the thing to the AZ of the host we chose, no?\n\nAlso, why not allow AZ\u003dNone,host\u003d$host in case I want to put it somewhere but have it not be tied to the original AZ. This is less important/useful, but as a user I probably won\u0027t understand why you won\u0027t let me do this.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"cd86c9215b415cbd96d19e1da9b6ef02bdd8e72b","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e1aff675_465e5ffe","line":82,"in_reply_to":"2d0fa056_516e6d2d","updated":"2022-05-18 10:04:09.000000000","message":"Note: The above use case is still possible but will be achieved in 2 steps, unpin first, then unshelve to host.\n\nI guess at the beginning, we made this mutually exclusive to make sure you can move to a host whatever the AZ and get rid of the case if the host provided is not in the specified AZ. \n\nAlso, maybe it was to reinforce that unshelve to AZ is available to PROJECT_USER and not unshelve to host (only PROJECT_ADMIN) \n\nIt becomes tricky regarding the client. We have three mutually exclusive parameters --availability-zone, --host, --unpin-az.\n--unpin-az is to avoid problems with the string type if --availability-zone\u003d\"None\"\nA user could want to unpin and move to an AZ.\nHere we have a problem if --unpin-az is used with --availability-zone as this is currently impossible.\n\nSo instead of only removing the mutually exclusive, I would be more in favor of adding a new API parameter regarding the az constraint.\nSo it will \"decouple\" the notion of AZ constraint and AZ location.\nIt will also add the possibility to pin/unpin the az of an instance. (pin is missing today)\nAlthough this is a more significant change in the spec and code, still doable, I think.\n\nPlease let me know what you think about it?","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"fedb74f7acb1723b10e76ae3362783cbcfe4271e","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2d0fa056_516e6d2d","line":82,"in_reply_to":"31a2475c_03e1f431","updated":"2022-05-17 17:54:19.000000000","message":"AZ\u003dNone,host\u003d$host came up for that usecase yes\n\nam but since we were makeign them uutally exclive it was dropped form the table.\n\ni dont mind droping the mutually exclusive part and supporting that as it seams like a natural enough semantic.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"c45eb6550e164b785ae8106393d7c92611d57b8d","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b6717ea0_660ad462","line":82,"in_reply_to":"48d3be50_3f1a5b88","updated":"2022-05-18 14:54:24.000000000","message":"I\u0027m not that opiniated about this concern, I\u0027m fine with the two differences : either we don\u0027t accept to provide both parameters, or we need to verify that the provided host is in the AZ parameter.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4f974108ae8344915e3a1e09fe911995ff13081e","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"48d3be50_3f1a5b88","line":82,"in_reply_to":"4ac42884_1d1dddc0","updated":"2022-05-18 13:54:11.000000000","message":"AZ being unset and AZ being set to None are two different cases. Maybe I was reading too much into this, but I think the intent here is to go from AZ-\u003eNo AZ by asking for an AZ\u003dNone (and optionally a host).\n\nThe point I\u0027m trying to make, really, is that I\u0027m not sure why we should not allow both AZ and host if they\u0027re sane. If you ask for a host, but an AZ that doesn\u0027t have that host, then error. But if you\u0027re asking for something sane, it seems reasonable to accept it. Now, maybe it\u0027s hard to make that determination in the API and we want to just reject to avoid having to determine if it\u0027s sane or not, I dunno.\n\nI\u0027m just trying to be the user here and act confused about why you won\u0027t let me do something that should be totally reasonable :)","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c03b18d771440eb21eeeec6ea1d62c687d1636ed","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"8cb7a3a1_ef279dc4","line":82,"in_reply_to":"56bccba5_393913d5","updated":"2022-05-23 12:52:37.000000000","message":"@Sylvain: I\u0027m OK with your comments / suggestions in the pad","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c0059f55641cd6912cfdad38e928363079e72efa","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f72f5596_0750c987","line":82,"in_reply_to":"a0843ec9_e71156fb","updated":"2022-05-19 11:51:15.000000000","message":"After Sean pointed out on IRC that we should decouple the effect of host from AZ (as we do that during boot too) I proposed a new table https://etherpad.opendev.org/p/unshelve-to-host#L166","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7d59a1d14206c958ad82d974af5f2a2c00ad255c","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d7d0b3cd_6c141a19","line":82,"in_reply_to":"b6717ea0_660ad462","updated":"2022-05-18 15:02:27.000000000","message":"\u003e AZ being unset and AZ being set to None are two different cases. \n\n/o\\ you are right. Then we have to make a bit bigger table to consider all 6 request in all possible start state X:\n\nX -\u003e AZ + host\nX -\u003e AZ + no host\nX -\u003e AZ\u003dNone + host\nX -\u003e AZ\u003dNone + no host\nX -\u003e No AZ + host /no host\nX -\u003e No AZ + no host","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"8ebaaa1e37ffd8224b41285ee1009ebb531e498f","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dff8572e_5c96d87b","line":82,"in_reply_to":"d7d0b3cd_6c141a19","updated":"2022-05-19 07:59:07.000000000","message":"Gibi note also the pb on the client explain in my previous comment. I think adding a param for AZ constraint will give also the opportunity to pin an instance.\n\nSo the table could be:\n\n```\nboot az  | az  | host | az constraint | Behavior\n----------------------------------------------------------------------\nno       | no  | no   | no            | unshelve to any host\nno       | no  | no   | az            | invalid\nno       | no  | no   | None          | invalid not pinned\nno       | no  | host | no            | unshelve to host rs\u003dNone\nno       | no  | host | az            | unshelve to host rs\u003daz if h in az\nno       | no  | host | None          | invalid not pinned\nno       | az  | no   | no            | unshelve to az, rs\u003dnone\nno       | az  | no   | az            | unshelve to az, rs\u003daz if az same\nno       | az  | no   | None          | invalid not pinned\nno       | az  | host | no            | unshelve to host rs\u003dnone if h in az\nno       | az  | host | az            | unshelve to host rs\u003daz if h in az + az same\nno       | az  | host | None          | invalid not pinned\n\nazb      | no  | no   | no            | unshelve to any host in azb\nazb      | no  | no   | az            | invalid\nazb      | no  | no   | None          | unshelve to any host rs\u003dNone *unpin\nazb      | no  | host | no            | unshelve to host if h in azb\nazb      | no  | host | az            | unshelve to host if h in az rs\u003daz\nazb      | no  | host | None          | unshelve to host rs\u003dnone *unpin\nazb      | az  | no   | no            | invalid pinned to azb\nazb      | az  | no   | az            | unshelve to az and rs\u003daz if az same\nazb      | az  | no   | None          | unshelve to az, rs\u003dnone *unpin\nazb      | az  | host | no            | unshelve to host if az\u003dazb and h in azb\nazb      | az  | host | az            | unshelve to host rs\u003daz if h in az\nazb      | az  | host | None          | unshelve to host rs\u003dNone if h in az\n```","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"42392e7848f797cf18a3a02cae1181bd6421744a","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a0843ec9_e71156fb","line":82,"in_reply_to":"dff8572e_5c96d87b","updated":"2022-05-19 10:22:43.000000000","message":"For now I ignored the additional API parameter (AZ constraint) proposed by Uggla above as we might not need it. And just went ahead and update the current table but also considering the difference between no AZ and AZ\u003dNone in the unshelve request. And also adding support for AZ\u003dAZ1 host\u003dhost1 in the unshelve request (if host1 in AZ1). And also flipping over the problematic no AZ \u003d\u003e AZ case as a response to Dan\u0027s comment:\n\n\u003e I agree, it\u0027s very confusing to sometimes provide an AZ and pin and other times not. That seems like something we should avoid.\"\n\nPlease see https://etherpad.opendev.org/p/unshelve-to-host#L102","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"06b921fb168b5f1e2eac92c5b97c1b5705905511","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"4ac42884_1d1dddc0","line":82,"in_reply_to":"e1aff675_465e5ffe","updated":"2022-05-18 12:08:48.000000000","message":"\u003e This is probably okay, but.. is it necessary? Seems like as long as the AZ and host match, we should allow them to unshelve and pin the thing to the AZ of the host we chose, no?\n\nBased on the current proposal this change would add these three new rules:\n* Any -\u003e AZ + host \u003d\u003e if host is not in AZ then reject\n* No AZ -\u003e AZ + host \u003d\u003e if host is in AZ then move to host but do not pin to AZ\n* AZ1 -\u003e AZ2 + host \u003d\u003e if host is in AZ2 then move to host and pin to AZ2\n\nIs this what you are after?\n\n\u003e Also, why not allow AZ\u003dNone,host\u003d$host in case I want to put it somewhere but have it not be tied to the original AZ. This is less important/useful, but as a user I probably won\u0027t understand why you won\u0027t let me do this.\n\nThe current proposal already has:\n* No AZ -\u003e No AZ but host \u003d\u003e move to host but not pin to any AZ \n* AZ -\u003e  No AZ but host \u003d\u003e move to host and re-pin to the AZ of the new host\n\nDo you suggest to keep the first but change the second rule not to re-pin?","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a3813fe612fd89d9ffa1cb63a888b3e01b3279fa","unresolved":true,"context_lines":[{"line_number":79,"context_line":"|          |                        | to the AZ of the host                  |"},{"line_number":80,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":81,"context_line":"| Any      | Both AZ and host       | Reject the request AZ and host are     |"},{"line_number":82,"context_line":"|          |                        | mutually exclusive                     |"},{"line_number":83,"context_line":"+----------+------------------------+----------------------------------------+"},{"line_number":84,"context_line":"| With AZ  | AZ set to None         | **Schedule to any host, unpin          |"},{"line_number":85,"context_line":"|          |                        | AZ reqspec.AZ to None**                |"}],"source_content_type":"text/x-rst","patch_set":4,"id":"56bccba5_393913d5","line":82,"in_reply_to":"f72f5596_0750c987","updated":"2022-05-19 14:04:40.000000000","message":"Captured my thoughts on both IRC and the etherpad. I think we reached a consensus, my only concern is making sure we don\u0027t persist the AZ change if we could end up with a NoValidHosts due a wrong (AZ, host) tuple.","commit_id":"1681ab949fb28c8da5051580005820e692861860"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8c059f89d61d0bf59691ac94f89f4421058d5359","unresolved":true,"context_lines":[{"line_number":97,"context_line":"|          |                           |       | otherwise reject (3)        |"},{"line_number":98,"context_line":"+----------+---------------------------+-------+-----------------------------+"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"(3) Check at the api and return an error."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Alternatives"},{"line_number":103,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"09e43a91_adacb77b","line":100,"updated":"2022-05-23 16:44:53.000000000","message":"I don\u0027t always use footnotes, but when I do, I start them at #1 ;P","commit_id":"ce983fd5adeecbe4f01893dce32f0cb5bd061f03"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"67c86f24b2bf638ce419769a7aafe08ee34effd5","unresolved":true,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Change the validation schema allowing ``availability_zone\u003dnull`` and"},{"line_number":118,"context_line":"``host``."},{"line_number":119,"context_line":"An error in schema validation will rise a HTTP400."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Ensure the instance state is ``shelved_offloaded``."},{"line_number":122,"context_line":"An error in such case will rise a HTTP409."}],"source_content_type":"text/x-rst","patch_set":5,"id":"8fe45e0b_808482e8","line":119,"range":{"start_line":119,"start_character":35,"end_line":119,"end_character":39},"updated":"2022-05-23 15:57:25.000000000","message":"nit: raise\n\nFrench explanation here : https://jeretiens.net/to-raise-to-rise-anglais/","commit_id":"ce983fd5adeecbe4f01893dce32f0cb5bd061f03"}]}
