)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e8d4d6bedb27dc8efb1ae086412ae8287dd459f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"62211e4d_a3822734","updated":"2023-03-24 16:56:28.000000000","message":"As this stands, this looks incorrect. I\u0027d be happy to be proven wrong, however.","commit_id":"d3db0d8e25a34feb3e4946e06c598ba112cd4834"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a8ac8c2a3b24ba67ca144ff3ac6ef6129bb63b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"eb6f3c35_2677b8d2","updated":"2023-03-28 09:19:57.000000000","message":"You need to remove the unit tests that were testing this API version.","commit_id":"6049778d3042beda4997d8d58061b8efe249820d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"323c46bc962cc22892c2deacef1059db07413e6a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f964ee7f_472c0ec3","updated":"2023-03-28 12:34:46.000000000","message":"Assuming CI is happy","commit_id":"215ed20f63f1daae0a386bff5dfaa6b3c9abe316"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"60a9edc9a0582e11e387eb9b4a3cae45bb3146fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0d6bebfb_bb4f2c24","updated":"2023-03-28 12:35:14.000000000","message":"If you want to backport this, you\u0027ll also need a bug report. I don\u0027t know if you care about the backport though.","commit_id":"215ed20f63f1daae0a386bff5dfaa6b3c9abe316"},{"author":{"_account_id":34401,"name":"Jayce Houtman","email":"jhoutman@houtknots.com","username":"houtknots"},"change_message_id":"7b6bd55685d5fd5fd53385aa9d011e6a88c9dc23","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c40ba6d4_7b706863","in_reply_to":"0d6bebfb_bb4f2c24","updated":"2023-03-31 08:32:35.000000000","message":"I created a story on the python-openstackclient storyboard: https://storyboard.openstack.org/#!/story/2010679","commit_id":"215ed20f63f1daae0a386bff5dfaa6b3c9abe316"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e8d4d6bedb27dc8efb1ae086412ae8287dd459f","unresolved":true,"context_lines":[{"line_number":335,"context_line":"        else:"},{"line_number":336,"context_line":"            net_id \u003d parsed_args.network"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \u00272.42\u0027):"},{"line_number":339,"context_line":"            compute_client.add_fixed_ip_to_server("},{"line_number":340,"context_line":"                server.id,"},{"line_number":341,"context_line":"                net_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9dab1b_e64e0982","line":338,"updated":"2023-03-24 16:56:28.000000000","message":"This appears to be correct. 2.44 was the version that removed these legacy APIs [1]. What we\u0027re saying here is that if the server doesn\u0027t support 2.44, then we can use the legacy APIs. Otherwise we should use a modern interface.\n\nWhy do you think this is incorrect?\n\n[1] https://github.com/openstack/nova/blob/master/nova/api/openstack/compute/rest_api_version_history.rst#244","commit_id":"d3db0d8e25a34feb3e4946e06c598ba112cd4834"},{"author":{"_account_id":34401,"name":"Jayce Houtman","email":"jhoutman@houtknots.com","username":"houtknots"},"change_message_id":"ca1fb8f6e4f1bb39f89f6408347b38efc3439446","unresolved":true,"context_lines":[{"line_number":335,"context_line":"        else:"},{"line_number":336,"context_line":"            net_id \u003d parsed_args.network"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \u00272.42\u0027):"},{"line_number":339,"context_line":"            compute_client.add_fixed_ip_to_server("},{"line_number":340,"context_line":"                server.id,"},{"line_number":341,"context_line":"                net_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"f330d804_c13f5dfb","line":338,"in_reply_to":"5a9dab1b_e64e0982","updated":"2023-03-27 16:00:41.000000000","message":"Hi @stephenfin,\n\nI agree with you that the legacy endpoint has been removed in version 2.44 and should not be implemented onwards. We have tested the modern interface as implemented in our environment which runs 2.42 which did not return any unexpected results therefore version 2.42 as minimum version.\n\nAfter researching some more we found out the python-novaclient uses the os-interface endpoint from version 2.0 onwards:\nhttps://github.com/openstack/python-novaclient/blob/master/novaclient/v2/servers.py#L2302\n\nWhen backtracking it seems like the os-interface endpoint was implemented in 2013 at the beginning of micro versioning:\nhttps://github.com/openstack/nova/blob/grizzly-eol/nova/api/openstack/compute/contrib/attach_interfaces.py\nhttps://github.com/openstack/nova/commit/bd84cf4a7af50a499c3355f8ae490ea5cafb060f\n\nI also see references back in OpenStack Liberty to the max version of 2.12 https://github.com/openstack/nova/blob/liberty-eol/nova/api/openstack/api_version_request.py\n\nI suggest we remove the check completely, another option would be to lower the microversion check to version 2.0 upwards. What do you think of my suggestions?","commit_id":"d3db0d8e25a34feb3e4946e06c598ba112cd4834"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6a8ac8c2a3b24ba67ca144ff3ac6ef6129bb63b8","unresolved":false,"context_lines":[{"line_number":335,"context_line":"        else:"},{"line_number":336,"context_line":"            net_id \u003d parsed_args.network"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \u00272.42\u0027):"},{"line_number":339,"context_line":"            compute_client.add_fixed_ip_to_server("},{"line_number":340,"context_line":"                server.id,"},{"line_number":341,"context_line":"                net_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"36eac80c_426d41ad","line":338,"in_reply_to":"81b01d31_08191c14","updated":"2023-03-28 09:19:57.000000000","message":"Done","commit_id":"d3db0d8e25a34feb3e4946e06c598ba112cd4834"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3dffa87f73ea9542249b40e04e78b2b294f5f3cb","unresolved":true,"context_lines":[{"line_number":335,"context_line":"        else:"},{"line_number":336,"context_line":"            net_id \u003d parsed_args.network"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        if not sdk_utils.supports_microversion(compute_client, \u00272.42\u0027):"},{"line_number":339,"context_line":"            compute_client.add_fixed_ip_to_server("},{"line_number":340,"context_line":"                server.id,"},{"line_number":341,"context_line":"                net_id"}],"source_content_type":"text/x-python","patch_set":1,"id":"81b01d31_08191c14","line":338,"in_reply_to":"f330d804_c13f5dfb","updated":"2023-03-27 17:15:08.000000000","message":"\u003e I suggest we remove the check completely, another option would be to lower the microversion check to version 2.0 upwards. What do you think of my suggestions?\n\nI\u0027d be okay with this. If you do this, please note (in the commit message) that we\u0027re dropping use of the \u0027addFixedIp\u0027 server action entirely in favour of creating an interface with a fixed IP using the \u0027os-interfaces\u0027 API. The reason for doing this is because this mechanism allows us to request an explicit fixed IP.","commit_id":"d3db0d8e25a34feb3e4946e06c598ba112cd4834"}]}
