)]}'
{"openstackclient/compute/v2/keypair.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53a3b8657517f643b045f829fc941a9060e8c0da","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                ) as p:"},{"line_number":86,"context_line":"                    p.write(keypair.private_key)"},{"line_number":87,"context_line":"            except IOError as e:"},{"line_number":88,"context_line":"                msg \u003d _(\"Key file %(private_key)s can not save: %(exception)s\")"},{"line_number":89,"context_line":"                raise exceptions.CommandError("},{"line_number":90,"context_line":"                    msg % {\"private_key\": parsed_args.private_key,"},{"line_number":91,"context_line":"                           \"exception\": e}"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_3a399f42","line":88,"range":{"start_line":88,"start_character":50,"end_line":88,"end_character":57},"updated":"2017-02-28 01:07:50.000000000","message":"nit: cannot* be saved*","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"038d8ccf2c49c7cb95283ceb9a9516caf33bd1a9","unresolved":false,"context_lines":[{"line_number":85,"context_line":"                ) as p:"},{"line_number":86,"context_line":"                    p.write(keypair.private_key)"},{"line_number":87,"context_line":"            except IOError as e:"},{"line_number":88,"context_line":"                msg \u003d _(\"Key file %(private_key)s can not save: %(exception)s\")"},{"line_number":89,"context_line":"                raise exceptions.CommandError("},{"line_number":90,"context_line":"                    msg % {\"private_key\": parsed_args.private_key,"},{"line_number":91,"context_line":"                           \"exception\": e}"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_65560a08","line":88,"range":{"start_line":88,"start_character":50,"end_line":88,"end_character":57},"in_reply_to":"da36d5c6_3a399f42","updated":"2017-02-28 06:32:23.000000000","message":"Done","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"}],"openstackclient/tests/functional/compute/v2/test_keypair.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53a3b8657517f643b045f829fc941a9060e8c0da","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        1) Create keypair with given public key"},{"line_number":92,"context_line":"        2) Delete keypair"},{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        with tempfile.NamedTemporaryFile() as f:"},{"line_number":95,"context_line":"            f.write(self.PUBLIC_KEY)"},{"line_number":96,"context_line":"            f.flush()"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_b68f6374","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":48},"updated":"2017-02-28 01:07:50.000000000","message":"you could use this convention","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"038d8ccf2c49c7cb95283ceb9a9516caf33bd1a9","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        1) Create keypair with given public key"},{"line_number":92,"context_line":"        2) Delete keypair"},{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        with tempfile.NamedTemporaryFile() as f:"},{"line_number":95,"context_line":"            f.write(self.PUBLIC_KEY)"},{"line_number":96,"context_line":"            f.flush()"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_c5d97685","line":94,"range":{"start_line":94,"start_character":8,"end_line":94,"end_character":48},"in_reply_to":"da36d5c6_b68f6374","updated":"2017-02-28 06:32:23.000000000","message":"Thank you.","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53a3b8657517f643b045f829fc941a9060e8c0da","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            self.assertInOutput(\u0027-----BEGIN RSA PRIVATE KEY-----\u0027, pk_content)"},{"line_number":124,"context_line":"            self.assertRegex(pk_content, \"[0-9A-Za-z+/]+[\u003d]{0,3}\\n\")"},{"line_number":125,"context_line":"            self.assertInOutput(\u0027-----END RSA PRIVATE KEY-----\u0027, pk_content)"},{"line_number":126,"context_line":"        self.addCleanup("},{"line_number":127,"context_line":"            self.openstack,"},{"line_number":128,"context_line":"            \u0027keypair delete tmpkey\u0027,"},{"line_number":129,"context_line":"        )"},{"line_number":130,"context_line":"        self.addCleanup(os.remove, tmp_pk_file)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def test_keypair_create(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_d6e3f731","line":129,"range":{"start_line":126,"start_character":8,"end_line":129,"end_character":9},"updated":"2017-02-28 01:07:50.000000000","message":"this should be moved up","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"038d8ccf2c49c7cb95283ceb9a9516caf33bd1a9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            self.assertInOutput(\u0027-----BEGIN RSA PRIVATE KEY-----\u0027, pk_content)"},{"line_number":124,"context_line":"            self.assertRegex(pk_content, \"[0-9A-Za-z+/]+[\u003d]{0,3}\\n\")"},{"line_number":125,"context_line":"            self.assertInOutput(\u0027-----END RSA PRIVATE KEY-----\u0027, pk_content)"},{"line_number":126,"context_line":"        self.addCleanup("},{"line_number":127,"context_line":"            self.openstack,"},{"line_number":128,"context_line":"            \u0027keypair delete tmpkey\u0027,"},{"line_number":129,"context_line":"        )"},{"line_number":130,"context_line":"        self.addCleanup(os.remove, tmp_pk_file)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def test_keypair_create(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_058d4e7b","line":129,"range":{"start_line":126,"start_character":8,"end_line":129,"end_character":9},"in_reply_to":"da36d5c6_d6e3f731","updated":"2017-02-28 06:32:23.000000000","message":"Done","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"}],"releasenotes/notes/bug-1549410-8df3a4b12fe13ffa.yaml":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"53a3b8657517f643b045f829fc941a9060e8c0da","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``--private-key`` option for ``keypair create`` command to specify the"},{"line_number":5,"context_line":"    private key file to save when keypair is created. That is a convenient way"},{"line_number":6,"context_line":"    to save private key in OSC interactive mode, avoid to copy CLI output, then"},{"line_number":7,"context_line":"    paste it into file."},{"line_number":8,"context_line":"    [Bug `1549410 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1549410\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"da36d5c6_f699dbd1","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":53},"updated":"2017-02-28 01:07:50.000000000","message":"suggested rewording: Add ``--private-key`` option for ``keypair create`` command to specify the private key file to save when a keypair is created, removing the need to copy the output and paste it into a new file.","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"},{"author":{"_account_id":8276,"name":"kiwik","email":"chenrui.momo@gmail.com","username":"kiwik"},"change_message_id":"038d8ccf2c49c7cb95283ceb9a9516caf33bd1a9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add ``--private-key`` option for ``keypair create`` command to specify the"},{"line_number":5,"context_line":"    private key file to save when keypair is created. That is a convenient way"},{"line_number":6,"context_line":"    to save private key in OSC interactive mode, avoid to copy CLI output, then"},{"line_number":7,"context_line":"    paste it into file."},{"line_number":8,"context_line":"    [Bug `1549410 \u003chttps://bugs.launchpad.net/python-openstackclient/+bug/1549410\u003e`_]"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"da36d5c6_459f46b4","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":53},"in_reply_to":"da36d5c6_f699dbd1","updated":"2017-02-28 06:32:23.000000000","message":"Done","commit_id":"75dd5e0006eeaa4bae57fcd0c09c8452ee710087"}]}
