)]}'
{"id":"openstack%2Fdesignate~965776","triplet_id":"openstack%2Fdesignate~master~If05c35483c2d0f548eb337f6eebf54697ce5dfb7","project":"openstack/designate","branch":"master","topic":"bug/1789511","attention_set":{"22623":{"account":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"last_update":"2026-09-21 13:25:18.000000000","reason":"Vote got outdated and was removed: Code-Review+2"}},"removed_from_attention_set":{"31664":{"account":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"last_update":"2026-09-21 13:25:43.000000000","reason":"\u003cGERRIT_ACCOUNT_31664\u003e replied on the change","reason_account":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"}}},"hashtags":[],"change_id":"If05c35483c2d0f548eb337f6eebf54697ce5dfb7","subject":"Validate semicolons in TXT and SPF records","status":"NEW","created":"2025-10-31 12:24:04.000000000","updated":"2026-09-21 14:46:36.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"1c8b2e451997e2f93db0c4a3acf065655b7bb526","_number":965776,"virtual_id_number":965776,"owner":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-21 14:46:36.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-10-31 14:03:06.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2025-11-03 15:50:44.000000000","updated_by":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"reviewer":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"state":"REVIEWER"}],"messages":[{"id":"bb59b00a4df84e23711b91e0f33a53a75b821f47","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"date":"2025-10-31 12:24:04.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"bb048c2d4a9f05d925235669ff2f9cc84ffe6ae4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-10-31 14:03:06.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d20bbdce8f284be7b53c18641673a710\n\n- designate-bind9-core https://zuul.opendev.org/t/openstack/build/cd484dbb11bf40da9027069650c65612 : SUCCESS in 51m 50s\n- designate-bind9-with-keystone-default-roles https://zuul.opendev.org/t/openstack/build/dd4053586c3047069e9b6985774b87e6 : SUCCESS in 43m 46s\n- designate-pdns4-core https://zuul.opendev.org/t/openstack/build/0ab519caf03f446aa8b1a961a970b471 : SUCCESS in 38m 27s\n- designate-bind9-multipool https://zuul.opendev.org/t/openstack/build/697d66a9c78a4e9bbcd9e4494a81d790 : SUCCESS in 34m 17s\n- designate-grenade-bind9 https://zuul.opendev.org/t/openstack/build/206e53e04366451289859e1202dccff4 : SUCCESS in 1h 05m 59s\n- designate-grenade-pdns4 https://zuul.opendev.org/t/openstack/build/1518cb851f3648788a89f65cf5ad34f7 : SUCCESS in 1h 09m 16s\n- designate-grenade-bind9-skip-level https://zuul.opendev.org/t/openstack/build/51e90a637d4441489a1784703638d8ce : SUCCESS in 1h 09m 21s\n- designate-grenade-pdns4-skip-level https://zuul.opendev.org/t/openstack/build/884df427a7aa44a58f4af5acf37c9663 : SUCCESS in 1h 11m 40s\n- designate-bind9-core-catalog-zones https://zuul.opendev.org/t/openstack/build/67bb8b92923442daa3eedf620c834f83 : SUCCESS in 43m 50s (non-voting)\n- designate-only-ipv6-pdns4 https://zuul.opendev.org/t/openstack/build/93555c6d78a74ac1a16c0a59d7e750ff : SUCCESS in 50m 57s\n- designate-only-ipv6-bind9 https://zuul.opendev.org/t/openstack/build/eb4b6cdeb21b4d7883ae2ccd112492eb : SUCCESS in 50m 33s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2c198f662f6f4febb7d5f9747cfdb750 : SUCCESS in 6m 32s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/e60fc26d3b2441e39a699c6213fabd1b : SUCCESS in 4m 53s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/e933ef34ee814a9d9d59cab9625540e1 : SUCCESS in 5m 20s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/99da587fe77c42018213f04df6d85093 : SUCCESS in 8m 27s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/a8cc8d925a81462fa21d0003d101a305 : SUCCESS in 8m 32s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/19dabfad84a44fa0914d736dd54f28f4 : SUCCESS in 6m 29s\n- neutron-tempest-plugin-designate-scenario https://zuul.opendev.org/t/openstack/build/8dedf0547a5d45a9bbc5b946c4fb09ac : SUCCESS in 34m 34s\n- designate-tox-dnspython-latest https://zuul.opendev.org/t/openstack/build/158c666b18684a1d8da283c0606c0869 : SUCCESS in 5m 25s","accounts_in_message":[],"_revision_number":1},{"id":"8fc5159164058404cb867db6f9948e38c49f8aff","author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"date":"2025-11-03 15:50:44.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"5e6dd8a7d791ba8afce5795f46ad5757705516aa","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"date":"2026-09-21 13:25:18.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"9aa9a63c999a3573d1df1673bb69174dedcbd66f","author":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"date":"2026-09-21 13:25:43.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"1c8b2e451997e2f93db0c4a3acf065655b7bb526","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-21 14:46:36.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/398a2a50c10e4d10bae8549c911aa2e3\n\n- designate-bind9-core https://zuul.opendev.org/t/openstack/build/d6f122acb53b4fdfb2e06ef056e4e5b1 : SUCCESS in 48m 16s\n- designate-bind9-with-keystone-default-roles https://zuul.opendev.org/t/openstack/build/9f5ca8caa3144f1cb434380eb534a2b0 : SUCCESS in 29m 54s\n- designate-pdns4-core https://zuul.opendev.org/t/openstack/build/006c4f0298ea4c2fb2208bb84ce12cda : SUCCESS in 39m 49s\n- designate-bind9-multipool https://zuul.opendev.org/t/openstack/build/d89789340ea9440798aed9b67210f976 : SUCCESS in 21m 38s\n- designate-grenade-bind9 https://zuul.opendev.org/t/openstack/build/1b38c5c714074918a67a8dfd859bf6bb : SUCCESS in 1h 12m 21s\n- designate-grenade-pdns4 https://zuul.opendev.org/t/openstack/build/37bbe01d32a4448a9a9151ea07b9a4c8 : SUCCESS in 55m 57s\n- designate-grenade-bind9-skip-level https://zuul.opendev.org/t/openstack/build/f5addba4bcef49e99f52d2850cc958bd : SUCCESS in 52m 43s\n- designate-grenade-pdns4-skip-level https://zuul.opendev.org/t/openstack/build/b76ee5035df3422ba840519d3e12ad80 : SUCCESS in 1h 12m 47s\n- designate-bind9-core-catalog-zones https://zuul.opendev.org/t/openstack/build/880051058e824af48769f0c01726affb : SUCCESS in 42m 28s (non-voting)\n- designate-only-ipv6-pdns4 https://zuul.opendev.org/t/openstack/build/9e061a3fe43d4bc1a1ca71644199d948 : SUCCESS in 39m 53s\n- designate-only-ipv6-bind9 https://zuul.opendev.org/t/openstack/build/b3e8de5c7e4a4447815506cf7430f540 : SUCCESS in 42m 29s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/78f7af3c22f2498fb94a9d34f41f93e2 : SUCCESS in 5m 48s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/55a55941de9345ea910cc6bd9e1e814b : SUCCESS in 2m 35s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/f35d8be6588943a7a12b8e20a11830d5 : SUCCESS in 4m 44s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/2966e39cd7484905a14593fd420630c9 : SUCCESS in 4m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/17211f4825174c1cad9164d5c4f5bbe0 : SUCCESS in 5m 22s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/70881ad4f35f413da6b16ac40223af78 : SUCCESS in 5m 08s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/cff88bf16c04463d892433922814342d : SUCCESS in 6m 06s\n- neutron-tempest-plugin-designate-scenario https://zuul.opendev.org/t/openstack/build/ebe7732973f6425eadb8cc7e46fafc74 : SUCCESS in 28m 55s\n- designate-tox-dnspython-latest https://zuul.opendev.org/t/openstack/build/2cc701024bb04f6ba64355dcea8e26ea : SUCCESS in 4m 20s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"97253fcd281bef2f4f428eb5a4542ac9957efd9b","revisions":{"5cdd5d443e302ac1610f42e891467c45711fe256":{"kind":"REWORK","_number":1,"created":"2025-10-31 12:24:04.000000000","uploader":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"ref":"refs/changes/76/965776/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/designate","ref":"refs/changes/76/965776/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/designate refs/changes/76/965776/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/designate refs/changes/76/965776/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/designate refs/changes/76/965776/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/designate refs/changes/76/965776/1"}}},"commit":{"parents":[{"commit":"3bc81788322f10a8ada3e685a4417f4cc88f3942","subject":"Fix designate backend coverage","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/designate/commit/3bc81788322f10a8ada3e685a4417f4cc88f3942"}]}],"author":{"name":"Omer","email":"oschwart@redhat.com","date":"2025-10-31 12:21:36.000000000","tz":60},"committer":{"name":"Omer","email":"oschwart@redhat.com","date":"2025-10-31 12:23:41.000000000","tz":60},"subject":"Validate semicolons in TXT and SPF records","message":"Validate semicolons in TXT and SPF records\n\nTXT and SPF records with semicolons can be truncated when written to\nDNS zone files, as semicolons are treated as comment delimiters in\nzone file syntax. For example, a record with value \"a\u003db; c\u003dd; e\u003df;\"\nwould be truncated to just \"a\u003db\" when parsed by DNS servers.\n\nThis patch adds validation to require semicolons in TXT and SPF\nrecord values to be wrapped in double quotes, similar to the existing\nvalidation for spaces (added in bug 1755788). This ensures the entire\nrecord value is preserved according to RFC1035 section 5.1.\n\nRecords with unquoted semicolons will now raise a validation error,\nprompting users to wrap the value in quotes: \"a\u003db; c\u003dd; e\u003df;\"\n\nGenerated-By: Claude Code 4.5 Sonnet\nCloses-Bug: #1789511\nChange-Id: If05c35483c2d0f548eb337f6eebf54697ce5dfb7\nSigned-off-by: Omer \u003coschwart@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/designate/commit/5cdd5d443e302ac1610f42e891467c45711fe256"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/designate/commit/5cdd5d443e302ac1610f42e891467c45711fe256"}]},"branch":"refs/heads/master"},"97253fcd281bef2f4f428eb5a4542ac9957efd9b":{"kind":"REWORK","_number":2,"created":"2026-09-21 13:25:18.000000000","uploader":{"_account_id":31664,"name":"Omer Schwartz","email":"oschwart@redhat.com","username":"oschwart"},"ref":"refs/changes/76/965776/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/designate","ref":"refs/changes/76/965776/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/designate refs/changes/76/965776/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/designate refs/changes/76/965776/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/designate refs/changes/76/965776/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/designate refs/changes/76/965776/2"}}},"commit":{"parents":[{"commit":"a0dfb78e2b03757334e730632cbdfa189741b6dd","subject":"Merge \"Fix pool delete when it contains a catalog zone\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/designate/commit/a0dfb78e2b03757334e730632cbdfa189741b6dd"}]}],"author":{"name":"Omer","email":"oschwart@redhat.com","date":"2025-10-31 12:21:36.000000000","tz":60},"committer":{"name":"Omer","email":"oschwart@redhat.com","date":"2026-09-21 13:25:11.000000000","tz":120},"subject":"Validate semicolons in TXT and SPF records","message":"Validate semicolons in TXT and SPF records\n\nTXT and SPF records with semicolons can be truncated when written to\nDNS zone files, as semicolons are treated as comment delimiters in\nzone file syntax. For example, a record with value \"a\u003db; c\u003dd; e\u003df;\"\nwould be truncated to just \"a\u003db\" when parsed by DNS servers.\n\nThis patch adds validation to require semicolons in TXT and SPF\nrecord values to be wrapped in double quotes, similar to the existing\nvalidation for spaces (added in bug 1755788). This ensures the entire\nrecord value is preserved according to RFC1035 section 5.1.\n\nRecords with unquoted semicolons will now raise a validation error,\nprompting users to wrap the value in quotes: \"a\u003db; c\u003dd; e\u003df;\"\n\nGenerated-By: Claude Code 4.5 Sonnet\nCloses-Bug: #1789511\nChange-Id: If05c35483c2d0f548eb337f6eebf54697ce5dfb7\nSigned-off-by: Omer \u003coschwart@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/designate/commit/97253fcd281bef2f4f428eb5a4542ac9957efd9b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/designate/commit/97253fcd281bef2f4f428eb5a4542ac9957efd9b"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
