)]}'
{"novaclient/tests/functional/v2/test_instance_action.py":[{"author":{"_account_id":18247,"name":"Mark Doffman","email":"mdoffman@linux.vnet.ibm.com","username":"doffm"},"change_message_id":"98c50765bb012db86e08eabf6fa7726be911d69b","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_show_and_list_actions_on_deleted_instance(self):"},{"line_number":45,"context_line":"        server \u003d self._create_server(add_cleanup\u003dFalse)"},{"line_number":46,"context_line":"        server.delete()"},{"line_number":47,"context_line":"        self.wait_for_resource_delete(server, self.client.servers)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        output \u003d self.nova(\"instance-action-list %s\" % server.id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_475ca718","line":46,"updated":"2016-02-24 17:11:40.000000000","message":"I guess this is slightly odd. We are testing for behavior with non-existing instances, and also for deleted instances, but not a current non-deleted instances.\n\nThat is probably fine, I don\u0027t think any code paths are different, it just seems like something is missing.","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2b4a7ffe8488f59ee32d6ddda7645042602e3c58","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def test_show_and_list_actions_on_deleted_instance(self):"},{"line_number":45,"context_line":"        server \u003d self._create_server(add_cleanup\u003dFalse)"},{"line_number":46,"context_line":"        server.delete()"},{"line_number":47,"context_line":"        self.wait_for_resource_delete(server, self.client.servers)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        output \u003d self.nova(\"instance-action-list %s\" % server.id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_404ace28","line":46,"in_reply_to":"bae84128_475ca718","updated":"2016-02-24 17:36:23.000000000","message":"I just added tests for changed logic.","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5b620e9cf5a7147a8c0a625f48ed235afac3dfbf","unresolved":false,"context_lines":[{"line_number":2686,"context_line":"                 #   new microversion, just an additional checks. See"},{"line_number":2687,"context_line":"                 #   https://review.openstack.org/#/c/233076/ for more details)"},{"line_number":2688,"context_line":"            20,  # doesn\u0027t require any changes in novaclient"},{"line_number":2689,"context_line":"            21,  # doesn\u0027t require any changes in novaclient"},{"line_number":2690,"context_line":"        ])"},{"line_number":2691,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":2692,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_6b9511e3","line":2689,"range":{"start_line":2689,"start_character":19,"end_line":2689,"end_character":60},"updated":"2016-02-19 19:32:51.000000000","message":"I think if we don\u0027t add the support for 2.21 in the CLI because of deprecation in favor of OSC, then we should make that clear in this comment, i.e. we don\u0027t require changes because we aren\u0027t adding the CLI support for it since it should live in OSC now.","commit_id":"a1b877e62d169fdafdbc3c85f897cc3e2964acf5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77abb9e2a1213dd134874f321f1aeb907d111272","unresolved":false,"context_lines":[{"line_number":2686,"context_line":"                 #   new microversion, just an additional checks. See"},{"line_number":2687,"context_line":"                 #   https://review.openstack.org/#/c/233076/ for more details)"},{"line_number":2688,"context_line":"            20,  # doesn\u0027t require any changes in novaclient"},{"line_number":2689,"context_line":"            21,  # doesn\u0027t require any changes in novaclient"},{"line_number":2690,"context_line":"        ])"},{"line_number":2691,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":2692,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_769b34ca","line":2689,"range":{"start_line":2689,"start_character":19,"end_line":2689,"end_character":60},"in_reply_to":"bae84128_6b9511e3","updated":"2016-02-19 19:42:00.000000000","message":"Actually nevermind, since novaclient doesn\u0027t yet emit a deprecation warning, I think implementing microversions in the CLI is fair game:\n\nhttp://specs.openstack.org/openstack/openstack-specs/specs/deprecate-cli.html#work-items\n\nBut that means we\u0027d actually have to add the support in the CLI to claim 2.21 is supported.\n\nI\u0027ve verified that with this change it\u0027s not:\n\nhttp://paste.openstack.org/show/487616/","commit_id":"a1b877e62d169fdafdbc3c85f897cc3e2964acf5"}],"novaclient/utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"070991824773b06dd2019f131a3b69d429e50ea4","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                \u0027name\u0027: name_or_id})"},{"line_number":319,"context_line":"        if wrap_exception:"},{"line_number":320,"context_line":"            raise exceptions.CommandError(msg)"},{"line_number":321,"context_line":"        raise exceptions.NoUniqueMatch(msg)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"    # finally try to get entity as integer id"},{"line_number":324,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"bae84128_ef230da6","line":321,"updated":"2016-02-24 18:46:31.000000000","message":"Do you have a test for this?","commit_id":"70b8a1fcb0ad1b3c2c90f16fa71fcab06095b048"}],"novaclient/v2/contrib/instance_action.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a14a99988f9088fac8bbfb69505930ffedc5146d","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                     sortby_index\u003d3)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"@cliutils.arg("},{"line_number":79,"context_line":"    \u0027server\u0027,"},{"line_number":80,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":81,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. UUID required to \u0027"},{"line_number":82,"context_line":"           \u0027list actions on deleted server.\u0027))"},{"line_number":83,"context_line":"@api_versions.wraps(\"2.21\")"},{"line_number":84,"context_line":"def do_instance_action_list(cs, args):"},{"line_number":85,"context_line":"    \"\"\"List actions on a server.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_c3a3619d","line":82,"range":{"start_line":78,"start_character":0,"end_line":82,"end_character":46},"updated":"2016-02-19 20:36:25.000000000","message":"Rather than duplicate all of this, couldn\u0027t we just pull the utils.find_resource part out into the microversion\u0027ed methods? Since that\u0027s the unique part, that seems like the part we should make separate in two different methods.","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"14e9d652dbb2476160512d99cb3645769fbbf89e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                     sortby_index\u003d3)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"@cliutils.arg("},{"line_number":79,"context_line":"    \u0027server\u0027,"},{"line_number":80,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":81,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. UUID required to \u0027"},{"line_number":82,"context_line":"           \u0027list actions on deleted server.\u0027))"},{"line_number":83,"context_line":"@api_versions.wraps(\"2.21\")"},{"line_number":84,"context_line":"def do_instance_action_list(cs, args):"},{"line_number":85,"context_line":"    \"\"\"List actions on a server.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_46ff5f01","line":82,"range":{"start_line":78,"start_character":0,"end_line":82,"end_character":46},"in_reply_to":"bae84128_c3a3619d","updated":"2016-02-19 20:51:20.000000000","message":"help messages are different","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a14a99988f9088fac8bbfb69505930ffedc5146d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        server \u003d utils.find_resource(cs.servers, args.server,"},{"line_number":88,"context_line":"                                     wrap_exception\u003dFalse)"},{"line_number":89,"context_line":"    except exceptions.NoUniqueMatch as e:"},{"line_number":90,"context_line":"        raise exceptions.CommandError(e.message)"},{"line_number":91,"context_line":"    except exceptions.NotFound:"},{"line_number":92,"context_line":"        # The server can be deleted"},{"line_number":93,"context_line":"        server \u003d args.server"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_e369458d","line":90,"range":{"start_line":90,"start_character":38,"end_line":90,"end_character":47},"updated":"2016-02-19 20:36:25.000000000","message":"Maybe this should be six.text_type(e).","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"14e9d652dbb2476160512d99cb3645769fbbf89e","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        server \u003d utils.find_resource(cs.servers, args.server,"},{"line_number":88,"context_line":"                                     wrap_exception\u003dFalse)"},{"line_number":89,"context_line":"    except exceptions.NoUniqueMatch as e:"},{"line_number":90,"context_line":"        raise exceptions.CommandError(e.message)"},{"line_number":91,"context_line":"    except exceptions.NotFound:"},{"line_number":92,"context_line":"        # The server can be deleted"},{"line_number":93,"context_line":"        server \u003d args.server"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_e648335e","line":90,"range":{"start_line":90,"start_character":38,"end_line":90,"end_character":47},"in_reply_to":"bae84128_e369458d","updated":"2016-02-19 20:51:20.000000000","message":"done","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a14a99988f9088fac8bbfb69505930ffedc5146d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    except exceptions.NoUniqueMatch as e:"},{"line_number":90,"context_line":"        raise exceptions.CommandError(e.message)"},{"line_number":91,"context_line":"    except exceptions.NotFound:"},{"line_number":92,"context_line":"        # The server can be deleted"},{"line_number":93,"context_line":"        server \u003d args.server"},{"line_number":94,"context_line":"    actions \u003d cs.instance_action.list(server)"},{"line_number":95,"context_line":"    utils.print_list(actions,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_a3929d55","line":92,"range":{"start_line":92,"start_character":8,"end_line":92,"end_character":35},"updated":"2016-02-19 20:36:25.000000000","message":"So the tricky thing is going to be if the server actually isn\u0027t found (really just never existed). In that case what happens?  Just empty output?\n\nI can also pull this down and test it out.","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"14e9d652dbb2476160512d99cb3645769fbbf89e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    except exceptions.NoUniqueMatch as e:"},{"line_number":90,"context_line":"        raise exceptions.CommandError(e.message)"},{"line_number":91,"context_line":"    except exceptions.NotFound:"},{"line_number":92,"context_line":"        # The server can be deleted"},{"line_number":93,"context_line":"        server \u003d args.server"},{"line_number":94,"context_line":"    actions \u003d cs.instance_action.list(server)"},{"line_number":95,"context_line":"    utils.print_list(actions,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_866e87c7","line":92,"range":{"start_line":92,"start_character":8,"end_line":92,"end_character":35},"in_reply_to":"bae84128_a3929d55","updated":"2016-02-19 20:51:20.000000000","message":"it will raise NotFoundError. Something like:\n\nERROR (NotFound): Instance 945f5196-9cb4-4e79-9f55-0b4a5243dd8c1 could not be found. (HTTP 404) (Request-ID: req-1a43db29-8815-4bce-8013-54a35c7951eb)\n\nI\u0027ll add a test for it","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a14a99988f9088fac8bbfb69505930ffedc5146d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    except exceptions.NotFound:"},{"line_number":92,"context_line":"        # The server can be deleted"},{"line_number":93,"context_line":"        server \u003d args.server"},{"line_number":94,"context_line":"    actions \u003d cs.instance_action.list(server)"},{"line_number":95,"context_line":"    utils.print_list(actions,"},{"line_number":96,"context_line":"                     [\u0027Action\u0027, \u0027Request_ID\u0027, \u0027Message\u0027, \u0027Start_Time\u0027],"},{"line_number":97,"context_line":"                     sortby_index\u003d3)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_43a111a9","line":97,"range":{"start_line":94,"start_character":4,"end_line":97,"end_character":36},"updated":"2016-02-19 20:36:25.000000000","message":"Could we pull the common code into a private method?","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"14e9d652dbb2476160512d99cb3645769fbbf89e","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    except exceptions.NotFound:"},{"line_number":92,"context_line":"        # The server can be deleted"},{"line_number":93,"context_line":"        server \u003d args.server"},{"line_number":94,"context_line":"    actions \u003d cs.instance_action.list(server)"},{"line_number":95,"context_line":"    utils.print_list(actions,"},{"line_number":96,"context_line":"                     [\u0027Action\u0027, \u0027Request_ID\u0027, \u0027Message\u0027, \u0027Start_Time\u0027],"},{"line_number":97,"context_line":"                     sortby_index\u003d3)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_667383b2","line":97,"range":{"start_line":94,"start_character":4,"end_line":97,"end_character":36},"in_reply_to":"bae84128_43a111a9","updated":"2016-02-19 20:51:20.000000000","message":"Done","commit_id":"971c2dc0acbcaa1c495734e5c015c49468f5c3f8"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"02ae91e6600f9ef85632e0e8312a4adf2da405af","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import pprint"},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from novaclient import api_versions"},{"line_number":20,"context_line":"from novaclient import base"}],"source_content_type":"text/x-python","patch_set":8,"id":"bae84128_f949f4d1","line":17,"updated":"2016-02-19 21:34:29.000000000","message":"six is a third-party import, so there should be a blank line between it and the import for pprint (which is stdlib).","commit_id":"b06101a4bb04190b21f06de47c95cec03bc8788f"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"3dc03164f4661dd7ae90b78e86eac261fbbd067a","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import pprint"},{"line_number":17,"context_line":"import six"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from novaclient import api_versions"},{"line_number":20,"context_line":"from novaclient import base"}],"source_content_type":"text/x-python","patch_set":8,"id":"bae84128_aa450c18","line":17,"in_reply_to":"bae84128_f949f4d1","updated":"2016-02-22 15:25:27.000000000","message":"pep8 is not failed on it :P\n\nfixed.","commit_id":"b06101a4bb04190b21f06de47c95cec03bc8788f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2afca5d403e028f598cb5d5e98b48433f6fbd80f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    \u0027request_id\u0027,"},{"line_number":53,"context_line":"    metavar\u003d\u0027\u003crequest_id\u003e\u0027,"},{"line_number":54,"context_line":"    help\u003d_(\u0027Request ID of the action to get.\u0027))"},{"line_number":55,"context_line":"def do_instance_action(cs, args):"},{"line_number":56,"context_line":"    \"\"\"Show an action.\"\"\""},{"line_number":57,"context_line":"    server \u003d utils.find_resource(cs.servers, args.server)"},{"line_number":58,"context_line":"    action_resource \u003d cs.instance_action.get(server, args.request_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bae84128_f731fbed","line":55,"updated":"2016-02-19 22:15:35.000000000","message":"You\u0027re probably not going to be happy with me, but you can also show details on an instance action from a deleted server with 2.21:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/instance_actions.py#L76\n\nSo we should probably also have this handling 2.21.","commit_id":"b06101a4bb04190b21f06de47c95cec03bc8788f"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"3dc03164f4661dd7ae90b78e86eac261fbbd067a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    \u0027request_id\u0027,"},{"line_number":53,"context_line":"    metavar\u003d\u0027\u003crequest_id\u003e\u0027,"},{"line_number":54,"context_line":"    help\u003d_(\u0027Request ID of the action to get.\u0027))"},{"line_number":55,"context_line":"def do_instance_action(cs, args):"},{"line_number":56,"context_line":"    \"\"\"Show an action.\"\"\""},{"line_number":57,"context_line":"    server \u003d utils.find_resource(cs.servers, args.server)"},{"line_number":58,"context_line":"    action_resource \u003d cs.instance_action.get(server, args.request_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"bae84128_2f08e72b","line":55,"in_reply_to":"bae84128_f731fbed","updated":"2016-02-22 15:25:27.000000000","message":"You are wrong, I\u0027m happy with you :) It is so nice to get reviews.\n\nNOTE: show command is fixed and functional tests are added in new patch-set.","commit_id":"b06101a4bb04190b21f06de47c95cec03bc8788f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1bad2de94a2d4e8f2c9f7f03cb37978af688aa3d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_8b2279a1","line":97,"updated":"2016-02-23 20:40:30.000000000","message":"This makes the \u003cserver\u003e arg show up twice, which is a bit weird:\n\nhttp://paste.openstack.org/show/487946/\n\nI can see how it\u0027s nice to see the different help for the different versions, but we could also just have that in a single help value and not mess with the start_version/end_version stuff.  I think it\u0027s confusing to have the \u003cserver\u003e positional argument listed twice when you can only supply one.","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9a71ca42c3044f226e039740e9a9e73f6c2e5e9d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_c32a682f","line":97,"in_reply_to":"bae84128_20922aa0","updated":"2016-02-24 17:51:21.000000000","message":"I tried that patch but now I get this help:\n\nhttp://paste.openstack.org/show/488066/\n\nWhich ignores the 2.0-2.20 help, which makes me wonder, why do we even have it here?","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":7461,"name":"Paul Murray","email":"pmurray@hpe.com","username":"ptm"},"change_message_id":"5d0491b7006616d6aea4d74164201d7e193d4c39","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_e3b7acf3","line":97,"in_reply_to":"bae84128_20922aa0","updated":"2016-02-24 17:56:16.000000000","message":"Your fix seems to avoid getting multiple help messages. I think if you rebase this on that fix we are done.","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2b4a7ffe8488f59ee32d6ddda7645042602e3c58","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_20922aa0","line":97,"in_reply_to":"bae84128_3629d7e6","updated":"2016-02-24 17:36:23.000000000","message":"We can do it in such way, but I don\u0027t want to use it since there can be new limitation for 2.21 - 2.21+N in future and simple docstring will became too big :)\n\nBtw, fix of help message for versioned arguments - https://review.openstack.org/#/c/284186/","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"94b856efaa0a48cb9cadc8f17afa3a3f35b1ba34","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_3629d7e6","line":97,"in_reply_to":"bae84128_42be8eff","updated":"2016-02-24 16:35:31.000000000","message":"Why can\u0027t we just write the help message ourselves?  So have one cliutils.arg decorator and just have the help message note the limitations for 2.0-2.20 and 2.21+.\n\nSomething like:\n\n\"Name or UUID of the server to list actions for. Only UUID can be used to list actions on a deleted server when requesting microversion 2.21 or later.\"","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"a61cb7f00a04d45f0d367a873eac0bd81b33cd62","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_42be8eff","line":97,"in_reply_to":"bae84128_8b2279a1","updated":"2016-02-23 22:33:26.000000000","message":"btw, the ability to print help messages for different versions is the main reason why, imo, we are not ready to move to OSC","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"13e137de9f0decfe99dccdd2b71518fc4faf0475","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_02b3e650","line":97,"in_reply_to":"bae84128_8b2279a1","updated":"2016-02-23 22:31:24.000000000","message":"yeah, I know about this bug and have an idea how it can be fixed(we should print help message for latest version and hint like https://github.com/openstack/python-novaclient/blob/0fcfa02841220afe0187aab989b68cc560406323/novaclient/shell.py#L61-L62 ). But I prefer to do it in the separate patch, if you do not against.","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"77283a51732d4d316f6f7e6d96a9e6d552abf6ff","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    start_version\u003d\"2.0\", end_version\u003d\"2.20\")"},{"line_number":95,"context_line":"@cliutils.arg("},{"line_number":96,"context_line":"    \u0027server\u0027,"},{"line_number":97,"context_line":"    metavar\u003d\u0027\u003cserver\u003e\u0027,"},{"line_number":98,"context_line":"    help\u003d_(\u0027Name or UUID of the server to list actions for. Only UUID can be \u0027"},{"line_number":99,"context_line":"           \u0027used to list actions on a deleted server.\u0027),"},{"line_number":100,"context_line":"    start_version\u003d\"2.21\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"bae84128_233b543a","line":97,"in_reply_to":"bae84128_c32a682f","updated":"2016-02-24 17:54:45.000000000","message":"OK, I see that it works if you specify --os-compute-api-version \u003c2.21, e.g.:\n\nhttp://paste.openstack.org/show/488067/\n\nSo I think I\u0027m OK with this, but can we land the patches in order, i.e. the shell help text fix first, then this change?","commit_id":"59472b4ee832c16dbaf1922a2e3d87754455e6d9"}]}
