)]}'
{"openstack/compute/v2/_proxy.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"40d26635f275839440b76fde4cfc52094bdb4381","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":561,"context_line":"        server.reboot(self, reboot_type)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def rebuild_server(self, server, image, **attrs):"},{"line_number":564,"context_line":"        \"\"\"Rebuild a server"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_84d3c3d5","line":563,"updated":"2020-07-17 17:33:34.000000000","message":"I realise this isn\u0027t good for backwards compatibility - this would break anyone who isn\u0027t already passing `image` (OTOH, if you don\u0027t pass image, your request will fail, so...) Just wanted to throw this up as a strawman to get things rolling.","commit_id":"4ffe2aeb9aabd4d2cc0bc30ea8ba8ddff8247be7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"601b2addb7072ebfaff2678114f7ce84a10b9f8e","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":561,"context_line":"        server.reboot(self, reboot_type)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def rebuild_server(self, server, image, **attrs):"},{"line_number":564,"context_line":"        \"\"\"Rebuild a server"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_aaf5f1ef","line":563,"in_reply_to":"bf51134e_84d3c3d5","updated":"2020-07-17 17:54:15.000000000","message":"You could approach this in a piecemeal fashion, first transitioning everything to \u0027*args\u0027 and \u0027**kwargs\u0027 and checking we\u0027re called with len(args) \u003e 1 (to allow for \u0027server\u0027). If so, insist people used named kwargs. Do this until the next major version and then shuffle things around, knowing you haven\u0027t broken things.\n\nThat or just do a major version now.","commit_id":"4ffe2aeb9aabd4d2cc0bc30ea8ba8ddff8247be7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5d6b5499c1af78484cd63402b225c150cba29eca","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":561,"context_line":"        server.reboot(self, reboot_type)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def rebuild_server(self, server, image, **attrs):"},{"line_number":564,"context_line":"        \"\"\"Rebuild a server"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_6e8b8267","line":563,"updated":"2020-07-24 09:11:14.000000000","message":"This is a breaking change, let\u0027s at least have a release note","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"f4b498cf066ed2559cd70a06b1db35337266e5c6","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":561,"context_line":"        server.reboot(self, reboot_type)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def rebuild_server(self, server, image, **attrs):"},{"line_number":564,"context_line":"        \"\"\"Rebuild a server"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_b94fa490","line":563,"in_reply_to":"bf51134e_2897bb92","updated":"2020-07-31 18:50:43.000000000","message":"I think in this layer we\u0027re fine with a release note. As you point out, we\u0027re broken _anyway_.","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"d22a3dfb925d1ee6a13c038575f20114781a8df2","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":561,"context_line":"        server.reboot(self, reboot_type)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def rebuild_server(self, server, image, **attrs):"},{"line_number":564,"context_line":"        \"\"\"Rebuild a server"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_596da830","line":563,"in_reply_to":"bf51134e_2897bb92","updated":"2020-07-31 20:13:34.000000000","message":"Release note added.","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6c94111240dfb07c6c16c874a4973109dceaf265","unresolved":false,"context_lines":[{"line_number":560,"context_line":"        server \u003d self._get_resource(_server.Server, server)"},{"line_number":561,"context_line":"        server.reboot(self, reboot_type)"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def rebuild_server(self, server, image, **attrs):"},{"line_number":564,"context_line":"        \"\"\"Rebuild a server"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_2897bb92","line":563,"in_reply_to":"bf51134e_6e8b8267","updated":"2020-07-24 14:07:13.000000000","message":"Yeah, see discussion on PS1. Stephen had an idea, though tbh I don\u0027t understand how his 2-step process fixes the \"break backwards compatibility\" problem. At some point we\u0027ll still go from NOT requiring `image` to requiring `image. Is doing a release note and bumping the major version enough in cases like this?","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"5d6b5499c1af78484cd63402b225c150cba29eca","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"},{"line_number":567,"context_line":"                       :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":568,"context_line":"        :param str name: The name of the server"},{"line_number":569,"context_line":"        :param str admin_password: The administrator password"},{"line_number":570,"context_line":"        :param bool preserve_ephemeral: Indicates whether the server"},{"line_number":571,"context_line":"            is rebuilt with the preservation of the ephemeral partition."},{"line_number":572,"context_line":"            *Default: False*"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_cee72e46","line":569,"updated":"2020-07-24 09:11:14.000000000","message":"needs updating?","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"6c94111240dfb07c6c16c874a4973109dceaf265","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"},{"line_number":567,"context_line":"                       :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":568,"context_line":"        :param str name: The name of the server"},{"line_number":569,"context_line":"        :param str admin_password: The administrator password"},{"line_number":570,"context_line":"        :param bool preserve_ephemeral: Indicates whether the server"},{"line_number":571,"context_line":"            is rebuilt with the preservation of the ephemeral partition."},{"line_number":572,"context_line":"            *Default: False*"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_e8a023f6","line":569,"in_reply_to":"bf51134e_cee72e46","updated":"2020-07-24 14:07:13.000000000","message":"Well, these are all still possible, but it\u0027s not exhaustive. I guess it\u0027d be more honest to link the Nova api-ref and remove all the :params: ?","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"d22a3dfb925d1ee6a13c038575f20114781a8df2","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"},{"line_number":567,"context_line":"                       :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":568,"context_line":"        :param str name: The name of the server"},{"line_number":569,"context_line":"        :param str admin_password: The administrator password"},{"line_number":570,"context_line":"        :param bool preserve_ephemeral: Indicates whether the server"},{"line_number":571,"context_line":"            is rebuilt with the preservation of the ephemeral partition."},{"line_number":572,"context_line":"            *Default: False*"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_99774003","line":569,"in_reply_to":"bf51134e_e8a023f6","updated":"2020-07-31 20:13:34.000000000","message":"Updated - for the args that we \"translate\" into their API forms, I\u0027ve left them. Anything else that\u0027s a 1:1 mapping to the API, I\u0027ve added a link.","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"f4b498cf066ed2559cd70a06b1db35337266e5c6","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        :param server: Either the ID of a server or a"},{"line_number":567,"context_line":"                       :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":568,"context_line":"        :param str name: The name of the server"},{"line_number":569,"context_line":"        :param str admin_password: The administrator password"},{"line_number":570,"context_line":"        :param bool preserve_ephemeral: Indicates whether the server"},{"line_number":571,"context_line":"            is rebuilt with the preservation of the ephemeral partition."},{"line_number":572,"context_line":"            *Default: False*"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f560f44_b934c4fc","line":569,"in_reply_to":"bf51134e_e8a023f6","updated":"2020-07-31 18:50:43.000000000","message":"Yes and no. We mutate the parameter names in a few places. We should probably keep at least those documented.","commit_id":"e6eee437c2e84137fbaf1be84f7230879b940153"}],"openstack/compute/v2/server.py":[{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"64660dfae639e0bef3c89ed2919f5264a81dbfe1","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    def rebuild(self, session, name\u003dNone, admin_password\u003dNone,"},{"line_number":264,"context_line":"                preserve_ephemeral\u003dFalse, image\u003dNone,"},{"line_number":265,"context_line":"                access_ipv4\u003dNone, access_ipv6\u003dNone,"},{"line_number":266,"context_line":"                metadata\u003dNone, personality\u003dNone):"},{"line_number":267,"context_line":"        \"\"\"Rebuild the server with the given arguments.\"\"\""},{"line_number":268,"context_line":"        action \u003d {"},{"line_number":269,"context_line":"            \u0027preserve_ephemeral\u0027: preserve_ephemeral"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_64edcf8d","side":"PARENT","line":266,"updated":"2020-07-17 17:36:19.000000000","message":"There are many other params that are possible in [1], this was overly restrictive - I\u0027ll add a comment or commit message sentence to that effect in a subsequent patch.\n\n[1] https://docs.openstack.org/api-ref/compute/?expanded\u003drebuild-server-rebuild-action-detail#rebuild-server-rebuild-action","commit_id":"37ed9303c9980f8188c01ef7efd9bdf537678f42"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"601b2addb7072ebfaff2678114f7ce84a10b9f8e","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    def rebuild(self, session, name\u003dNone, admin_password\u003dNone,"},{"line_number":264,"context_line":"                preserve_ephemeral\u003dFalse, image\u003dNone,"},{"line_number":265,"context_line":"                access_ipv4\u003dNone, access_ipv6\u003dNone,"},{"line_number":266,"context_line":"                metadata\u003dNone, personality\u003dNone):"},{"line_number":267,"context_line":"        \"\"\"Rebuild the server with the given arguments.\"\"\""},{"line_number":268,"context_line":"        action \u003d {"},{"line_number":269,"context_line":"            \u0027preserve_ephemeral\u0027: preserve_ephemeral"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_c4077b1d","side":"PARENT","line":266,"in_reply_to":"bf51134e_64edcf8d","updated":"2020-07-17 17:54:15.000000000","message":"Any reason we couldn\u0027t stick with what was there and simply provide kwargs as a fallthrough?","commit_id":"37ed9303c9980f8188c01ef7efd9bdf537678f42"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"99110fde2148c06a56cab83387db338133537751","unresolved":false,"context_lines":[{"line_number":263,"context_line":"    def rebuild(self, session, name\u003dNone, admin_password\u003dNone,"},{"line_number":264,"context_line":"                preserve_ephemeral\u003dFalse, image\u003dNone,"},{"line_number":265,"context_line":"                access_ipv4\u003dNone, access_ipv6\u003dNone,"},{"line_number":266,"context_line":"                metadata\u003dNone, personality\u003dNone):"},{"line_number":267,"context_line":"        \"\"\"Rebuild the server with the given arguments.\"\"\""},{"line_number":268,"context_line":"        action \u003d {"},{"line_number":269,"context_line":"            \u0027preserve_ephemeral\u0027: preserve_ephemeral"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf51134e_39bdb902","side":"PARENT","line":266,"in_reply_to":"bf51134e_c4077b1d","updated":"2020-07-18 00:26:04.000000000","message":"We have to make image non-optional, and there is precedent in cases where the API accepts loads of optional parameters to just expose them all as **kwargs, for example here [1] or [2]\n\n[1] https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/compute/v2/_proxy.py#L484\n[2] https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/compute/v2/_proxy.py#L405","commit_id":"37ed9303c9980f8188c01ef7efd9bdf537678f42"}]}
