)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"32445f1b340cffdf445e9a5005708ca8032df9cd","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"91c7ee46_135e3f9b","updated":"2023-06-09 12:48:18.000000000","message":"I\u0027ll make a patchset with the modifications","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"7c6bfcab4efcd546bfaf5312133a240a84cc9106","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"34c6fb00_daf26f2a","updated":"2023-06-07 19:36:12.000000000","message":"Thanks for the spec, I think it is heading in the right direction.\nWaiting for other folks\u0027 feedback.","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"3d8309294fa6fbeb866dcb33218a28010d095b7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d2768e89_2f130e43","in_reply_to":"91c7ee46_135e3f9b","updated":"2023-06-09 15:00:38.000000000","message":"Ack","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c113fb94_a1d4daa6","updated":"2023-08-02 20:15:09.000000000","message":"I have a couple of comment for you to consider.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f509cc48_1230e604","updated":"2023-08-11 13:05:04.000000000","message":"I need to make a lot of change in the RFE.\nI want to delete the revert call.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"47545e2c9898e589003929babb4e2b0bb8763a96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f8bdb3b5_e2ba1bd0","updated":"2023-07-07 13:54:10.000000000","message":"LGTM","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2c0c7635_4c85e973","in_reply_to":"c113fb94_a1d4daa6","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"49d281bca8dcfb1ef8a511101d041a6c1b5b64cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"66517e9c_8642e10e","updated":"2023-11-03 14:12:53.000000000","message":"Looks good to me","commit_id":"79bc44676d2c00c746333d8204088bff1125c9b3"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"205e9b80610226c2b35199c741c2f84b41c10101","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ff65c083_8ea6e3e0","updated":"2023-11-27 13:44:04.000000000","message":"LGTM. The open comment should not block the spec itself I think.","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ca716cd0cb9c9dbc22a6f6cac74c3c2bec92dc9f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f8c533cf_a7d07641","updated":"2023-11-17 09:42:03.000000000","message":"quick question: is there a way to undo the resize? (for instance, I want to reset to the default compute flavor - like removing the Octavia flavor from the LB), is it possible?","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"c2bf02f0196fda4ba5e2096d0758e48e61c93575","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"def193ad_7f51d4f3","in_reply_to":"f8c533cf_a7d07641","updated":"2023-11-22 14:48:56.000000000","message":"We\u0027ve already talked about this with Michael Johnson. I think that if you need to remove the flavor, you can do it with a `set` command. I only do the resizing if a flavor is passed to the call.","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"22c710c3175814b3657e0382826688343f017a13","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"230621bb_fae50e81","updated":"2024-07-02 10:43:10.000000000","message":"I just notices that SRIOV is under specs/version14.0/, so I think the path should be adjusted (to version15.0 I guess)","commit_id":"6f22cba7c29d5d7912908ff5e73b804cc02a8e4e"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"04d0d60c5b62c37a540b75f50a0dec8a6b366bbd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"1834df77_fb3cfa7a","in_reply_to":"230621bb_fae50e81","updated":"2024-07-02 12:41:59.000000000","message":"I change to version15.0","commit_id":"6f22cba7c29d5d7912908ff5e73b804cc02a8e4e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"3661b3e8b8350c4bae00f1db635872b38182241e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"5aea5d27_61959edf","updated":"2024-08-01 19:03:41.000000000","message":"LGTM","commit_id":"29855ddc694fa1060b228507ff2134f2b9b12416"}],"specs/version1.1/resize.rst":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"127077992ff5eff89d74d35edd36a2d3ae367a43","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Load balancer resizing"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Link to blueprint: https://bugs.launchpad.net/octavia/+bug/2023198"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"This spec\u0027s goal is to describe the functionality of resizing of load"},{"line_number":7,"context_line":"balancers. The main aim of this new feature is to enable you to change the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9b5d1709_37299148","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":17},"updated":"2023-06-09 10:10:08.000000000","message":"I haven\u0027t worked with blueprints yet, but bugs and bluesprints seem to be two different things in launchpad. In other words: Either that be \"bugreport\" or link should be to a blueprint instead of the bug.","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"32445f1b340cffdf445e9a5005708ca8032df9cd","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Load balancer resizing"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Link to blueprint: https://bugs.launchpad.net/octavia/+bug/2023198"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"This spec\u0027s goal is to describe the functionality of resizing of load"},{"line_number":7,"context_line":"balancers. The main aim of this new feature is to enable you to change the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e8a950e1_c18ca9a5","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":17},"in_reply_to":"9b5d1709_37299148","updated":"2023-06-09 12:48:18.000000000","message":"Sorry for that.","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"012ea3493cee82ac24928cf348034023c1491e50","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Load balancer resizing"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Link to blueprint: https://bugs.launchpad.net/octavia/+bug/2023198"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"This spec\u0027s goal is to describe the functionality of resizing of load"},{"line_number":7,"context_line":"balancers. The main aim of this new feature is to enable you to change the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"02892cdb_5500283f","line":4,"range":{"start_line":4,"start_character":8,"end_line":4,"end_character":17},"in_reply_to":"e8a950e1_c18ca9a5","updated":"2023-06-21 13:45:55.000000000","message":"Done","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"7c6bfcab4efcd546bfaf5312133a240a84cc9106","unresolved":true,"context_lines":[{"line_number":31,"context_line":"And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`old_flavor_id` fields."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"If a problem occurs during resize, a failover will be performed to return"},{"line_number":35,"context_line":"to the first flavor. If there is still a problem, the load balancer will"},{"line_number":36,"context_line":"be set to status ERROR. If a problem occurs during the revert, the load"},{"line_number":37,"context_line":"balancer will be set to ERROR."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4eed6368_2115d6f2","line":35,"range":{"start_line":34,"start_character":35,"end_line":35,"end_character":19},"updated":"2023-06-07 19:36:12.000000000","message":"maybe the user will not notice that the resize failed and was reverted.\nI think that in case of error, the LB should be in ERROR (no revert). The user would have to request a revert to fix it\nA LB in ERROR would still have the old amphorae and would still be functional","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"3d8309294fa6fbeb866dcb33218a28010d095b7b","unresolved":false,"context_lines":[{"line_number":31,"context_line":"And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`old_flavor_id` fields."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"If a problem occurs during resize, a failover will be performed to return"},{"line_number":35,"context_line":"to the first flavor. If there is still a problem, the load balancer will"},{"line_number":36,"context_line":"be set to status ERROR. If a problem occurs during the revert, the load"},{"line_number":37,"context_line":"balancer will be set to ERROR."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"70b59aaa_f02e4549","line":35,"range":{"start_line":34,"start_character":35,"end_line":35,"end_character":19},"in_reply_to":"4d9c58e9_a1be979d","updated":"2023-06-09 15:00:38.000000000","message":"Ack","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"127077992ff5eff89d74d35edd36a2d3ae367a43","unresolved":true,"context_lines":[{"line_number":31,"context_line":"And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`old_flavor_id` fields."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"If a problem occurs during resize, a failover will be performed to return"},{"line_number":35,"context_line":"to the first flavor. If there is still a problem, the load balancer will"},{"line_number":36,"context_line":"be set to status ERROR. If a problem occurs during the revert, the load"},{"line_number":37,"context_line":"balancer will be set to ERROR."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5e957ed2_393af23b","line":35,"range":{"start_line":34,"start_character":35,"end_line":35,"end_character":19},"in_reply_to":"4eed6368_2115d6f2","updated":"2023-06-09 10:10:08.000000000","message":"Yes, that sounds sensible to me. Although we should describe in more detail what happens when an error during resize occurs. Will the data base point to the new flavor for the LBs already if resize failed?","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"32445f1b340cffdf445e9a5005708ca8032df9cd","unresolved":true,"context_lines":[{"line_number":31,"context_line":"And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`old_flavor_id` fields."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"If a problem occurs during resize, a failover will be performed to return"},{"line_number":35,"context_line":"to the first flavor. If there is still a problem, the load balancer will"},{"line_number":36,"context_line":"be set to status ERROR. If a problem occurs during the revert, the load"},{"line_number":37,"context_line":"balancer will be set to ERROR."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4d9c58e9_a1be979d","line":35,"range":{"start_line":34,"start_character":35,"end_line":35,"end_character":19},"in_reply_to":"5e957ed2_393af23b","updated":"2023-06-09 12:48:18.000000000","message":"No, the flavor will only be modified if the resize was successful. But good point about the \"auto-revert\". I\u0027ll modify the spec to explain that if a resize is in error, we set the lb in error instead of reverting it.","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"7c6bfcab4efcd546bfaf5312133a240a84cc9106","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"},{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":"Add a field `old_flavor_id` in the `load_balancer` table to store the previous"},{"line_number":47,"context_line":"flavor. This will be used to revert a resize. The default value is NULL."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a51ab3e_505ec58b","line":46,"range":{"start_line":46,"start_character":31,"end_line":46,"end_character":56},"updated":"2023-06-07 19:36:12.000000000","message":"Just a quick comment:\nI wonder if you could have a dedicated table to handle \"migrations\" (with loadbalancer_id, new_flavor_id - or old_flavor_id if it is easier to handle - and setting lb.flavor_id to migration.new_flavor_id when it is successful)\nMaybe some other features of Octavia (topology, az?) could benefit from this table\n\nif we use a dedicated table with new_flavor_id, a simple failover would behave as the revert described in the doc (back to the flavor_id in the LB).\n\nany other opinion on this?\n(to the author of the spec, I\u0027m not requesting any changes here)","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"127077992ff5eff89d74d35edd36a2d3ae367a43","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"},{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":"Add a field `old_flavor_id` in the `load_balancer` table to store the previous"},{"line_number":47,"context_line":"flavor. This will be used to revert a resize. The default value is NULL."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5159395f_07db3290","line":46,"range":{"start_line":46,"start_character":31,"end_line":46,"end_character":56},"in_reply_to":"3a51ab3e_505ec58b","updated":"2023-06-09 10:10:08.000000000","message":"I am not sure. My feeling is that it is probably not worth the added complexity to implement migrations for various load balancer attributes other than the flavor id, but I might be wrong. Input from operators might be helpful here.\n\nI\u0027d probably call it `previous_flavor_id` instead of `old_flavor_id`, but that is a minor issue.","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"32445f1b340cffdf445e9a5005708ca8032df9cd","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"},{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":"Add a field `old_flavor_id` in the `load_balancer` table to store the previous"},{"line_number":47,"context_line":"flavor. This will be used to revert a resize. The default value is NULL."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"72da2a09_be4caacf","line":46,"range":{"start_line":46,"start_character":31,"end_line":46,"end_character":56},"in_reply_to":"5159395f_07db3290","updated":"2023-06-09 12:48:18.000000000","message":"Ack","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"3d8309294fa6fbeb866dcb33218a28010d095b7b","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"},{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":"Add a field `old_flavor_id` in the `load_balancer` table to store the previous"},{"line_number":47,"context_line":"flavor. This will be used to revert a resize. The default value is NULL."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9d07629f_a59501bd","line":46,"range":{"start_line":46,"start_character":31,"end_line":46,"end_character":56},"in_reply_to":"72da2a09_be4caacf","updated":"2023-06-09 15:00:38.000000000","message":"Ack","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"ae41df2dc315c33907ba14266e989baf6f1d6bfb","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Start a resize of a load balancer::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    {"},{"line_number":59,"context_line":"        \"resize\": {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b99a6e67_2a7f9063","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":59},"updated":"2023-06-08 09:53:49.000000000","message":"I think we need more detail on the policy required to perform this call\n(for instance a LB Failover is an admin call, it requires the load-balancer:admin rule/capabilities https://opendev.org/openstack/octavia/src/branch/master/octavia/policies/loadbalancer.py#L81-L83)\nis this new endpoint available to the \"normal\" members (normal users)?\nCould you specify \"requires load-balancer:write\" in that case?","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"3d8309294fa6fbeb866dcb33218a28010d095b7b","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Start a resize of a load balancer::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    {"},{"line_number":59,"context_line":"        \"resize\": {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"344ac7ef_15389d60","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":59},"in_reply_to":"25a6caa2_9827f1f9","updated":"2023-06-09 15:00:38.000000000","message":"Ack","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"32445f1b340cffdf445e9a5005708ca8032df9cd","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Start a resize of a load balancer::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    {"},{"line_number":59,"context_line":"        \"resize\": {"}],"source_content_type":"text/x-rst","patch_set":2,"id":"25a6caa2_9827f1f9","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":59},"in_reply_to":"b99a6e67_2a7f9063","updated":"2023-06-09 12:48:18.000000000","message":"Ack","commit_id":"d3a5b17d51d180cb8b1151e38615634594b310fd"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"796dd8c9accbd95e750692f3cf6f8c0268249760","unresolved":true,"context_lines":[{"line_number":34,"context_line":"If a problem occurs during resizing, the load balancer status will be set"},{"line_number":35,"context_line":"to ERROR. The change of flavor in database takes place only on success."},{"line_number":36,"context_line":"The flavor will remain the same in database, allowing the user to perform"},{"line_number":37,"context_line":"a failover to repair the resize error."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"},{"line_number":40,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"72d8c24a_9381c0bd","line":37,"range":{"start_line":37,"start_character":2,"end_line":37,"end_character":10},"updated":"2023-06-22 13:45:13.000000000","message":"in a previous comment, I wrote that a failover would act as a revert, but the failover is an admin API, a regular user cannot trigger it.\nSo I think we should have here:\n\"allowing the user to perform a revert to repair the resize error\"","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"207e3789b6a432fd32e295da233b9a1b2da0efac","unresolved":true,"context_lines":[{"line_number":34,"context_line":"If a problem occurs during resizing, the load balancer status will be set"},{"line_number":35,"context_line":"to ERROR. The change of flavor in database takes place only on success."},{"line_number":36,"context_line":"The flavor will remain the same in database, allowing the user to perform"},{"line_number":37,"context_line":"a failover to repair the resize error."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"},{"line_number":40,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a705d2a2_fb754d46","line":37,"range":{"start_line":37,"start_character":2,"end_line":37,"end_character":10},"in_reply_to":"72d8c24a_9381c0bd","updated":"2023-06-22 13:52:51.000000000","message":"Ack I will change it in the next patchset.","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"c85970b056637312378f391fd8e0b72d43621604","unresolved":false,"context_lines":[{"line_number":34,"context_line":"If a problem occurs during resizing, the load balancer status will be set"},{"line_number":35,"context_line":"to ERROR. The change of flavor in database takes place only on success."},{"line_number":36,"context_line":"The flavor will remain the same in database, allowing the user to perform"},{"line_number":37,"context_line":"a failover to repair the resize error."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"},{"line_number":40,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"2e512a35_690b98b5","line":37,"range":{"start_line":37,"start_character":2,"end_line":37,"end_character":10},"in_reply_to":"a705d2a2_fb754d46","updated":"2023-06-29 12:58:34.000000000","message":"Done","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"796dd8c9accbd95e750692f3cf6f8c0268249760","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Revert load balancer resizing::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    {"},{"line_number":90,"context_line":"        \"revertResize\": null"},{"line_number":91,"context_line":"    }"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. list-table:: Request Parameters"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f58c7ba5_8c7cc144","line":90,"range":{"start_line":87,"start_character":4,"end_line":90,"end_character":28},"updated":"2023-06-22 13:45:13.000000000","message":"I don\u0027t really like this approach, I would prefer a \nPOST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize_revert (or whatever keyword you prefer - and no camelcase!)","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"1805c16b2814b09b8f1d1619304aa21c7de6daf0","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Revert load balancer resizing::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    {"},{"line_number":90,"context_line":"        \"revertResize\": null"},{"line_number":91,"context_line":"    }"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. list-table:: Request Parameters"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ffa6ef94_581e2b76","line":90,"range":{"start_line":87,"start_character":4,"end_line":90,"end_character":28},"in_reply_to":"44c2db1b_ce52cf11","updated":"2023-06-29 12:52:50.000000000","message":"I agree with you and have made the changes to the revert request.","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"9538aa1da5a7e39e756fcedd215b2c1e19436006","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Revert load balancer resizing::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    {"},{"line_number":90,"context_line":"        \"revertResize\": null"},{"line_number":91,"context_line":"    }"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. list-table:: Request Parameters"}],"source_content_type":"text/x-rst","patch_set":4,"id":"44c2db1b_ce52cf11","line":90,"range":{"start_line":87,"start_character":4,"end_line":90,"end_character":28},"in_reply_to":"adc995ae_09201eca","updated":"2023-06-27 10:54:07.000000000","message":"I see no problem with reusing the same endpoint for revert, but I\u0027m not sure about the null value. I think we should require it to be set to `true` instead. A value of `null` in order to activate something seems counterintuitive.\n\nIf we use the same endpoint I think we should use the same structure for all requests to the endpoint, ie. nest it inside `resize` like so: `{ \"resize\": { \"revert\": true } }`. Also we should probably make `revert` and `flavor_id` mutual exclusive meaning one cannot include both in requests. Maybe that mutual exclusion is why Gregory suggested using a separate endpoint for the revert. This is something that would need to be checked on server side.","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"207e3789b6a432fd32e295da233b9a1b2da0efac","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Revert load balancer resizing::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    {"},{"line_number":90,"context_line":"        \"revertResize\": null"},{"line_number":91,"context_line":"    }"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. list-table:: Request Parameters"}],"source_content_type":"text/x-rst","patch_set":4,"id":"faeae85e_6e7b1638","line":90,"range":{"start_line":87,"start_character":4,"end_line":90,"end_character":28},"in_reply_to":"f58c7ba5_8c7cc144","updated":"2023-06-22 13:52:51.000000000","message":"Ack for no camelcase\nFor the endpoint I used the same approach of nova resize. When you call a revert of a resize you only change the request body. Not the endpoint. But if you disagree with this endpoint I can change it.","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"356e92dd71789954a5998c60cc458033c3531ee9","unresolved":true,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"Revert load balancer resizing::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    {"},{"line_number":90,"context_line":"        \"revertResize\": null"},{"line_number":91,"context_line":"    }"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":".. list-table:: Request Parameters"}],"source_content_type":"text/x-rst","patch_set":4,"id":"adc995ae_09201eca","line":90,"range":{"start_line":87,"start_character":4,"end_line":90,"end_character":28},"in_reply_to":"faeae85e_6e7b1638","updated":"2023-06-22 13:55:07.000000000","message":"yeah maybe you\u0027re right, let\u0027s wait for other people\u0027s opinion on that","commit_id":"d2f63af4bfcc0e6edf684f3a9880acf0aa01e14e"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":25,"context_line":"with the new flavor ID. This will involve patching the `get_failover_LB_flow`"},{"line_number":26,"context_line":"to add the `flavorId` parameter. At the end of the workflow execution, an"},{"line_number":27,"context_line":"update will be performed in the database to change the load balancer `flavorId`"},{"line_number":28,"context_line":"and add the old `flavorId` to the `previous_flavor_id` field in database."},{"line_number":29,"context_line":"When reverting, the same workflow will be executed simply by giving the"},{"line_number":30,"context_line":"`flavorId` stored in the `previous_flavor_id` field of the `load_balancer`"},{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"482384dd_dbd4c6a8","line":28,"range":{"start_line":28,"start_character":35,"end_line":28,"end_character":54},"updated":"2023-08-02 20:15:09.000000000","message":"Do we need to keep this?\nIf so I would recommend a new table in the DB as we should be conservative in adding new columns. It impacts performance.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":25,"context_line":"with the new flavor ID. This will involve patching the `get_failover_LB_flow`"},{"line_number":26,"context_line":"to add the `flavorId` parameter. At the end of the workflow execution, an"},{"line_number":27,"context_line":"update will be performed in the database to change the load balancer `flavorId`"},{"line_number":28,"context_line":"and add the old `flavorId` to the `previous_flavor_id` field in database."},{"line_number":29,"context_line":"When reverting, the same workflow will be executed simply by giving the"},{"line_number":30,"context_line":"`flavorId` stored in the `previous_flavor_id` field of the `load_balancer`"},{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"de2c6ed9_f9ed8a76","line":28,"range":{"start_line":28,"start_character":35,"end_line":28,"end_character":54},"in_reply_to":"482384dd_dbd4c6a8","updated":"2023-08-11 13:05:04.000000000","message":"As you said:\n\u003e Do we need this or could the admin just run the resize command again with the alternate flavor?\n\u003e We should try to keep the API as simple as possible, plus it saves coding work.\n\nIt\u0027s no longer necessary to have this persistent information. In the sense that if a user wants to revert he can simply restart the resize with his new flavor or simply do a failover.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":25,"context_line":"with the new flavor ID. This will involve patching the `get_failover_LB_flow`"},{"line_number":26,"context_line":"to add the `flavorId` parameter. At the end of the workflow execution, an"},{"line_number":27,"context_line":"update will be performed in the database to change the load balancer `flavorId`"},{"line_number":28,"context_line":"and add the old `flavorId` to the `previous_flavor_id` field in database."},{"line_number":29,"context_line":"When reverting, the same workflow will be executed simply by giving the"},{"line_number":30,"context_line":"`flavorId` stored in the `previous_flavor_id` field of the `load_balancer`"},{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9e72da15_d70bb8f7","line":28,"range":{"start_line":28,"start_character":35,"end_line":28,"end_character":54},"in_reply_to":"de2c6ed9_f9ed8a76","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":26,"context_line":"to add the `flavorId` parameter. At the end of the workflow execution, an"},{"line_number":27,"context_line":"update will be performed in the database to change the load balancer `flavorId`"},{"line_number":28,"context_line":"and add the old `flavorId` to the `previous_flavor_id` field in database."},{"line_number":29,"context_line":"When reverting, the same workflow will be executed simply by giving the"},{"line_number":30,"context_line":"`flavorId` stored in the `previous_flavor_id` field of the `load_balancer`"},{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`previous_flavor_id` fields."}],"source_content_type":"text/x-rst","patch_set":6,"id":"dbc1d983_29c9a06b","line":29,"updated":"2023-08-02 20:15:09.000000000","message":"You can store the future and previous flavor ID in the flow state information, thus not requiring database round trips.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":26,"context_line":"to add the `flavorId` parameter. At the end of the workflow execution, an"},{"line_number":27,"context_line":"update will be performed in the database to change the load balancer `flavorId`"},{"line_number":28,"context_line":"and add the old `flavorId` to the `previous_flavor_id` field in database."},{"line_number":29,"context_line":"When reverting, the same workflow will be executed simply by giving the"},{"line_number":30,"context_line":"`flavorId` stored in the `previous_flavor_id` field of the `load_balancer`"},{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`previous_flavor_id` fields."}],"source_content_type":"text/x-rst","patch_set":6,"id":"0940f20e_8025b119","line":29,"in_reply_to":"22510179_14c85d6a","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":26,"context_line":"to add the `flavorId` parameter. At the end of the workflow execution, an"},{"line_number":27,"context_line":"update will be performed in the database to change the load balancer `flavorId`"},{"line_number":28,"context_line":"and add the old `flavorId` to the `previous_flavor_id` field in database."},{"line_number":29,"context_line":"When reverting, the same workflow will be executed simply by giving the"},{"line_number":30,"context_line":"`flavorId` stored in the `previous_flavor_id` field of the `load_balancer`"},{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`previous_flavor_id` fields."}],"source_content_type":"text/x-rst","patch_set":6,"id":"22510179_14c85d6a","line":29,"in_reply_to":"dbc1d983_29c9a06b","updated":"2023-08-11 13:05:04.000000000","message":"No longer required.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`previous_flavor_id` fields."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"If a problem occurs during resizing, the load balancer status will be set"},{"line_number":35,"context_line":"to ERROR. The change of flavor in database takes place only on success."},{"line_number":36,"context_line":"The flavor will remain the same in database, allowing the user to perform"},{"line_number":37,"context_line":"a revert to repair the resize error."}],"source_content_type":"text/x-rst","patch_set":6,"id":"734523c3_09f2ba60","line":34,"range":{"start_line":34,"start_character":55,"end_line":34,"end_character":61},"updated":"2023-08-02 20:15:09.000000000","message":"provisioning status\n\nJust to be clear","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`previous_flavor_id` fields."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"If a problem occurs during resizing, the load balancer status will be set"},{"line_number":35,"context_line":"to ERROR. The change of flavor in database takes place only on success."},{"line_number":36,"context_line":"The flavor will remain the same in database, allowing the user to perform"},{"line_number":37,"context_line":"a revert to repair the resize error."}],"source_content_type":"text/x-rst","patch_set":6,"id":"6c2dacbe_e2d864b0","line":34,"range":{"start_line":34,"start_character":55,"end_line":34,"end_character":61},"in_reply_to":"53c4acc4_61948234","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":31,"context_line":"table. And a database update will be performed to change the `flavor_id` and"},{"line_number":32,"context_line":"`previous_flavor_id` fields."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"If a problem occurs during resizing, the load balancer status will be set"},{"line_number":35,"context_line":"to ERROR. The change of flavor in database takes place only on success."},{"line_number":36,"context_line":"The flavor will remain the same in database, allowing the user to perform"},{"line_number":37,"context_line":"a revert to repair the resize error."}],"source_content_type":"text/x-rst","patch_set":6,"id":"53c4acc4_61948234","line":34,"range":{"start_line":34,"start_character":55,"end_line":34,"end_character":61},"in_reply_to":"734523c3_09f2ba60","updated":"2023-08-11 13:05:04.000000000","message":"This will be changed in the next patchset","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"},{"line_number":40,"context_line":"------------"},{"line_number":41,"context_line":"None"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bd786d81_18483959","line":41,"updated":"2023-08-02 20:15:09.000000000","message":"One alternative was listed in the problem description section which is to rebuild the load balancer.\nAnother would be adding a \"backup\" and \"restore\" API, which we have considered in the past.\nObviously those are not better alternatives, but they are alternatives.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"},{"line_number":40,"context_line":"------------"},{"line_number":41,"context_line":"None"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ff409089_709b4d6e","line":41,"in_reply_to":"2bce6b16_27fb77a4","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Alternatives"},{"line_number":40,"context_line":"------------"},{"line_number":41,"context_line":"None"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"2bce6b16_27fb77a4","line":41,"in_reply_to":"bd786d81_18483959","updated":"2023-08-11 13:05:04.000000000","message":"All right, I\u0027ll add them. I didn\u0027t know exactly what to put in the section.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"},{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":"Add a field `previous_flavor_id` in the `load_balancer` table to store"},{"line_number":47,"context_line":"the previous flavor. This will be used to revert a resize. The default value"},{"line_number":48,"context_line":"is NULL."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"527d775b_5d4367d9","line":46,"updated":"2023-08-02 20:15:09.000000000","message":"I don\u0027t think we need this as we can store state in the flow.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"},{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":"Add a field `previous_flavor_id` in the `load_balancer` table to store"},{"line_number":47,"context_line":"the previous flavor. This will be used to revert a resize. The default value"},{"line_number":48,"context_line":"is NULL."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"57d4747f_0f9a309d","line":46,"in_reply_to":"527d775b_5d4367d9","updated":"2023-08-11 13:05:04.000000000","message":"No longer required.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Data model impact"},{"line_number":45,"context_line":"-----------------"},{"line_number":46,"context_line":"Add a field `previous_flavor_id` in the `load_balancer` table to store"},{"line_number":47,"context_line":"the previous flavor. This will be used to revert a resize. The default value"},{"line_number":48,"context_line":"is NULL."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5c24f0d4_efb1205e","line":46,"in_reply_to":"57d4747f_0f9a309d","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":52,"context_line":"---------------"},{"line_number":53,"context_line":"Add one endpoint in `/v2.0/lbaas/loadbalancers`."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"To run this endpoint, the user must have the role `load-balancer:write\"`."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Start a resize of a load balancer::"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"35df44dd_809d7038","line":55,"updated":"2023-08-02 20:15:09.000000000","message":"Currently failover is an admin role:\n\"os_load-balancer_api:loadbalancer:put_failover\": \"rule:load-balancer:admin\"\n\nI think this should be admin as well.\nChanging the flavor may have impact billing, etc. so it is probably best that the default be admin.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":52,"context_line":"---------------"},{"line_number":53,"context_line":"Add one endpoint in `/v2.0/lbaas/loadbalancers`."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"To run this endpoint, the user must have the role `load-balancer:write\"`."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Start a resize of a load balancer::"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ea539390_d98bcd98","line":55,"in_reply_to":"35df44dd_809d7038","updated":"2023-08-11 13:05:04.000000000","message":"By default I can set it to role:loadbalancer-admin. But in my mind, it\u0027s a customer who wants to change the flavor of his loadbalancer. As with nova, a customer can simply resize his VM.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":52,"context_line":"---------------"},{"line_number":53,"context_line":"Add one endpoint in `/v2.0/lbaas/loadbalancers`."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"To run this endpoint, the user must have the role `load-balancer:write\"`."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Start a resize of a load balancer::"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"072a48ea_14e7da19","line":55,"in_reply_to":"ea539390_d98bcd98","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    {"},{"line_number":62,"context_line":"        \"resize\": {"},{"line_number":63,"context_line":"            \"flavor_id\": \"6d425a5e-429f-4848-b240-ab31c6d211e4\""},{"line_number":64,"context_line":"        }"},{"line_number":65,"context_line":"    }"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"d7fcc11f_985bb40b","line":63,"updated":"2023-08-02 20:15:09.000000000","message":"For clarity, maybe \"new_flavor_id\"?","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    {"},{"line_number":62,"context_line":"        \"resize\": {"},{"line_number":63,"context_line":"            \"flavor_id\": \"6d425a5e-429f-4848-b240-ab31c6d211e4\""},{"line_number":64,"context_line":"        }"},{"line_number":65,"context_line":"    }"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"b703face_6a3ac377","line":63,"in_reply_to":"23daa6e1_d524c822","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    {"},{"line_number":62,"context_line":"        \"resize\": {"},{"line_number":63,"context_line":"            \"flavor_id\": \"6d425a5e-429f-4848-b240-ab31c6d211e4\""},{"line_number":64,"context_line":"        }"},{"line_number":65,"context_line":"    }"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"23daa6e1_d524c822","line":63,"in_reply_to":"d7fcc11f_985bb40b","updated":"2023-08-11 13:05:04.000000000","message":"This will be changed in the next patchset","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    * - 404 Not Found"},{"line_number":85,"context_line":"      - Load balancer not found"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Revert load balancer resizing::"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7ae2d97b_f6c3d5a6","line":87,"updated":"2023-08-02 20:15:09.000000000","message":"Do we need this or could the admin just run the resize command again with the alternate flavor?\nWe should try to keep the API as simple as possible, plus it saves coding work.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    * - 404 Not Found"},{"line_number":85,"context_line":"      - Load balancer not found"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Revert load balancer resizing::"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"e69199a2_2967cbad","line":87,"in_reply_to":"7ae2d97b_f6c3d5a6","updated":"2023-08-11 13:05:04.000000000","message":"You\u0027re right. In my first idea, I\u0027d update the loadbalancer before launching the workflow and then I\u0027d have the old and new flavors. But since we update at the end. If the workflow failed, I wouldn\u0027t have the old flavor in the DB.\nSo I\u0027m going to delete the revert call and I won\u0027t need to change the table/DB anymore.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    * - 404 Not Found"},{"line_number":85,"context_line":"      - Load balancer not found"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"Revert load balancer resizing::"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    POST /v2.0/lbaas/loadbalancers/{loadbalancer_id}/resize"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f54e43c_fde4480a","line":87,"in_reply_to":"e69199a2_2967cbad","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                --flavor \u003cflavor-id|flavor-name\u003e \\"},{"line_number":146,"context_line":"                \u003clb-id|lb-name\u003e"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Revert a resize: openstack loadbalancer resize --revert \u003clb-id|lb-name\u003e"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Add functions to resize and revert a resize in the `openstacksdk`."},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"6df93df4_db5fc18d","line":148,"updated":"2023-08-02 20:15:09.000000000","message":"Do we need this or could the admin just run the resize command again with the alternate flavor?\nWe should try to keep the API as simple as possible, plus it saves coding work.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                --flavor \u003cflavor-id|flavor-name\u003e \\"},{"line_number":146,"context_line":"                \u003clb-id|lb-name\u003e"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Revert a resize: openstack loadbalancer resize --revert \u003clb-id|lb-name\u003e"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Add functions to resize and revert a resize in the `openstacksdk`."},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"afe2c4e1_d6bdfc18","line":148,"in_reply_to":"106c11ff_b2653f8a","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":145,"context_line":"                --flavor \u003cflavor-id|flavor-name\u003e \\"},{"line_number":146,"context_line":"                \u003clb-id|lb-name\u003e"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Revert a resize: openstack loadbalancer resize --revert \u003clb-id|lb-name\u003e"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Add functions to resize and revert a resize in the `openstacksdk`."},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"106c11ff_b2653f8a","line":148,"in_reply_to":"6df93df4_db5fc18d","updated":"2023-08-11 13:05:04.000000000","message":"No longer required.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"662df7893c7f8f759ee4f08d4a442a2caca8b51d","unresolved":true,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Documentation Impact"},{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":" - A user guide to explain how that works"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"References"},{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9f0a24e7_77b2a451","line":198,"updated":"2023-08-02 20:15:09.000000000","message":"We also need to not that some flavor changes can cause data plane downtime. For example, going from a standalone flavor to a active/standby would require downtime. Unless you plan to address that scenario as well.\nSimilarly, going from a newer image tag to an older one may cause failures or features to be disabled.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"036e4a4b989e7c793ecf3f236c3454008922940a","unresolved":true,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Documentation Impact"},{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":" - A user guide to explain how that works"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"References"},{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a05549a5_6a46a125","line":198,"in_reply_to":"9f0a24e7_77b2a451","updated":"2023-08-11 13:05:04.000000000","message":"Good point. I will add this in the next patch set to remember.","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"03989b3058f6406957e8e9853c8e6806fe7dcf60","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Documentation Impact"},{"line_number":197,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":198,"context_line":" - A user guide to explain how that works"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"References"},{"line_number":201,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"cb770764_2b4cd639","line":198,"in_reply_to":"a05549a5_6a46a125","updated":"2023-10-04 12:21:13.000000000","message":"Ack","commit_id":"d8cae3913163bd641fe2853582feb8bd1ecf3c4a"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"77b0cf4164fb2356ddd4a64e9ba9f116c268bcca","unresolved":true,"context_lines":[{"line_number":138,"context_line":" - A user guide to explain how that works"},{"line_number":139,"context_line":"   Note that some flavor changes can cause data plane downtime. For example,"},{"line_number":140,"context_line":"   going from a standalone flavor to a active/standby would require downtime."},{"line_number":141,"context_line":"   Unless you plan to address that scenario as well. Similarly, going from a"},{"line_number":142,"context_line":"   newer image tag to an older one may cause failures or features to be"},{"line_number":143,"context_line":"   disabled."},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"c9a71305_e99d8264","line":141,"range":{"start_line":141,"start_character":3,"end_line":141,"end_character":52},"updated":"2023-10-25 15:12:41.000000000","message":"Copy paste typo (?)","commit_id":"fecf51c6aaff3c7dc85b39c9789e3389ae2d3f4f"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"91ff6f28106c708671dd6692dd4298e0b80b8e85","unresolved":false,"context_lines":[{"line_number":138,"context_line":" - A user guide to explain how that works"},{"line_number":139,"context_line":"   Note that some flavor changes can cause data plane downtime. For example,"},{"line_number":140,"context_line":"   going from a standalone flavor to a active/standby would require downtime."},{"line_number":141,"context_line":"   Unless you plan to address that scenario as well. Similarly, going from a"},{"line_number":142,"context_line":"   newer image tag to an older one may cause failures or features to be"},{"line_number":143,"context_line":"   disabled."},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"1bcd2117_937ee95f","line":141,"range":{"start_line":141,"start_character":3,"end_line":141,"end_character":52},"in_reply_to":"c9a71305_e99d8264","updated":"2023-11-03 14:04:10.000000000","message":"Good catch :)","commit_id":"fecf51c6aaff3c7dc85b39c9789e3389ae2d3f4f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"3fa4847af10e66cd1c55e74582d9648ed466a5ef","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Documentation Impact"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":138,"context_line":" - A user guide to explain how that works"},{"line_number":139,"context_line":"   Note that some flavor changes can cause data plane downtime. For example,"},{"line_number":140,"context_line":"   going from a standalone flavor to a active/standby would require downtime."},{"line_number":141,"context_line":"   Similarly, going from a newer image tag to an older one may cause failures"},{"line_number":142,"context_line":"   or features to be disabled."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"c4c9b5d1_88ffc6d1","line":140,"range":{"start_line":139,"start_character":64,"end_line":140,"end_character":76},"updated":"2023-11-17 09:40:18.000000000","message":"I\u0027m pretty sure that it would not work correctly with the current code. for instance, in active/standby the server groups are created only when the LB is created, a resize (from SINGLE to A/S) would create amphorae VMs without server-group\n\n(note that this specific issue will be fixed in https://review.opendev.org/c/openstack/octavia/+/898212)","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"e381daf138b14f3781768fd017cb4dd79d49b240","unresolved":false,"context_lines":[{"line_number":136,"context_line":"Documentation Impact"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":138,"context_line":" - A user guide to explain how that works"},{"line_number":139,"context_line":"   Note that some flavor changes can cause data plane downtime. For example,"},{"line_number":140,"context_line":"   going from a standalone flavor to a active/standby would require downtime."},{"line_number":141,"context_line":"   Similarly, going from a newer image tag to an older one may cause failures"},{"line_number":142,"context_line":"   or features to be disabled."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"39a54bc4_0419da4c","line":140,"range":{"start_line":139,"start_character":64,"end_line":140,"end_character":76},"in_reply_to":"44da6024_304b9762","updated":"2024-05-30 12:38:42.000000000","message":"I agree with you.","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":33408,"name":"Pierre-Yves Jourel","email":"pierre-yves.jourel@ovhcloud.com","username":"PYJ"},"change_message_id":"d86f2186135f20a7497549cd730433fede061043","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Documentation Impact"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":138,"context_line":" - A user guide to explain how that works"},{"line_number":139,"context_line":"   Note that some flavor changes can cause data plane downtime. For example,"},{"line_number":140,"context_line":"   going from a standalone flavor to a active/standby would require downtime."},{"line_number":141,"context_line":"   Similarly, going from a newer image tag to an older one may cause failures"},{"line_number":142,"context_line":"   or features to be disabled."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"fab8ec33_df29fc2c","line":140,"range":{"start_line":139,"start_character":64,"end_line":140,"end_character":76},"in_reply_to":"c261c906_09e3eb29","updated":"2024-02-07 14:14:26.000000000","message":"And why not prohibit resizing from standalone to active/standby. And only allow resizing from the same type of flavor profile. In my test, resizing from a/s works perfectly because it\u0027s actually a simple failover behind the scene. I also tried it with a standalone and had no problem. But when I switch from one to the other, I end up with a single amphora. While I\u0027m in a/s.\nSo adding a check before running resize might be a good solution before seeing about adding the resize function between topology?","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"696d3d30a64911cc714ea7babb0fe0415b9322c5","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Documentation Impact"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":138,"context_line":" - A user guide to explain how that works"},{"line_number":139,"context_line":"   Note that some flavor changes can cause data plane downtime. For example,"},{"line_number":140,"context_line":"   going from a standalone flavor to a active/standby would require downtime."},{"line_number":141,"context_line":"   Similarly, going from a newer image tag to an older one may cause failures"},{"line_number":142,"context_line":"   or features to be disabled."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"c261c906_09e3eb29","line":140,"range":{"start_line":139,"start_character":64,"end_line":140,"end_character":76},"in_reply_to":"c4c9b5d1_88ffc6d1","updated":"2024-02-06 21:13:52.000000000","message":"Yeah, I think this is an issue, plus there needs to be some discussion of the limitations when changing flavors. It probably should limit what flavor profile values are allowed to be changed, and block all others.\nChanging images would be ok, but the documentation should warn that it should not change to older images.","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"528588407a1920c3d08a193c73fd1a50841d280e","unresolved":true,"context_lines":[{"line_number":136,"context_line":"Documentation Impact"},{"line_number":137,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":138,"context_line":" - A user guide to explain how that works"},{"line_number":139,"context_line":"   Note that some flavor changes can cause data plane downtime. For example,"},{"line_number":140,"context_line":"   going from a standalone flavor to a active/standby would require downtime."},{"line_number":141,"context_line":"   Similarly, going from a newer image tag to an older one may cause failures"},{"line_number":142,"context_line":"   or features to be disabled."},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"44da6024_304b9762","line":140,"range":{"start_line":139,"start_character":64,"end_line":140,"end_character":76},"in_reply_to":"fab8ec33_df29fc2c","updated":"2024-05-28 08:06:14.000000000","message":"IMHO as a first step, we should limit the feature to the Compute flavor of the octavia flavor\n\nthen, we could extend the feature to the other fields of the flavor when we can validate that there\u0027s no issue:\n- amp_image_tag should be straighforward\n- topology would need an update of the failover flow to create the server group\n- sriov_vip, no idea","commit_id":"b57745510bb3e910bc8173330da37d04af249d6f"},{"author":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"change_message_id":"5be0e72925f793732d2e9d9bfbe9a18f9dc2b1d9","unresolved":true,"context_lines":[{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":" * Rebuild the vm of the loadbalancer with the new flavor compute."},{"line_number":40,"context_line":" * Use the \"backup\" and \"restore\"."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"36c0f3f7_a435cbf2","line":40,"updated":"2024-05-23 07:53:46.000000000","message":"should nova resize API also be an alternative?\nhttps://docs.openstack.org/nova/latest/user/resize.html","commit_id":"6f22cba7c29d5d7912908ff5e73b804cc02a8e4e"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1274446f9fc9d79c2f49318f72f0d2574595ec6b","unresolved":true,"context_lines":[{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":" * Rebuild the vm of the loadbalancer with the new flavor compute."},{"line_number":40,"context_line":" * Use the \"backup\" and \"restore\"."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"592ea483_c3d999e0","line":40,"in_reply_to":"36c0f3f7_a435cbf2","updated":"2024-05-28 07:58:13.000000000","message":"AFAIK nova resize reboots the VM and is not supported by the amphora instances.\n\nWhen using TLS listeners, the keys/certificates are uploaded into a tmpfs in the amphora and they are lost if the VM reboots.\n\nRe-using the failover flow limits the impact of this feature on the code and uses a well tested approach to recreate an amphora","commit_id":"6f22cba7c29d5d7912908ff5e73b804cc02a8e4e"},{"author":{"_account_id":35916,"name":"Pham Le Gia Dai","display_name":"Dai","email":"daipham.3213@gmail.com","username":"daiplg","status":"Full Stack Dev"},"change_message_id":"1b7d072bbe09a75811a4b86718269915edcdd051","unresolved":false,"context_lines":[{"line_number":37,"context_line":"Alternatives"},{"line_number":38,"context_line":"------------"},{"line_number":39,"context_line":" * Rebuild the vm of the loadbalancer with the new flavor compute."},{"line_number":40,"context_line":" * Use the \"backup\" and \"restore\"."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3548d4dc_093e5b47","line":40,"in_reply_to":"592ea483_c3d999e0","updated":"2024-05-29 08:56:23.000000000","message":"Done","commit_id":"6f22cba7c29d5d7912908ff5e73b804cc02a8e4e"}]}
