)]}'
{"keystone/api/policy.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"56389543dae772771fe11d8a0fb7d18201e7190b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    collection_key \u003d \u0027policies\u0027"},{"line_number":42,"context_line":"    member_key \u003d \u0027policy\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @policy_deprecated"},{"line_number":45,"context_line":"    def get(self, policy_id\u003dNone):"},{"line_number":46,"context_line":"        if policy_id:"},{"line_number":47,"context_line":"            return self._get_policy(policy_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_23008267","line":44,"updated":"2018-08-08 18:51:23.000000000","message":"The decorator is going to emit the wrong information now, this will say \"get\", \"post\", \"deletE\", \"patch\" instead of \"create_policy\", \"list_policies\".\n\nyou\u0027ll need to rework the @policy_deprecated decorator. You probably want to eliminate it as a decorator and just call it in-line of the methods with the name(s)/text you want.","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"24c869d2ee9af39a6de9d8e490fcdc8f23758c57","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    collection_key \u003d \u0027policies\u0027"},{"line_number":42,"context_line":"    member_key \u003d \u0027policy\u0027"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @policy_deprecated"},{"line_number":45,"context_line":"    def get(self, policy_id\u003dNone):"},{"line_number":46,"context_line":"        if policy_id:"},{"line_number":47,"context_line":"            return self._get_policy(policy_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_153c99c6","line":44,"in_reply_to":"3f79a3b5_23008267","updated":"2018-08-08 19:35:18.000000000","message":"Done","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"56389543dae772771fe11d8a0fb7d18201e7190b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def _get_policy(self, policy_id):"},{"line_number":51,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:get_policy\u0027)"},{"line_number":52,"context_line":"        ref \u003d PROVIDERS.policy_api.get_policy(policy_id)"},{"line_number":53,"context_line":"        return self.wrap_member(ref), http_client.OK"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _list_policies(self):"},{"line_number":56,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:list_policies\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_632bdaea","line":53,"range":{"start_line":53,"start_character":38,"end_line":53,"end_character":52},"updated":"2018-08-08 18:51:23.000000000","message":"NIT: \"OK\" is the default, this is not needed.","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"24c869d2ee9af39a6de9d8e490fcdc8f23758c57","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def _get_policy(self, policy_id):"},{"line_number":51,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:get_policy\u0027)"},{"line_number":52,"context_line":"        ref \u003d PROVIDERS.policy_api.get_policy(policy_id)"},{"line_number":53,"context_line":"        return self.wrap_member(ref), http_client.OK"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def _list_policies(self):"},{"line_number":56,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:list_policies\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_f530fdea","line":53,"range":{"start_line":53,"start_character":38,"end_line":53,"end_character":52},"in_reply_to":"3f79a3b5_632bdaea","updated":"2018-08-08 19:35:18.000000000","message":"Done","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"56389543dae772771fe11d8a0fb7d18201e7190b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        filters \u003d [\u0027type\u0027]"},{"line_number":59,"context_line":"        hints \u003d self.build_driver_hints(filters)"},{"line_number":60,"context_line":"        refs \u003d PROVIDERS.policy_api.list_policies(hints\u003dhints)"},{"line_number":61,"context_line":"        return self.wrap_collection(refs, hints\u003dhints), http_client.OK"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @policy_deprecated"},{"line_number":64,"context_line":"    def post(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_832e36f8","line":61,"range":{"start_line":61,"start_character":56,"end_line":61,"end_character":70},"updated":"2018-08-08 18:51:23.000000000","message":"Same as above.","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"24c869d2ee9af39a6de9d8e490fcdc8f23758c57","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        filters \u003d [\u0027type\u0027]"},{"line_number":59,"context_line":"        hints \u003d self.build_driver_hints(filters)"},{"line_number":60,"context_line":"        refs \u003d PROVIDERS.policy_api.list_policies(hints\u003dhints)"},{"line_number":61,"context_line":"        return self.wrap_collection(refs, hints\u003dhints), http_client.OK"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @policy_deprecated"},{"line_number":64,"context_line":"    def post(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_954d0974","line":61,"range":{"start_line":61,"start_character":56,"end_line":61,"end_character":70},"in_reply_to":"3f79a3b5_832e36f8","updated":"2018-08-08 19:35:18.000000000","message":"Done","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"56389543dae772771fe11d8a0fb7d18201e7190b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def patch(self, policy_id):"},{"line_number":79,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:update_policy\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        request_body \u003d flask.request.get_json(silent\u003dTrue, force\u003dTrue) or {}"},{"line_number":82,"context_line":"        policy_body \u003d request_body.get(\u0027policy\u0027, {})"},{"line_number":83,"context_line":"        validation.lazy_validate(schema.policy_update, policy_body)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_230e428d","line":81,"range":{"start_line":81,"start_character":22,"end_line":81,"end_character":45},"updated":"2018-08-08 18:51:23.000000000","message":"You can now use self.request_json_body and it does the silent/force and or {}. so\n\nrequest_body \u003d self.request_body_json.get(\u0027policy\u0027, {})","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"24c869d2ee9af39a6de9d8e490fcdc8f23758c57","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    def patch(self, policy_id):"},{"line_number":79,"context_line":"        ENFORCER.enforce_call(action\u003d\u0027identity:update_policy\u0027)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        request_body \u003d flask.request.get_json(silent\u003dTrue, force\u003dTrue) or {}"},{"line_number":82,"context_line":"        policy_body \u003d request_body.get(\u0027policy\u0027, {})"},{"line_number":83,"context_line":"        validation.lazy_validate(schema.policy_update, policy_body)"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d5c94178","line":81,"range":{"start_line":81,"start_character":22,"end_line":81,"end_character":45},"in_reply_to":"3f79a3b5_230e428d","updated":"2018-08-08 19:35:18.000000000","message":"Nice, thanks!","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"56389543dae772771fe11d8a0fb7d18201e7190b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        ref \u003d PROVIDERS.policy_api.update_policy("},{"line_number":86,"context_line":"            policy_id, policy_body, initiator\u003dself.audit_initiator"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        return self.wrap_member(ref), http_client.OK"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @policy_deprecated"},{"line_number":91,"context_line":"    def delete(self, policy_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_4311feab","line":88,"range":{"start_line":88,"start_character":40,"end_line":88,"end_character":51},"updated":"2018-08-08 18:51:23.000000000","message":"Same as above.","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"24c869d2ee9af39a6de9d8e490fcdc8f23758c57","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        ref \u003d PROVIDERS.policy_api.update_policy("},{"line_number":86,"context_line":"            policy_id, policy_body, initiator\u003dself.audit_initiator"},{"line_number":87,"context_line":"        )"},{"line_number":88,"context_line":"        return self.wrap_member(ref), http_client.OK"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    @policy_deprecated"},{"line_number":91,"context_line":"    def delete(self, policy_id):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_95a189ac","line":88,"range":{"start_line":88,"start_character":40,"end_line":88,"end_character":51},"in_reply_to":"3f79a3b5_4311feab","updated":"2018-08-08 19:35:18.000000000","message":"Done","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"56389543dae772771fe11d8a0fb7d18201e7190b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        res \u003d PROVIDERS.policy_api.delete_policy("},{"line_number":94,"context_line":"            policy_id, initiator\u003dself.audit_initiator"},{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        return (res, http_client.NO_CONTENT)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"class PolicyAPI(ks_flask.APIBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_e327ea11","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":19},"updated":"2018-08-08 18:51:23.000000000","message":"Technically this can be explicitly None","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"e83f2a27b2a73a86b446707066def5ca29ba49ce","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        res \u003d PROVIDERS.policy_api.delete_policy("},{"line_number":94,"context_line":"            policy_id, initiator\u003dself.audit_initiator"},{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        return (res, http_client.NO_CONTENT)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"class PolicyAPI(ks_flask.APIBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d6fff531","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":19},"in_reply_to":"3f79a3b5_3579952e","updated":"2018-08-09 14:23:07.000000000","message":"If I am not returning from the call, I explicitly make it None. It\u0027s a NIT more than anything else, both work.","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"24c869d2ee9af39a6de9d8e490fcdc8f23758c57","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        res \u003d PROVIDERS.policy_api.delete_policy("},{"line_number":94,"context_line":"            policy_id, initiator\u003dself.audit_initiator"},{"line_number":95,"context_line":"        )"},{"line_number":96,"context_line":"        return (res, http_client.NO_CONTENT)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"class PolicyAPI(ks_flask.APIBase):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_3579952e","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":19},"in_reply_to":"3f79a3b5_e327ea11","updated":"2018-08-08 19:35:18.000000000","message":"yeah - i figured that was fine since line 93 is going to be None. Or should this just be:\n\n  PROVIDERS.policy_api.delete_policy()\n  return (None, http_client.NO_CONTENT)","commit_id":"3a6218aec241c231f905ddedb40dbf0c9cf56b6e"}],"keystone/endpoint_policy/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2f9acce7593ba298d9493ce57529cf410c53255e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        PROVIDERS.endpoint_policy_api.delete_association_by_policy("},{"line_number":52,"context_line":"            payload[\u0027resource_info\u0027])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @controller.protected()"},{"line_number":55,"context_line":"    def create_policy_association_for_endpoint(self, request,"},{"line_number":56,"context_line":"                                               policy_id, endpoint_id):"},{"line_number":57,"context_line":"        \"\"\"Create an association between a policy and an endpoint.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_a2363402","side":"PARENT","line":54,"updated":"2018-08-16 00:47:33.000000000","message":"Actually - these aren\u0027t deprecated, but I they are in the flask representation of this API. I think only the /policies API is deprecated but the /policies/{policy_id}/OS-ENDPOINT-POLICY/ API isn\u0027t?\n\nWe should revisit this and discuss if we want to formally deprecate everything under /policies or remove the deprecations of OS-ENDPOINT-POLICY.","commit_id":"24e12691bd20f5077edea14aa72a93c21aa517dc"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"3bfdb6e144ad0309657f598ced4fa1e01f0e975f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        PROVIDERS.endpoint_policy_api.delete_association_by_policy("},{"line_number":52,"context_line":"            payload[\u0027resource_info\u0027])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @controller.protected()"},{"line_number":55,"context_line":"    def create_policy_association_for_endpoint(self, request,"},{"line_number":56,"context_line":"                                               policy_id, endpoint_id):"},{"line_number":57,"context_line":"        \"\"\"Create an association between a policy and an endpoint.\"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_499efc07","side":"PARENT","line":54,"in_reply_to":"3f79a3b5_a2363402","updated":"2018-08-21 13:16:35.000000000","message":"Done","commit_id":"24e12691bd20f5077edea14aa72a93c21aa517dc"}],"keystone/server/flask/application.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"fd77f0c16f481a5f87cd5f800850bcec81db5e81","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    [\u0027credentials\u0027,"},{"line_number":42,"context_line":"     \u0027endpoints\u0027,"},{"line_number":43,"context_line":"     \u0027OS-OAUTH1\u0027,"},{"line_number":44,"context_line":"     \u0027OS-ENDPOINT-POLICY\u0027,"},{"line_number":45,"context_line":"     \u0027OS-EP-FILTER\u0027,"},{"line_number":46,"context_line":"     \u0027OS-REVOKE\u0027,"},{"line_number":47,"context_line":"     \u0027OS-SIMPLE-CERT\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_683364ac","line":44,"updated":"2018-08-23 17:16:17.000000000","message":"All the APIs are prefixed with /policy. This line shouldn\u0027t be here, this is for the API_PREFIX only, e.g. /v3/OS-ENDPOINT-POLICY.","commit_id":"8fe2d7f532aeabc3ca5b4db83452b82c37374a25"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"05a541b4618f8ed71ba1266db1a0c17ecf1c9add","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    [\u0027credentials\u0027,"},{"line_number":42,"context_line":"     \u0027endpoints\u0027,"},{"line_number":43,"context_line":"     \u0027OS-OAUTH1\u0027,"},{"line_number":44,"context_line":"     \u0027OS-ENDPOINT-POLICY\u0027,"},{"line_number":45,"context_line":"     \u0027OS-EP-FILTER\u0027,"},{"line_number":46,"context_line":"     \u0027OS-REVOKE\u0027,"},{"line_number":47,"context_line":"     \u0027OS-SIMPLE-CERT\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_a633d9aa","line":44,"in_reply_to":"3f79a3b5_683364ac","updated":"2018-08-24 13:29:11.000000000","message":"Done","commit_id":"8fe2d7f532aeabc3ca5b4db83452b82c37374a25"}]}
