)]}'
{"keystone_tempest_plugin/services/identity/clients.py":[{"author":{"_account_id":10873,"name":"Juan Antonio Osorio Robles","email":"jaosorior@redhat.com","username":"ejuaoso"},"change_message_id":"9ff168d4a0cc7f28f52f31dff17a89b5166cec5e","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _put(self, entity_id, body, **kwargs):"},{"line_number":62,"context_line":"        url \u003d self._build_path(entity_id)"},{"line_number":63,"context_line":"        return super(Federation, self).put(url, body, **kwargs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9abb7d3a_e2114bb1","line":63,"updated":"2016-05-27 11:28:55.000000000","message":"Is there a reason you needed to prepend an underscore to these functions? You would be able to use them and change less code in the keystone_tempest_plugin/services/identity/v3/identity_providers_client.py file","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"5d48182ae001d51b95dcd4f92d49902aa4cad30f","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _put(self, entity_id, body, **kwargs):"},{"line_number":62,"context_line":"        url \u003d self._build_path(entity_id)"},{"line_number":63,"context_line":"        return super(Federation, self).put(url, body, **kwargs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9abb7d3a_ff46ebbd","line":63,"in_reply_to":"9abb7d3a_8addf172","updated":"2016-05-27 18:31:39.000000000","message":"there is some places (last patch of the chain) where we use the parent class method instead of this one. So I left the _","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"615ad9ff37fa1368ff45bc3f466fedea98c58454","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def _put(self, entity_id, body, **kwargs):"},{"line_number":62,"context_line":"        url \u003d self._build_path(entity_id)"},{"line_number":63,"context_line":"        return super(Federation, self).put(url, body, **kwargs)"}],"source_content_type":"text/x-python","patch_set":13,"id":"9abb7d3a_8addf172","line":63,"in_reply_to":"9abb7d3a_e2114bb1","updated":"2016-05-27 12:58:27.000000000","message":"just wanted to differentiate between the methods from the parent, but you have a point... will update","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"676e6a3cce4e9b88f4b4a61a687c88b9a8d19b6c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        subpath \u003d \u0027%s/%s\u0027 % (self.subpath_prefix, self.subpath_suffix)"},{"line_number":47,"context_line":"        return \u0027%s/%s\u0027 % (subpath, entity_id) if entity_id else subpath"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _delete(self, entity_id, **kwargs):"},{"line_number":50,"context_line":"        url \u003d self._build_path(entity_id)"},{"line_number":51,"context_line":"        return super(Federation, self).delete(url, **kwargs)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_183c34c7","line":49,"updated":"2016-06-13 14:24:39.000000000","message":"Why not make all of these public except _build_path()?","commit_id":"23c23fcbf34cf6043f0037eb1c61657a4295d2b8"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0e234f667a579247f20e7f1ea8e69e2f195aaacd","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        subpath \u003d \u0027%s/%s\u0027 % (self.subpath_prefix, self.subpath_suffix)"},{"line_number":47,"context_line":"        return \u0027%s/%s\u0027 % (subpath, entity_id) if entity_id else subpath"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _delete(self, entity_id, **kwargs):"},{"line_number":50,"context_line":"        url \u003d self._build_path(entity_id)"},{"line_number":51,"context_line":"        return super(Federation, self).delete(url, **kwargs)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_388e50d0","line":49,"in_reply_to":"7aa08908_183c34c7","updated":"2016-06-13 14:36:07.000000000","message":"want to differ between RestClient methods and this one, there are places when we want to use one or another.","commit_id":"23c23fcbf34cf6043f0037eb1c61657a4295d2b8"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b99962e2b6e8c12843a50aa72569bfcfcc3d0459","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        subpath \u003d \u0027%s/%s\u0027 % (self.subpath_prefix, self.subpath_suffix)"},{"line_number":47,"context_line":"        return \u0027%s/%s\u0027 % (subpath, entity_id) if entity_id else subpath"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def _delete(self, entity_id, **kwargs):"},{"line_number":50,"context_line":"        url \u003d self._build_path(entity_id)"},{"line_number":51,"context_line":"        return super(Federation, self).delete(url, **kwargs)"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_8848cfb4","line":49,"in_reply_to":"7aa08908_388e50d0","updated":"2016-06-13 15:29:46.000000000","message":"Oh - interesting... So we only do this because RestClient also has delete(), get(), patch(), put() methods.","commit_id":"23c23fcbf34cf6043f0037eb1c61657a4295d2b8"}],"keystone_tempest_plugin/services/identity/v3/service_providers_client.py":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"26850d8b4785e046e157639c5f48cf457ae3dcd6","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            return auth_data[\u0027service_providers\u0027]"},{"line_number":76,"context_line":"        except KeyError:"},{"line_number":77,"context_line":"            # no service providers in token"},{"line_number":78,"context_line":"            pass"},{"line_number":79,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_e1d468be","line":78,"updated":"2016-04-18 14:29:25.000000000","message":"why not return the empty list here, instead of pass?","commit_id":"67aec7238c25ecb4d2e12fe26ebb3a59a12e35fb"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"837349df7bec3bcf089afa545e515f6bcdf47fb9","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            return auth_data[\u0027service_providers\u0027]"},{"line_number":76,"context_line":"        except KeyError:"},{"line_number":77,"context_line":"            # no service providers in token"},{"line_number":78,"context_line":"            pass"},{"line_number":79,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_f30d4c91","line":78,"in_reply_to":"1a122d0e_e1d468be","updated":"2016-04-18 20:17:55.000000000","message":"my Java past still affects me :P","commit_id":"67aec7238c25ecb4d2e12fe26ebb3a59a12e35fb"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"b3925f75eebc5ae205467a56c70aea11e8e8d52a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    subpath_suffix \u003d \u0027service_providers\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_service_provider(self, sp_id, **kwargs):"},{"line_number":27,"context_line":"        \"\"\"Create an service provider."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :param str sp_id: The ID to be used to create the Service Provider."},{"line_number":30,"context_line":"        :param kwargs: Extra attributes. Mandatory: auth_url (str) and sp_url"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_9d72f6e1","line":27,"updated":"2016-05-25 16:54:40.000000000","message":"/s/an/a/ - same in the other docstrings.","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"615ad9ff37fa1368ff45bc3f466fedea98c58454","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    subpath_suffix \u003d \u0027service_providers\u0027"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    def create_service_provider(self, sp_id, **kwargs):"},{"line_number":27,"context_line":"        \"\"\"Create an service provider."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :param str sp_id: The ID to be used to create the Service Provider."},{"line_number":30,"context_line":"        :param kwargs: Extra attributes. Mandatory: auth_url (str) and sp_url"}],"source_content_type":"text/x-python","patch_set":13,"id":"9abb7d3a_4acae9a2","line":27,"in_reply_to":"bab6814e_9d72f6e1","updated":"2016-05-27 12:58:27.000000000","message":"Done","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"b3925f75eebc5ae205467a56c70aea11e8e8d52a","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def get_service_providers_in_token(self):"},{"line_number":75,"context_line":"        \"\"\"Get the service providers list present in the token."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        Only enabled servie providers are displayed in the token."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        # First we force the auth_data update"},{"line_number":80,"context_line":"        self.auth_provider.set_auth()"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_7341410b","line":77,"updated":"2016-05-25 16:54:40.000000000","message":"s/servie/service/ if you need to do a repass for other reasons.","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"615ad9ff37fa1368ff45bc3f466fedea98c58454","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def get_service_providers_in_token(self):"},{"line_number":75,"context_line":"        \"\"\"Get the service providers list present in the token."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        Only enabled servie providers are displayed in the token."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        # First we force the auth_data update"},{"line_number":80,"context_line":"        self.auth_provider.set_auth()"}],"source_content_type":"text/x-python","patch_set":13,"id":"9abb7d3a_2acfa5b1","line":77,"in_reply_to":"bab6814e_7341410b","updated":"2016-05-27 12:58:27.000000000","message":"Done","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"b3925f75eebc5ae205467a56c70aea11e8e8d52a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        Only enabled servie providers are displayed in the token."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        # First we force the auth_data update"},{"line_number":80,"context_line":"        self.auth_provider.set_auth()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # Now we can retrieve the updated auth_data"},{"line_number":83,"context_line":"        auth_data \u003d self.auth_provider.get_auth()[1]"}],"source_content_type":"text/x-python","patch_set":13,"id":"bab6814e_33d05953","line":80,"updated":"2016-05-25 16:54:40.000000000","message":"Where is the auth provider set? It\u0027s bit unclear.","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"615ad9ff37fa1368ff45bc3f466fedea98c58454","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        Only enabled servie providers are displayed in the token."},{"line_number":78,"context_line":"        \"\"\""},{"line_number":79,"context_line":"        # First we force the auth_data update"},{"line_number":80,"context_line":"        self.auth_provider.set_auth()"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        # Now we can retrieve the updated auth_data"},{"line_number":83,"context_line":"        auth_data \u003d self.auth_provider.get_auth()[1]"}],"source_content_type":"text/x-python","patch_set":13,"id":"9abb7d3a_8ac4d192","line":80,"in_reply_to":"bab6814e_33d05953","updated":"2016-05-27 12:58:27.000000000","message":"Done","commit_id":"e594d61056df681c1fdba9e4cb8f0ef920775da0"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"676e6a3cce4e9b88f4b4a61a687c88b9a8d19b6c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def list_service_providers(self):"},{"line_number":41,"context_line":"        \"\"\"List the service providers.\"\"\""},{"line_number":42,"context_line":"        resp, body \u003d self._get()"},{"line_number":43,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":44,"context_line":"        body \u003d jsonutils.loads(body)"},{"line_number":45,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_385db015","line":43,"updated":"2016-06-13 14:24:39.000000000","message":"Should we use http_client here? We use it in most other status assertions in keystone.\n\n    from six.moves import http_client\n    ...\n    self.expected_success(http_client.OK, resp.status)","commit_id":"23c23fcbf34cf6043f0037eb1c61657a4295d2b8"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b99962e2b6e8c12843a50aa72569bfcfcc3d0459","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def list_service_providers(self):"},{"line_number":41,"context_line":"        \"\"\"List the service providers.\"\"\""},{"line_number":42,"context_line":"        resp, body \u003d self._get()"},{"line_number":43,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":44,"context_line":"        body \u003d jsonutils.loads(body)"},{"line_number":45,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_48d9c7f2","line":43,"in_reply_to":"7aa08908_18b27494","updated":"2016-06-13 15:29:46.000000000","message":"Sure - we can do it in a follow on patch.","commit_id":"23c23fcbf34cf6043f0037eb1c61657a4295d2b8"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"0e234f667a579247f20e7f1ea8e69e2f195aaacd","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    def list_service_providers(self):"},{"line_number":41,"context_line":"        \"\"\"List the service providers.\"\"\""},{"line_number":42,"context_line":"        resp, body \u003d self._get()"},{"line_number":43,"context_line":"        self.expected_success(200, resp.status)"},{"line_number":44,"context_line":"        body \u003d jsonutils.loads(body)"},{"line_number":45,"context_line":"        return rest_client.ResponseBody(resp, body)"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"7aa08908_18b27494","line":43,"in_reply_to":"7aa08908_385db015","updated":"2016-06-13 14:36:07.000000000","message":"++\n\nare you ok with this being fixed in a follow up patch?","commit_id":"23c23fcbf34cf6043f0037eb1c61657a4295d2b8"}],"keystone_tempest_plugin/tests/api/identity/v3/test_service_providers.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"5991ee167a334b0746057fc3ced926801015d17f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import test"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DEFAULT_RELAY_STATE_PREFIX \u003d \u0027ss:mem:\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ServiceProvidersTest(base.BaseIdentityTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_40a856db","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":38},"updated":"2016-04-14 17:24:10.000000000","message":"looks like this is not used anywhere.","commit_id":"67aec7238c25ecb4d2e12fe26ebb3a59a12e35fb"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8f4d613e1f63fc03eb56381c9b86ecc86442b651","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import test"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DEFAULT_RELAY_STATE_PREFIX \u003d \u0027ss:mem:\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ServiceProvidersTest(base.BaseIdentityTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_917e4217","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":38},"in_reply_to":"5a18252c_40a856db","updated":"2016-04-14 18:32:26.000000000","message":"it is, take a look at line 80","commit_id":"67aec7238c25ecb4d2e12fe26ebb3a59a12e35fb"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"d3760cfddf162bb28c507a51ea99d1901287fd98","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest import test"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"DEFAULT_RELAY_STATE_PREFIX \u003d \u0027ss:mem:\u0027"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ServiceProvidersTest(base.BaseIdentityTest):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_6cc90959","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":38},"in_reply_to":"5a18252c_917e4217","updated":"2016-04-14 18:51:28.000000000","message":"i hate the new gerrit","commit_id":"67aec7238c25ecb4d2e12fe26ebb3a59a12e35fb"}]}
