)]}'
{"openstackclient/compute/v2/keypair.py":[{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3165f565e44ee76cc2bc68e064ea52cf16ea51e4","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from openstackclient.common import exceptions"},{"line_number":25,"context_line":"from openstackclient.common import utils"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@api_versions.wraps(\"2.0\", \"2.1\")  # noqa"},{"line_number":29,"context_line":"def _keypair_create(cs, args, name, pub_key):"},{"line_number":30,"context_line":"    return cs.keypairs.create(name, pub_key)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_1d9c2f0e","line":27,"updated":"2016-03-02 23:35:07.000000000","message":"I\u0027m assuming it is the .wraps() function that prevents these from being class methods here?  We should think about how we want to organize these functions once we get a lot of them in a single command file.  I would prefer to see them closer to where they are called since they will (generally) only be called from one place.","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"d4f57aafd0049fa833deba750415cff47f459965","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from openstackclient.common import exceptions"},{"line_number":25,"context_line":"from openstackclient.common import utils"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"@api_versions.wraps(\"2.0\", \"2.1\")  # noqa"},{"line_number":29,"context_line":"def _keypair_create(cs, args, name, pub_key):"},{"line_number":30,"context_line":"    return cs.keypairs.create(name, pub_key)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_b5395da6","line":27,"in_reply_to":"7af24918_1d9c2f0e","updated":"2016-03-04 15:42:08.000000000","message":"I will try to see whether it can be a class method, maybe we can\u0027t (remember something weird previously on this)","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3165f565e44ee76cc2bc68e064ea52cf16ea51e4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            \u0027--key-type\u0027,"},{"line_number":61,"context_line":"            metavar\u003d\u0027\u003ckey-type\u003e\u0027,"},{"line_number":62,"context_line":"            default\u003d\u0027ssh\u0027,"},{"line_number":63,"context_line":"            help\u003d\u0027Keypair type. Can be ssh or x509.\u0027"},{"line_number":64,"context_line":"        )"},{"line_number":65,"context_line":"        parser.add_argument("},{"line_number":66,"context_line":"            \u0027--user\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_2833a7ac","line":63,"updated":"2016-03-02 23:35:07.000000000","message":"Public key type (ssh, x509; default: ssh)","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"d4f57aafd0049fa833deba750415cff47f459965","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            \u0027--key-type\u0027,"},{"line_number":61,"context_line":"            metavar\u003d\u0027\u003ckey-type\u003e\u0027,"},{"line_number":62,"context_line":"            default\u003d\u0027ssh\u0027,"},{"line_number":63,"context_line":"            help\u003d\u0027Keypair type. Can be ssh or x509.\u0027"},{"line_number":64,"context_line":"        )"},{"line_number":65,"context_line":"        parser.add_argument("},{"line_number":66,"context_line":"            \u0027--user\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_d50a291f","line":63,"in_reply_to":"7af24918_2833a7ac","updated":"2016-03-04 15:42:08.000000000","message":"ok","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3165f565e44ee76cc2bc68e064ea52cf16ea51e4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            \u0027--user\u0027,"},{"line_number":67,"context_line":"            metavar\u003d\u0027\u003cuser\u003e\u0027,"},{"line_number":68,"context_line":"            default\u003dNone,"},{"line_number":69,"context_line":"            help\u003d\u0027ID of user to whom to add key-pair (Admin only).\u0027"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"        return parser"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_fd4ce3c9","line":69,"updated":"2016-03-02 23:35:07.000000000","message":"This can be cleaned up a bit:\n\nAdd public key to this user (Name or ID)","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"d4f57aafd0049fa833deba750415cff47f459965","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            \u0027--user\u0027,"},{"line_number":67,"context_line":"            metavar\u003d\u0027\u003cuser\u003e\u0027,"},{"line_number":68,"context_line":"            default\u003dNone,"},{"line_number":69,"context_line":"            help\u003d\u0027ID of user to whom to add key-pair (Admin only).\u0027"},{"line_number":70,"context_line":"        )"},{"line_number":71,"context_line":"        return parser"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_751cf569","line":69,"in_reply_to":"7af24918_fd4ce3c9","updated":"2016-03-04 15:42:08.000000000","message":"ok","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"3165f565e44ee76cc2bc68e064ea52cf16ea51e4","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                                              % (parsed_args.public_key, e))"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        keypair \u003d _keypair_create(compute_client, parsed_args,"},{"line_number":87,"context_line":"                                  parsed_args.name, public_key)"},{"line_number":88,"context_line":"        # NOTE(dtroyer): how do we want to handle the display of the private"},{"line_number":89,"context_line":"        #                key when it needs to be communicated back to the user"},{"line_number":90,"context_line":"        #                For now, duplicate nova keypair-add command output"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_fd47c3b9","line":87,"updated":"2016-03-02 23:35:07.000000000","message":"Why bother splitting out name and public_key here?  Echoing the keypairs.create() signature doesn\u0027t add anything that I can see.","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"d4f57aafd0049fa833deba750415cff47f459965","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                                              % (parsed_args.public_key, e))"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        keypair \u003d _keypair_create(compute_client, parsed_args,"},{"line_number":87,"context_line":"                                  parsed_args.name, public_key)"},{"line_number":88,"context_line":"        # NOTE(dtroyer): how do we want to handle the display of the private"},{"line_number":89,"context_line":"        #                key when it needs to be communicated back to the user"},{"line_number":90,"context_line":"        #                For now, duplicate nova keypair-add command output"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_f5a3e5fd","line":87,"in_reply_to":"7af24918_fd47c3b9","updated":"2016-03-04 15:42:08.000000000","message":"ok, will only use args as param","commit_id":"f5a64b353cb94a1c2fbe10462f701881d9f1e0eb"}]}
