)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"088de6413efe2522c60b6567ff8e78a500d5ce08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"925ae317_028d7121","updated":"2026-05-04 12:43:27.000000000","message":"Great work Abhiram, thanks for working on this patch!\nI do however have a few comments which are added inline. Here is another one: Can we leverage the 2 bind instances as well in this backend? Say, like we did in the multipool-bind9. We could have 2 binds, both splitted (split-horizon), so both will have both views and we could have replication across the (multiple) pools + binds.","commit_id":"9b716c76de812d5ccac3421db9b0a8c1c521d374"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"30e25a512972faac4a3ff037dfa3f837a5dab289","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6be7244b_bc36de33","updated":"2026-05-08 09:12:03.000000000","message":"Replication works with this backend, these are great news!!\n\nTested the split-horizon-bind9 backend on DevStack. Both BIND instances are up with two views each (default + split-horizon).\n\nSetup:\n- Created test.example.com. in both pools (same zone name, different pools)\n- Added app.test.example.com. A 10.0.0.1 in the default pool\n- Added app.test.example.com. A 10.0.0.2 in the split-horizon pool\n\nResults:\n- View isolation works: queries without TSIG return 10.0.0.1, queries with -k /etc/bind-2/named.conf.tsigkeys return 10.0.0.2\n- Replication works: both BIND1 (:53) and BIND2 (:1053) return identical results within each view\n- Zone lifecycle is independent: deleting the default pool zone removes it from both BINDs while the split-horizon zone continues serving 10.0.0.2 on both instances\n\nI added a few small comments inline but except for those this patch looks good to me","commit_id":"b52ad5b212ad3be45c47d9679caf69df47cde218"},{"author":{"_account_id":39015,"name":"Abhiram R N","display_name":"Abhiram Narayana","email":"arn@redhat.com","username":"abhiramnarayana"},"change_message_id":"1d3a3e32c28448186e6af2408fe4fa023da99cfe","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3250a036_ace76d95","updated":"2026-05-05 09:38:33.000000000","message":"recheck grenade failure does not seem to be due to the path.","commit_id":"b52ad5b212ad3be45c47d9679caf69df47cde218"},{"author":{"_account_id":39015,"name":"Abhiram R N","display_name":"Abhiram Narayana","email":"arn@redhat.com","username":"abhiramnarayana"},"change_message_id":"1150e65741dc855358ab05f48842e8130067d5b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"eb79a390_56b6571c","in_reply_to":"3250a036_ace76d95","updated":"2026-05-08 09:43:43.000000000","message":"Done","commit_id":"b52ad5b212ad3be45c47d9679caf69df47cde218"}],"devstack/README.rst":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"30e25a512972faac4a3ff037dfa3f837a5dab289","unresolved":true,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    DESIGNATE_BACKEND_DRIVER\u003dmultipool-bind9"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"   For split-horizon (single BIND instance with TSIG-based views)::"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    DESIGNATE_BACKEND_DRIVER\u003dsplit-horizon-bind9"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c1a34802_f62a6826","line":30,"range":{"start_line":30,"start_character":22,"end_line":30,"end_character":33},"updated":"2026-05-08 09:12:03.000000000","message":"two bind instances","commit_id":"b52ad5b212ad3be45c47d9679caf69df47cde218"}],"devstack/designate_plugins/backend-split-horizon-bind9":[{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"088de6413efe2522c60b6567ff8e78a500d5ce08","unresolved":true,"context_lines":[{"line_number":249,"context_line":"    TSIG_KEY_ID\u003d$(openstack tsigkey list -f value -c id --name \"$NAME\")"},{"line_number":250,"context_line":"    if [ -n \"$TSIG_KEY_ID\" ]; then"},{"line_number":251,"context_line":"        sudo tee $DESIGNATE_CONF_DIR/pools.yaml \u003e/dev/null \u003c\u003cEOF"},{"line_number":252,"context_line":"---"},{"line_number":253,"context_line":"- name: default"},{"line_number":254,"context_line":"  description: DevStack BIND Pool (default view - unsigned traffic)"},{"line_number":255,"context_line":"  attributes: {"},{"line_number":256,"context_line":"    \"pool_level\": \"default\""},{"line_number":257,"context_line":"  }"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"  ns_records:"},{"line_number":260,"context_line":"    - hostname: $DESIGNATE_DEFAULT_NS_RECORD"},{"line_number":261,"context_line":"      priority: 1"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"  nameservers:"},{"line_number":264,"context_line":"    - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":265,"context_line":"      port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"  targets:"},{"line_number":268,"context_line":"    - type: bind9"},{"line_number":269,"context_line":"      description: BIND Instance - default view"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"      masters:"},{"line_number":272,"context_line":"        - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":273,"context_line":"          port: $DESIGNATE_SERVICE_PORT_MDNS"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"      options:"},{"line_number":276,"context_line":"        host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":277,"context_line":"        port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":278,"context_line":"        rndc_host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":279,"context_line":"        rndc_port: $DESIGNATE_SERVICE_PORT_RNDC"},{"line_number":280,"context_line":"        rndc_config_file: $BIND_CFG_DIR/rndc.conf"},{"line_number":281,"context_line":"        view: default"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"- name: split-horizon"},{"line_number":284,"context_line":"  description: DevStack BIND Pool (split-horizon view - TSIG-signed traffic)"},{"line_number":285,"context_line":"  attributes: {"},{"line_number":286,"context_line":"    \"pool_level\": \"secondary\""},{"line_number":287,"context_line":"  }"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"  ns_records:"},{"line_number":290,"context_line":"    - hostname: $DESIGNATE_DEFAULT_NS2_RECORD"},{"line_number":291,"context_line":"      priority: 1"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"  nameservers:"},{"line_number":294,"context_line":"    - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":295,"context_line":"      port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":296,"context_line":"      tsigkey_id: $TSIG_KEY_ID"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"  targets:"},{"line_number":299,"context_line":"    - type: bind9"},{"line_number":300,"context_line":"      description: BIND Instance - split-horizon view"},{"line_number":301,"context_line":"      tsigkey_id: $TSIG_KEY_ID"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"      masters:"},{"line_number":304,"context_line":"        - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":305,"context_line":"          port: $DESIGNATE_SERVICE_PORT_MDNS"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"      options:"},{"line_number":308,"context_line":"        host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":309,"context_line":"        port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":310,"context_line":"        rndc_host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":311,"context_line":"        rndc_port: $DESIGNATE_SERVICE_PORT_RNDC"},{"line_number":312,"context_line":"        rndc_config_file: $BIND_CFG_DIR/rndc.conf"},{"line_number":313,"context_line":"        view: split-horizon"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"EOF"},{"line_number":316,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"792de4a6_e1e7c19d","line":313,"range":{"start_line":252,"start_character":0,"end_line":313,"end_character":27},"updated":"2026-05-04 12:43:27.000000000","message":"The duplication of pools.yaml makes this file way longer than necessary IMO. Can we find an alternative?","commit_id":"9b716c76de812d5ccac3421db9b0a8c1c521d374"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"30e25a512972faac4a3ff037dfa3f837a5dab289","unresolved":false,"context_lines":[{"line_number":249,"context_line":"    TSIG_KEY_ID\u003d$(openstack tsigkey list -f value -c id --name \"$NAME\")"},{"line_number":250,"context_line":"    if [ -n \"$TSIG_KEY_ID\" ]; then"},{"line_number":251,"context_line":"        sudo tee $DESIGNATE_CONF_DIR/pools.yaml \u003e/dev/null \u003c\u003cEOF"},{"line_number":252,"context_line":"---"},{"line_number":253,"context_line":"- name: default"},{"line_number":254,"context_line":"  description: DevStack BIND Pool (default view - unsigned traffic)"},{"line_number":255,"context_line":"  attributes: {"},{"line_number":256,"context_line":"    \"pool_level\": \"default\""},{"line_number":257,"context_line":"  }"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"  ns_records:"},{"line_number":260,"context_line":"    - hostname: $DESIGNATE_DEFAULT_NS_RECORD"},{"line_number":261,"context_line":"      priority: 1"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"  nameservers:"},{"line_number":264,"context_line":"    - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":265,"context_line":"      port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"  targets:"},{"line_number":268,"context_line":"    - type: bind9"},{"line_number":269,"context_line":"      description: BIND Instance - default view"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"      masters:"},{"line_number":272,"context_line":"        - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":273,"context_line":"          port: $DESIGNATE_SERVICE_PORT_MDNS"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"      options:"},{"line_number":276,"context_line":"        host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":277,"context_line":"        port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":278,"context_line":"        rndc_host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":279,"context_line":"        rndc_port: $DESIGNATE_SERVICE_PORT_RNDC"},{"line_number":280,"context_line":"        rndc_config_file: $BIND_CFG_DIR/rndc.conf"},{"line_number":281,"context_line":"        view: default"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"- name: split-horizon"},{"line_number":284,"context_line":"  description: DevStack BIND Pool (split-horizon view - TSIG-signed traffic)"},{"line_number":285,"context_line":"  attributes: {"},{"line_number":286,"context_line":"    \"pool_level\": \"secondary\""},{"line_number":287,"context_line":"  }"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"  ns_records:"},{"line_number":290,"context_line":"    - hostname: $DESIGNATE_DEFAULT_NS2_RECORD"},{"line_number":291,"context_line":"      priority: 1"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"  nameservers:"},{"line_number":294,"context_line":"    - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":295,"context_line":"      port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":296,"context_line":"      tsigkey_id: $TSIG_KEY_ID"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"  targets:"},{"line_number":299,"context_line":"    - type: bind9"},{"line_number":300,"context_line":"      description: BIND Instance - split-horizon view"},{"line_number":301,"context_line":"      tsigkey_id: $TSIG_KEY_ID"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"      masters:"},{"line_number":304,"context_line":"        - host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":305,"context_line":"          port: $DESIGNATE_SERVICE_PORT_MDNS"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"      options:"},{"line_number":308,"context_line":"        host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":309,"context_line":"        port: $DESIGNATE_SERVICE_PORT_DNS"},{"line_number":310,"context_line":"        rndc_host: $(ipv6_unquote $DESIGNATE_SERVICE_HOST)"},{"line_number":311,"context_line":"        rndc_port: $DESIGNATE_SERVICE_PORT_RNDC"},{"line_number":312,"context_line":"        rndc_config_file: $BIND_CFG_DIR/rndc.conf"},{"line_number":313,"context_line":"        view: split-horizon"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"EOF"},{"line_number":316,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"eb6d392a_3c48d8af","line":313,"range":{"start_line":252,"start_character":0,"end_line":313,"end_character":27},"in_reply_to":"792de4a6_e1e7c19d","updated":"2026-05-08 09:12:03.000000000","message":"Done","commit_id":"9b716c76de812d5ccac3421db9b0a8c1c521d374"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"088de6413efe2522c60b6567ff8e78a500d5ce08","unresolved":true,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"EOF"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        designate-manage pool update --file $DESIGNATE_CONF_DIR/pools.yaml"},{"line_number":318,"context_line":"        sudo systemctl restart devstack@designate-worker"},{"line_number":319,"context_line":"    fi"},{"line_number":320,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"8325481f_16e86523","line":317,"range":{"start_line":317,"start_character":8,"end_line":317,"end_character":24},"updated":"2026-05-04 12:43:27.000000000","message":"we should use $DESIGNATE_BIN_DIR/designate-manage instead of just designate-manage so it won\u0027t break outside the venv.\nThe file plugin.sh has that variable defined and will call it anyway, so maybe we could remove this line and the next one (say #317-318)? Would it work? (if we need to restart the worker anyway, then please consider the comment in the next line)","commit_id":"9b716c76de812d5ccac3421db9b0a8c1c521d374"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"30e25a512972faac4a3ff037dfa3f837a5dab289","unresolved":false,"context_lines":[{"line_number":314,"context_line":""},{"line_number":315,"context_line":"EOF"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        designate-manage pool update --file $DESIGNATE_CONF_DIR/pools.yaml"},{"line_number":318,"context_line":"        sudo systemctl restart devstack@designate-worker"},{"line_number":319,"context_line":"    fi"},{"line_number":320,"context_line":"}"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"113d2df0_ecb80c57","line":317,"range":{"start_line":317,"start_character":8,"end_line":317,"end_character":24},"in_reply_to":"8325481f_16e86523","updated":"2026-05-08 09:12:03.000000000","message":"Done","commit_id":"9b716c76de812d5ccac3421db9b0a8c1c521d374"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"088de6413efe2522c60b6567ff8e78a500d5ce08","unresolved":true,"context_lines":[{"line_number":315,"context_line":"EOF"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        designate-manage pool update --file $DESIGNATE_CONF_DIR/pools.yaml"},{"line_number":318,"context_line":"        sudo systemctl restart devstack@designate-worker"},{"line_number":319,"context_line":"    fi"},{"line_number":320,"context_line":"}"},{"line_number":321,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"6e3e42b6_7875784d","line":318,"range":{"start_line":318,"start_character":8,"end_line":318,"end_character":30},"updated":"2026-05-04 12:43:27.000000000","message":"we should use restart_service instead of sudo systemctl restart","commit_id":"9b716c76de812d5ccac3421db9b0a8c1c521d374"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"30e25a512972faac4a3ff037dfa3f837a5dab289","unresolved":false,"context_lines":[{"line_number":315,"context_line":"EOF"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        designate-manage pool update --file $DESIGNATE_CONF_DIR/pools.yaml"},{"line_number":318,"context_line":"        sudo systemctl restart devstack@designate-worker"},{"line_number":319,"context_line":"    fi"},{"line_number":320,"context_line":"}"},{"line_number":321,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"a7a8ea78_e47a7046","line":318,"range":{"start_line":318,"start_character":8,"end_line":318,"end_character":30},"in_reply_to":"6e3e42b6_7875784d","updated":"2026-05-08 09:12:03.000000000","message":"Done","commit_id":"9b716c76de812d5ccac3421db9b0a8c1c521d374"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"30e25a512972faac4a3ff037dfa3f837a5dab289","unresolved":true,"context_lines":[{"line_number":53,"context_line":"    BIND_VAR_DIR\u003d/var/$BIND_SERVICE_NAME"},{"line_number":54,"context_line":"    BIND2_VAR_DIR\u003d/var/$BIND2_SERVICE_NAME"},{"line_number":55,"context_line":"    BIND_USER\u003dnamed"},{"line_number":56,"context_line":"    BIND_GROUP\u003dnamed"},{"line_number":57,"context_line":"    BIND_TSIGKEY_FILE\u003d$BIND_CFG_DIR/named.conf.tsigkeys"},{"line_number":58,"context_line":"    BIND2_TSIGKEY_FILE\u003d$BIND2_CFG_DIR/named.conf.tsigkeys"},{"line_number":59,"context_line":"fi"},{"line_number":60,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"17201f0c_83455080","line":57,"range":{"start_line":56,"start_character":4,"end_line":57,"end_character":55},"updated":"2026-05-08 09:12:03.000000000","message":"missing declaration of BIND2_UNIT_CFG_FILE\u003d/etc/sysconfig/$BIND2_SERVICE_NAME\nthis script declares it as local above, I think we should have it here instead","commit_id":"b52ad5b212ad3be45c47d9679caf69df47cde218"},{"author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"change_message_id":"30e25a512972faac4a3ff037dfa3f837a5dab289","unresolved":true,"context_lines":[{"line_number":126,"context_line":"/var/cache/bind-2/** lrw,"},{"line_number":127,"context_line":"/var/cache/bind-2/_default.nzd-lock rwk,"},{"line_number":128,"context_line":"/{,var/}run/named-2/named.pid w,"},{"line_number":129,"context_line":"/{,var/}run/named-2/session.key w,"},{"line_number":130,"context_line":"EOF"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        restart_service apparmor || :"},{"line_number":133,"context_line":"    fi"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"5d691021_b3f3dc3e","line":130,"range":{"start_line":129,"start_character":0,"end_line":130,"end_character":3},"updated":"2026-05-08 09:12:03.000000000","message":"Missing \n/var/log/named-2/** rw,\n/var/log/named-2/ rw,\nas in https://opendev.org/openstack/designate/src/branch/master/devstack/designate_plugins/backend-multipool-bind9#L165","commit_id":"b52ad5b212ad3be45c47d9679caf69df47cde218"}]}
