)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18835,"name":"Toshiya Shiga","email":"tos-shiga@yk.jp.nec.com","username":"tos-shiga"},"change_message_id":"b5e619aabc02a918f06a8c345af47579f5bc0f0b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Since the bug #1516469 has been fixed, any change about endpoint_group"},{"line_number":14,"context_line":"project association should invalidate the catalog cache as well."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The patch provide the testcases to test that cache has been invalidated if"},{"line_number":17,"context_line":"there is any change about endpoint_group project association"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I80c87ef834da9dde2e6ad1cc2b749822fda1fa79"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a7e1126_65390ca4","line":16,"range":{"start_line":16,"start_character":72,"end_line":16,"end_character":74},"updated":"2015-12-18 13:26:57.000000000","message":"should be wrapped at 72 characters. It exceeds.","commit_id":"70626c16be987cd7b95826eebc7d137fb3724ba8"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"bd83585d5e00bcf7a665442ccd1c7d580deb74d4","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Since the bug #1516469 has been fixed, any change about endpoint_group"},{"line_number":14,"context_line":"project association should invalidate the catalog cache as well."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"The patch provide the testcases to test that cache has been invalidated if"},{"line_number":17,"context_line":"there is any change about endpoint_group project association"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: I80c87ef834da9dde2e6ad1cc2b749822fda1fa79"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3a7e1126_48241c5f","line":16,"range":{"start_line":16,"start_character":72,"end_line":16,"end_character":74},"in_reply_to":"3a7e1126_65390ca4","updated":"2015-12-18 16:16:24.000000000","message":"actually, it should be 50 instead of 72\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages","commit_id":"70626c16be987cd7b95826eebc7d137fb3724ba8"}],"keystone/tests/unit/test_associate_project_endpoint_extension.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"ec010680907532beaf4ca8a2cf51f3ff0ab5ee82","unresolved":false,"context_lines":[{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"    @unit.skip_if_cache_disabled(\u0027catalog\u0027)"},{"line_number":1196,"context_line":"    def test_add_endpoint_group_to_project_invalidates_cache(self):"},{"line_number":1197,"context_line":"        endpoint_id2 \u003d uuid.uuid4().hex"},{"line_number":1198,"context_line":"        endpoint2 \u003d unit.new_endpoint_ref(service_id\u003dself.service_id,"},{"line_number":1199,"context_line":"                                          region_id\u003dself.region_id,"},{"line_number":1200,"context_line":"                                          interface\u003d\u0027admin\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a7e1126_fe684289","line":1197,"updated":"2015-12-18 04:44:15.000000000","message":"An inline comment explaining that you need a second endpoint to work with in addition to \"self.endpoint_id\" would explain why you\u0027re naming this \"endpoint_id2\" (the 2 is not self-evident until you get to the end of the test!).","commit_id":"70626c16be987cd7b95826eebc7d137fb3724ba8"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"bd83585d5e00bcf7a665442ccd1c7d580deb74d4","unresolved":false,"context_lines":[{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"    @unit.skip_if_cache_disabled(\u0027catalog\u0027)"},{"line_number":1196,"context_line":"    def test_add_endpoint_group_to_project_invalidates_cache(self):"},{"line_number":1197,"context_line":"        endpoint_id2 \u003d uuid.uuid4().hex"},{"line_number":1198,"context_line":"        endpoint2 \u003d unit.new_endpoint_ref(service_id\u003dself.service_id,"},{"line_number":1199,"context_line":"                                          region_id\u003dself.region_id,"},{"line_number":1200,"context_line":"                                          interface\u003d\u0027admin\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a7e1126_6812380b","line":1197,"in_reply_to":"3a7e1126_fe684289","updated":"2015-12-18 16:16:24.000000000","message":"Done","commit_id":"70626c16be987cd7b95826eebc7d137fb3724ba8"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4ed8201a7d6ae99127952d30f366817bb6ddf8c2","unresolved":false,"context_lines":[{"line_number":1205,"context_line":"                                          region_id\u003dself.region_id,"},{"line_number":1206,"context_line":"                                          interface\u003d\u0027admin\u0027,"},{"line_number":1207,"context_line":"                                          id\u003dendpoint_id2)"},{"line_number":1208,"context_line":"        self.catalog_api.create_endpoint(endpoint_id2, endpoint2.copy())"},{"line_number":1209,"context_line":""},{"line_number":1210,"context_line":"        # create a project and endpoint association."},{"line_number":1211,"context_line":"        self.put(self.default_request_url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_fa1a20c5","line":1208,"range":{"start_line":1208,"start_character":64,"end_line":1208,"end_character":71},"updated":"2016-01-06 16:07:21.000000000","message":"Is there a reason why we pass the copied version versus just using endpoint2?","commit_id":"e5acdd517c5d274b6e718a8643ea384f8a8d4760"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"2666b75a1ba8732e176f3db0e7afd0c669d84f3e","unresolved":false,"context_lines":[{"line_number":1205,"context_line":"                                          region_id\u003dself.region_id,"},{"line_number":1206,"context_line":"                                          interface\u003d\u0027admin\u0027,"},{"line_number":1207,"context_line":"                                          id\u003dendpoint_id2)"},{"line_number":1208,"context_line":"        self.catalog_api.create_endpoint(endpoint_id2, endpoint2.copy())"},{"line_number":1209,"context_line":""},{"line_number":1210,"context_line":"        # create a project and endpoint association."},{"line_number":1211,"context_line":"        self.put(self.default_request_url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_3c247bc3","line":1208,"range":{"start_line":1208,"start_character":64,"end_line":1208,"end_character":71},"in_reply_to":"fa69d971_fa1a20c5","updated":"2016-01-11 04:19:49.000000000","message":"@Lance, Good catch! I think it\u0027s not necessary to be a copied version. copy/paste made this :)","commit_id":"e5acdd517c5d274b6e718a8643ea384f8a8d4760"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"4ed8201a7d6ae99127952d30f366817bb6ddf8c2","unresolved":false,"context_lines":[{"line_number":1273,"context_line":"                                          region_id\u003dself.region_id,"},{"line_number":1274,"context_line":"                                          interface\u003d\u0027admin\u0027,"},{"line_number":1275,"context_line":"                                          id\u003dendpoint_id2)"},{"line_number":1276,"context_line":"        self.catalog_api.create_endpoint(endpoint_id2, endpoint2.copy())"},{"line_number":1277,"context_line":""},{"line_number":1278,"context_line":"        # create project and endpoint association."},{"line_number":1279,"context_line":"        self.put(self.default_request_url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_7aa15045","line":1276,"range":{"start_line":1276,"start_character":64,"end_line":1276,"end_character":71},"updated":"2016-01-06 16:07:21.000000000","message":"same comment here","commit_id":"e5acdd517c5d274b6e718a8643ea384f8a8d4760"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"a6dc83234d2b689dfd33fc21b8be3f32604760d7","unresolved":false,"context_lines":[{"line_number":1273,"context_line":"                                          region_id\u003dself.region_id,"},{"line_number":1274,"context_line":"                                          interface\u003d\u0027admin\u0027,"},{"line_number":1275,"context_line":"                                          id\u003dendpoint_id2)"},{"line_number":1276,"context_line":"        self.catalog_api.create_endpoint(endpoint_id2, endpoint2.copy())"},{"line_number":1277,"context_line":""},{"line_number":1278,"context_line":"        # create project and endpoint association."},{"line_number":1279,"context_line":"        self.put(self.default_request_url)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa69d971_5754a8fc","line":1276,"range":{"start_line":1276,"start_character":64,"end_line":1276,"end_character":71},"in_reply_to":"fa69d971_7aa15045","updated":"2016-01-11 04:27:00.000000000","message":"Done","commit_id":"e5acdd517c5d274b6e718a8643ea384f8a8d4760"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"de39c1a6b4d762355d820a6ee07a05c498046f1f","unresolved":false,"context_lines":[{"line_number":1193,"context_line":"                 expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"    @unit.skip_if_cache_disabled(\u0027catalog\u0027)"},{"line_number":1196,"context_line":"    def test_add_endpoint_group_to_project_invalidates_cache(self):"},{"line_number":1197,"context_line":"        # create another endpoint with \u0027admin\u0027 interface which matches"},{"line_number":1198,"context_line":"        # \u0027filters\u0027 definition in endpoint group, then there should be two"},{"line_number":1199,"context_line":"        # endpoints returned when retrieving v3 catalog if cache works as"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_07467723","line":1196,"range":{"start_line":1196,"start_character":54,"end_line":1196,"end_character":60},"updated":"2016-01-20 20:20:18.000000000","message":"nit: _catalog_cache(self):","commit_id":"3ea57d7a97cb13bb169362a3fe2040fb76ee546b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b6306211e06fa6ae674868922dd51ffeea48138d","unresolved":false,"context_lines":[{"line_number":1193,"context_line":"                 expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":1194,"context_line":""},{"line_number":1195,"context_line":"    @unit.skip_if_cache_disabled(\u0027catalog\u0027)"},{"line_number":1196,"context_line":"    def test_add_endpoint_group_to_project_invalidates_cache(self):"},{"line_number":1197,"context_line":"        # create another endpoint with \u0027admin\u0027 interface which matches"},{"line_number":1198,"context_line":"        # \u0027filters\u0027 definition in endpoint group, then there should be two"},{"line_number":1199,"context_line":"        # endpoints returned when retrieving v3 catalog if cache works as"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_71091f95","line":1196,"range":{"start_line":1196,"start_character":54,"end_line":1196,"end_character":60},"in_reply_to":"9a68dd71_07467723","updated":"2016-01-21 03:49:18.000000000","message":"Done","commit_id":"3ea57d7a97cb13bb169362a3fe2040fb76ee546b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"de39c1a6b4d762355d820a6ee07a05c498046f1f","unresolved":false,"context_lines":[{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"        # can get back only one endpoint from the cache, since the catalog"},{"line_number":1232,"context_line":"        # is pulled out from cache."},{"line_number":1233,"context_line":"        catalog \u003d self.catalog_api.get_v3_catalog("},{"line_number":1234,"context_line":"            user_id,"},{"line_number":1235,"context_line":"            self.default_domain_project_id)"},{"line_number":1236,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_07e2f703","line":1233,"range":{"start_line":1233,"start_character":8,"end_line":1233,"end_character":15},"updated":"2016-01-20 20:20:18.000000000","message":"nit: you could ensure that this catalog is the exact same as the catalog retrieved on line 1215.","commit_id":"3ea57d7a97cb13bb169362a3fe2040fb76ee546b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b6306211e06fa6ae674868922dd51ffeea48138d","unresolved":false,"context_lines":[{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"        # can get back only one endpoint from the cache, since the catalog"},{"line_number":1232,"context_line":"        # is pulled out from cache."},{"line_number":1233,"context_line":"        catalog \u003d self.catalog_api.get_v3_catalog("},{"line_number":1234,"context_line":"            user_id,"},{"line_number":1235,"context_line":"            self.default_domain_project_id)"},{"line_number":1236,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_914e13c0","line":1233,"range":{"start_line":1233,"start_character":8,"end_line":1233,"end_character":15},"in_reply_to":"9a68dd71_07e2f703","updated":"2016-01-21 03:49:18.000000000","message":"Done","commit_id":"3ea57d7a97cb13bb169362a3fe2040fb76ee546b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b6306211e06fa6ae674868922dd51ffeea48138d","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        self.assertItemsEqual([self.endpoint_id, endpoint_id2], ep_id_list)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"    @unit.skip_if_cache_disabled(\u0027catalog\u0027)"},{"line_number":1263,"context_line":"    def test_remove_endpoint_group_from_project_invalidates_cache(self):"},{"line_number":1264,"context_line":"        # create another endpoint with \u0027admin\u0027 interface which matches"},{"line_number":1265,"context_line":"        # \u0027filters\u0027 definition in endpoint group, then there should be two"},{"line_number":1266,"context_line":"        # endpoints returned when retrieving v3 catalog. But only one"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_11446372","line":1263,"range":{"start_line":1263,"start_character":4,"end_line":1263,"end_character":72},"updated":"2016-01-21 03:49:18.000000000","message":"pls note, the name of this testcase is not changed to `test_remove_endpoint_group_from_project_invalidates_catalog_cache` to apply the constraint from pep8!","commit_id":"3ea57d7a97cb13bb169362a3fe2040fb76ee546b"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"de39c1a6b4d762355d820a6ee07a05c498046f1f","unresolved":false,"context_lines":[{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        # still get back two endpoints, since the catalog is pulled out"},{"line_number":1311,"context_line":"        # from cache and the cache haven\u0027t been invalidated."},{"line_number":1312,"context_line":"        catalog \u003d self.catalog_api.get_v3_catalog("},{"line_number":1313,"context_line":"            user_id,"},{"line_number":1314,"context_line":"            self.default_domain_project_id)"},{"line_number":1315,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_07b997e9","line":1312,"range":{"start_line":1312,"start_character":8,"end_line":1312,"end_character":15},"updated":"2016-01-20 20:20:18.000000000","message":"same comment here as above.","commit_id":"3ea57d7a97cb13bb169362a3fe2040fb76ee546b"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b6306211e06fa6ae674868922dd51ffeea48138d","unresolved":false,"context_lines":[{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":"        # still get back two endpoints, since the catalog is pulled out"},{"line_number":1311,"context_line":"        # from cache and the cache haven\u0027t been invalidated."},{"line_number":1312,"context_line":"        catalog \u003d self.catalog_api.get_v3_catalog("},{"line_number":1313,"context_line":"            user_id,"},{"line_number":1314,"context_line":"            self.default_domain_project_id)"},{"line_number":1315,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a68dd71_d1db2bec","line":1312,"range":{"start_line":1312,"start_character":8,"end_line":1312,"end_character":15},"in_reply_to":"9a68dd71_07b997e9","updated":"2016-01-21 03:49:18.000000000","message":"Done","commit_id":"3ea57d7a97cb13bb169362a3fe2040fb76ee546b"}]}
