)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"8019cbfd69853821495152d4a8914985dda1c3cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":25,"id":"8f76a3f5_26101109","updated":"2021-10-21 15:49:29.000000000","message":"recheck","commit_id":"94de6b35a16fe4c37e8137d2e175668a5667368d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01c99091fb828460374934829467427223716ed1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":29,"id":"1a58f867_6ad46891","updated":"2021-11-18 23:15:24.000000000","message":"recheck","commit_id":"c1bdcbcfeab75f7c205b4e34e515dc256971bf08"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1d90dc84793c39920ba353199091e8fa4e8561ef","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"f3ff4fcd_14016f4e","updated":"2021-11-28 07:27:43.000000000","message":"recheck not sure whether grenade failure is related or not","commit_id":"7c42a2a0be159c5e23adaa06f05557b2f800ff79"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"4c85f3db0b7a8e4b6d5ace5e36b6718679aaaf9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":31,"id":"1f42e487_58386350","updated":"2021-12-01 22:47:00.000000000","message":"Core team, I am marking this patch as a priority as we are starting to see the issues this patch fixes impact people outside of the designate team.\nFor example, tripleo has a tool to export policies into heat templates[1] that is being used to generate override files[2]. However, since this has not yet merged it is generating invalid files.\nThese files are starting to get used in more branches and places[3], so I would really like to get this merged as soon as we can.\n\n[1] https://review.opendev.org/c/openstack/tripleo-heat-templates/+/818629\n[2] https://review.opendev.org/c/openstack/tripleo-heat-templates/+/810458\n[3] https://review.opendev.org/c/openstack/tripleo-heat-templates/+/818638","commit_id":"a5383f8dafcdd082a3bf44ffaa96cea38867f317"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"c50744c6d2dcabf16637f6df2e73772b2743b8d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"0cfc80ca_6c94aa65","updated":"2021-12-13 19:32:10.000000000","message":"recheck","commit_id":"b4ba2f5c80b4f1da6322d8c93329c0672ffbac1d"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"8dc91dee4aba31e555f32f2bbac5b1e09012b8d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"7152e9ac_13f82dfa","updated":"2021-12-13 17:26:41.000000000","message":"recheck","commit_id":"b4ba2f5c80b4f1da6322d8c93329c0672ffbac1d"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"6a08dadd890ca629961ca209b79aa31a0301ffdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"cfe82a92_9f0b46c7","updated":"2021-12-13 23:53:44.000000000","message":"recheck","commit_id":"b4ba2f5c80b4f1da6322d8c93329c0672ffbac1d"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"ab680e15ee18102883f8aecc9618ae21f6523bb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"d05fd577_3e05094c","updated":"2021-12-13 20:33:20.000000000","message":"recheck","commit_id":"b4ba2f5c80b4f1da6322d8c93329c0672ffbac1d"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"b9f52756a2167d76a77b78308b6d50bfe5831bfb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"daaf806b_b794dd5e","updated":"2021-12-13 22:08:10.000000000","message":"recheck","commit_id":"b4ba2f5c80b4f1da6322d8c93329c0672ffbac1d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9538a5e8b005c0436e227b27d5b925a0d1349c86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"b4595d5e_04629881","updated":"2021-12-13 08:06:53.000000000","message":"recheck\nptr ","commit_id":"b4ba2f5c80b4f1da6322d8c93329c0672ffbac1d"},{"author":{"_account_id":5572,"name":"Don Kehn","display_name":"DEKehn","email":"dekehn@gmail.com","username":"dekehn"},"change_message_id":"4a7da068befa8de06612a8583106cce749296bcd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"36e46fc9_fcc01993","updated":"2021-12-21 16:39:44.000000000","message":"Looks good.","commit_id":"5f87d207b448ec4e24988af5671c3b3593b13804"},{"author":{"_account_id":5572,"name":"Don Kehn","display_name":"DEKehn","email":"dekehn@gmail.com","username":"dekehn"},"change_message_id":"d8c3b17033a8b5b0a680690c7df0bfee6f2fb9b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"ec7d4a33_f8b5bb09","updated":"2021-12-20 14:53:11.000000000","message":"Reviewed","commit_id":"5f87d207b448ec4e24988af5671c3b3593b13804"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"1729395d43ddd749989e0689ddd75be1c0316e1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"37a167a1_57543889","updated":"2021-12-14 01:59:59.000000000","message":"recheck","commit_id":"5f87d207b448ec4e24988af5671c3b3593b13804"}],"designate/api/middleware.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"f77a88c496d4c0c4c26426ab1ed2b08227ab5914","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        tenant_id \u003d headers.get(\u0027X-Tenant-ID\u0027)"},{"line_number":131,"context_line":"        if tenant_id is None:"},{"line_number":132,"context_line":"            return flask.Response(status\u003d401)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        catalog \u003d None"},{"line_number":135,"context_line":"        if headers.get(\u0027X-Service-Catalog\u0027):"}],"source_content_type":"text/x-python","patch_set":22,"id":"f0d47021_703b24c0","side":"PARENT","line":132,"updated":"2021-08-28 18:03:44.000000000","message":"This was added to fix a very specific issue back in the day. I still have a zone owned by None in my environment. Is this no longer an issue?\nhttps://github.com/openstack/designate/commit/ae235cba3c5bda5d1da6816135400107660a2794","commit_id":"6fc04e72ec1fd039290173197dc4921df2f3d1c0"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"87eae4e3143e2cea3784ea8155beb8e8f48230a4","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        tenant_id \u003d headers.get(\u0027X-Tenant-ID\u0027)"},{"line_number":131,"context_line":"        if tenant_id is None:"},{"line_number":132,"context_line":"            return flask.Response(status\u003d401)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        catalog \u003d None"},{"line_number":135,"context_line":"        if headers.get(\u0027X-Service-Catalog\u0027):"}],"source_content_type":"text/x-python","patch_set":22,"id":"6d29437e_f894719d","side":"PARENT","line":132,"in_reply_to":"a6f35659_c075d4df","updated":"2021-09-02 21:38:31.000000000","message":"Done","commit_id":"6fc04e72ec1fd039290173197dc4921df2f3d1c0"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"bb0cf25a6ec42d260e5563e17ecf5f72b26f4914","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        tenant_id \u003d headers.get(\u0027X-Tenant-ID\u0027)"},{"line_number":131,"context_line":"        if tenant_id is None:"},{"line_number":132,"context_line":"            return flask.Response(status\u003d401)"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        catalog \u003d None"},{"line_number":135,"context_line":"        if headers.get(\u0027X-Service-Catalog\u0027):"}],"source_content_type":"text/x-python","patch_set":22,"id":"a6f35659_c075d4df","side":"PARENT","line":132,"in_reply_to":"f0d47021_703b24c0","updated":"2021-08-31 22:47:05.000000000","message":"The problem with this is system scoped admin tokens will never have a tenant ID in this field, so even if they use --project-ID they would be unable to use the API once system scoped tokens (the new defaults) are enabled.\nThat said, I thought I handled that elsewhere in the code, but I did not and the test still pass (yay, more missing tests).\nIn testing this I was able to create a zone with no project ID using the system scoped admin credential.\nI will re-spin this.","commit_id":"6fc04e72ec1fd039290173197dc4921df2f3d1c0"}],"designate/common/policies/base.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"bec330dc64180dd6ad94a936252ffba3ca1f1cbd","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    name\u003d\"default\","},{"line_number":85,"context_line":"    check_str\u003dRULE_ADMIN_OR_OWNER,"},{"line_number":86,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":87,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":88,"context_line":")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"rules \u003d ["}],"source_content_type":"text/x-python","patch_set":25,"id":"1c91f1fe_3596b372","line":87,"updated":"2021-10-19 08:28:52.000000000","message":"Since we managed to delay this so far, this would have to be YOGA now?","commit_id":"94de6b35a16fe4c37e8137d2e175668a5667368d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b451a5aa7dc1a2ff688b7cbe1e76a7932820edc9","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    name\u003d\"default\","},{"line_number":85,"context_line":"    check_str\u003dRULE_ADMIN_OR_OWNER,"},{"line_number":86,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":87,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":88,"context_line":")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"rules \u003d ["}],"source_content_type":"text/x-python","patch_set":25,"id":"a21d5891_2862eddf","line":87,"in_reply_to":"1c91f1fe_3596b372","updated":"2021-10-20 16:10:28.000000000","message":"Yeah, master is yoga, but some scoped tokens/personas patches previously merged and are broken, so I think we need to backport this.\nThis chain:\nhttps://review.opendev.org/c/openstack/designate/+/763878","commit_id":"94de6b35a16fe4c37e8137d2e175668a5667368d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"23dcc597a57909e223fe2a6cadd8b4e1a2784553","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    name\u003d\"default\","},{"line_number":85,"context_line":"    check_str\u003dRULE_ADMIN_OR_OWNER,"},{"line_number":86,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":87,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":88,"context_line":")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"rules \u003d ["}],"source_content_type":"text/x-python","patch_set":25,"id":"772a9ffc_71611bcd","line":87,"in_reply_to":"3dd5ba0e_81a57d56","updated":"2021-11-17 17:28:32.000000000","message":"This was implicitly deprecated in Wallaby with the previously patches, just not clearly called out for the \"default\" path. It was a bug in those previous patches. That said, this isn\u0027t a big deal to me, so I will move it to yoga.\nThis all has to be backported to wallaby though, as those older patches are all really broken. How will we handle backporting this if it says \"yoga\" though it\u0027s the wallaby branch?","commit_id":"94de6b35a16fe4c37e8137d2e175668a5667368d"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7104a9b1a1146cb73227c789ace9886999a6c002","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    name\u003d\"default\","},{"line_number":85,"context_line":"    check_str\u003dRULE_ADMIN_OR_OWNER,"},{"line_number":86,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":87,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":88,"context_line":")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"rules \u003d ["}],"source_content_type":"text/x-python","patch_set":25,"id":"62bce9ac_880450dc","line":87,"in_reply_to":"63ee0006_6a6c3d63","updated":"2021-11-23 00:20:54.000000000","message":"We don\u0027t have an option to not backport the deprecation. It\u0027s not just a statement for a countdown clock to remove the old code, it\u0027s used to decide which policy applies when the operator sets the \"enforce_new_defaults\" oslo_policy setting.\nIf we don\u0027t backport this, the rest of the API will switch to the new scoped tokens rules, but this one rule will not enforce scope. It was a big bug in the patches that were merged in Wallaby.","commit_id":"94de6b35a16fe4c37e8137d2e175668a5667368d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"ffaf26e5664fe58aaaf78e01e1344abc960812a8","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    name\u003d\"default\","},{"line_number":85,"context_line":"    check_str\u003dRULE_ADMIN_OR_OWNER,"},{"line_number":86,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":87,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":88,"context_line":")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"rules \u003d ["}],"source_content_type":"text/x-python","patch_set":25,"id":"63ee0006_6a6c3d63","line":87,"in_reply_to":"772a9ffc_71611bcd","updated":"2021-11-22 13:14:54.000000000","message":"Hmm, I think then the best way would be to split the bugfix and the deprecation into two patches and only backport the bugfix. But maybe I am missing something here.","commit_id":"94de6b35a16fe4c37e8137d2e175668a5667368d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"54ebb70c46fe84e3c41dd8f654a49949f1cd62d3","unresolved":true,"context_lines":[{"line_number":84,"context_line":"    name\u003d\"default\","},{"line_number":85,"context_line":"    check_str\u003dRULE_ADMIN_OR_OWNER,"},{"line_number":86,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":87,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":88,"context_line":")"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"rules \u003d ["}],"source_content_type":"text/x-python","patch_set":25,"id":"3dd5ba0e_81a57d56","line":87,"in_reply_to":"a21d5891_2862eddf","updated":"2021-10-21 15:51:56.000000000","message":"Hmm, I think we can backport the new policies, but not set the deprecation timestamp being in the past.","commit_id":"94de6b35a16fe4c37e8137d2e175668a5667368d"}],"designate/common/policies/recordset.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"f77a88c496d4c0c4c26426ab1ed2b08227ab5914","unresolved":true,"context_lines":[{"line_number":25,"context_line":"# Deprecated in Wallaby as part of the \"secure RBAC\" work."},{"line_number":26,"context_line":"# TODO(johnsom) remove when the deprecated RBAC rules are removed."},{"line_number":27,"context_line":"RULE_ZONE_PRIMARY_OR_ADMIN \u003d \\"},{"line_number":28,"context_line":"    \"(\u0027PRIMARY\u0027:%(zone_type)s and rule:admin_or_owner) \"\\"},{"line_number":29,"context_line":"    \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"deprecated_create_recordset \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":22,"id":"ec4ed918_0b3433f6","line":28,"updated":"2021-08-28 18:03:44.000000000","message":"You don\u0027t need the extra \\ here.","commit_id":"bced5b606759604136d772451e05c628163dcce9"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"c0b6e8d270a664f704a005a31e571e90d2e81757","unresolved":true,"context_lines":[{"line_number":25,"context_line":"# Deprecated in Wallaby as part of the \"secure RBAC\" work."},{"line_number":26,"context_line":"# TODO(johnsom) remove when the deprecated RBAC rules are removed."},{"line_number":27,"context_line":"RULE_ZONE_PRIMARY_OR_ADMIN \u003d \\"},{"line_number":28,"context_line":"    \"(\u0027PRIMARY\u0027:%(zone_type)s and rule:admin_or_owner) \"\\"},{"line_number":29,"context_line":"    \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"deprecated_create_recordset \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":22,"id":"18937d23_4a628c21","line":28,"in_reply_to":"0b897c41_60447c6e","updated":"2021-09-02 22:55:29.000000000","message":"Ah. Yea I think this is the more common pattern for this\n\u003e RULE_ZONE_PRIMARY_OR_ADMIN \u003d (\n\u003e     \"(\u0027PRIMARY\u0027:%(zone_type)s and rule:admin_or_owner) \"\n\u003e     \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\"\n\u003e )","commit_id":"bced5b606759604136d772451e05c628163dcce9"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"16d04590b883c07b9a574eaad20b44a212da122d","unresolved":true,"context_lines":[{"line_number":25,"context_line":"# Deprecated in Wallaby as part of the \"secure RBAC\" work."},{"line_number":26,"context_line":"# TODO(johnsom) remove when the deprecated RBAC rules are removed."},{"line_number":27,"context_line":"RULE_ZONE_PRIMARY_OR_ADMIN \u003d \\"},{"line_number":28,"context_line":"    \"(\u0027PRIMARY\u0027:%(zone_type)s and rule:admin_or_owner) \"\\"},{"line_number":29,"context_line":"    \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"deprecated_create_recordset \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":22,"id":"285212d2_7758d30a","line":28,"in_reply_to":"18937d23_4a628c21","updated":"2021-09-02 23:05:33.000000000","message":"Yeah, vote -1 if you think I should respin and change it.\nMaybe we should have a no-\\ policy and add it to hacking like Octavia has.","commit_id":"bced5b606759604136d772451e05c628163dcce9"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"23cc68a2d43635ad4842338cb04cc4183ffb1f90","unresolved":true,"context_lines":[{"line_number":25,"context_line":"# Deprecated in Wallaby as part of the \"secure RBAC\" work."},{"line_number":26,"context_line":"# TODO(johnsom) remove when the deprecated RBAC rules are removed."},{"line_number":27,"context_line":"RULE_ZONE_PRIMARY_OR_ADMIN \u003d \\"},{"line_number":28,"context_line":"    \"(\u0027PRIMARY\u0027:%(zone_type)s and rule:admin_or_owner) \"\\"},{"line_number":29,"context_line":"    \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"deprecated_create_recordset \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":22,"id":"3bf0fc01_778ce603","line":28,"in_reply_to":"285212d2_7758d30a","updated":"2021-09-02 23:07:28.000000000","message":"It\u0027s not important enough. I just didn\u0027t realize that we didn\u0027t have brackets already.","commit_id":"bced5b606759604136d772451e05c628163dcce9"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2145158b5d29ebbe9aab7b0e4da55c2582b1fdc0","unresolved":true,"context_lines":[{"line_number":25,"context_line":"# Deprecated in Wallaby as part of the \"secure RBAC\" work."},{"line_number":26,"context_line":"# TODO(johnsom) remove when the deprecated RBAC rules are removed."},{"line_number":27,"context_line":"RULE_ZONE_PRIMARY_OR_ADMIN \u003d \\"},{"line_number":28,"context_line":"    \"(\u0027PRIMARY\u0027:%(zone_type)s and rule:admin_or_owner) \"\\"},{"line_number":29,"context_line":"    \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"deprecated_create_recordset \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":22,"id":"7c44d084_bcb95ccd","line":28,"in_reply_to":"3bf0fc01_778ce603","updated":"2021-09-03 18:14:09.000000000","message":"Well, I needed to re-spin for an ordering thing anyway, so changed it.","commit_id":"bced5b606759604136d772451e05c628163dcce9"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"f34e96f3faa72103fd9e84eadfe28a70e917be56","unresolved":true,"context_lines":[{"line_number":25,"context_line":"# Deprecated in Wallaby as part of the \"secure RBAC\" work."},{"line_number":26,"context_line":"# TODO(johnsom) remove when the deprecated RBAC rules are removed."},{"line_number":27,"context_line":"RULE_ZONE_PRIMARY_OR_ADMIN \u003d \\"},{"line_number":28,"context_line":"    \"(\u0027PRIMARY\u0027:%(zone_type)s and rule:admin_or_owner) \"\\"},{"line_number":29,"context_line":"    \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"deprecated_create_recordset \u003d policy.DeprecatedRule("}],"source_content_type":"text/x-python","patch_set":22,"id":"0b897c41_60447c6e","line":28,"in_reply_to":"ec4ed918_0b3433f6","updated":"2021-09-02 21:36:38.000000000","message":"Flake 8 disagrees with you when I remove it:\n| designate/common/policies/recordset.py |  29  |   4    |    E999    | IndentationError: unexpected indent | \"OR (\u0027SECONDARY\u0027:%(zone_type)s AND is_admin:True)\" |","commit_id":"bced5b606759604136d772451e05c628163dcce9"}]}
