)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":7,"context_line":"default policy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds a sets of APIs for defaulting the value returned from"},{"line_number":10,"context_line":"the endpoint_policy associations.  A the underlying layer,"},{"line_number":11,"context_line":"the association is defined with only the policy_id.  When"},{"line_number":12,"context_line":"fetching the association for the endpoint, after looking for"},{"line_number":13,"context_line":"the endpoint specific, region,  and service specifiec associations"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a016987_94b529ee","line":10,"updated":"2015-06-01 04:46:58.000000000","message":"s/A/In?","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":10,"context_line":"the endpoint_policy associations.  A the underlying layer,"},{"line_number":11,"context_line":"the association is defined with only the policy_id.  When"},{"line_number":12,"context_line":"fetching the association for the endpoint, after looking for"},{"line_number":13,"context_line":"the endpoint specific, region,  and service specifiec associations"},{"line_number":14,"context_line":"it will fall back to the default value."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Blueprint policy-default"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a016987_34c79565","line":13,"updated":"2015-06-01 04:46:58.000000000","message":"d/,\ns/specifiec/specific","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":12,"context_line":"fetching the association for the endpoint, after looking for"},{"line_number":13,"context_line":"the endpoint specific, region,  and service specifiec associations"},{"line_number":14,"context_line":"it will fall back to the default value."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Blueprint policy-default"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Icbf99298beb638b9d4fd5e045aee846896c941ff"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a016987_f48a1d1a","line":15,"updated":"2015-06-01 04:46:58.000000000","message":"DocImpact: Configuration value will need to be documented.","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"}],"keystone/auth/routers.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        mapper.connect(\u0027/auth/tokens\u0027,"},{"line_number":24,"context_line":"                       controller\u003dauth_controller,"},{"line_number":25,"context_line":"                       post_action\u003d\u0027authenticate_for_token\u0027,"},{"line_number":26,"context_line":"                       conditions\u003ddict(method\u003d[\u0027POST\u0027]))"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class Routers(wsgi.RoutersBase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_d4096196","line":26,"updated":"2015-06-01 04:46:58.000000000","message":"Didn\u0027t see any difference between this router and ...","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"9b5eaaaa31a91ed84bcfc6d1f37a94dadc62bb1b","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        mapper.connect(\u0027/auth/tokens\u0027,"},{"line_number":24,"context_line":"                       controller\u003dauth_controller,"},{"line_number":25,"context_line":"                       post_action\u003d\u0027authenticate_for_token\u0027,"},{"line_number":26,"context_line":"                       conditions\u003ddict(method\u003d[\u0027POST\u0027]))"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class Routers(wsgi.RoutersBase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_4ce605b1","line":26,"in_reply_to":"7a016987_6f053644","updated":"2015-06-01 08:19:55.000000000","message":"Removed these snippet of code since it seems irrelevant.","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"84d69fda599ee97c602f64cbcaa92bedf30bed1e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        mapper.connect(\u0027/auth/tokens\u0027,"},{"line_number":24,"context_line":"                       controller\u003dauth_controller,"},{"line_number":25,"context_line":"                       post_action\u003d\u0027authenticate_for_token\u0027,"},{"line_number":26,"context_line":"                       conditions\u003ddict(method\u003d[\u0027POST\u0027]))"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class Routers(wsgi.RoutersBase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_6f053644","line":26,"in_reply_to":"7a016987_d4096196","updated":"2015-06-01 04:58:50.000000000","message":"This is for V2 compatibility?","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            mapper, auth_controller,"},{"line_number":36,"context_line":"            path\u003d\u0027/auth/tokens\u0027,"},{"line_number":37,"context_line":"            get_action\u003d\u0027validate_token\u0027,"},{"line_number":38,"context_line":"            head_action\u003d\u0027check_token\u0027,"},{"line_number":39,"context_line":"            post_action\u003d\u0027authenticate_for_token\u0027,"},{"line_number":40,"context_line":"            delete_action\u003d\u0027revoke_token\u0027,"},{"line_number":41,"context_line":"            rel\u003djson_home.build_v3_resource_relation(\u0027auth_tokens\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_f4069d84","line":38,"updated":"2015-06-01 04:46:58.000000000","message":"... this.","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"}],"keystone/endpoint_policy/controllers.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @controller.protected()"},{"line_number":148,"context_line":"    def create_default_policy_association(self, context, policy_id):"},{"line_number":149,"context_line":"        \"\"\"Create a default  association for a  policy.\"\"\""},{"line_number":150,"context_line":"        self.policy_api.get_policy(policy_id)"},{"line_number":151,"context_line":"        self.endpoint_policy_api.create_policy_association(policy_id)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_f42d7dfe","line":149,"updated":"2015-06-01 04:46:58.000000000","message":"Need to remove the blank space between \u0027default\u0027 and \u0027association\u0027, \u0027a\u0027 and \u0027policy\u0027.","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.policy_api.get_policy(policy_id)"},{"line_number":151,"context_line":"        self.endpoint_policy_api.create_policy_association(policy_id)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"#    @controller.protected()"},{"line_number":154,"context_line":"    def check_default_policy_association("},{"line_number":155,"context_line":"            self, context, policy_id):"},{"line_number":156,"context_line":"        \"\"\"Check that a policy is in the default association.\"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_141a59c6","line":153,"updated":"2015-06-01 04:46:58.000000000","message":"what does this mean? I think this is only for debugging purpose?","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    @controller.protected()"},{"line_number":161,"context_line":"    def delete_default_policy_association(self, context, policy_id):"},{"line_number":162,"context_line":"        \"\"\"Delete the default association if a policy is in it policy.\"\"\""},{"line_number":163,"context_line":"        self.policy_api.get_policy(policy_id)"},{"line_number":164,"context_line":"        self.endpoint_policy_api.delete_policy_association(policy_id)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_34767506","line":162,"updated":"2015-06-01 04:46:58.000000000","message":"s/in it policy/in it policy association","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"84d69fda599ee97c602f64cbcaa92bedf30bed1e","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    @controller.protected()"},{"line_number":161,"context_line":"    def delete_default_policy_association(self, context, policy_id):"},{"line_number":162,"context_line":"        \"\"\"Delete the default association if a policy is in it policy.\"\"\""},{"line_number":163,"context_line":"        self.policy_api.get_policy(policy_id)"},{"line_number":164,"context_line":"        self.endpoint_policy_api.delete_policy_association(policy_id)"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_af9d6e0b","line":162,"in_reply_to":"7a016987_34767506","updated":"2015-06-01 04:58:50.000000000","message":"s/in it policy/in policy association","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d213a172f34991411eee9c1cfc279866c1efcf9d","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        return {\u0027policy\u0027: ref}"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    @controller.protected()"},{"line_number":148,"context_line":"    def create_default_policy_association(self, context, policy_id):"},{"line_number":149,"context_line":"        \"\"\"Create a default association for a policy.\"\"\""},{"line_number":150,"context_line":"        self.policy_api.get_policy(policy_id)"},{"line_number":151,"context_line":"        self.endpoint_policy_api.create_policy_association(policy_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba8a016a_7143bd13","line":148,"updated":"2015-11-19 17:22:23.000000000","message":"I think removing \u0027_association\u0027 from these methods would make it clearer.\n\nIn all the other places we talk about _association in this file, we are talking about explicitely associating a given policy with a given entity. This is why, for me, [create,check,delete]_default_policy(..) makes more sense.","commit_id":"f25d27b78df56543da836db9225fff4b4db24c58"}],"keystone/endpoint_policy/core.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d213a172f34991411eee9c1cfc279866c1efcf9d","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        except exception.PolicyAssociationNotFound:"},{"line_number":261,"context_line":"            pass"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        # Default"},{"line_number":264,"context_line":"        try:"},{"line_number":265,"context_line":"            ref \u003d self.driver.get_policy_association()"},{"line_number":266,"context_line":"            return _get_policy(ref[\u0027policy_id\u0027], endpoint_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba8a016a_47afdb7c","line":263,"updated":"2015-11-19 17:22:23.000000000","message":"Maybe a better comment ? Like:\n\nOtherwise, check if there is a default policy associated ...","commit_id":"f25d27b78df56543da836db9225fff4b4db24c58"}],"keystone/tests/unit/test_backend_endpoint_policy.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    def test_invalid_policy_to_endpoint_association(self):"},{"line_number":112,"context_line":"        # The following check used to be invalid.  It is now valid"},{"line_number":113,"context_line":"        # as it reflects the call made to set the default policy."},{"line_number":114,"context_line":"        # The original check is left here for documentation."},{"line_number":115,"context_line":"        # self.assertRaises(exception.InvalidPolicyAssociation,"},{"line_number":116,"context_line":"        #                  self.endpoint_policy_api.create_policy_association,"},{"line_number":117,"context_line":"        #                  self.policy[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_6fd416eb","line":114,"updated":"2015-06-01 04:46:58.000000000","message":"Nice comments! so we know why we didn\u0027t remove this testcase instead.","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d213a172f34991411eee9c1cfc279866c1efcf9d","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        # The original check is left here for documentation."},{"line_number":115,"context_line":"        # self.assertRaises(exception.InvalidPolicyAssociation,"},{"line_number":116,"context_line":"        #                  self.endpoint_policy_api.create_policy_association,"},{"line_number":117,"context_line":"        #                  self.policy[0][\u0027id\u0027])"},{"line_number":118,"context_line":"        self.assertRaises(exception.InvalidPolicyAssociation,"},{"line_number":119,"context_line":"                          self.endpoint_policy_api.create_policy_association,"},{"line_number":120,"context_line":"                          self.policy[0][\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba8a016a_07d553e6","line":117,"updated":"2015-11-19 17:22:23.000000000","message":"We should create a test for default policy instead. Yes, at backend too, besides the tests in test_v3_endpoint_policy","commit_id":"f25d27b78df56543da836db9225fff4b4db24c58"}],"keystone/tests/unit/test_v3_endpoint_policy.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        # test that the deleted resource is no longer accessible"},{"line_number":67,"context_line":"        self.assert_head_and_get_return_same_response(url, expected_status\u003d404)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def test_crud_for_policy_for_explicit_endpoint(self):"},{"line_number":70,"context_line":"        \"\"\"PUT, HEAD and DELETE for explicit endpoint policy.\"\"\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        url \u003d (\u0027/policies/%(policy_id)s/OS-ENDPOINT-POLICY\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_afe56edc","line":69,"updated":"2015-06-01 04:46:58.000000000","message":"This docstring is identical with ...","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"41e336ff040a4c69445a94a71d0d214150534f92","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self._crud_test(url)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_crud_for_default(self):"},{"line_number":88,"context_line":"        \"\"\"PUT, HEAD and DELETE for explicit endpoint policy.\"\"\""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        self.get(\u0027/endpoints/%(endpoint_id)s/OS-ENDPOINT-POLICY\u0027"},{"line_number":91,"context_line":"                 \u0027/policy\u0027 % {"}],"source_content_type":"text/x-python","patch_set":8,"id":"7a016987_2fc3be39","line":88,"updated":"2015-06-01 04:46:58.000000000","message":"... this docstring, obviously, they two testcases are used to test different scenarios, we need rename the docstring here.","commit_id":"9972be2f7959ac8251f5cf4d32f632aac83484ab"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d213a172f34991411eee9c1cfc279866c1efcf9d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        self.get(\u0027/endpoints/%(endpoint_id)s/OS-ENDPOINT-POLICY\u0027"},{"line_number":109,"context_line":"                 \u0027/policy\u0027 % {"},{"line_number":110,"context_line":"                     \u0027endpoint_id\u0027: self.endpoint[\u0027id\u0027]},"},{"line_number":111,"context_line":"                 expected_status\u003d404)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_crud_for_policy_for_region_and_service(self):"},{"line_number":114,"context_line":"        \"\"\"PUT, HEAD and DELETE for region and service endpoint policy.\"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"ba8a016a_078d53d5","line":111,"updated":"2015-11-19 17:22:23.000000000","message":"Nice test!","commit_id":"f25d27b78df56543da836db9225fff4b4db24c58"}]}
