)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"4d7ecf25cdcd53047ff4ab0386679050aa8782b4","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Encoded keypair name to work with url (HTTP urls do not support space char)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Blueprint: testcases-expansion-icehouse"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: I9027ce6e1cfd64136fb3547e4d20b93bdd8acb96"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"baada198_ae17a850","line":23,"updated":"2014-06-30 20:32:10.000000000","message":"This bp does not exist","commit_id":"e61473f6ecb3b9aa9c2bf925747cc1f510391421"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"194d04b0660fff8c75bae213a82c1a1e4136bca4","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Added test case for nova keypair"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1. For V2 API added testcase to create keypair with leading and"},{"line_number":10,"context_line":"   trailing white spaces."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"2. Added a common testcase for V2 and V3 API to create keypair"},{"line_number":13,"context_line":"   with space in between name."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"baada198_f4831cca","line":10,"updated":"2014-07-01 09:24:23.000000000","message":"This test seems a corner case, and I feel it is better to implement this as unit test in Nova project.\nTempest is an integrated test suite and it is operated by every commits. so it is better to implement this as unit test to avoid paying test cost for whole OpenStack projects commits.","commit_id":"714adc2b2b27fb222480d7b87bb109774b24cf36"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"194d04b0660fff8c75bae213a82c1a1e4136bca4","unresolved":false,"context_lines":[{"line_number":10,"context_line":"   trailing white spaces."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"2. Added a common testcase for V2 and V3 API to create keypair"},{"line_number":13,"context_line":"   with space in between name."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"3. Added negative test case to create keypair with leading and trailing"},{"line_number":16,"context_line":"   white spaces for V3."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"baada198_148970eb","line":13,"updated":"2014-07-01 09:24:23.000000000","message":"ditto","commit_id":"714adc2b2b27fb222480d7b87bb109774b24cf36"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"194d04b0660fff8c75bae213a82c1a1e4136bca4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"   with space in between name."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"3. Added negative test case to create keypair with leading and trailing"},{"line_number":16,"context_line":"   white spaces for V3."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Added a new private method _check_keypair_details() which checks keypair details"},{"line_number":19,"context_line":"after creating the Keypair."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"baada198_f4995c6f","line":16,"updated":"2014-07-01 09:24:23.000000000","message":"Now we are blocking new negative tests except neutron. it is necessary to remove this test at least.","commit_id":"714adc2b2b27fb222480d7b87bb109774b24cf36"}],"tempest/api/compute/keypairs/test_keypairs.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8c639f30d15533feddfae1be020e86d35b090f1d","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        keypair_name \u003d \u0027 sample keypair \u0027"},{"line_number":73,"context_line":"        resp, keypair \u003d self.client.create_keypair(keypair_name)"},{"line_number":74,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":75,"context_line":"        resp, fetched_list \u003d self.client.list_keypairs()"},{"line_number":76,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":77,"context_line":"        keypair_name_list \u003d map(lambda x: x[\u0027keypair\u0027][\u0027name\u0027], fetched_list)"},{"line_number":78,"context_line":"        self.assertIn(keypair_name, keypair_name_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B7HE%3D","line":75,"updated":"2014-03-11 09:06:27.000000000","message":"Same as in https://review.openstack.org/#/c/79551/.","commit_id":"dd6e7b1d832e251f1a8389d3a12d6a3b81e1d6b0"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"c37fe7bd4f155065a8df1bba1e39f53b9c0879fc","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        keypair_name \u003d \u0027 sample keypair \u0027"},{"line_number":73,"context_line":"        resp, keypair \u003d self.client.create_keypair(keypair_name)"},{"line_number":74,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":75,"context_line":"        resp, fetched_list \u003d self.client.list_keypairs()"},{"line_number":76,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":77,"context_line":"        keypair_name_list \u003d map(lambda x: x[\u0027keypair\u0027][\u0027name\u0027], fetched_list)"},{"line_number":78,"context_line":"        self.assertIn(keypair_name, keypair_name_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2ByLs%3D","line":75,"in_reply_to":"AAAAVn%2F%2B6EM%3D","updated":"2014-03-12 06:53:49.000000000","message":"Is it possible to merge this case into test_keypairs_create_list_delete?","commit_id":"dd6e7b1d832e251f1a8389d3a12d6a3b81e1d6b0"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c42efa421816c401fe4a444bfe0216b4c1b90569","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        keypair_name \u003d \u0027 sample keypair \u0027"},{"line_number":73,"context_line":"        resp, keypair \u003d self.client.create_keypair(keypair_name)"},{"line_number":74,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":75,"context_line":"        resp, fetched_list \u003d self.client.list_keypairs()"},{"line_number":76,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":77,"context_line":"        keypair_name_list \u003d map(lambda x: x[\u0027keypair\u0027][\u0027name\u0027], fetched_list)"},{"line_number":78,"context_line":"        self.assertIn(keypair_name, keypair_name_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B6EM%3D","line":75,"in_reply_to":"AAAAVn%2F%2B6fs%3D","updated":"2014-03-11 12:01:45.000000000","message":"ok. Same modification in name you can do if you want. Otherwise looks fine.","commit_id":"dd6e7b1d832e251f1a8389d3a12d6a3b81e1d6b0"},{"author":{"_account_id":10300,"name":"Pranali Deore","email":"pranalideore@gmail.com","username":"PranaliDeore"},"change_message_id":"1c8ce8cfda5bbd75d43114a7e1147c35909d0b3a","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        keypair_name \u003d \u0027 sample keypair \u0027"},{"line_number":73,"context_line":"        resp, keypair \u003d self.client.create_keypair(keypair_name)"},{"line_number":74,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":75,"context_line":"        resp, fetched_list \u003d self.client.list_keypairs()"},{"line_number":76,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":77,"context_line":"        keypair_name_list \u003d map(lambda x: x[\u0027keypair\u0027][\u0027name\u0027], fetched_list)"},{"line_number":78,"context_line":"        self.assertIn(keypair_name, keypair_name_list)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2B6fs%3D","line":75,"in_reply_to":"AAAAVn%2F%2B7HE%3D","updated":"2014-03-11 10:42:57.000000000","message":"Here we are checking that whether client.list_keypairs() also returns the key pair name with spaces in it.","commit_id":"dd6e7b1d832e251f1a8389d3a12d6a3b81e1d6b0"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"beab54487da91612ac35564c84d182190b0b5aa7","unresolved":false,"context_lines":[{"line_number":94,"context_line":"                        \"Field public_key is empty or not found.\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":97,"context_line":"    def test_get_keypair_detail_with_char_spaces_in_between_name(self):"},{"line_number":98,"context_line":"        # Keypair should be created, Got details by name and deleted"},{"line_number":99,"context_line":"        # with char space between name"},{"line_number":100,"context_line":"        k_name \u003d data_utils.rand_name(\u0027keypair \u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_3e21dcb4","line":97,"updated":"2014-06-09 09:43:44.000000000","message":"This test is a massive duplicate of test_get_keypair_detail()/ Please do some refactoring.","commit_id":"78e327fec8451fae8a21d28941933fca977d5a84"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"beab54487da91612ac35564c84d182190b0b5aa7","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                         \"The created keypair name is not equal \""},{"line_number":108,"context_line":"                         \"to requested name\")"},{"line_number":109,"context_line":"        public_key \u003d keypair_detail[\u0027public_key\u0027]"},{"line_number":110,"context_line":"        self.assertTrue(public_key is not None,"},{"line_number":111,"context_line":"                        \"Field public_key is empty or not found.\")"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_5e9228f7","line":110,"updated":"2014-06-09 09:43:44.000000000","message":"Please use assertIsNotNone()","commit_id":"78e327fec8451fae8a21d28941933fca977d5a84"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"7122d96a0f1e82e4b27fa9f30b82b59a894440c1","unresolved":false,"context_lines":[{"line_number":139,"context_line":"    def test_get_keypair_detail_with_leading_and_trailing_spaces(self):"},{"line_number":140,"context_line":"        # Keypair should be created, Got details by name and deleted"},{"line_number":141,"context_line":"        # with leading and trailing spaces for V2 API"},{"line_number":142,"context_line":"        k_name \u003d \u0027 %s \u0027 % data_utils.rand_name(\u0027keypair-\u0027)"},{"line_number":143,"context_line":"        resp, keypair \u003d self._create_keypair(k_name)"},{"line_number":144,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_d0f8d74b","line":142,"updated":"2014-06-09 16:55:11.000000000","message":"this is not supported in v3? nice catch..\nCan you please also refactor this one as jordan suggested on the test above?","commit_id":"78e327fec8451fae8a21d28941933fca977d5a84"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"2db3f412d9c1eb3cc631ca1f8e95eacebbaca4dc","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                         \"The created keypair name is not equal \""},{"line_number":47,"context_line":"                         \"to requested name\")"},{"line_number":48,"context_line":"        public_key \u003d keypair_detail[\u0027public_key\u0027]"},{"line_number":49,"context_line":"        self.assertIsNotNone(public_key,"},{"line_number":50,"context_line":"                             \"Field public_key is empty or not found.\")"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_4cc04250","line":49,"updated":"2014-06-12 05:20:07.000000000","message":"L48-50 can be replaced with below one\nself.assertIsNotNone(keypair_detail[\u0027public_key\u0027],\n                             \"Field public_key is empty.\")\n\nas L44 check whether \u0027public key is present or not\u0027","commit_id":"d07e4a5af7bac9d9705921b2b1b28cb94f67ce56"}],"tempest/api/compute/v3/keypairs/test_keypairs.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d94f1f566ff80ba42f7a80a0a538dfa92cd448a9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        # Keypair should be created, Got details by name and deleted"},{"line_number":84,"context_line":"        # with char space between name"},{"line_number":85,"context_line":"        k_name \u003d \"Sample keypair\""},{"line_number":86,"context_line":"        resp, keypair \u003d self._create_keypair(k_name)"},{"line_number":87,"context_line":"        self.assertEqual(201, resp.status)"},{"line_number":88,"context_line":"        resp, keypair_detail \u003d self.client.get_keypair(k_name)"},{"line_number":89,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2Fv%2FI%3D","line":86,"updated":"2014-03-14 02:09:20.000000000","message":"as mentioned by Liu, Can we have white space as leading and trailing also.","commit_id":"2cecce72f6e759bc9a085af1f301310b330e2809"},{"author":{"_account_id":10300,"name":"Pranali Deore","email":"pranalideore@gmail.com","username":"PranaliDeore"},"change_message_id":"51f016119b5ddac61b394f5f54d75f317aed26dc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        # Keypair should be created, Got details by name and deleted"},{"line_number":84,"context_line":"        # with char space between name"},{"line_number":85,"context_line":"        k_name \u003d \"Sample keypair\""},{"line_number":86,"context_line":"        resp, keypair \u003d self._create_keypair(k_name)"},{"line_number":87,"context_line":"        self.assertEqual(201, resp.status)"},{"line_number":88,"context_line":"        resp, keypair_detail \u003d self.client.get_keypair(k_name)"},{"line_number":89,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2Fu10%3D","line":86,"in_reply_to":"AAAAWH%2F%2Fv%2FI%3D","updated":"2014-03-14 06:17:10.000000000","message":"Leading and trailing spaces are not getting accepted in V3. It only accepts space char in between.","commit_id":"2cecce72f6e759bc9a085af1f301310b330e2809"}],"tempest/api/compute/v3/keypairs/test_keypairs_negative.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"beab54487da91612ac35564c84d182190b0b5aa7","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":97,"context_line":"    def test_create_keypair_with_leading_and_trailing_spaces(self):"},{"line_number":98,"context_line":"        # Keypair should not be created with leading and trailing spaces"},{"line_number":99,"context_line":"        k_name \u003d \u0027 %s \u0027 % data_utils.rand_name(\"keypair-\")"},{"line_number":100,"context_line":"        self.assertRaises(exceptions.BadRequest, self._create_keypair,"},{"line_number":101,"context_line":"                          k_name)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_5ea94823","line":99,"updated":"2014-06-09 09:43:44.000000000","message":"Trailing \u0027-\u0027 is useless because rand_name() already adds a \u0027-\u0027 in the name.","commit_id":"78e327fec8451fae8a21d28941933fca977d5a84"}]}
