)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add option to force delete zone-files in delete API."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Designate does not delete the zone-files on the back-end when zone is"},{"line_number":10,"context_line":"deleted. This results in thousands leftover zone files on backend e.g."},{"line_number":11,"context_line":"bind. Add option in designate zone delete API to force clean/delete"},{"line_number":12,"context_line":"zone-files on the back-end. This option is restricted for admin or"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"808a9cda_0a17036b","line":9,"updated":"2022-10-03 22:08:48.000000000","message":"See my comment about the pools.yaml target setting on the release note.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add option to force delete zone-files in delete API."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Designate does not delete the zone-files on the back-end when zone is"},{"line_number":10,"context_line":"deleted. This results in thousands leftover zone files on backend e.g."},{"line_number":11,"context_line":"bind. Add option in designate zone delete API to force clean/delete"},{"line_number":12,"context_line":"zone-files on the back-end. This option is restricted for admin or"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"47829d37_b62d2329","line":9,"in_reply_to":"808a9cda_0a17036b","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Designate does not delete the zone-files on the back-end when zone is"},{"line_number":10,"context_line":"deleted. This results in thousands leftover zone files on backend e.g."},{"line_number":11,"context_line":"bind. Add option in designate zone delete API to force clean/delete"},{"line_number":12,"context_line":"zone-files on the back-end. This option is restricted for admin or"},{"line_number":13,"context_line":"owner roles."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1966517"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"c3d6e2d9_e1186bdc","line":12,"updated":"2022-10-03 22:08:48.000000000","message":"Should this default to allowing end users to call this? I don\u0027t think so as it\u0027s impacting the behavior of the backend BIND instance.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Designate does not delete the zone-files on the back-end when zone is"},{"line_number":10,"context_line":"deleted. This results in thousands leftover zone files on backend e.g."},{"line_number":11,"context_line":"bind. Add option in designate zone delete API to force clean/delete"},{"line_number":12,"context_line":"zone-files on the back-end. This option is restricted for admin or"},{"line_number":13,"context_line":"owner roles."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Closes-Bug: 1966517"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"bd83a4c8_af0c54d0","line":12,"in_reply_to":"c3d6e2d9_e1186bdc","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4f8658d5c465ba3807750f6978c6261c9b762740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"258d85f4_f4ce98cd","updated":"2022-04-08 12:45:15.000000000","message":"Hi all,\nSince delete zone already deletes zone from backend, the purge zone task when tries to call delete zone with --cleanfile, has no impact. We should better stick with current approach of pull request. WDYT ? @Erik @Dmitry","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"c370c037bb56dbfe8a68209e64f3af0f2139d1bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ceed1f73_9d9893c3","updated":"2022-03-27 20:01:04.000000000","message":"Is there a reason why we don\u0027t just make this the default behavior, or controllable through configuration instead of exposing it through the api? Another way of doing this might be through an admin extension as well.","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"61635bd2cbb12a134037ab9bf982882ebf2669e9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c0e41196_7e64ee24","in_reply_to":"01898b71_b4e9e5ff","updated":"2022-03-29 16:44:02.000000000","message":"Yes, sounds like an option. Thanks","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7b302b30_a1289bb3","in_reply_to":"11f827ea_22fa1ebc","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"1ddcc03f99e899dc084e699993fe7bf9780e0e2e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"adb092be_32f68142","in_reply_to":"258d85f4_f4ce98cd","updated":"2022-04-09 20:52:21.000000000","message":"The problem with the current implementation is that the API is meant to be backend implementation agnostic, but I\u0027ll loop Michael in and he can give us his 5 cents. He has more experience implementing APIs than me.\n\nAnother question is why would an admin be deleting a zone for a user and why would it fix this issue? If backing up these file is an concern, maybe better to just have a cronjob that backs the file up in case you need to retrieve them later?","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"026806105769599a6cc2f71edd906a06659c3d0e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"11f827ea_22fa1ebc","in_reply_to":"27da9c2c_eda8aba7","updated":"2022-10-04 01:24:23.000000000","message":"Yeah, technically I think this option would be a \"hard-delete\", but yeah, generic is good.","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b28b59b7_687d37a2","in_reply_to":"54cbc152_6991fe51","updated":"2022-10-03 22:08:48.000000000","message":"I don\u0027t think we have an issue with making the API too backend dependent here. If the backend doesn\u0027t do \"soft deletes\", it can just be a no-op.","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"5dd9debbc7698b9b237f73755f6c9f93abcfd09d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"54cbc152_6991fe51","in_reply_to":"87adae42_a75e90d1","updated":"2022-05-07 10:52:04.000000000","message":"Done","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2f0ea20f20779edd9a0bc931bd917674d94565c5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"87adae42_a75e90d1","in_reply_to":"adb092be_32f68142","updated":"2022-04-30 12:41:38.000000000","message":"Its admin or owner can delete the zone and with given option its deletes zonefile on backend. What do you mean by backing up file ?","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"9d9c65b927dc8deff5fc3698e59f4a03b1f09066","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"27da9c2c_eda8aba7","in_reply_to":"b28b59b7_687d37a2","updated":"2022-10-03 23:28:43.000000000","message":"I like the idea of calling it something more generic like \"soft-delete\", instead of \"clean_zonefile\".","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4dd0c39af91fda6cfbd7fe472fe3de3098ffbbb7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"16b10f48_ba4a7ecc","in_reply_to":"bca30dbd_93c8f202","updated":"2022-10-03 08:31:00.000000000","message":"Done","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"d2790ac52fc27c6e74298b004b8814e9d49287c9","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"01898b71_b4e9e5ff","in_reply_to":"c064d9ba_60f5ba31","updated":"2022-03-28 20:56:44.000000000","message":"I was talking to Michael about this, and he had the idea of plugging into the task for purging zones from the database.\nhttps://github.com/openstack/designate/blob/75803bf623b670a61cbb83a07d8cc57e447d2108/designate/producer/tasks.py#L89\n\nBasically we could add a backend step here that allows you to do any additional clean up that would be require (e.g. removing unused files). The advantage would be that the file wouldn\u0027t get cleaned up until much later (depending on configuration).\n\nThere might be other ways of doing this as well, but this is one possibility.","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":34181,"name":"Manish Honap","email":"mmhonap@gmail.com","username":"mhonap"},"change_message_id":"e7674b57e1ed6707d9e5bf779e049cb24179358a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bca30dbd_93c8f202","in_reply_to":"c0e41196_7e64ee24","updated":"2022-04-07 19:16:10.000000000","message":"Hello Dmitry, Erik\n\nI tried to implement cleaning the backend zonefiles in purge_zone API as\nper suggestion. I made call to \"rndc delzone -clean\" for cleaing the backend\nzonefiles when purge_zone periodic task is invoked.\n\nI see that during delete_zone API from designate client, we are already calling\n\"rndc delzone\" command. Later during purge_zone, I modified the code to call a\nsecond \"rndc delzone\" command with \"-clean\" argument.\nCalling this second \"rndc delzone -clean\" is failing and the backend zonefile is\nalso not getting deleted in this case.\n\nIs this the correct way when you suggested to implement this in purge_zone task?\nCan you please suggest your opinion on this?","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"65ea75a023a6cb9ff58250d502f00ebe54def25a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c064d9ba_60f5ba31","in_reply_to":"ceed1f73_9d9893c3","updated":"2022-03-28 09:38:38.000000000","message":"Hi Erik, \nthe motivation behind that we don\u0027t want to clean zone files on the backends by default, because sometimes customers \"press the wrong button\" and we want to have an extra copy of a dns zone for such cases.\nHowever, the automatic tests that create and delete dns zones regularly fill up the backends with a lot of left over zone files. So, we would like to have an option to delete those zone files via Designate.\nPlease advise how this should be implemented in order to be accepted.","commit_id":"913b8ffeeeac0cbee7178cc30a7e5272d09d5606"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"ddfb15d4e8184ed5f6c318d98d8672f19e5cb6cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0b9f9856_c408caf6","updated":"2022-05-31 12:20:04.000000000","message":"@Michael, Erik - can you provide some feedback?\n\nWe\u0027d love to have this feature.","commit_id":"33e1c6e32784e4a5d7887a455ca245a1d628ab76"},{"author":{"_account_id":34181,"name":"Manish Honap","email":"mmhonap@gmail.com","username":"mhonap"},"change_message_id":"96a1e3b86d296ef4ee993f074edc574019eda54a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"058fdb50_1a330114","updated":"2022-07-19 18:45:54.000000000","message":"Erik/Michael, can you please provide some feedback?","commit_id":"d4074b46ac12b7f6b41c4673dad2ef2ffd718a65"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d23c90112aaac1541b1a0a388938d45c91698f85","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7f1d2e23_86f63477","updated":"2022-08-10 09:31:56.000000000","message":"Erik/Michael,\nplease approve the change.","commit_id":"ffa7d6ecadb892e588faf5c1af063f8b942084f2"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"423eb91e_e2ae5a38","updated":"2022-10-06 10:31:08.000000000","message":"Please checked updated PR i.e. adding header option. I will proceed to python-designateclient changes accordingly.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"7cb06099_45d9b233","updated":"2022-10-03 22:08:48.000000000","message":"Sorry for the delay on reviewing this patch. I have added some comments, but I think this is pretty close to being ready.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"744a6a398bd738f29d309107de4cccdfffa83dbd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fcafd5e8_44f2dfc9","updated":"2022-10-09 13:12:26.000000000","message":"recheck","commit_id":"3593de9561c793914792c1b7e72830aa3fe9d65c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4dff4c9853d5961699e36bf8c822ff9b584a2c6d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"024049b3_7c9c1054","updated":"2022-10-10 09:24:40.000000000","message":"recheck ZonesTest","commit_id":"3593de9561c793914792c1b7e72830aa3fe9d65c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"607d506b9eb09a9426e0cc27a0d392ac31267ea9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"cb60f675_f1501fcf","updated":"2022-10-12 12:11:07.000000000","message":"recheck ZonesTest","commit_id":"3593de9561c793914792c1b7e72830aa3fe9d65c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7fd0a87fec046492be201ad4221a93a8a9a7b1be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"dc33f7d4_3c3bf73d","updated":"2022-10-10 11:00:32.000000000","message":"some configuration issues.\n\nrecheck ZonesTest","commit_id":"3593de9561c793914792c1b7e72830aa3fe9d65c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"73de85b82cafa8e0f1c07928d735ba9a4508d0b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"68e54bab_3430ac55","updated":"2022-10-15 14:51:28.000000000","message":"Hi Erik/Michael,\nCan you please review ? It has changed as suggested to add header. ","commit_id":"09c53b04f3df51e20d252157f82f0ae111b8b97a"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2f2f1f0d68c6c185a8038d7ee7dac462616e9d96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"19694030_8e526fc9","updated":"2022-10-19 19:47:36.000000000","message":"fixed.","commit_id":"09c53b04f3df51e20d252157f82f0ae111b8b97a"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"663d1781689d3681ef52022c9d65acb789fd7e3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c49045b6_3254b28f","updated":"2022-10-12 18:06:04.000000000","message":"recheck","commit_id":"09c53b04f3df51e20d252157f82f0ae111b8b97a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"8edf5e9f4775ef6bd451a709f6577704d79a5f19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"69ac1f33_4b2d411b","in_reply_to":"68e54bab_3430ac55","updated":"2022-10-19 19:51:14.000000000","message":"Thank you!","commit_id":"09c53b04f3df51e20d252157f82f0ae111b8b97a"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"8edf5e9f4775ef6bd451a709f6577704d79a5f19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"1e2efa56_7fb3aac7","updated":"2022-10-19 19:51:14.000000000","message":"After discussions with the core team, we think \"hard delete\" is more descriptive of this option. I will update the patch for that.","commit_id":"8cb32aff4ff38c7c69cdea25842e0a2a7e63460f"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"20e165877684ac01c14d992a8834a1294d0d9833","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"6dcc5b9e_dd164a9f","updated":"2022-10-19 20:26:26.000000000","message":"Just one question about the duplicate RBAC policy validation. Otherwise I think this is good.","commit_id":"814e78e37514c54997a3f44b5616c2904573d992"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"482dfe15e57de1a90dc8bd799c745523752e2b4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"4f2e122c_0d87ea54","updated":"2022-10-20 08:47:34.000000000","message":"recheck","commit_id":"28b7ee1b164b48e469d0b7b7830f4cb91780cca1"},{"author":{"_account_id":20104,"name":"Dmitrii Galkin","display_name":"Dmitry Galkin","email":"galkindmitrii@gmail.com","username":"galkindmitrii"},"change_message_id":"8ee5fbcb7cdc1833b6e25ac01c033b5085a5fc4d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":14,"id":"6dd53247_95847757","updated":"2022-11-18 11:57:15.000000000","message":"Can we merge this PR?\nDoes not look like anything is pending 😊","commit_id":"d193b0c70c8ee1c12310f8e211307088287561f1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"e2d24581ed0b455329487ea442a837ad7cf16563","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"493b1530_6b199c86","updated":"2022-11-22 10:15:41.000000000","message":"Hi core-reviewers, \nplease merge","commit_id":"d193b0c70c8ee1c12310f8e211307088287561f1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"01a5a0ab35423c83be638d3048949b8d378ceb75","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"bb903641_a09aece0","updated":"2022-11-23 00:25:25.000000000","message":"LGTM","commit_id":"d193b0c70c8ee1c12310f8e211307088287561f1"},{"author":{"_account_id":5572,"name":"Don Kehn","display_name":"DEKehn","email":"dekehn@gmail.com","username":"dekehn"},"change_message_id":"783ed954de91e56ececb7bb3db15b0797a493f71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"fcd7c8b7_c71fe4e8","updated":"2022-10-24 15:57:17.000000000","message":"LGTM - \nbefore:root@ospr1-069:/opt/stack/tempest# ll /var/cache/bind\ntotal 1348\ndrwxrwxr-x  2 bind bind 1212416 Oct 24 15:37 ./\ndrwxr-xr-x 19 root root    4096 Oct 24 14:17 ../\n-rw-rw----  1 bind bind  106496 Oct 24 15:37 _default.nzd\n-rw-------  1 bind bind    8192 Oct 24 15:37 _default.nzd-lock\n-rw-r--r--  1 bind bind     821 Oct 24 15:21 managed-keys.bind\n-rw-rw-r--  1 bind bind    3852 Oct 24 15:20 managed-keys.bind.jnl\n-rw-rw-r--  1 bind bind   31635 Oct  6 15:48 named_dump.db\n-rw-r--r--  1 bind bind     176 Oct 24 15:37 slave.example1.com.61b80159-f7cf-47cc-ac5b-07a1bd497865\n\nafter the --hard-delete:\nroot@ospr1-069:/opt/stack/tempest# ll /var/cache/bind\ntotal 1344\ndrwxrwxr-x  2 bind bind 1212416 Oct 24 15:55 ./\ndrwxr-xr-x 19 root root    4096 Oct 24 14:17 ../\n-rw-rw----  1 bind bind  106496 Oct 24 15:55 _default.nzd\n-rw-------  1 bind bind    8192 Oct 24 15:55 _default.nzd-lock\n-rw-r--r--  1 bind bind     821 Oct 24 15:21 managed-keys.bind\n-rw-rw-r--  1 bind bind    3852 Oct 24 15:20 managed-keys.bind.jnl\n-rw-rw-r--  1 bind bind   31635 Oct  6 15:48 named_dump.db\n\n","commit_id":"d193b0c70c8ee1c12310f8e211307088287561f1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"48abd7bb67423a192f15784deb8a88248fb813d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"de837448_b68855bd","updated":"2022-10-20 15:48:04.000000000","message":"This is probably ready for final reviews","commit_id":"d193b0c70c8ee1c12310f8e211307088287561f1"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":437,"context_line":"clean_zonefile:"},{"line_number":438,"context_line":"  description: |"},{"line_number":439,"context_line":"    Delete the zone-files on the back-end."},{"line_number":440,"context_line":"  in: body"},{"line_number":441,"context_line":"  required: false"},{"line_number":442,"context_line":"  type: bool"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"cef6a825_c86dcbc3","line":440,"updated":"2022-10-03 22:08:48.000000000","message":"Typically we avoid adding bodies to DELETE actions. This really feels like a modifier, requiring elevated privileges, on the zone delete call.\n\nIt seems like this should be a header option, like \"x-designate-edit-managed-records\" to be consistent with the other admin role request modifiers.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":437,"context_line":"clean_zonefile:"},{"line_number":438,"context_line":"  description: |"},{"line_number":439,"context_line":"    Delete the zone-files on the back-end."},{"line_number":440,"context_line":"  in: body"},{"line_number":441,"context_line":"  required: false"},{"line_number":442,"context_line":"  type: bool"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3ca6f272_fd3716a9","line":440,"in_reply_to":"cef6a825_c86dcbc3","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"}],"designate/api/v2/controllers/zones/__init__.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        context \u003d request.environ[\u0027context\u0027]"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        try:"},{"line_number":194,"context_line":"            body \u003d request.body_dict"},{"line_number":195,"context_line":"        except (exceptions.UnsupportedContentType,"},{"line_number":196,"context_line":"                exceptions.BadRequest):"},{"line_number":197,"context_line":"            body \u003d dict()"}],"source_content_type":"text/x-python","patch_set":8,"id":"200b7a3d_558eb863","line":194,"updated":"2022-10-03 22:08:48.000000000","message":"We don\u0027t usually add bodies to DELETE actions unless we really need to and this is a modifier, requiring admin privileges, on the zone delete.\nI think this might be best added as another header, like the other admin level modifiers[1].\n[1] https://github.com/openstack/designate/blob/master/api-ref/source/parameters.yaml#L5","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        context \u003d request.environ[\u0027context\u0027]"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        try:"},{"line_number":194,"context_line":"            body \u003d request.body_dict"},{"line_number":195,"context_line":"        except (exceptions.UnsupportedContentType,"},{"line_number":196,"context_line":"                exceptions.BadRequest):"},{"line_number":197,"context_line":"            body \u003d dict()"}],"source_content_type":"text/x-python","patch_set":8,"id":"39d853ad_ee94e6ef","line":194,"in_reply_to":"200b7a3d_558eb863","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"}],"designate/backend/impl_bind9.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"e6a1adc918aadf70382c39a86f1366bba4ed0805","unresolved":true,"context_lines":[{"line_number":141,"context_line":"        if self._clean_zonefile:"},{"line_number":142,"context_line":"            rndc_op.insert(1, \u0027-clean\u0027)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if zone_params and zone_params.get(\u0027soft_delete\u0027):"},{"line_number":145,"context_line":"            rndc_op.insert(1, \u0027-clean\u0027)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"86bba1bd_a90084a8","line":144,"updated":"2022-10-19 19:39:40.000000000","message":"What happens if _clean_zonefile is set and we pass in --hard-delete? Does it fail due to double -clean commands?","commit_id":"09c53b04f3df51e20d252157f82f0ae111b8b97a"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2f2f1f0d68c6c185a8038d7ee7dac462616e9d96","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        if self._clean_zonefile:"},{"line_number":142,"context_line":"            rndc_op.insert(1, \u0027-clean\u0027)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"        if zone_params and zone_params.get(\u0027soft_delete\u0027):"},{"line_number":145,"context_line":"            rndc_op.insert(1, \u0027-clean\u0027)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"d061bf4d_337ab72b","line":144,"in_reply_to":"86bba1bd_a90084a8","updated":"2022-10-19 19:47:36.000000000","message":"Done","commit_id":"09c53b04f3df51e20d252157f82f0ae111b8b97a"}],"designate/central/service.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":1049,"context_line":"            zone \u003d self._delete_zone_in_storage(context, zone)"},{"line_number":1050,"context_line":"            if policy.check(\u0027clean_zonefile\u0027, context, target,"},{"line_number":1051,"context_line":"                            do_raise\u003dFalse):"},{"line_number":1052,"context_line":"                zone.clean_zonefile \u003d clean_zonefile"},{"line_number":1053,"context_line":"            self.worker_api.delete_zone(context, zone)"},{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":"        return zone"}],"source_content_type":"text/x-python","patch_set":8,"id":"a2430e83_4de9f523","line":1052,"updated":"2022-10-03 22:08:48.000000000","message":"I don\u0027t like injecting fields into objects where they are not part of the main object (i.e. create/show returned fields) and when they are not persisted with the object. I think it would be best to update the worker API to accept the \"clean_zonefile\" parameter like you did for the central RPC.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":1049,"context_line":"            zone \u003d self._delete_zone_in_storage(context, zone)"},{"line_number":1050,"context_line":"            if policy.check(\u0027clean_zonefile\u0027, context, target,"},{"line_number":1051,"context_line":"                            do_raise\u003dFalse):"},{"line_number":1052,"context_line":"                zone.clean_zonefile \u003d clean_zonefile"},{"line_number":1053,"context_line":"            self.worker_api.delete_zone(context, zone)"},{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":"        return zone"}],"source_content_type":"text/x-python","patch_set":8,"id":"29f55959_22455508","line":1052,"in_reply_to":"a2430e83_4de9f523","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"20e165877684ac01c14d992a8834a1294d0d9833","unresolved":true,"context_lines":[{"line_number":1048,"context_line":"        else:"},{"line_number":1049,"context_line":"            zone \u003d self._delete_zone_in_storage(context, zone)"},{"line_number":1050,"context_line":"            delete_zonefile \u003d False"},{"line_number":1051,"context_line":"            if context.hard_delete and policy.check("},{"line_number":1052,"context_line":"                    \u0027hard_delete\u0027, context, target, do_raise\u003dFalse):"},{"line_number":1053,"context_line":"                delete_zonefile \u003d True"},{"line_number":1054,"context_line":"            self.worker_api.delete_zone(context, zone,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7ad8c8b3_560e60f3","line":1051,"updated":"2022-10-19 20:26:26.000000000","message":"Isn\u0027t this policy check duplicate to https://review.opendev.org/c/openstack/designate/+/835317/12/designate/context.py#200 ?","commit_id":"814e78e37514c54997a3f44b5616c2904573d992"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"abfa9340b951bb6fdf89c0815814baf8ef3e9139","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"        else:"},{"line_number":1049,"context_line":"            zone \u003d self._delete_zone_in_storage(context, zone)"},{"line_number":1050,"context_line":"            delete_zonefile \u003d False"},{"line_number":1051,"context_line":"            if context.hard_delete and policy.check("},{"line_number":1052,"context_line":"                    \u0027hard_delete\u0027, context, target, do_raise\u003dFalse):"},{"line_number":1053,"context_line":"                delete_zonefile \u003d True"},{"line_number":1054,"context_line":"            self.worker_api.delete_zone(context, zone,"}],"source_content_type":"text/x-python","patch_set":12,"id":"f8fcb757_9142154b","line":1051,"in_reply_to":"7ad8c8b3_560e60f3","updated":"2022-10-20 06:42:18.000000000","message":"Yes, fixed","commit_id":"814e78e37514c54997a3f44b5616c2904573d992"}],"designate/common/policies/zone.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":102,"context_line":")"},{"line_number":103,"context_line":"deprecated_clean_zonefile \u003d policy.DeprecatedRule("},{"line_number":104,"context_line":"    name\u003d\"clean_zonefile\","},{"line_number":105,"context_line":"    check_str\u003dbase.RULE_ADMIN_OR_OWNER,"},{"line_number":106,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":107,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":108,"context_line":")"}],"source_content_type":"text/x-python","patch_set":8,"id":"bfc20938_408c3775","line":105,"updated":"2022-10-03 22:08:48.000000000","message":"I think this should be RULE_ADMIN only by default as it modifies the storage behavior of the backend BIND instances. Currently the config setting to delete all of the zone files is limited to the admin that publishes the pools.yaml.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":102,"context_line":")"},{"line_number":103,"context_line":"deprecated_clean_zonefile \u003d policy.DeprecatedRule("},{"line_number":104,"context_line":"    name\u003d\"clean_zonefile\","},{"line_number":105,"context_line":"    check_str\u003dbase.RULE_ADMIN_OR_OWNER,"},{"line_number":106,"context_line":"    deprecated_reason\u003dDEPRECATED_REASON,"},{"line_number":107,"context_line":"    deprecated_since\u003dversionutils.deprecated.WALLABY"},{"line_number":108,"context_line":")"}],"source_content_type":"text/x-python","patch_set":8,"id":"f03be8f4_e048aec7","line":105,"in_reply_to":"bfc20938_408c3775","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":245,"context_line":"    ),"},{"line_number":246,"context_line":"    policy.RuleDefault("},{"line_number":247,"context_line":"        name\u003d\"clean_zonefile\","},{"line_number":248,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":249,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":250,"context_line":"        description\u003d\"Clean backend files associated with zone\","},{"line_number":251,"context_line":"        deprecated_rule\u003ddeprecated_clean_zonefile"}],"source_content_type":"text/x-python","patch_set":8,"id":"6789f288_fc3217ae","line":248,"updated":"2022-10-03 22:08:48.000000000","message":"I think this should be RULE_ADMIN only by default as it modifies the storage behavior of the backend BIND instances. Currently the config setting to delete all of the zone files is limited to the admin that publishes the pools.yaml.","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":245,"context_line":"    ),"},{"line_number":246,"context_line":"    policy.RuleDefault("},{"line_number":247,"context_line":"        name\u003d\"clean_zonefile\","},{"line_number":248,"context_line":"        check_str\u003dbase.SYSTEM_ADMIN_OR_PROJECT_MEMBER,"},{"line_number":249,"context_line":"        scope_types\u003d[\u0027system\u0027, \u0027project\u0027],"},{"line_number":250,"context_line":"        description\u003d\"Clean backend files associated with zone\","},{"line_number":251,"context_line":"        deprecated_rule\u003ddeprecated_clean_zonefile"}],"source_content_type":"text/x-python","patch_set":8,"id":"d49fca78_cd0ce860","line":248,"in_reply_to":"6789f288_fc3217ae","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"}],"designate/objects/zone.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":65,"context_line":"                                 ),"},{"line_number":66,"context_line":"        \u0027transferred_at\u0027: fields.DateTimeField(nullable\u003dTrue, read_only\u003dFalse),"},{"line_number":67,"context_line":"        \u0027delayed_notify\u0027: fields.BooleanField(nullable\u003dTrue),"},{"line_number":68,"context_line":"        \u0027clean_zonefile\u0027: fields.BooleanField(nullable\u003dTrue, read_only\u003dFalse),"},{"line_number":69,"context_line":"    }"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    STRING_KEYS \u003d ["}],"source_content_type":"text/x-python","patch_set":8,"id":"ce49d345_00b29a88","line":68,"updated":"2022-10-03 22:08:48.000000000","message":"Injecting this false field into the zone object is a bad practice. Since it\u0027s not persisted in the database, nor visible in the API show/create actions, it\u0027s an odd case. I worry that adding this here will cause problems later if we move these objects closer to the storage via ORM in the future.\nCan we just update the worker RPC instead?","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                                 ),"},{"line_number":66,"context_line":"        \u0027transferred_at\u0027: fields.DateTimeField(nullable\u003dTrue, read_only\u003dFalse),"},{"line_number":67,"context_line":"        \u0027delayed_notify\u0027: fields.BooleanField(nullable\u003dTrue),"},{"line_number":68,"context_line":"        \u0027clean_zonefile\u0027: fields.BooleanField(nullable\u003dTrue, read_only\u003dFalse),"},{"line_number":69,"context_line":"    }"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    STRING_KEYS \u003d ["}],"source_content_type":"text/x-python","patch_set":8,"id":"37386a84_67423dc6","line":68,"in_reply_to":"ce49d345_00b29a88","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"}],"releasenotes/notes/Fix-Delete-back-end-zone-file-upon-zone-deletion-da0051432c95c8e2.yaml":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"31002dd79266d77c3267c420f7c683de667f1d2e","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Currently designate does not delete the zone-files on the back-end e.g."},{"line_number":5,"context_line":"    bind9 when the zone is deleted. This results in thousands of leftover zone"},{"line_number":6,"context_line":"    files on backend. Add option in designate zone delete API to force"},{"line_number":7,"context_line":"    clean/delete zone files on the back-end. This option is restricted for"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9bad9b0f_2d2df87e","line":4,"updated":"2022-10-03 22:08:48.000000000","message":"There is an existing option that can be defined in the pools.yaml to have bind delete the files[1]. It looks like the docs were not updated for this option, but it does exist.\n\nThis however is an all-or-none setting for the target.\n\nFrom our discussions on this patch I understand you want more granularity, i.e. zone by zone decision. So, this patch is still valid, but we should be careful to word the release notes to imply there is no global setting either.\n\n[1] https://opendev.org/openstack/designate/src/branch/master/designate/backend/impl_bind9.py#L51","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ae7ca897beaca45332cc3920661a92315ca49d1b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Currently designate does not delete the zone-files on the back-end e.g."},{"line_number":5,"context_line":"    bind9 when the zone is deleted. This results in thousands of leftover zone"},{"line_number":6,"context_line":"    files on backend. Add option in designate zone delete API to force"},{"line_number":7,"context_line":"    clean/delete zone files on the back-end. This option is restricted for"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"62389f39_6ee3a1ac","line":4,"in_reply_to":"9bad9b0f_2d2df87e","updated":"2022-10-06 10:31:08.000000000","message":"Done","commit_id":"c57cf5cbed167b7f619c4c4c11fef3d2cd90bdc1"}]}
