)]}'
{"keystoneclient/service_catalog.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        \"\"\"Fetch and filter endpoints for the specified service(s)."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        Returns endpoints for the specified service (or all) containing"},{"line_number":90,"context_line":"        the specified type (or all) and region (or all)."},{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        endpoint_type \u003d self._normalize_endpoint_type(endpoint_type)"},{"line_number":93,"context_line":"        region_name \u003d region_name or self._region_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFtA%3D","line":90,"updated":"2014-03-30 15:14:20.000000000","message":"update the docstring.","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        \"\"\"Fetch and filter endpoints for the specified service(s)."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        Returns endpoints for the specified service (or all) containing"},{"line_number":90,"context_line":"        the specified type (or all) and region (or all)."},{"line_number":91,"context_line":"        \"\"\""},{"line_number":92,"context_line":"        endpoint_type \u003d self._normalize_endpoint_type(endpoint_type)"},{"line_number":93,"context_line":"        region_name \u003d region_name or self._region_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE8I%3D","line":90,"in_reply_to":"AAAAWH%2F%2BFtA%3D","updated":"2014-03-31 02:23:45.000000000","message":"Done","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"2e7a11c269184ee7f1c2455924051323cf47f06a","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            except KeyError:"},{"line_number":101,"context_line":"                continue"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            sn \u003d service.get(\u0027name\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            if service_type and service_type !\u003d st:"},{"line_number":106,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BKsE%3D","line":103,"updated":"2014-03-28 17:12:07.000000000","message":"an inline comment explaining why this can use .get() while \u0027type\u0027 results in a continue would be appreciated","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            except KeyError:"},{"line_number":101,"context_line":"                continue"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            sn \u003d service.get(\u0027name\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            if service_type and service_type !\u003d st:"},{"line_number":106,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE8A%3D","line":103,"in_reply_to":"AAAAWH%2F%2BKsE%3D","updated":"2014-03-31 02:23:45.000000000","message":"Done","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            sn \u003d service.get(\u0027name\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            if service_type and service_type !\u003d st:"},{"line_number":106,"context_line":"                continue"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            if service_name and service_name !\u003d sn:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFtI%3D","line":105,"updated":"2014-03-30 15:14:20.000000000","message":"Doesn\u0027t this get an UnboundLocalError if there was no \u0027type\u0027 in service?","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":"            sn \u003d service.get(\u0027name\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            if service_type and service_type !\u003d st:"},{"line_number":106,"context_line":"                continue"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"            if service_name and service_name !\u003d sn:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE78%3D","line":105,"in_reply_to":"AAAAWH%2F%2BFtI%3D","updated":"2014-03-31 02:23:45.000000000","message":"Shouldn\u0027t. There will be a KeyError and continue if there is no type: line 99","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f9e28e6dddd9a4f547c72c5d2c4b43cc645aef48","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        \"\"\"Fetch and filter endpoints for the specified service(s)."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        Returns endpoints for the specified service (or all) containing"},{"line_number":91,"context_line":"        the specified type (or all) and region (or all)."},{"line_number":92,"context_line":"        \"\"\""},{"line_number":93,"context_line":"        endpoint_type \u003d self._normalize_endpoint_type(endpoint_type)"},{"line_number":94,"context_line":"        region_name \u003d region_name or self._region_name"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F9g40%3D","line":91,"updated":"2014-04-04 01:03:12.000000000","message":"update the docstring, this function also checks service_name now.","commit_id":"8d8c689493925a4f3700da7f8712ffe53d76e5cb"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"26121a1d33ca82233f0dc95c5b52aac62e11ebf0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        \"\"\"Fetch and filter endpoints for the specified service(s)."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        Returns endpoints for the specified service (or all) containing"},{"line_number":91,"context_line":"        the specified type (or all) and region (or all) and service name."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        If there is no name in the service catalog the service_name check will"},{"line_number":94,"context_line":"        be skipped.  This allows compatibility with services that existed"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FQMc%3D","line":91,"updated":"2014-04-15 19:08:26.000000000","message":"Is service_name an \"or all\" too?","commit_id":"00c05a18fa1ce224020b4d3f84f7eba002c9f091"}],"keystoneclient/tests/v2_0/test_service_catalog.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                         \u0027https://image.south.host/v1/\u0027)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_service_catalog_service_name(self):"},{"line_number":158,"context_line":"        auth_ref \u003d access.AccessInfo.factory(None, self.AUTH_RESPONSE_BODY)"},{"line_number":159,"context_line":"        sc \u003d auth_ref.service_catalog"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        url \u003d sc.url_for(service_name\u003d\u0027Image Servers\u0027, endpoint_type\u003d\u0027public\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFss%3D","line":158,"updated":"2014-03-30 15:14:20.000000000","message":"give a name to the \"None\" magic number.","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                         \u0027https://image.south.host/v1/\u0027)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_service_catalog_service_name(self):"},{"line_number":158,"context_line":"        auth_ref \u003d access.AccessInfo.factory(None, self.AUTH_RESPONSE_BODY)"},{"line_number":159,"context_line":"        sc \u003d auth_ref.service_catalog"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        url \u003d sc.url_for(service_name\u003d\u0027Image Servers\u0027, endpoint_type\u003d\u0027public\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE7w%3D","line":158,"in_reply_to":"AAAAWH%2F%2BFss%3D","updated":"2014-03-31 02:23:45.000000000","message":"Done","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        url \u003d sc.url_for(service_name\u003d\u0027Image Servers\u0027, endpoint_type\u003d\u0027public\u0027,"},{"line_number":162,"context_line":"                         service_type\u003d\u0027image\u0027, region_name\u003d\u0027North\u0027)"},{"line_number":163,"context_line":"        self.assertEqual(url, \u0027https://image.north.host/v1/\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        self.assertRaises(exceptions.EndpointNotFound, sc.url_for,"},{"line_number":166,"context_line":"                          service_name\u003d\u0027Image Servers\u0027, service_type\u003d\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFsw%3D","line":163,"updated":"2014-03-30 15:14:20.000000000","message":"(nit) the order of arguments to assertEqual is expected, actual","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        url \u003d sc.url_for(service_name\u003d\u0027Image Servers\u0027, endpoint_type\u003d\u0027public\u0027,"},{"line_number":162,"context_line":"                         service_type\u003d\u0027image\u0027, region_name\u003d\u0027North\u0027)"},{"line_number":163,"context_line":"        self.assertEqual(url, \u0027https://image.north.host/v1/\u0027)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        self.assertRaises(exceptions.EndpointNotFound, sc.url_for,"},{"line_number":166,"context_line":"                          service_name\u003d\u0027Image Servers\u0027, service_type\u003d\u0027compute\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE7s%3D","line":163,"in_reply_to":"AAAAWH%2F%2BFsw%3D","updated":"2014-03-31 02:23:45.000000000","message":"Done","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertRaises(exceptions.EndpointNotFound, sc.url_for,"},{"line_number":166,"context_line":"                          service_name\u003d\u0027Image Servers\u0027, service_type\u003d\u0027compute\u0027)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        url \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Image Servers\u0027,"},{"line_number":169,"context_line":"                          endpoint_type\u003d\u0027public\u0027)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        self.assertIn(\u0027https://image.north.host/v1/\u0027, url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFso%3D","line":168,"updated":"2014-03-30 15:14:20.000000000","message":"url should be urls","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertRaises(exceptions.EndpointNotFound, sc.url_for,"},{"line_number":166,"context_line":"                          service_name\u003d\u0027Image Servers\u0027, service_type\u003d\u0027compute\u0027)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        url \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Image Servers\u0027,"},{"line_number":169,"context_line":"                          endpoint_type\u003d\u0027public\u0027)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        self.assertIn(\u0027https://image.north.host/v1/\u0027, url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE7k%3D","line":168,"in_reply_to":"AAAAWH%2F%2BFso%3D","updated":"2014-03-31 02:23:45.000000000","message":"Done","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        self.assertIn(\u0027https://image.north.host/v1/\u0027, url)"},{"line_number":172,"context_line":"        self.assertIn(\u0027https://image.south.host/v1/\u0027, url)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        url \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Servers\u0027,"},{"line_number":175,"context_line":"                          endpoint_type\u003d\u0027public\u0027)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        self.assertIsNone(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFsk%3D","line":174,"updated":"2014-03-30 15:14:20.000000000","message":"url should be urls","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        self.assertIn(\u0027https://image.north.host/v1/\u0027, url)"},{"line_number":172,"context_line":"        self.assertIn(\u0027https://image.south.host/v1/\u0027, url)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        url \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Servers\u0027,"},{"line_number":175,"context_line":"                          endpoint_type\u003d\u0027public\u0027)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        self.assertIsNone(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE7g%3D","line":174,"in_reply_to":"AAAAWH%2F%2BFsk%3D","updated":"2014-03-31 02:23:45.000000000","message":"Done","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        url \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Servers\u0027,"},{"line_number":175,"context_line":"                          endpoint_type\u003d\u0027public\u0027)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        self.assertIsNone(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFsc%3D","line":177,"updated":"2014-03-30 15:14:20.000000000","message":"There should be a test where service_name is given and service_type isn\u0027t.","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        url \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Servers\u0027,"},{"line_number":175,"context_line":"                          endpoint_type\u003d\u0027public\u0027)"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        self.assertIsNone(url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE7I%3D","line":177,"in_reply_to":"AAAAWH%2F%2BFsc%3D","updated":"2014-03-31 02:23:45.000000000","message":"Unfortunately service_type defaults to \u0027identity\u0027 not None like most other parameters.","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"08c4f698357991ddf38e6d1a123bd957d8a859f0","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        self.assertEqual(\u0027https://image.north.host/v1/\u0027, url)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        self.assertRaises(exceptions.EndpointNotFound, sc.url_for,"},{"line_number":164,"context_line":"                          service_name\u003d\u0027Image Servers\u0027, service_type\u003d\u0027compute\u0027)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        urls \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Image Servers\u0027,"},{"line_number":167,"context_line":"                           endpoint_type\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F%2BcM%3D","line":164,"updated":"2014-04-09 06:02:53.000000000","message":"we are testing service_name match here right? Should it be\n\nservice_name\u003duuid.uuid4().hex, service_type\u003d\u0027image\u0027)","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"39a4aacd70587fd2d208c90e303ed45eac710d7d","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        self.assertEqual(\u0027https://image.north.host/v1/\u0027, url)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        self.assertRaises(exceptions.EndpointNotFound, sc.url_for,"},{"line_number":164,"context_line":"                          service_name\u003d\u0027Image Servers\u0027, service_type\u003d\u0027compute\u0027)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        urls \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Image Servers\u0027,"},{"line_number":167,"context_line":"                           endpoint_type\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F3OU%3D","line":164,"in_reply_to":"AAAAW3%2F%2F%2BcM%3D","updated":"2014-04-09 21:04:50.000000000","message":"could be but it would miss a case. \n\nthe point here was that \u0027Image Servers\u0027 does exist in the catalog as a name - it just doesn\u0027t exist with the service_type \u003d \u0027compute\u0027 \n\nThis would pick up the situation where service_type was ignored in favour of just name so i would prefer to leave it.","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"48a9bdaf4f1016e38ad7f51633ae36ca329e80bf","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        self.assertEqual(\u0027https://image.north.host/v1/\u0027, url)"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        self.assertRaises(exceptions.EndpointNotFound, sc.url_for,"},{"line_number":164,"context_line":"                          service_name\u003d\u0027Image Servers\u0027, service_type\u003d\u0027compute\u0027)"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        urls \u003d sc.get_urls(service_type\u003d\u0027image\u0027, service_name\u003d\u0027Image Servers\u0027,"},{"line_number":167,"context_line":"                           endpoint_type\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F3CM%3D","line":164,"in_reply_to":"AAAAW3%2F%2F3OU%3D","updated":"2014-04-09 21:27:25.000000000","message":"But isn\u0027t this patch for service name filtering? But here we are testing service_type. Even the name test_service_catalog_service_name() suggesting we are testing filter by name. This is confusing to me.","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"26121a1d33ca82233f0dc95c5b52aac62e11ebf0","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        self.assertEqual(endpoints[\u0027image\u0027][0][\u0027publicURL\u0027],"},{"line_number":152,"context_line":"                         \u0027https://image.south.host/v1/\u0027)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def test_service_catalog_service_name(self):"},{"line_number":155,"context_line":"        auth_ref \u003d access.AccessInfo.factory(resp\u003dNone,"},{"line_number":156,"context_line":"                                             body\u003dself.AUTH_RESPONSE_BODY)"},{"line_number":157,"context_line":"        sc \u003d auth_ref.service_catalog"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FQaY%3D","line":154,"updated":"2014-04-15 19:08:26.000000000","message":"Does this also need to check for the case where the service doesn\u0027t have a service name set and still gets returned? Similar to the v3 tests.","commit_id":"00c05a18fa1ce224020b4d3f84f7eba002c9f091"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"6323d23b44de189fcfe5379555f4ba80fec46622","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        self.assertEqual(endpoints[\u0027image\u0027][0][\u0027publicURL\u0027],"},{"line_number":152,"context_line":"                         \u0027https://image.south.host/v1/\u0027)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def test_service_catalog_service_name(self):"},{"line_number":155,"context_line":"        auth_ref \u003d access.AccessInfo.factory(resp\u003dNone,"},{"line_number":156,"context_line":"                                             body\u003dself.AUTH_RESPONSE_BODY)"},{"line_number":157,"context_line":"        sc \u003d auth_ref.service_catalog"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAW3%2F%2FO%2B0%3D","line":154,"in_reply_to":"AAAAW3%2F%2FQaY%3D","updated":"2014-04-15 21:41:06.000000000","message":"it\u0027s lets of a concern here as this is how the catalog has always operated for v2 so the case will be covered by all the existing tests.","commit_id":"00c05a18fa1ce224020b4d3f84f7eba002c9f091"}],"keystoneclient/tests/v3/client_fixtures.py":[{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"08c4f698357991ddf38e6d1a123bd957d8a859f0","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                \u0027interface\u0027: \u0027admin\u0027"},{"line_number":334,"context_line":"            }],"},{"line_number":335,"context_line":"            \u0027type\u0027: \u0027compute\u0027,"},{"line_number":336,"context_line":"            \u0027name\u0027: \u0027Cloud Servers\u0027,"},{"line_number":337,"context_line":"        }, {"},{"line_number":338,"context_line":"            \u0027endpoints\u0027: [{"},{"line_number":339,"context_line":"                \u0027url\u0027: \u0027http://swift.north.host/swiftapi/public\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F%2Bbw%3D","line":336,"updated":"2014-04-09 06:02:53.000000000","message":"\u0027name\u0027: \u0027nova\u0027?\n\nIf we are going by this\n\nhttps://github.com/openstack/keystone/blob/master/tools/sample_data.sh#L157","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"39a4aacd70587fd2d208c90e303ed45eac710d7d","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                \u0027interface\u0027: \u0027admin\u0027"},{"line_number":334,"context_line":"            }],"},{"line_number":335,"context_line":"            \u0027type\u0027: \u0027compute\u0027,"},{"line_number":336,"context_line":"            \u0027name\u0027: \u0027Cloud Servers\u0027,"},{"line_number":337,"context_line":"        }, {"},{"line_number":338,"context_line":"            \u0027endpoints\u0027: [{"},{"line_number":339,"context_line":"                \u0027url\u0027: \u0027http://swift.north.host/swiftapi/public\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F3Nc%3D","line":336,"in_reply_to":"AAAAW3%2F%2F%2Bbw%3D","updated":"2014-04-09 21:04:50.000000000","message":"I took these names from the v2 testing service catalogs. As a purely descriptive name i don\u0027t think it makes a difference.","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"08c4f698357991ddf38e6d1a123bd957d8a859f0","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                \u0027interface\u0027: \u0027admin\u0027"},{"line_number":350,"context_line":"            }],"},{"line_number":351,"context_line":"            \u0027type\u0027: \u0027object-store\u0027,"},{"line_number":352,"context_line":"            \u0027name\u0027: \u0027Cloud Files\u0027,"},{"line_number":353,"context_line":"        }, {"},{"line_number":354,"context_line":"            \u0027endpoints\u0027: [{"},{"line_number":355,"context_line":"                \u0027url\u0027: \u0027http://glance.north.host/glanceapi/public\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F%2BbU%3D","line":352,"updated":"2014-04-09 06:02:53.000000000","message":"\u0027name\u0027: \u0027swift\u0027\n\nhttps://github.com/openstack/keystone/blob/master/tools/sample_data.sh#L213","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"},{"author":{"_account_id":1916,"name":"Guang Yee","email":"gyee@suse.com","username":"guang-yee"},"change_message_id":"08c4f698357991ddf38e6d1a123bd957d8a859f0","unresolved":false,"context_lines":[{"line_number":377,"context_line":"                \u0027interface\u0027: \u0027admin\u0027"},{"line_number":378,"context_line":"            }],"},{"line_number":379,"context_line":"            \u0027type\u0027: \u0027image\u0027,"},{"line_number":380,"context_line":"            \u0027name\u0027: \u0027Image Servers\u0027,"},{"line_number":381,"context_line":"        }]"},{"line_number":382,"context_line":"    }"},{"line_number":383,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F%2BbQ%3D","line":380,"updated":"2014-04-09 06:02:53.000000000","message":"\u0027name\u0027: \u0027glance\u0027","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"}],"keystoneclient/tests/v3/test_service_catalog.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"473264c8a7d6b830913e28dfc42e3bc455d08ba5","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                             self.south_endpoints[endpoint[\u0027interface\u0027]])"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def test_service_catalog_service_name(self):"},{"line_number":176,"context_line":"        auth_ref \u003d access.AccessInfo.factory(None, self.AUTH_RESPONSE_BODY)"},{"line_number":177,"context_line":"        sc \u003d auth_ref.service_catalog"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        url \u003d sc.url_for(service_name\u003d\u0027Image Servers\u0027, endpoint_type\u003d\u0027public\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BFsQ%3D","line":176,"updated":"2014-03-30 15:14:20.000000000","message":"same comments.","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"4c7920eb05e153424b82d733c16cc22e4d2fe436","unresolved":false,"context_lines":[{"line_number":173,"context_line":"                             self.south_endpoints[endpoint[\u0027interface\u0027]])"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    def test_service_catalog_service_name(self):"},{"line_number":176,"context_line":"        auth_ref \u003d access.AccessInfo.factory(None, self.AUTH_RESPONSE_BODY)"},{"line_number":177,"context_line":"        sc \u003d auth_ref.service_catalog"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        url \u003d sc.url_for(service_name\u003d\u0027Image Servers\u0027, endpoint_type\u003d\u0027public\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BE6g%3D","line":176,"in_reply_to":"AAAAWH%2F%2BFsQ%3D","updated":"2014-03-31 02:23:45.000000000","message":"Done","commit_id":"c2f35ecc21b000ede68cd75760a1f23d83ff1547"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"6b9fd75d16c171ebb238b69388c68c5bc400606e","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            body\u003dclient_fixtures.PROJECT_SCOPED_TOKEN)"},{"line_number":206,"context_line":"        pr_sc \u003d pr_auth_ref.service_catalog"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # this will work because there is no service names on that token"},{"line_number":209,"context_line":"        url_ref \u003d \u0027http://public.com:8774/v2/225da22d3ce34b15877ea70b2a575f58\u0027"},{"line_number":210,"context_line":"        url \u003d pr_sc.url_for(service_type\u003d\u0027compute\u0027, service_name\u003d\u0027NotExist\u0027,"},{"line_number":211,"context_line":"                            endpoint_type\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9NHQ%3D","line":208,"updated":"2014-04-08 14:13:07.000000000","message":"change \"is no\" to \"are no\"","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"39a4aacd70587fd2d208c90e303ed45eac710d7d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            body\u003dclient_fixtures.PROJECT_SCOPED_TOKEN)"},{"line_number":206,"context_line":"        pr_sc \u003d pr_auth_ref.service_catalog"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # this will work because there is no service names on that token"},{"line_number":209,"context_line":"        url_ref \u003d \u0027http://public.com:8774/v2/225da22d3ce34b15877ea70b2a575f58\u0027"},{"line_number":210,"context_line":"        url \u003d pr_sc.url_for(service_type\u003d\u0027compute\u0027, service_name\u003d\u0027NotExist\u0027,"},{"line_number":211,"context_line":"                            endpoint_type\u003d\u0027public\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAW3%2F%2F3MY%3D","line":208,"in_reply_to":"AAAAWH%2F9NHQ%3D","updated":"2014-04-09 21:04:50.000000000","message":"Done","commit_id":"d4b2837353fdfd6a8a3de8453a3ab597faf4e1f4"}]}
