)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6994,"name":"Michael Chapman","email":"woppin@gmail.com","username":"michaeltchapman"},"change_message_id":"c21d3df0671a88685b4017f2e0a1e4c0e0632cf8","unresolved":false,"context_lines":[{"line_number":12,"context_line":"   designate backend"},{"line_number":13,"context_line":"3. Split AXFR: the result of zone transfer will depend"},{"line_number":14,"context_line":"   on the TSIG key view"},{"line_number":15,"context_line":"4. Pdns4 backend add tsigkey"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ia3d7ce2fb708d326b17d1e52de8267db9831f614"},{"line_number":18,"context_line":"Closes-Bug: 1877681"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"9f560f44_a02a698d","line":15,"updated":"2020-09-25 06:33:27.000000000","message":"I\u0027m not intimately familiar with these topics, is there a reason they are all part of the same commit? Usually features are added in separate commits so they can more easily be backported or reverted if needed.","commit_id":"01e7b83d5191ad24053d16bec635ec93748c13d8"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"5f45e36b46e71ac32ca397ce4ab63e37909b5fc4","unresolved":false,"context_lines":[{"line_number":12,"context_line":"   designate backend"},{"line_number":13,"context_line":"3. Split AXFR: the result of zone transfer will depend"},{"line_number":14,"context_line":"   on the TSIG key view"},{"line_number":15,"context_line":"4. Pdns4 backend add tsigkey"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ia3d7ce2fb708d326b17d1e52de8267db9831f614"},{"line_number":18,"context_line":"Closes-Bug: 1877681"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"9f560f44_97f15b03","line":15,"in_reply_to":"9f560f44_a02a698d","updated":"2020-09-25 16:40:51.000000000","message":"yeah but i added all of them in one patch because they belong to the same feature and they are small easy to review changes","commit_id":"01e7b83d5191ad24053d16bec635ec93748c13d8"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"48b38a538ff8c3806a49b83a311474f37d30c7db","unresolved":true,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ia3d7ce2fb708d326b17d1e52de8267db9831f614"},{"line_number":15,"context_line":"Closes-Bug: 1877681"},{"line_number":16,"context_line":"Depends-On: https://review.opendev.org/#/c/755379/"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":30,"id":"2d961b1d_e94946e8","line":16,"updated":"2020-12-08 00:24:14.000000000","message":"Depends-On should only be used for cross repository dependencies. Instead, this patch should be rebased on top of the 755379 patch.","commit_id":"52f365c92f32582f21535dd8d1e7c7cc946180e4"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7c2fbc1391b68c5e8da71ef3ba2f6fe3ed3cd294","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":40,"id":"cf1fd9fd_67166314","updated":"2021-10-12 03:35:56.000000000","message":"I think we have some design issues with this approach that need to be discussed and addressed.\nLet\u0027s not merge this as is.","commit_id":"1a9c81a957f7dfcc71d05da4f82c834e2498532b"}],"designate/backend/impl_bind9.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"736c37b8486c92e52cc63d13136d397fcab50a8b","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        allow_transfer \u003d \u0027\u0027"},{"line_number":90,"context_line":"        if self._allow_transfer:"},{"line_number":91,"context_line":"            allow_transfer \u003d \u0027allow-transfer { key \"%s\"; };\u0027 \\"},{"line_number":92,"context_line":"                             % self._allow_transfer"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        rndc_op \u003d ["}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_7846797d","line":91,"updated":"2020-09-08 19:48:23.000000000","message":"And here, \\","commit_id":"1a6c41131152f7d7cfd43a5b9166e4dc8b8ce6f4"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"736c37b8486c92e52cc63d13136d397fcab50a8b","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        allow_transfer \u003d \u0027\u0027"},{"line_number":160,"context_line":"        if self._allow_transfer:"},{"line_number":161,"context_line":"            allow_transfer \u003d \u0027allow-transfer { key \"%s\"; };\u0027 \\"},{"line_number":162,"context_line":"                             % self._allow_transfer"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        rndc_op \u003d ["}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_5830d507","line":161,"updated":"2020-09-08 19:48:23.000000000","message":"Another one.","commit_id":"1a6c41131152f7d7cfd43a5b9166e4dc8b8ce6f4"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"3289317ac4fd8aa4b94d271f12db725a182073c6","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        allow_transfer \u003d \u0027\u0027"},{"line_number":160,"context_line":"        if self._allow_transfer:"},{"line_number":161,"context_line":"            allow_transfer \u003d \u0027allow-transfer { key \"%s\"; };\u0027 \\"},{"line_number":162,"context_line":"                             % self._allow_transfer"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"        rndc_op \u003d ["}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_2fbb18e5","line":161,"updated":"2020-09-08 21:20:22.000000000","message":"One more here.","commit_id":"df06f2b58e278c5160cf03734211718407c7a70a"}],"designate/conf/mdns.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"48b38a538ff8c3806a49b83a311474f37d30c7db","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    cfg.DictOpt(\u0027tsigkey_view_map\u0027, default\u003d{},"},{"line_number":50,"context_line":"                help\u003d\u0027Map a Tsigkey to a regex that match the IPs \u0027"},{"line_number":51,"context_line":"                     \u0027that should be included in the AXFR when \u0027"},{"line_number":52,"context_line":"                     \u0027the Tsigkey is sent\u0027),"},{"line_number":53,"context_line":"]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"eac940f3_ec8f6688","line":52,"updated":"2020-12-08 00:24:14.000000000","message":"So this means that users cannot define which records are available is which view. They have to go to an operator to push out configuration changes to every instances to change the regex.\nIt also seems like a rough user experience to properly define the regex strings, especially when you add IPv6 addresses.\nThese could also get very complicated and log with some CIDRs.","commit_id":"52f365c92f32582f21535dd8d1e7c7cc946180e4"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"14677ed6d3727600f9382932282ddff1bb2fc358","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    cfg.DictOpt(\u0027tsigkey_view_map\u0027, default\u003d{},"},{"line_number":50,"context_line":"                help\u003d\u0027Map a Tsigkey to a regex that match the IPs \u0027"},{"line_number":51,"context_line":"                     \u0027that should be included in the AXFR when \u0027"},{"line_number":52,"context_line":"                     \u0027the Tsigkey is sent\u0027),"},{"line_number":53,"context_line":"]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"90c22da0_be7a5827","line":52,"in_reply_to":"d05d0621_4d0d0c52","updated":"2020-12-15 07:32:15.000000000","message":"Maybe a better solution would be to just check if it is within a set of subnets? e.g. all IPs within 10.0.0.0/8 subnets are allowed or something like that. This could be a list of subnets (both IPv4 and IPv6), or maybe even simpler a flag to allow only non-private IPs on the \"external\" DNS server?","commit_id":"52f365c92f32582f21535dd8d1e7c7cc946180e4"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"255b64731e00cc2344b98baa5a53d4e819b854f6","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    cfg.DictOpt(\u0027tsigkey_view_map\u0027, default\u003d{},"},{"line_number":50,"context_line":"                help\u003d\u0027Map a Tsigkey to a regex that match the IPs \u0027"},{"line_number":51,"context_line":"                     \u0027that should be included in the AXFR when \u0027"},{"line_number":52,"context_line":"                     \u0027the Tsigkey is sent\u0027),"},{"line_number":53,"context_line":"]"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"d05d0621_4d0d0c52","line":52,"in_reply_to":"eac940f3_ec8f6688","updated":"2020-12-08 00:55:34.000000000","message":"i dont understand fully, but in this case the regex define the records that should be included when the tsig key is sent, the regex should be easy to write and test there is online sites for that","commit_id":"52f365c92f32582f21535dd8d1e7c7cc946180e4"}],"designate/mdns/handler.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"736c37b8486c92e52cc63d13136d397fcab50a8b","unresolved":false,"context_lines":[{"line_number":268,"context_line":"            rrtype \u003d str(record[1])"},{"line_number":269,"context_line":"            rdata \u003d [str(record[4])]"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"            if rrtype in (\u0027AAAA\u0027, \u0027A\u0027) and not \\"},{"line_number":272,"context_line":"                    self._include_in_tsigkey_view(rdata[0], request):"},{"line_number":273,"context_line":"                continue"},{"line_number":274,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_786dd901","line":271,"updated":"2020-09-08 19:48:23.000000000","message":"Try to avoid \\, better to just wrap the if statement in ().","commit_id":"1a6c41131152f7d7cfd43a5b9166e4dc8b8ce6f4"},{"author":{"_account_id":6994,"name":"Michael Chapman","email":"woppin@gmail.com","username":"michaeltchapman"},"change_message_id":"c21d3df0671a88685b4017f2e0a1e4c0e0632cf8","unresolved":false,"context_lines":[{"line_number":210,"context_line":"            return True"},{"line_number":211,"context_line":"        pattern \u003d tsigkey_view[keyname]"},{"line_number":212,"context_line":"        match \u003d re.match(r\"%s\" % pattern, record)"},{"line_number":213,"context_line":"        ret \u003d False"},{"line_number":214,"context_line":"        if match:"},{"line_number":215,"context_line":"            ret \u003d True"},{"line_number":216,"context_line":"        return ret"}],"source_content_type":"text/x-python","patch_set":26,"id":"9f560f44_80a2c53d","line":213,"updated":"2020-09-25 06:33:27.000000000","message":"maybe return bool(match) would be simpler here.","commit_id":"01e7b83d5191ad24053d16bec635ec93748c13d8"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"48b38a538ff8c3806a49b83a311474f37d30c7db","unresolved":true,"context_lines":[{"line_number":266,"context_line":"            rdata \u003d [str(record[4])]"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"            if (rrtype in (\u0027AAAA\u0027, \u0027A\u0027) and not"},{"line_number":269,"context_line":"                    self._include_in_tsigkey_view(rdata[0], request)):"},{"line_number":270,"context_line":"                continue"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            rrset \u003d dns.rrset.from_text_list("}],"source_content_type":"text/x-python","patch_set":30,"id":"c8daa4e7_89f420d5","line":269,"updated":"2020-12-08 00:24:14.000000000","message":"I\u0027m not a huge fan of running a regex on every AAAA/A record in a zone. This seems hugely inefficient.\nIt seems like a better approach might have been to extend the recordset \"records\" to tag to optionally tag the view name. That way we should use a simple database filter to produce the right list.\nIdeally that would be paired with a view management API for zones that allows the definition of the CIDRs for each named view.","commit_id":"52f365c92f32582f21535dd8d1e7c7cc946180e4"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"255b64731e00cc2344b98baa5a53d4e819b854f6","unresolved":true,"context_lines":[{"line_number":266,"context_line":"            rdata \u003d [str(record[4])]"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"            if (rrtype in (\u0027AAAA\u0027, \u0027A\u0027) and not"},{"line_number":269,"context_line":"                    self._include_in_tsigkey_view(rdata[0], request)):"},{"line_number":270,"context_line":"                continue"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"            rrset \u003d dns.rrset.from_text_list("}],"source_content_type":"text/x-python","patch_set":30,"id":"6d8878a7_eb1b4e62","line":269,"in_reply_to":"c8daa4e7_89f420d5","updated":"2020-12-08 00:55:34.000000000","message":"it was done like this to minimize the changes to records / zone tables\nif we want to tag the records as external/internal (or any view ) that should depend on some criteria \nlike Neutron network (internal/external(this disable designate integrations)) so its complicated if we do it other than this way","commit_id":"52f365c92f32582f21535dd8d1e7c7cc946180e4"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"40fde2ed4513a9eb54890cc124e8b7d9a9f10e1f","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# The regex that exclude all the private ips, when the external view is"},{"line_number":43,"context_line":"# requested in the zone transfer AXFR"},{"line_number":44,"context_line":"PUBLIC_IPS_REGEX \u003d (r\"(?!10\\.\\d+\\.\\d+\\.\\d+|172\\.(1[6-9]|2[0-9]|3[01])\\.\""},{"line_number":45,"context_line":"                    r\"\\d+\\.\\d+|192\\.168\\.\\d+\\.\\d+)\")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"0897c213_a7458c86","line":44,"updated":"2020-12-15 21:19:36.000000000","message":"You could do something like\n\u003e IPv4Address(vm_ip) in IPv4Network(subnet[\u0027cidr\u0027])\nor maybe something like this using the IPy module\n\u003e from IPy import IP\n\u003e if IP(ip_address).iptype() !\u003d \u0027PRIVATE\u0027:\nMight be able to do the same with the inbuilt IP module as well.","commit_id":"5af1229ba74186e54fe3c872651d84aa017dde57"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"17a0c944bf48639cb5642427ae88a65027a21813","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# The regex that exclude all the private ips, when the external view is"},{"line_number":43,"context_line":"# requested in the zone transfer AXFR"},{"line_number":44,"context_line":"PUBLIC_IPS_REGEX \u003d (r\"(?!10\\.\\d+\\.\\d+\\.\\d+|172\\.(1[6-9]|2[0-9]|3[01])\\.\""},{"line_number":45,"context_line":"                    r\"\\d+\\.\\d+|192\\.168\\.\\d+\\.\\d+)\")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"60f9552f_847abe2b","line":44,"in_reply_to":"0897c213_a7458c86","updated":"2020-12-15 21:22:56.000000000","message":"If the inbuilt python library can\u0027t do something neat like IPy we could probably just use IPy. A few other OpenStack projects uses it.\nhttps://codesearch.opendev.org/?q\u003dIPy\u0026i\u003dnope\u0026files\u003d.py\u0026excludeFiles\u003d\u0026repos\u003d","commit_id":"5af1229ba74186e54fe3c872651d84aa017dde57"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"2c18d2f5f53b95689f3f243e3924515c32bd4024","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# The regex that exclude all the private ips, when the external view is"},{"line_number":43,"context_line":"# requested in the zone transfer AXFR"},{"line_number":44,"context_line":"PUBLIC_IPS_REGEX \u003d (r\"(?!10\\.\\d+\\.\\d+\\.\\d+|172\\.(1[6-9]|2[0-9]|3[01])\\.\""},{"line_number":45,"context_line":"                    r\"\\d+\\.\\d+|192\\.168\\.\\d+\\.\\d+)\")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"b80e576d_78ac80cb","line":44,"in_reply_to":"60f9552f_847abe2b","updated":"2020-12-15 21:30:48.000000000","message":"should i use netaddr since i see allot of commits like https://github.com/openstack/nova/commit/7a2712ebf74e5565663a6723a992151f71255eff \nmoving away from IPy","commit_id":"5af1229ba74186e54fe3c872651d84aa017dde57"},{"author":{"_account_id":31039,"name":"hamza","email":"hamalq@verizonmedia.com","username":"hamalq"},"change_message_id":"59cfa7fa931f6f28ea143719455addc8f5d2989a","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# The regex that exclude all the private ips, when the external view is"},{"line_number":43,"context_line":"# requested in the zone transfer AXFR"},{"line_number":44,"context_line":"PUBLIC_IPS_REGEX \u003d (r\"(?!10\\.\\d+\\.\\d+\\.\\d+|172\\.(1[6-9]|2[0-9]|3[01])\\.\""},{"line_number":45,"context_line":"                    r\"\\d+\\.\\d+|192\\.168\\.\\d+\\.\\d+)\")"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":34,"id":"7b747f92_83567de8","line":44,"in_reply_to":"b80e576d_78ac80cb","updated":"2020-12-15 21:33:48.000000000","message":"import ipaddress\n\u003e\u003e\u003e ipaddress.ip_address(\u0027192.168.0.1\u0027).is_private\nTrue","commit_id":"5af1229ba74186e54fe3c872651d84aa017dde57"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"a2c06f6d232dae6631bc0ff3710127540a694d2d","unresolved":true,"context_lines":[{"line_number":208,"context_line":"        keyname \u003d str(request.keyname).rstrip(\u0027.\u0027)"},{"line_number":209,"context_line":"        if keyname not in external_view_tsigkeys:"},{"line_number":210,"context_line":"            return True"},{"line_number":211,"context_line":"        return ipaddress.ip_address(record).is_global"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def _handle_axfr(self, request):"},{"line_number":214,"context_line":"        context \u003d request.environ[\u0027context\u0027]"}],"source_content_type":"text/x-python","patch_set":40,"id":"7b8bf0e6_c7cc7618","line":211,"updated":"2021-10-12 03:52:23.000000000","message":"I think it is wrong to have designate guess at which record it should return in the zone transfer and this will significantly slow down the transfer processing. This also doesn\u0027t work for users that have routable IPs as internal address space (I know of a few companies setup this way).\nThe decision of which records are in the view returned should be defined by the user via the API and then used as a simple DB filter.","commit_id":"1a9c81a957f7dfcc71d05da4f82c834e2498532b"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"ba3c6e660ff458318d378aaac0ee5de0c4030b53","unresolved":true,"context_lines":[{"line_number":208,"context_line":"        keyname \u003d str(request.keyname).rstrip(\u0027.\u0027)"},{"line_number":209,"context_line":"        if keyname not in external_view_tsigkeys:"},{"line_number":210,"context_line":"            return True"},{"line_number":211,"context_line":"        return ipaddress.ip_address(record).is_global"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def _handle_axfr(self, request):"},{"line_number":214,"context_line":"        context \u003d request.environ[\u0027context\u0027]"}],"source_content_type":"text/x-python","patch_set":40,"id":"1cefcca1_3991f797","line":211,"in_reply_to":"7b8bf0e6_c7cc7618","updated":"2021-10-12 06:58:29.000000000","message":"I was ok with this because it is an optional feature, but I like the idea of something properly API driven.","commit_id":"1a9c81a957f7dfcc71d05da4f82c834e2498532b"}],"designate/worker/service.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"736c37b8486c92e52cc63d13136d397fcab50a8b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            notify_target \u003d AlsoNotifyTask()"},{"line_number":154,"context_line":"            notify_target.options \u003d {\u0027host\u0027: also_notify.host,"},{"line_number":155,"context_line":"                                     \u0027port\u0027: also_notify.port}"},{"line_number":156,"context_line":"            notify_target.options[\u0027notification_tsigkey\u0027] \u003d \\"},{"line_number":157,"context_line":"                also_notify.notification_tsigkey"},{"line_number":158,"context_line":"            all_tasks.append(zonetasks.SendNotify(self.executor,"},{"line_number":159,"context_line":"                                                  zone,"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f560f44_f878c9c1","line":156,"updated":"2020-09-08 19:48:23.000000000","message":"Same here, try to avoid \\","commit_id":"1a6c41131152f7d7cfd43a5b9166e4dc8b8ce6f4"}],"releasenotes/notes/support_dns_split_view-0f96778e28a4b088.yaml":[{"author":{"_account_id":6994,"name":"Michael Chapman","email":"woppin@gmail.com","username":"michaeltchapman"},"change_message_id":"c21d3df0671a88685b4017f2e0a1e4c0e0632cf8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    - DNS View: which allow the zone to response with different records depending on the view the zone in"},{"line_number":14,"context_line":"    - Signed Notificatios: send signed notifications to designate backend and to also notify dns servers"},{"line_number":15,"context_line":"    - Pdns4 add tsigkey: add the ability to add TSIG key to pdns using pool.yaml"},{"line_number":16,"context_line":"    - Bind9: allow transfer only from a defind TSIG "},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":26,"id":"9f560f44_2042d968","line":16,"updated":"2020-09-25 06:33:27.000000000","message":"s/defind/defined","commit_id":"01e7b83d5191ad24053d16bec635ec93748c13d8"},{"author":{"_account_id":6994,"name":"Michael Chapman","email":"woppin@gmail.com","username":"michaeltchapman"},"change_message_id":"c21d3df0671a88685b4017f2e0a1e4c0e0632cf8","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    This feature will solve the following issues:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    - [`bug 1877681 \u003chttps://bugs.launchpad.net/designate/+bug/1877681\u003e`_] Doing AXFR based on TSIG for internal, external view"},{"line_number":25,"context_line":"    - [`bug 1875939 \u003chttps://bugs.launchpad.net/designate/+bug/1875939\u003e`_] Send DNS notification based on TSIG is not supported "},{"line_number":26,"context_line":"    - [`bug 1852902 \u003chttps://bugs.launchpad.net/designate/+bug/1852902\u003e`_] There is no ability to use TSIG key from Designate for creation Zone in backends"}],"source_content_type":"text/x-yaml","patch_set":26,"id":"9f560f44_a0554920","line":25,"updated":"2020-09-25 06:33:27.000000000","message":"whitespace","commit_id":"01e7b83d5191ad24053d16bec635ec93748c13d8"}]}
