)]}'
{"designate/common/policies/pool.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        name\u003d\"create_pool\","},{"line_number":24,"context_line":"        check_str\u003dbase.RULE_ADMIN,"},{"line_number":25,"context_line":"        description\u003d\u0027Create pool.\u0027"},{"line_number":26,"context_line":"    ),"},{"line_number":27,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":28,"context_line":"        name\u003d\"find_pools\","},{"line_number":29,"context_line":"        check_str\u003dbase.RULE_ADMIN,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_417c281e","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":6},"updated":"2017-10-16 15:49:37.000000000","message":"nit: this seems like a change that could be pulled into the previous patch.","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"e259f9e60758c1ca803c72e77949e7210b9af349","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        name\u003d\"create_pool\","},{"line_number":24,"context_line":"        check_str\u003dbase.RULE_ADMIN,"},{"line_number":25,"context_line":"        description\u003d\u0027Create pool.\u0027"},{"line_number":26,"context_line":"    ),"},{"line_number":27,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":28,"context_line":"        name\u003d\"find_pools\","},{"line_number":29,"context_line":"        check_str\u003dbase.RULE_ADMIN,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_66e04c27","line":26,"range":{"start_line":26,"start_character":4,"end_line":26,"end_character":6},"in_reply_to":"5f4e5783_417c281e","updated":"2017-10-17 02:20:24.000000000","message":"I have changed this to make an uniform structure with others.","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"}],"designate/common/policies/quota.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"7432ac019cb517afce41de145d1bbdaacde133d6","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"rules \u003d ["},{"line_number":23,"context_line":"    policy.RuleDefault("},{"line_number":24,"context_line":"        \"get_quotas\","},{"line_number":25,"context_line":"        base.RULE_ADMIN_OR_OWNER),"},{"line_number":26,"context_line":"    policy.RuleDefault("}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_b9d4c7be","line":23,"range":{"start_line":23,"start_character":11,"end_line":23,"end_character":22},"updated":"2017-10-04 16:52:12.000000000","message":"We should use DocumentedRuleDefault here: \n\nhttps://docs.openstack.org/oslo.policy/latest/user/usage.html#how-to-register\n\nFor example:\n\n  policy.DocumentedRuleDefault(\n      name\u003d\u0027get_quotas\u0027,\n      check_str\u003d\u0027base.RULE_ADMIN_OR_OWNER,\n      description\u003d\u0027List quotas.\u0027,\n      operations\u003d[\n          {\n              \u0027path\u0027: \u0027/v1/quotas\u0027,\n              \u0027method\u0027: \u0027GET\u0027\n          }\n      ]\n  )","commit_id":"eb84c368c49301cdfce106b010ace499c951e9fe"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8e68829213540a6adabd16a0f3d45f1fec74af8","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"rules \u003d ["},{"line_number":23,"context_line":"    policy.RuleDefault("},{"line_number":24,"context_line":"        \"get_quotas\","},{"line_number":25,"context_line":"        base.RULE_ADMIN_OR_OWNER),"},{"line_number":26,"context_line":"    policy.RuleDefault("}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_6d08d727","line":23,"range":{"start_line":23,"start_character":11,"end_line":23,"end_character":22},"updated":"2017-10-10 14:38:45.000000000","message":"Same comment here as in a previous patch about using DocumentedRuleDefault.","commit_id":"1f12285d79f8b2c2bb35bc4b207fccfad9a1e31e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        name\u003d\"get_quotas\","},{"line_number":23,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        description\u003d\"View Current Project\u0027s Quotas.\","},{"line_number":25,"context_line":"        operations\u003d["},{"line_number":26,"context_line":"            {"},{"line_number":27,"context_line":"                \u0027path\u0027: \u0027/v2/quotas\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_c195b834","line":24,"range":{"start_line":24,"start_character":19,"end_line":24,"end_character":21},"updated":"2017-10-16 15:49:37.000000000","message":"nit: some occurrences use \u0027 and some use \"","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"e259f9e60758c1ca803c72e77949e7210b9af349","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        name\u003d\"get_quotas\","},{"line_number":23,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        description\u003d\"View Current Project\u0027s Quotas.\","},{"line_number":25,"context_line":"        operations\u003d["},{"line_number":26,"context_line":"            {"},{"line_number":27,"context_line":"                \u0027path\u0027: \u0027/v2/quotas\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_e6de7c3c","line":24,"range":{"start_line":24,"start_character":19,"end_line":24,"end_character":21},"in_reply_to":"5f4e5783_c195b834","updated":"2017-10-17 02:20:24.000000000","message":"OK.","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            }"},{"line_number":30,"context_line":"        ]"},{"line_number":31,"context_line":"    ),"},{"line_number":32,"context_line":"    policy.RuleDefault("},{"line_number":33,"context_line":"        name\u003d\"get_quota\","},{"line_number":34,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER"},{"line_number":35,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_21f12c96","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":22},"updated":"2017-10-16 15:49:37.000000000","message":"Is get_quota a policy that is only callable via RPC from other designate APIs? If we do have cases like that, it would be awesome (at least for people new or unfamiliar with designate) to document why those rules use RuleDefault instead of DocumentedRuleDefault in a comment. For example:\n\n  # NOTE: This policy isn\u0027t actually accessible via the API.\n  # Instead, it is invoked by other designate services via\n  # RPC, meaning there might be none or many URLs it\n  # corresponds to. In the future we may consider removing\n  # this policy from configuration or introduce a formal API\n  # for it (in which case using DocumentedRuleDefault makes\n  # more sense).","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"e259f9e60758c1ca803c72e77949e7210b9af349","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            }"},{"line_number":30,"context_line":"        ]"},{"line_number":31,"context_line":"    ),"},{"line_number":32,"context_line":"    policy.RuleDefault("},{"line_number":33,"context_line":"        name\u003d\"get_quota\","},{"line_number":34,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER"},{"line_number":35,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_46d6702a","line":32,"range":{"start_line":32,"start_character":11,"end_line":32,"end_character":22},"in_reply_to":"5f4e5783_21f12c96","updated":"2017-10-17 02:20:24.000000000","message":"As I said in previous patches, we will update it later.\nActually, some rules is not using anywhere (for instance, this rule didn\u0027t use anymore IIRC), some others like you said above, so after migrating policy in code, I will discuss with PTL to clean up them and add more documentation later because these two tasks should be separated.\n\nAre you OK with this?","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"}],"designate/common/policies/record.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            }"},{"line_number":105,"context_line":"        ]"},{"line_number":106,"context_line":"    ),"},{"line_number":107,"context_line":"    policy.RuleDefault("},{"line_number":108,"context_line":"        name\u003d\"count_records\","},{"line_number":109,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER)"},{"line_number":110,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_413d4829","line":107,"range":{"start_line":107,"start_character":11,"end_line":107,"end_character":22},"updated":"2017-10-16 15:49:37.000000000","message":"Another RPC specific policy?","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"e259f9e60758c1ca803c72e77949e7210b9af349","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            }"},{"line_number":105,"context_line":"        ]"},{"line_number":106,"context_line":"    ),"},{"line_number":107,"context_line":"    policy.RuleDefault("},{"line_number":108,"context_line":"        name\u003d\"count_records\","},{"line_number":109,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER)"},{"line_number":110,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_86efc8e7","line":107,"range":{"start_line":107,"start_character":11,"end_line":107,"end_character":22},"in_reply_to":"5f4e5783_413d4829","updated":"2017-10-17 02:20:24.000000000","message":"ditto.","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"}],"designate/common/policies/recordset.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8e68829213540a6adabd16a0f3d45f1fec74af8","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"rules \u003d ["},{"line_number":24,"context_line":"    policy.RuleDefault("},{"line_number":25,"context_line":"        \"create_recordset\","},{"line_number":26,"context_line":"        base.RULE_ZONE_PRIMARY_OR_ADMIN),"},{"line_number":27,"context_line":"    policy.RuleDefault("}],"source_content_type":"text/x-python","patch_set":9,"id":"5f4e5783_ed496760","line":24,"range":{"start_line":24,"start_character":11,"end_line":24,"end_character":22},"updated":"2017-10-10 14:38:45.000000000","message":"Same comment here about using DocumentedRuleDefault instead of RuleDefault (this could probably be applied to other places in this file, too).","commit_id":"1f12285d79f8b2c2bb35bc4b207fccfad9a1e31e"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            }"},{"line_number":33,"context_line":"        ]"},{"line_number":34,"context_line":"    ),"},{"line_number":35,"context_line":"    policy.RuleDefault("},{"line_number":36,"context_line":"        name\u003d\"get_recordsets\","},{"line_number":37,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER"},{"line_number":38,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_a10bdc7a","line":35,"range":{"start_line":35,"start_character":11,"end_line":35,"end_character":22},"updated":"2017-10-16 15:49:37.000000000","message":"RPC specific policy?","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"e259f9e60758c1ca803c72e77949e7210b9af349","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            }"},{"line_number":33,"context_line":"        ]"},{"line_number":34,"context_line":"    ),"},{"line_number":35,"context_line":"    policy.RuleDefault("},{"line_number":36,"context_line":"        name\u003d\"get_recordsets\","},{"line_number":37,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER"},{"line_number":38,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_66ea8cd8","line":35,"range":{"start_line":35,"start_character":11,"end_line":35,"end_character":22},"in_reply_to":"5f4e5783_a10bdc7a","updated":"2017-10-17 02:20:24.000000000","message":"ditto","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":115,"context_line":"            }"},{"line_number":116,"context_line":"        ]"},{"line_number":117,"context_line":"    ),"},{"line_number":118,"context_line":"    policy.RuleDefault("},{"line_number":119,"context_line":"        name\u003d\"count_recordset\","},{"line_number":120,"context_line":"        check_str\u003dbase.RULE_ADMIN_OR_OWNER,"},{"line_number":121,"context_line":"        description\u003d\"Count recordsets\""}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_011cf0be","line":118,"range":{"start_line":118,"start_character":11,"end_line":118,"end_character":22},"updated":"2017-10-16 15:49:37.000000000","message":"RPC specific policy?","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"}],"designate/common/policies/service_status.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":"        ]"},{"line_number":42,"context_line":"    ),"},{"line_number":43,"context_line":"    policy.RuleDefault("},{"line_number":44,"context_line":"        \"update_service_service_status\","},{"line_number":45,"context_line":"        base.RULE_ADMIN)"},{"line_number":46,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_c17ff8dd","line":43,"range":{"start_line":43,"start_character":11,"end_line":43,"end_character":22},"updated":"2017-10-16 15:49:37.000000000","message":"RPC specific policy?","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"e259f9e60758c1ca803c72e77949e7210b9af349","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":"        ]"},{"line_number":42,"context_line":"    ),"},{"line_number":43,"context_line":"    policy.RuleDefault("},{"line_number":44,"context_line":"        \"update_service_service_status\","},{"line_number":45,"context_line":"        base.RULE_ADMIN)"},{"line_number":46,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_26c2545a","line":43,"range":{"start_line":43,"start_character":11,"end_line":43,"end_character":22},"in_reply_to":"5f4e5783_c17ff8dd","updated":"2017-10-17 02:20:24.000000000","message":"ditto","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"}],"designate/common/policies/tenant.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"c8dbd9e9bfd32ffc72ecebb7377f549230668d13","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from designate.common.policies import base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"rules \u003d ["},{"line_number":22,"context_line":"    policy.RuleDefault("},{"line_number":23,"context_line":"        name\u003d\"find_tenants\","},{"line_number":24,"context_line":"        check_str\u003dbase.RULE_ADMIN,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_0171900c","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":5},"updated":"2017-10-16 15:49:37.000000000","message":"All RPC specific policies?","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"},{"author":{"_account_id":19930,"name":"Dai Dang Van","email":"daidv@omzcloud.vn","username":"daidv"},"change_message_id":"e259f9e60758c1ca803c72e77949e7210b9af349","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from designate.common.policies import base"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"rules \u003d ["},{"line_number":22,"context_line":"    policy.RuleDefault("},{"line_number":23,"context_line":"        name\u003d\"find_tenants\","},{"line_number":24,"context_line":"        check_str\u003dbase.RULE_ADMIN,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f4e5783_66c3ac58","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":5},"in_reply_to":"5f4e5783_0171900c","updated":"2017-10-17 02:20:24.000000000","message":"Yep, as I know.","commit_id":"be93ddbdd5dd083572fb238bec64f0e147710cee"}]}
