)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6376b7a52e2ef7f330baa6ca5f1a269799f60f21","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2014-12-27 14:32:38 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"apply endpoint_group filters on token catalog"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to the spec of endpoint-group-filter:"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/102023/ we should apply endpoint_group"},{"line_number":11,"context_line":"filter on token catalog not just list API."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_1e3520db","line":8,"updated":"2014-12-27 08:19:31.000000000","message":"I\u0027m still not clear on what the bug is, can you add more detail to the bug, like what you are doing (the request), the result, and the expected result. At the moment it\u0027s hard to follow along.","commit_id":"50542c7f0fa351b823e0eb50d260649ed8b3ce3f"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"8241f4c78807f0ebfc0fd744ec7a3baff246db54","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"apply endpoint_group filters on token catalog"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The spec of endpoint-group-filter says endpoint-group-filter should"},{"line_number":10,"context_line":"reduce the size of the service catalog included in project scoped"},{"line_number":11,"context_line":"tokens. But, currently, it don\u0027t, because we don\u0027t apply"},{"line_number":12,"context_line":"endpoint_group filters on token catalog."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba7be1f8_da2e8d8b","line":9,"updated":"2015-02-25 21:25:53.000000000","message":"Add link to spec in this message?","commit_id":"3d59d45e5045560d4b74607a47cbd3ea15399568"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"8241f4c78807f0ebfc0fd744ec7a3baff246db54","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The spec of endpoint-group-filter says endpoint-group-filter should"},{"line_number":10,"context_line":"reduce the size of the service catalog included in project scoped"},{"line_number":11,"context_line":"tokens. But, currently, it don\u0027t, because we don\u0027t apply"},{"line_number":12,"context_line":"endpoint_group filters on token catalog."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I0df9778eeee2a6722e4526b79d295c532b469e10"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"ba7be1f8_f498c81d","line":11,"updated":"2015-02-25 21:25:53.000000000","message":"(nit) But, currently it doesn\u0027t because","commit_id":"3d59d45e5045560d4b74607a47cbd3ea15399568"}],"keystone/contrib/endpoint_filter/backends/catalog_sql.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6376b7a52e2ef7f330baa6ca5f1a269799f60f21","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        services \u003d {}"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        refs \u003d self.endpoint_filter_api.list_filterd_endpoints_for_project("},{"line_number":34,"context_line":"            project_id)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"        if (not refs and"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_be07ac17","line":33,"updated":"2014-12-27 08:19:31.000000000","message":"filtered*","commit_id":"50542c7f0fa351b823e0eb50d260649ed8b3ce3f"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"8241f4c78807f0ebfc0fd744ec7a3baff246db54","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    service[\u0027endpoints\u0027].append(endpoint)"},{"line_number":60,"context_line":"                else:"},{"line_number":61,"context_line":"                    service[\u0027endpoints\u0027] \u003d [endpoint]"},{"line_number":62,"context_line":"            except exception.EndpointNotFound:"},{"line_number":63,"context_line":"                # remove bad reference from association"},{"line_number":64,"context_line":"                self.endpoint_filter_api.remove_endpoint_from_project("},{"line_number":65,"context_line":"                    entry[\u0027endpoint_id\u0027], project_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_34d180cd","side":"PARENT","line":62,"updated":"2015-02-25 21:25:53.000000000","message":"By not checking if the endpoint exists and removing here are we changing the behavior in an incompatible way?","commit_id":"c0d56ecdf4964549299fb26ed4e52ada3bd783be"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"cb355fb598d0fc087d8a0476b341fba634057c48","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    service[\u0027endpoints\u0027].append(endpoint)"},{"line_number":60,"context_line":"                else:"},{"line_number":61,"context_line":"                    service[\u0027endpoints\u0027] \u003d [endpoint]"},{"line_number":62,"context_line":"            except exception.EndpointNotFound:"},{"line_number":63,"context_line":"                # remove bad reference from association"},{"line_number":64,"context_line":"                self.endpoint_filter_api.remove_endpoint_from_project("},{"line_number":65,"context_line":"                    entry[\u0027endpoint_id\u0027], project_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_45ac648c","side":"PARENT","line":62,"in_reply_to":"ba7be1f8_34d180cd","updated":"2015-02-26 08:45:34.000000000","message":"I think this case would not occur anymore since this patch https://review.openstack.org/#/c/109507/ merged. But, I think this cleanup could be done in another patch. I will revert this.","commit_id":"c0d56ecdf4964549299fb26ed4e52ada3bd783be"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"03ac6dd19a221775bd8222dada158114d89f4901","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            return super(EndpointFilterCatalog, self).get_v3_catalog("},{"line_number":40,"context_line":"                user_id, project_id, metadata\u003dmetadata)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        for endpoint in refs:"},{"line_number":43,"context_line":"            try:"},{"line_number":44,"context_line":"                self.get_endpoint(endpoint[\u0027id\u0027])"},{"line_number":45,"context_line":"                if not endpoint[\u0027enabled\u0027]:"}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_44e4fc0b","line":42,"updated":"2015-03-31 18:30:56.000000000","message":"Unrelated changes should probably get rolled back.","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"03ac6dd19a221775bd8222dada158114d89f4901","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            except exception.EndpointNotFound:"},{"line_number":64,"context_line":"                # remove bad reference from association"},{"line_number":65,"context_line":"                self.endpoint_filter_api.remove_endpoint_from_project("},{"line_number":66,"context_line":"                    endpoint[\u0027endpoint_id\u0027], project_id)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        # format catalog"},{"line_number":69,"context_line":"        catalog \u003d []"}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_24f338d8","line":66,"updated":"2015-03-31 18:30:56.000000000","message":"...and this one too.","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"}],"keystone/contrib/endpoint_filter/controllers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6376b7a52e2ef7f330baa6ca5f1a269799f60f21","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    def list_endpoints_for_project(self, context, project_id):"},{"line_number":102,"context_line":"        \"\"\"List all endpoints currently associated with a given project.\"\"\""},{"line_number":103,"context_line":"        self.assignment_api.get_project(project_id)"},{"line_number":104,"context_line":"        refs \u003d self.endpoint_filter_api.list_filterd_endpoints_for_project("},{"line_number":105,"context_line":"            project_id)"},{"line_number":106,"context_line":"        return catalog_controllers.EndpointV3.wrap_collection("},{"line_number":107,"context_line":"            context, refs)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_de0c783e","line":104,"updated":"2014-12-27 08:19:31.000000000","message":"filtered*","commit_id":"50542c7f0fa351b823e0eb50d260649ed8b3ce3f"}],"keystone/contrib/endpoint_filter/core.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"6376b7a52e2ef7f330baa6ca5f1a269799f60f21","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def __init__(self):"},{"line_number":61,"context_line":"        super(Manager, self).__init__(CONF.endpoint_filter.driver)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def list_filterd_endpoints_for_project(self, project_id):"},{"line_number":64,"context_line":"        refs \u003d self.driver.list_endpoints_for_project(project_id)"},{"line_number":65,"context_line":"        filtered_endpoints \u003d dict("},{"line_number":66,"context_line":"            (ref[\u0027endpoint_id\u0027], self.catalog_api.get_endpoint("}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_fe105451","line":63,"updated":"2014-12-27 08:19:31.000000000","message":"filtered*","commit_id":"50542c7f0fa351b823e0eb50d260649ed8b3ce3f"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"8241f4c78807f0ebfc0fd744ec7a3baff246db54","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        def _apply_filters(filters, endpoint):"},{"line_number":80,"context_line":"            is_candidate \u003d True"},{"line_number":81,"context_line":"            for key, value in six.iteritems(filters):"},{"line_number":82,"context_line":"                    if endpoint[key] !\u003d value:"},{"line_number":83,"context_line":"                        is_candidate \u003d False"},{"line_number":84,"context_line":"                        break"},{"line_number":85,"context_line":"            return is_candidate"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_545a742a","line":82,"updated":"2015-02-25 21:25:53.000000000","message":"(nit) indentation is wrong","commit_id":"3d59d45e5045560d4b74607a47cbd3ea15399568"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"669fef97bb492cb11d1c158a54e26f00f5ea3198","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def __init__(self):"},{"line_number":61,"context_line":"        super(Manager, self).__init__(CONF.endpoint_filter.driver)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def list_filtered_endpoints_for_project(self, project_id):"},{"line_number":64,"context_line":"        refs \u003d self.driver.list_endpoints_for_project(project_id)"},{"line_number":65,"context_line":"        filtered_endpoints \u003d {"},{"line_number":66,"context_line":"            ref[\u0027endpoint_id\u0027]: self.catalog_api.get_endpoint("}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_787ed7af","line":63,"updated":"2015-03-29 17:39:41.000000000","message":"I think maybe a good doc string that describes the algorithm that we will use in this method might be appropriate....it\u0027s not that obvious how all the various sources of endpoints and associations should be combined together to get the right answer....don\u0027t be afraid to assume the reader needs a lot of help understanding this!","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"03ac6dd19a221775bd8222dada158114d89f4901","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def __init__(self):"},{"line_number":61,"context_line":"        super(Manager, self).__init__(CONF.endpoint_filter.driver)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def list_filtered_endpoints_for_project(self, project_id):"},{"line_number":64,"context_line":"        refs \u003d self.driver.list_endpoints_for_project(project_id)"},{"line_number":65,"context_line":"        filtered_endpoints \u003d {"},{"line_number":66,"context_line":"            ref[\u0027endpoint_id\u0027]: self.catalog_api.get_endpoint("}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_44d87cef","line":63,"updated":"2015-03-31 18:30:56.000000000","message":"This method seems like it would introduce a lot of extra queries when generating a catalog. Is this is case and if it is can it be reduced?","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a362ff303851aecaf9dc8ad93cb0f15a1e2c8b55","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        all_filters \u003d []"},{"line_number":74,"context_line":"        for association in group_project_associations:"},{"line_number":75,"context_line":"            endpoint_group \u003d self.driver.get_endpoint_group("},{"line_number":76,"context_line":"                association[\u0027endpoint_group_id\u0027])"},{"line_number":77,"context_line":"            all_filters.append(endpoint_group[\u0027filters\u0027])"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        def _apply_filters(filters, endpoint):"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_4eb1ec8d","line":76,"updated":"2015-03-20 15:33:09.000000000","message":"What data structure are the filters here?","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"6b943b3ba1b9f2a2d0759a46ce8127c0b69825dc","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        all_filters \u003d []"},{"line_number":74,"context_line":"        for association in group_project_associations:"},{"line_number":75,"context_line":"            endpoint_group \u003d self.driver.get_endpoint_group("},{"line_number":76,"context_line":"                association[\u0027endpoint_group_id\u0027])"},{"line_number":77,"context_line":"            all_filters.append(endpoint_group[\u0027filters\u0027])"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        def _apply_filters(filters, endpoint):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6ced46_7d026d70","line":76,"in_reply_to":"1a6ced46_51a6bfc2","updated":"2015-03-24 12:51:34.000000000","message":"so this would be a list of filters, and a filter is a dictionary, correct?","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"63b06d578be711cf6247bdceadd626203c59732d","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        all_filters \u003d []"},{"line_number":74,"context_line":"        for association in group_project_associations:"},{"line_number":75,"context_line":"            endpoint_group \u003d self.driver.get_endpoint_group("},{"line_number":76,"context_line":"                association[\u0027endpoint_group_id\u0027])"},{"line_number":77,"context_line":"            all_filters.append(endpoint_group[\u0027filters\u0027])"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        def _apply_filters(filters, endpoint):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa963961_4b09f494","line":76,"in_reply_to":"1a6ced46_7d026d70","updated":"2015-03-27 02:15:32.000000000","message":"A dictionary that may contains more than one filters... That is the reason that I use filters on the line 90.","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"2a9b115ae489997361d71f3ef91e45a63d4757d4","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        all_filters \u003d []"},{"line_number":74,"context_line":"        for association in group_project_associations:"},{"line_number":75,"context_line":"            endpoint_group \u003d self.driver.get_endpoint_group("},{"line_number":76,"context_line":"                association[\u0027endpoint_group_id\u0027])"},{"line_number":77,"context_line":"            all_filters.append(endpoint_group[\u0027filters\u0027])"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        def _apply_filters(filters, endpoint):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6ced46_51a6bfc2","line":76,"in_reply_to":"9a80dd14_4eb1ec8d","updated":"2015-03-23 06:41:36.000000000","message":"Do you mean \"endpoint_group[\u0027filters\u0027]\"?\n\nIt would be:\n{\u0027region_id\u0027: $region_id, \u0027interface\u0027:\u0027admin\u0027, \u0027service_id\u0027: $service_id}","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a362ff303851aecaf9dc8ad93cb0f15a1e2c8b55","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        # NOTE(wanghong) the final result is the union of the results filtered"},{"line_number":88,"context_line":"        # by associated endpoint_group"},{"line_number":89,"context_line":"        for endpoint in all_endpoints:"},{"line_number":90,"context_line":"            for filters in all_filters:"},{"line_number":91,"context_line":"                if (_apply_filters(filters, endpoint) and"},{"line_number":92,"context_line":"                        endpoint[\u0027id\u0027] not in filtered_endpoints):"},{"line_number":93,"context_line":"                    filtered_endpoints[endpoint[\u0027id\u0027]] \u003d endpoint"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a80dd14_ce96bcef","line":90,"updated":"2015-03-20 15:33:09.000000000","message":"nit: are we passing one filter here, or multiple? Suggest renaming to the following if so: \n\n    for filter in all_filteres:","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"6fd8a1183203d4770dc3bc4b5de33e52f7599254","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        # NOTE(wanghong) the final result is the union of the results filtered"},{"line_number":88,"context_line":"        # by associated endpoint_group"},{"line_number":89,"context_line":"        for endpoint in all_endpoints:"},{"line_number":90,"context_line":"            for filters in all_filters:"},{"line_number":91,"context_line":"                if (_apply_filters(filters, endpoint) and"},{"line_number":92,"context_line":"                        endpoint[\u0027id\u0027] not in filtered_endpoints):"},{"line_number":93,"context_line":"                    filtered_endpoints[endpoint[\u0027id\u0027]] \u003d endpoint"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa1b9901_99a9a292","line":90,"in_reply_to":"1a6ced46_9187570f","updated":"2015-08-21 14:11:43.000000000","message":"maybe rename it filter_group or filter_set?","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"2a9b115ae489997361d71f3ef91e45a63d4757d4","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        # NOTE(wanghong) the final result is the union of the results filtered"},{"line_number":88,"context_line":"        # by associated endpoint_group"},{"line_number":89,"context_line":"        for endpoint in all_endpoints:"},{"line_number":90,"context_line":"            for filters in all_filters:"},{"line_number":91,"context_line":"                if (_apply_filters(filters, endpoint) and"},{"line_number":92,"context_line":"                        endpoint[\u0027id\u0027] not in filtered_endpoints):"},{"line_number":93,"context_line":"                    filtered_endpoints[endpoint[\u0027id\u0027]] \u003d endpoint"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6ced46_9187570f","line":90,"in_reply_to":"9a80dd14_ce96bcef","updated":"2015-03-23 06:41:36.000000000","message":"As said above, I think we are passing multiple filters here.","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"03ac6dd19a221775bd8222dada158114d89f4901","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                    filtered_endpoints[endpoint[\u0027id\u0027]] \u003d endpoint"},{"line_number":94,"context_line":"                    break"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        return [v for v in six.itervalues(filtered_endpoints)]"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"@six.add_metaclass(abc.ABCMeta)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_a4e868b5","line":96,"updated":"2015-03-31 18:30:56.000000000","message":"This could just be \u0027return filtered_endpoints.values()\u0027 since we not taking advantage of having an iterator anyway. The again I don\u0027t see why this isn\u0027t just a set anyway. They we could \u0027return list(filtered_endpoints)\u0027","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"}],"keystone/tests/unit/test_associate_project_endpoint_extension.py":[{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"6fd8a1183203d4770dc3bc4b5de33e52f7599254","unresolved":false,"context_lines":[{"line_number":1129,"context_line":"        return endpoint"},{"line_number":1130,"context_line":""},{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"class EndpointGroupTokenRequestTestCase(TestExtensionCase):"},{"line_number":1133,"context_line":"    def test_apply_endpoint_group_filter_on_token_catalog(self):"},{"line_number":1134,"context_line":"        # create a project"},{"line_number":1135,"context_line":"        ref \u003d self.new_project_ref(domain_id\u003dself.domain_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa1b9901_391416e7","line":1132,"updated":"2015-08-21 14:11:43.000000000","message":"Do we really need a new class for this?","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"6fd8a1183203d4770dc3bc4b5de33e52f7599254","unresolved":false,"context_lines":[{"line_number":1159,"context_line":"                \u0027project_id\u0027: project_id,"},{"line_number":1160,"context_line":"                \u0027role_id\u0027: self.role[\u0027id\u0027]})"},{"line_number":1161,"context_line":""},{"line_number":1162,"context_line":"        # create a endpoint_group"},{"line_number":1163,"context_line":"        new_endpoint_group \u003d {"},{"line_number":1164,"context_line":"            \u0027endpoint_group\u0027: {"},{"line_number":1165,"context_line":"                \u0027filters\u0027: {"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa1b9901_f90a1ed1","line":1162,"updated":"2015-08-21 14:11:43.000000000","message":"nit: an","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"03ac6dd19a221775bd8222dada158114d89f4901","unresolved":false,"context_lines":[{"line_number":1189,"context_line":"            require_catalog\u003dTrue,"},{"line_number":1190,"context_line":"            endpoint_filter\u003dTrue,"},{"line_number":1191,"context_line":"            ep_filter_assoc\u003d1)"},{"line_number":1192,"context_line":"        self.assertEqual(r.result[\u0027token\u0027][\u0027project\u0027][\u0027id\u0027], project_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da9b358b_24221801","line":1192,"updated":"2015-03-31 18:30:56.000000000","message":"I think the order here should be switched. I think is should be (expected, observed)","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"6fd8a1183203d4770dc3bc4b5de33e52f7599254","unresolved":false,"context_lines":[{"line_number":1189,"context_line":"            require_catalog\u003dTrue,"},{"line_number":1190,"context_line":"            endpoint_filter\u003dTrue,"},{"line_number":1191,"context_line":"            ep_filter_assoc\u003d1)"},{"line_number":1192,"context_line":"        self.assertEqual(r.result[\u0027token\u0027][\u0027project\u0027][\u0027id\u0027], project_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa1b9901_061e8d6f","line":1192,"in_reply_to":"da9b358b_24221801","updated":"2015-08-21 14:11:43.000000000","message":"++","commit_id":"da86480c90547a61bdf2783cae98e34b7c7bf994"}]}
