)]}'
{"tempest/api/compute/admin/test_keypairs_v210.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f74df3a27e16976e9b59183f8eb63a747cb1c63a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            keypair \u003d self._create_keypair(k_name, pub_key\u003dpub_key,"},{"line_number":38,"context_line":"                                           keypair_type\u003d\u0027ssh\u0027,"},{"line_number":39,"context_line":"                                           user_id\u003duser_id)"},{"line_number":40,"context_line":"            pub_key \u003d (\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs\""},{"line_number":41,"context_line":"                       \"Ne3/1ILNCqFyfYWDeTKLD6jEXC2OQHLmietMWW+/vd\""},{"line_number":42,"context_line":"                       \"aZq7KZEwO0jhglaFjU1mpqq4Gz5RX156sCTNM9vRbw\""},{"line_number":43,"context_line":"                       \"KAxfsdF9laBYVsex3m3Wmui3uYrKyumsoJn2g9GNnG1P\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_ce5f1b0d","line":40,"updated":"2016-02-10 09:22:03.000000000","message":"Where is this variable used ?","commit_id":"a04f1ef23bdea8b69d6616e3a350da84a81f7793"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"923aaa81e6606defb6f18bbab0bf6224cd82a826","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            keypair \u003d self._create_keypair(k_name, pub_key\u003dpub_key,"},{"line_number":38,"context_line":"                                           keypair_type\u003d\u0027ssh\u0027,"},{"line_number":39,"context_line":"                                           user_id\u003duser_id)"},{"line_number":40,"context_line":"            pub_key \u003d (\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs\""},{"line_number":41,"context_line":"                       \"Ne3/1ILNCqFyfYWDeTKLD6jEXC2OQHLmietMWW+/vd\""},{"line_number":42,"context_line":"                       \"aZq7KZEwO0jhglaFjU1mpqq4Gz5RX156sCTNM9vRbw\""},{"line_number":43,"context_line":"                       \"KAxfsdF9laBYVsex3m3Wmui3uYrKyumsoJn2g9GNnG1P\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_37095e2d","line":40,"in_reply_to":"3a57f1b5_ce5f1b0d","updated":"2016-02-10 10:08:51.000000000","message":"it is used in second creation of keypair.","commit_id":"a04f1ef23bdea8b69d6616e3a350da84a81f7793"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f74df3a27e16976e9b59183f8eb63a747cb1c63a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        keypair_detail \u003d self.client.show_keypair(key_list[0][\u0027name\u0027],"},{"line_number":66,"context_line":"                                                  user_id\u003duser_id)[\u0027keypair\u0027]"},{"line_number":67,"context_line":"        self.assertEqual(key_list[0][\u0027name\u0027], keypair_detail[\u0027name\u0027],"},{"line_number":68,"context_line":"                         \"The fetched keypair name is not equal \""},{"line_number":69,"context_line":"                         \"to the requested name!\")"},{"line_number":70,"context_line":"        self.assertEqual(user_id, keypair_detail[\u0027user_id\u0027],"},{"line_number":71,"context_line":"                         \"The fetched keypair is not for requested user!\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_4eb9ebe8","line":68,"updated":"2016-02-10 09:22:03.000000000","message":"Specifying the 3rd parameter is not so useful. Because the comparison is trivial, if we fail at that line it\u0027s obvious why.","commit_id":"a04f1ef23bdea8b69d6616e3a350da84a81f7793"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"923aaa81e6606defb6f18bbab0bf6224cd82a826","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        keypair_detail \u003d self.client.show_keypair(key_list[0][\u0027name\u0027],"},{"line_number":66,"context_line":"                                                  user_id\u003duser_id)[\u0027keypair\u0027]"},{"line_number":67,"context_line":"        self.assertEqual(key_list[0][\u0027name\u0027], keypair_detail[\u0027name\u0027],"},{"line_number":68,"context_line":"                         \"The fetched keypair name is not equal \""},{"line_number":69,"context_line":"                         \"to the requested name!\")"},{"line_number":70,"context_line":"        self.assertEqual(user_id, keypair_detail[\u0027user_id\u0027],"},{"line_number":71,"context_line":"                         \"The fetched keypair is not for requested user!\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_97793296","line":68,"in_reply_to":"3a57f1b5_4eb9ebe8","updated":"2016-02-10 10:08:51.000000000","message":"yea, just putting clear message on log.","commit_id":"a04f1ef23bdea8b69d6616e3a350da84a81f7793"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"f74df3a27e16976e9b59183f8eb63a747cb1c63a","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # Admin fetch keypairs list of non admin user"},{"line_number":79,"context_line":"        keypairs \u003d self.client.list_keypairs(user_id\u003duser_id)[\u0027keypairs\u0027]"},{"line_number":80,"context_line":"        fetched_list \u003d list()"},{"line_number":81,"context_line":"        for keypair in keypairs:"},{"line_number":82,"context_line":"            fetched_list.append(keypair[\u0027keypair\u0027])"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_2e582ffa","line":80,"updated":"2016-02-10 09:22:03.000000000","message":"Use a list comprehension:\n  fetched_list \u003d [keypair[\u0027keypair\u0027] for keypair in keypairs]\n\n3 lines instead of one, and it\u0027s more pythonic.","commit_id":"a04f1ef23bdea8b69d6616e3a350da84a81f7793"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"923aaa81e6606defb6f18bbab0bf6224cd82a826","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        # Admin fetch keypairs list of non admin user"},{"line_number":79,"context_line":"        keypairs \u003d self.client.list_keypairs(user_id\u003duser_id)[\u0027keypairs\u0027]"},{"line_number":80,"context_line":"        fetched_list \u003d list()"},{"line_number":81,"context_line":"        for keypair in keypairs:"},{"line_number":82,"context_line":"            fetched_list.append(keypair[\u0027keypair\u0027])"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a57f1b5_37a5de03","line":80,"in_reply_to":"3a57f1b5_2e582ffa","updated":"2016-02-10 10:08:51.000000000","message":"Nice way, that can be done.","commit_id":"a04f1ef23bdea8b69d6616e3a350da84a81f7793"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f655c6f673bdea6cca2bd43d688d437c697b62ca","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            keypair \u003d self._create_keypair(k_name, pub_key\u003dpub_key,"},{"line_number":38,"context_line":"                                           keypair_type\u003d\u0027ssh\u0027,"},{"line_number":39,"context_line":"                                           user_id\u003duser_id)"},{"line_number":40,"context_line":"            pub_key \u003d (\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs\""},{"line_number":41,"context_line":"                       \"Ne3/1ILNCqFyfYWDeTKLD6jEXC2OQHLmietMWW+/vd\""},{"line_number":42,"context_line":"                       \"aZq7KZEwO0jhglaFjU1mpqq4Gz5RX156sCTNM9vRbw\""},{"line_number":43,"context_line":"                       \"KAxfsdF9laBYVsex3m3Wmui3uYrKyumsoJn2g9GNnG1P\""},{"line_number":44,"context_line":"                       \"I1mrVjZ61i0GY3khna+wzlTpCCmy5HNlrmbj3XLqBUpip\""},{"line_number":45,"context_line":"                       \"TOXmsnr4sChzC53KCd8LXuwc1i/CZPvF+3XipvAgFSE53pCt\""},{"line_number":46,"context_line":"                       \"LOeB1kYMOBaiUPLQTWXR3JpckqFIQwhIH0zoHlJvZE8hh90\""},{"line_number":47,"context_line":"                       \"XcPojYN56tI0OlrGqojbediJYD0rUsJu4weZpbn8vilb3JuDY+jws\""},{"line_number":48,"context_line":"                       \"snSA8wzBx3A/8y9Pp1B nova@ubuntu\")"},{"line_number":49,"context_line":"            self.assertEqual(k_name, keypair[\u0027name\u0027],"},{"line_number":50,"context_line":"                             \"The created keypair name is not equal \""},{"line_number":51,"context_line":"                             \"to the requested name!\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_8d4b64b0","line":48,"range":{"start_line":40,"start_character":0,"end_line":48,"end_character":57},"updated":"2016-02-14 13:19:21.000000000","message":"I am guessing this method purpose is just creating multiple keypairs for testing the filter is working fine. So why do we need to create keypairs with/without pub_key?\nI guess it is enough to change keyname like line 36 because this pub_key is not used in the test but the implementation code is a little big.\n\nSo how about just implementing this without this pub_key?","commit_id":"6d481898d7a1c41be90aa538d4073c5c37a1bbf9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"af448735801a0e3fe8b23265faa39aeb0a693e76","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            keypair \u003d self._create_keypair(k_name, pub_key\u003dpub_key,"},{"line_number":38,"context_line":"                                           keypair_type\u003d\u0027ssh\u0027,"},{"line_number":39,"context_line":"                                           user_id\u003duser_id)"},{"line_number":40,"context_line":"            pub_key \u003d (\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCs\""},{"line_number":41,"context_line":"                       \"Ne3/1ILNCqFyfYWDeTKLD6jEXC2OQHLmietMWW+/vd\""},{"line_number":42,"context_line":"                       \"aZq7KZEwO0jhglaFjU1mpqq4Gz5RX156sCTNM9vRbw\""},{"line_number":43,"context_line":"                       \"KAxfsdF9laBYVsex3m3Wmui3uYrKyumsoJn2g9GNnG1P\""},{"line_number":44,"context_line":"                       \"I1mrVjZ61i0GY3khna+wzlTpCCmy5HNlrmbj3XLqBUpip\""},{"line_number":45,"context_line":"                       \"TOXmsnr4sChzC53KCd8LXuwc1i/CZPvF+3XipvAgFSE53pCt\""},{"line_number":46,"context_line":"                       \"LOeB1kYMOBaiUPLQTWXR3JpckqFIQwhIH0zoHlJvZE8hh90\""},{"line_number":47,"context_line":"                       \"XcPojYN56tI0OlrGqojbediJYD0rUsJu4weZpbn8vilb3JuDY+jws\""},{"line_number":48,"context_line":"                       \"snSA8wzBx3A/8y9Pp1B nova@ubuntu\")"},{"line_number":49,"context_line":"            self.assertEqual(k_name, keypair[\u0027name\u0027],"},{"line_number":50,"context_line":"                             \"The created keypair name is not equal \""},{"line_number":51,"context_line":"                             \"to the requested name!\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_35ed3a8c","line":48,"range":{"start_line":40,"start_character":0,"end_line":48,"end_character":57},"in_reply_to":"dae33548_8d4b64b0","updated":"2016-02-15 04:39:36.000000000","message":"Actually i want to tests import key too here but with 2.10 version, that should be same only user-id thing differ. \n\nI also think without pub_key is enough. Thanks.","commit_id":"6d481898d7a1c41be90aa538d4073c5c37a1bbf9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f655c6f673bdea6cca2bd43d688d437c697b62ca","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                             \"to the requested name!\")"},{"line_number":52,"context_line":"            self.assertEqual(user_id, keypair[\u0027user_id\u0027],"},{"line_number":53,"context_line":"                             \"The created keypair is not for requested user!\")"},{"line_number":54,"context_line":"            self.assertNotEqual(self.client.user_id, keypair[\u0027user_id\u0027],"},{"line_number":55,"context_line":"                                \"The created keypair is for different user!\")"},{"line_number":56,"context_line":"            keypair.pop(\u0027private_key\u0027, None)"},{"line_number":57,"context_line":"            keypair.pop(\u0027user_id\u0027)"},{"line_number":58,"context_line":"            key_list.append(keypair)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_6dca6051","line":55,"range":{"start_line":54,"start_character":12,"end_line":55,"end_character":77},"updated":"2016-02-14 13:19:21.000000000","message":"According to the implementation, this checks just admin.user_id and non_admin.user_id is different because the \"user_id\" is confirmed as non_admin\u0027s on the above assertEqual.\n\nSo I feel this check seems redundant and unnecessary.","commit_id":"6d481898d7a1c41be90aa538d4073c5c37a1bbf9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"af448735801a0e3fe8b23265faa39aeb0a693e76","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                             \"to the requested name!\")"},{"line_number":52,"context_line":"            self.assertEqual(user_id, keypair[\u0027user_id\u0027],"},{"line_number":53,"context_line":"                             \"The created keypair is not for requested user!\")"},{"line_number":54,"context_line":"            self.assertNotEqual(self.client.user_id, keypair[\u0027user_id\u0027],"},{"line_number":55,"context_line":"                                \"The created keypair is for different user!\")"},{"line_number":56,"context_line":"            keypair.pop(\u0027private_key\u0027, None)"},{"line_number":57,"context_line":"            keypair.pop(\u0027user_id\u0027)"},{"line_number":58,"context_line":"            key_list.append(keypair)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_d5fcce40","line":55,"range":{"start_line":54,"start_character":12,"end_line":55,"end_character":77},"in_reply_to":"dae33548_6dca6051","updated":"2016-02-15 04:39:36.000000000","message":"Done.","commit_id":"6d481898d7a1c41be90aa538d4073c5c37a1bbf9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"f655c6f673bdea6cca2bd43d688d437c697b62ca","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def test_admin_manage_keypairs_for_other_users(self):"},{"line_number":63,"context_line":"        user_id \u003d self.non_admin_client.user_id"},{"line_number":64,"context_line":"        key_list \u003d self._create_and_check_keypairs(user_id)"},{"line_number":65,"context_line":"        keypair_detail \u003d self.client.show_keypair(key_list[0][\u0027name\u0027],"},{"line_number":66,"context_line":"                                                  user_id\u003duser_id)[\u0027keypair\u0027]"},{"line_number":67,"context_line":"        self.assertEqual(key_list[0][\u0027name\u0027], keypair_detail[\u0027name\u0027])"},{"line_number":68,"context_line":"        self.assertEqual(user_id, keypair_detail[\u0027user_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_8d46c4bd","line":65,"range":{"start_line":65,"start_character":50,"end_line":65,"end_character":70},"updated":"2016-02-14 13:19:21.000000000","message":"For readability, how about changing here like\n\n first_keyname \u003d key_list[0][\u0027name\u0027]\n keypair_detail \u003d self.client.show_keypair(first_keyname,\n                                           user_id\u003duser_id)[\u0027keypair\u0027]\n self.assertEqual(first_keyname, keypair_detail[\u0027name\u0027])\n\n?","commit_id":"6d481898d7a1c41be90aa538d4073c5c37a1bbf9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"af448735801a0e3fe8b23265faa39aeb0a693e76","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def test_admin_manage_keypairs_for_other_users(self):"},{"line_number":63,"context_line":"        user_id \u003d self.non_admin_client.user_id"},{"line_number":64,"context_line":"        key_list \u003d self._create_and_check_keypairs(user_id)"},{"line_number":65,"context_line":"        keypair_detail \u003d self.client.show_keypair(key_list[0][\u0027name\u0027],"},{"line_number":66,"context_line":"                                                  user_id\u003duser_id)[\u0027keypair\u0027]"},{"line_number":67,"context_line":"        self.assertEqual(key_list[0][\u0027name\u0027], keypair_detail[\u0027name\u0027])"},{"line_number":68,"context_line":"        self.assertEqual(user_id, keypair_detail[\u0027user_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_b5f94a50","line":65,"range":{"start_line":65,"start_character":50,"end_line":65,"end_character":70},"in_reply_to":"dae33548_8d46c4bd","updated":"2016-02-15 04:39:36.000000000","message":"Done.","commit_id":"6d481898d7a1c41be90aa538d4073c5c37a1bbf9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"95dab01f95864b81545ae6e4a9d54d0e8a79aa83","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class KeyPairsV210TestJSON(base.BaseKeypairTest):"},{"line_number":22,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":23,"context_line":"    min_microversion \u003d \u00272.10\u0027"},{"line_number":24,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_76cf987f","line":24,"range":{"start_line":24,"start_character":4,"end_line":24,"end_character":31},"updated":"2016-03-02 05:27:59.000000000","message":"we can remove this line for making the same as the other test classes.","commit_id":"bb55dec52048fb2929383c6b0c39f3c6a1f276cf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"b905955ed2dc1591a36c4ba0411f8ff89fefd9f1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"class KeyPairsV210TestJSON(base.BaseKeypairTest):"},{"line_number":22,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027admin\u0027]"},{"line_number":23,"context_line":"    min_microversion \u003d \u00272.10\u0027"},{"line_number":24,"context_line":"    max_microversion \u003d \u0027latest\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @classmethod"},{"line_number":27,"context_line":"    def setup_clients(cls):"}],"source_content_type":"text/x-python","patch_set":11,"id":"7af24918_36acf09f","line":24,"range":{"start_line":24,"start_character":4,"end_line":24,"end_character":31},"in_reply_to":"7af24918_76cf987f","updated":"2016-03-02 05:29:17.000000000","message":"Nice catch, Done","commit_id":"bb55dec52048fb2929383c6b0c39f3c6a1f276cf"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"36f29b7d124a8a10416c6a848c47104ab3ac0c3d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        missing_kps \u003d [kp for kp in key_list if kp not in fetched_list]"},{"line_number":74,"context_line":"        self.assertFalse(missing_kps,"},{"line_number":75,"context_line":"                         \"Failed to find keypairs %s in fetched list\""},{"line_number":76,"context_line":"                         % \u0027, \u0027.join(m_key[\u0027name\u0027] for m_key in missing_kps))"}],"source_content_type":"text/x-python","patch_set":17,"id":"3afc51ec_0fdee73e","line":76,"updated":"2016-03-14 12:11:22.000000000","message":"is it worth testing delete_keypair with user_id also?","commit_id":"59d8096bce00272d12fd0783161c9ff999332b9a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9332daea8639d615be9b55dfce3090c840307fac","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        missing_kps \u003d [kp for kp in key_list if kp not in fetched_list]"},{"line_number":74,"context_line":"        self.assertFalse(missing_kps,"},{"line_number":75,"context_line":"                         \"Failed to find keypairs %s in fetched list\""},{"line_number":76,"context_line":"                         % \u0027, \u0027.join(m_key[\u0027name\u0027] for m_key in missing_kps))"}],"source_content_type":"text/x-python","patch_set":17,"id":"1af94dfe_ab239004","line":76,"in_reply_to":"3afc51ec_0fdee73e","updated":"2016-03-15 23:50:31.000000000","message":"Yea, that is nice point. Actually we do tests that in tempest/api/compute/keypairs/base.py _delete_keypair method which will be called from self._create_keypair(","commit_id":"59d8096bce00272d12fd0783161c9ff999332b9a"}],"tempest/api/compute/keypairs/base.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2d520ede5016399c393b2f3887a40f3988a346d1","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        super(BaseKeypairTest, cls).setup_clients()"},{"line_number":25,"context_line":"        cls.client \u003d cls.keypairs_client"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def _delete_keypair(self, keypair_name, user_id\u003dNone):"},{"line_number":28,"context_line":"        params \u003d {}"},{"line_number":29,"context_line":"        if user_id:"},{"line_number":30,"context_line":"            params[\u0027user_id\u0027] \u003d user_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_561b8a72","line":27,"range":{"start_line":27,"start_character":44,"end_line":27,"end_character":56},"updated":"2016-03-01 22:52:33.000000000","message":"Why don\u0027t you use **params instead of user_id?","commit_id":"b626ef8d6681a199b69db5c4567287320b262439"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7119766ba641e22a5cfebcbe23fd71cbe320f11d","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        super(BaseKeypairTest, cls).setup_clients()"},{"line_number":25,"context_line":"        cls.client \u003d cls.keypairs_client"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def _delete_keypair(self, keypair_name, user_id\u003dNone):"},{"line_number":28,"context_line":"        params \u003d {}"},{"line_number":29,"context_line":"        if user_id:"},{"line_number":30,"context_line":"            params[\u0027user_id\u0027] \u003d user_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"7af24918_45bc6a05","line":27,"range":{"start_line":27,"start_character":44,"end_line":27,"end_character":56},"in_reply_to":"7af24918_561b8a72","updated":"2016-03-02 05:14:21.000000000","message":"Yea we can use that. Thanks","commit_id":"b626ef8d6681a199b69db5c4567287320b262439"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"8edcd5acbf7243e7ff96441526e45580c932a364","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        if keypair_type:"},{"line_number":38,"context_line":"            kwargs.update({\u0027type\u0027: keypair_type})"},{"line_number":39,"context_line":"        if user_id:"},{"line_number":40,"context_line":"            kwargs.update({\u0027user_id\u0027: user_id})"},{"line_number":41,"context_line":"            delete_params[\u0027user_id\u0027] \u003d user_id"},{"line_number":42,"context_line":"        body \u003d self.client.create_keypair(**kwargs)[\u0027keypair\u0027]"},{"line_number":43,"context_line":"        self.addCleanup(self._delete_keypair, keypair_name, **delete_params)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9a061dce_3ae7fd13","line":40,"updated":"2016-04-04 08:07:02.000000000","message":"I find this syntax super weird. Why not use :\n  kwargs[\u0027user_id\u0027] \u003d user_id\n\nThe \"code consistence\" argument is not a good one: should we copy bogus code over and over ? I don\"t think so.","commit_id":"4541bd12ea8f4fdd5f51bea8b6853f61ec4b6ca7"}],"tempest/services/compute/json/keypairs_client.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"36f29b7d124a8a10416c6a848c47104ab3ac0c3d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                            {\u0027min\u0027: \u00272.2\u0027, \u0027max\u0027: None, \u0027schema\u0027: schemav22}]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def list_keypairs(self, **params):"},{"line_number":31,"context_line":"        url \u003d \u0027os-keypairs\u0027"},{"line_number":32,"context_line":"        if params:"},{"line_number":33,"context_line":"            url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":34,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":35,"context_line":"        body \u003d json.loads(body)"},{"line_number":36,"context_line":"        schema \u003d self.get_schema(self.schema_versions_info)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3afc51ec_ac3421fb","line":33,"range":{"start_line":31,"start_character":7,"end_line":33,"end_character":51},"updated":"2016-03-14 12:11:22.000000000","message":"Just question: should we move those into tempest lib?","commit_id":"59d8096bce00272d12fd0783161c9ff999332b9a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9332daea8639d615be9b55dfce3090c840307fac","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                            {\u0027min\u0027: \u00272.2\u0027, \u0027max\u0027: None, \u0027schema\u0027: schemav22}]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def list_keypairs(self, **params):"},{"line_number":31,"context_line":"        url \u003d \u0027os-keypairs\u0027"},{"line_number":32,"context_line":"        if params:"},{"line_number":33,"context_line":"            url +\u003d \u0027?%s\u0027 % urllib.urlencode(params)"},{"line_number":34,"context_line":"        resp, body \u003d self.get(url)"},{"line_number":35,"context_line":"        body \u003d json.loads(body)"},{"line_number":36,"context_line":"        schema \u003d self.get_schema(self.schema_versions_info)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1af94dfe_6b8868e8","line":33,"range":{"start_line":31,"start_character":7,"end_line":33,"end_character":51},"in_reply_to":"3afc51ec_ac3421fb","updated":"2016-03-15 23:50:31.000000000","message":"Yea, this file will be moved to tempest/lib once this patch merged.","commit_id":"59d8096bce00272d12fd0783161c9ff999332b9a"}]}
