)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"98a4e11d0a1ff80e0c2fbf08e008b6714e433dbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"757fa620_b4f96faf","updated":"2021-10-20 02:56:56.000000000","message":"I think I misunderstood the issue originally. Does this patch make sense?","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"207d3b5806773595cb9514b2e029910322280b97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8441f3b3_85eb575c","updated":"2021-11-08 09:52:50.000000000","message":"My main concern is that unless I\u0027m mistaken we don\u0027t have any integration testing for the agent code any more, so we might well break it unknowingly.","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"c7c7e268eb6d333e10d0ab6b1f3bd9a7f5fec083","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ef7e2b5c_6e230400","in_reply_to":"8441f3b3_85eb575c","updated":"2021-11-09 02:39:21.000000000","message":"That is a valid concern. We aren\u0027t really changing anything at this time, but of course it could change in future refactors. I think that speaks more to the lack of agent testing, rather than this code change thou.","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"7405cdd1ddd3432689776f3eeaf6bf7ee0fb57ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9dcd9101_5e3f9e01","in_reply_to":"ef7e2b5c_6e230400","updated":"2021-11-20 07:45:44.000000000","message":"Ack","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"7405cdd1ddd3432689776f3eeaf6bf7ee0fb57ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cb589f1c_be93fc30","in_reply_to":"ef7e2b5c_6e230400","updated":"2021-11-20 07:45:44.000000000","message":"Ack","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"a673e1a51a68557e6be0c307998f47e8a4915baf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ad4874f4_0ace3923","updated":"2021-11-09 19:12:25.000000000","message":"recheck","commit_id":"4809ca1113f79769d9d9e6ff4064e9a14f57af96"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"45b552f3b37d274649cd4fcba39d6db8d09f529a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f05b2599_bcdabb29","updated":"2021-11-09 16:54:38.000000000","message":"recheck","commit_id":"4809ca1113f79769d9d9e6ff4064e9a14f57af96"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"84a76295cc4071d5006b03a489e5ac85923fabbd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"00555dc5_896af9d1","updated":"2021-11-11 05:03:59.000000000","message":"recheck","commit_id":"bfa7448d26032b8857fbeebf10d9ec103498abd5"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9e4c7899f960726350efdd15522783302c2c16fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d9afa49f_4b884ffe","updated":"2021-11-11 23:53:15.000000000","message":"LGTM\nA release note would be nice.","commit_id":"654bd1d59c657cd29fd0a816112af7fa1ad8a6f7"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"504279e7785c03430fa420b8b8a7516debae04f9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"737ee675_f10b9cc5","updated":"2021-11-11 19:40:25.000000000","message":"recheck","commit_id":"654bd1d59c657cd29fd0a816112af7fa1ad8a6f7"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"fd3423d019f68d18aec8c0cb5542c3c1249c57b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d192b0dc_40379479","updated":"2021-11-11 18:08:59.000000000","message":"recheck","commit_id":"654bd1d59c657cd29fd0a816112af7fa1ad8a6f7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"00502d36d11cc94a7d7a193e515883a57f7fde10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"089ef90b_efca4a26","updated":"2021-11-23 00:50:24.000000000","message":"Not sure we need the loop and I think we have a problem with hosts that don\u0027t have IPv6 addresses.","commit_id":"ca99b5f0f568c431ef25c2a34bfff2328d7b72dc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"638bf7da7e57594c824b65e702b6cc2d9ba8016c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"454bb6b7_4f368814","updated":"2021-11-24 19:56:46.000000000","message":"LGTM\nThanks!","commit_id":"31d006205cd3fa54bd41013fe0c1047b0bbc3e42"}],"designate/dnsutils.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"207d3b5806773595cb9514b2e029910322280b97","unresolved":true,"context_lines":[{"line_number":21,"context_line":"import dns"},{"line_number":22,"context_line":"import dns.exception"},{"line_number":23,"context_line":"import dns.zone"},{"line_number":24,"context_line":"import dns.query"},{"line_number":25,"context_line":"import eventlet"},{"line_number":26,"context_line":"from dns import rdatatype"},{"line_number":27,"context_line":"from oslo_serialization import base64"}],"source_content_type":"text/x-python","patch_set":4,"id":"6fcb9622_e9e88f20","line":24,"updated":"2021-11-08 09:52:50.000000000","message":"out of order (q\u003cz)\n\nAt some point I\u0027d really really like to enable H306, maybe we can try to stick to it as much as possibly when touching code.","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"31bdd805ff8163bd7909ed250b8c04fe32381110","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import dns"},{"line_number":22,"context_line":"import dns.exception"},{"line_number":23,"context_line":"import dns.zone"},{"line_number":24,"context_line":"import dns.query"},{"line_number":25,"context_line":"import eventlet"},{"line_number":26,"context_line":"from dns import rdatatype"},{"line_number":27,"context_line":"from oslo_serialization import base64"}],"source_content_type":"text/x-python","patch_set":4,"id":"0a37caef_6982f06c","line":24,"in_reply_to":"6fcb9622_e9e88f20","updated":"2021-11-09 02:26:11.000000000","message":"Ack","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"207d3b5806773595cb9514b2e029910322280b97","unresolved":true,"context_lines":[{"line_number":423,"context_line":"    \"\"\""},{"line_number":424,"context_line":"    ip_address \u003d get_ip_address(host)"},{"line_number":425,"context_line":"    # This can raise some exceptions, but we\u0027ll catch them elsewhere"},{"line_number":426,"context_line":"    if not CONF[\u0027service:mdns\u0027].all_tcp:"},{"line_number":427,"context_line":"        return dns.query.udp("},{"line_number":428,"context_line":"            dns_message, ip_address, port\u003dport, timeout\u003dtimeout)"},{"line_number":429,"context_line":"    return dns.query.tcp("}],"source_content_type":"text/x-python","patch_set":4,"id":"94654075_bb515032","line":426,"updated":"2021-11-08 09:52:50.000000000","message":"It feels wrong to have the mdns config decide this for a general helper function. I think the effect of the variable should be local to mdns code only.\n\nAlthough there seems to be some pre-existing use in the agent tests already. Might be a sign that this variable might need to be moved actually?","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"31bdd805ff8163bd7909ed250b8c04fe32381110","unresolved":true,"context_lines":[{"line_number":423,"context_line":"    \"\"\""},{"line_number":424,"context_line":"    ip_address \u003d get_ip_address(host)"},{"line_number":425,"context_line":"    # This can raise some exceptions, but we\u0027ll catch them elsewhere"},{"line_number":426,"context_line":"    if not CONF[\u0027service:mdns\u0027].all_tcp:"},{"line_number":427,"context_line":"        return dns.query.udp("},{"line_number":428,"context_line":"            dns_message, ip_address, port\u003dport, timeout\u003dtimeout)"},{"line_number":429,"context_line":"    return dns.query.tcp("}],"source_content_type":"text/x-python","patch_set":4,"id":"bab0e25c_b85e16fc","line":426,"in_reply_to":"94654075_bb515032","updated":"2021-11-09 02:26:11.000000000","message":"Yea - I agree, but I would prefer to fix that in a separate patch.","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"7405cdd1ddd3432689776f3eeaf6bf7ee0fb57ff","unresolved":false,"context_lines":[{"line_number":423,"context_line":"    \"\"\""},{"line_number":424,"context_line":"    ip_address \u003d get_ip_address(host)"},{"line_number":425,"context_line":"    # This can raise some exceptions, but we\u0027ll catch them elsewhere"},{"line_number":426,"context_line":"    if not CONF[\u0027service:mdns\u0027].all_tcp:"},{"line_number":427,"context_line":"        return dns.query.udp("},{"line_number":428,"context_line":"            dns_message, ip_address, port\u003dport, timeout\u003dtimeout)"},{"line_number":429,"context_line":"    return dns.query.tcp("}],"source_content_type":"text/x-python","patch_set":4,"id":"a50e28f5_4c222aab","line":426,"in_reply_to":"bab0e25c_b85e16fc","updated":"2021-11-20 07:45:44.000000000","message":"Ack","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"7405cdd1ddd3432689776f3eeaf6bf7ee0fb57ff","unresolved":false,"context_lines":[{"line_number":423,"context_line":"    \"\"\""},{"line_number":424,"context_line":"    ip_address \u003d get_ip_address(host)"},{"line_number":425,"context_line":"    # This can raise some exceptions, but we\u0027ll catch them elsewhere"},{"line_number":426,"context_line":"    if not CONF[\u0027service:mdns\u0027].all_tcp:"},{"line_number":427,"context_line":"        return dns.query.udp("},{"line_number":428,"context_line":"            dns_message, ip_address, port\u003dport, timeout\u003dtimeout)"},{"line_number":429,"context_line":"    return dns.query.tcp("}],"source_content_type":"text/x-python","patch_set":4,"id":"c8dd0cdb_39dc51cd","line":426,"in_reply_to":"bab0e25c_b85e16fc","updated":"2021-11-20 07:45:44.000000000","message":"Ack","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"00502d36d11cc94a7d7a193e515883a57f7fde10","unresolved":true,"context_lines":[{"line_number":451,"context_line":"    :return: ip address"},{"line_number":452,"context_line":"    \"\"\""},{"line_number":453,"context_line":"    address \u003d None"},{"line_number":454,"context_line":"    for res in socket.getaddrinfo(ip_address_or_hostname, 0):"},{"line_number":455,"context_line":"        address \u003d res[4][0]"},{"line_number":456,"context_line":"        break"},{"line_number":457,"context_line":"    return address"}],"source_content_type":"text/x-python","patch_set":11,"id":"4f205127_fc6299fa","line":454,"updated":"2021-11-23 00:50:24.000000000","message":"Wouldn\u0027t this be simpler?\n\nreturn socket.getaddrinfo(ip_address_or_hostname, 0)[0][4][0]\n\nI do wonder if this will be a problem for hosts without ipv6 support. The first address returned may be ipv6.\nIf I resolve www.openstack.org, the first address is IPv6.\nI am wondering if we shouldn\u0027t return a list with an address from each address family so that we can retry the xfr using each address type.","commit_id":"ca99b5f0f568c431ef25c2a34bfff2328d7b72dc"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"62db2b5b5dfc8678946d944eb6adaa9b7c878dab","unresolved":true,"context_lines":[{"line_number":451,"context_line":"    :return: ip address"},{"line_number":452,"context_line":"    \"\"\""},{"line_number":453,"context_line":"    address \u003d None"},{"line_number":454,"context_line":"    for res in socket.getaddrinfo(ip_address_or_hostname, 0):"},{"line_number":455,"context_line":"        address \u003d res[4][0]"},{"line_number":456,"context_line":"        break"},{"line_number":457,"context_line":"    return address"}],"source_content_type":"text/x-python","patch_set":11,"id":"f344ae9a_617c55e5","line":454,"in_reply_to":"4f205127_fc6299fa","updated":"2021-11-24 03:58:21.000000000","message":"Yea - that does seem reasonable, but not sure what the implication would be. I changed it to first try to get an IPv4 IP and if that does not exist goes for an IPv6 IP for now.","commit_id":"ca99b5f0f568c431ef25c2a34bfff2328d7b72dc"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ee9d4875157e037352bd775babae86f8516371af","unresolved":true,"context_lines":[{"line_number":355,"context_line":"            ip_address \u003d get_ip_address(srv[\u0027host\u0027])"},{"line_number":356,"context_line":"            LOG.info(\"Doing AXFR for %(name)s from %(host)s\", log_info)"},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"            xfr \u003d dns.query.xfr(ip_address, zone_name, relativize\u003dFalse,"},{"line_number":359,"context_line":"                                timeout\u003d1, port\u003dsrv[\u0027port\u0027], source\u003dsource)"},{"line_number":360,"context_line":"            raw_zone \u003d dns.zone.from_xfr(xfr, relativize\u003dFalse)"},{"line_number":361,"context_line":"            break"}],"source_content_type":"text/x-python","patch_set":13,"id":"cb215f92_51a5191b","line":358,"updated":"2021-11-24 18:58:08.000000000","message":"This is the call that probably needs to try IPv4 in addition to IPv6.","commit_id":"0614fdd13fca31432c6d90f918191f4304227007"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ee9d4875157e037352bd775babae86f8516371af","unresolved":true,"context_lines":[{"line_number":454,"context_line":"        result \u003d socket.getaddrinfo(ip_address_or_hostname, 0, socket.AF_INET)"},{"line_number":455,"context_line":"    except socket.gaierror:"},{"line_number":456,"context_line":"        result \u003d socket.getaddrinfo(ip_address_or_hostname, 0, socket.AF_INET6)"},{"line_number":457,"context_line":"    return result[0][4][0]"}],"source_content_type":"text/x-python","patch_set":13,"id":"e011240b_ea916bd9","line":457,"updated":"2021-11-24 18:58:08.000000000","message":"This wasn\u0027t quite what I was thinking.\nThe getaddrinfo will always return the correct list of addresses, v4 and v6.\n\nMy concern is with the the xfr call above. It will only try one address.","commit_id":"0614fdd13fca31432c6d90f918191f4304227007"}],"designate/mdns/notify.py":[{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"da04a3d9251f75b5daa4c2c087adc215fec0eea0","unresolved":true,"context_lines":[{"line_number":299,"context_line":"        send \u003d dns_query.tcp if CONF[\u0027service:mdns\u0027].all_tcp else dns_query.udp"},{"line_number":300,"context_line":"        return send("},{"line_number":301,"context_line":"            dns_message,"},{"line_number":302,"context_line":"            socket.gethostbyname(host),"},{"line_number":303,"context_line":"            port\u003dport,"},{"line_number":304,"context_line":"            timeout\u003dtimeout"},{"line_number":305,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"9b17acb5_ae890dc2","side":"PARENT","line":302,"updated":"2021-10-20 21:09:22.000000000","message":"This wouldn\u0027t work with IPv6 I believe?","commit_id":"771197c2f31209fe135888aef6f2828af4889653"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"207d3b5806773595cb9514b2e029910322280b97","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        send \u003d dns_query.tcp if CONF[\u0027service:mdns\u0027].all_tcp else dns_query.udp"},{"line_number":300,"context_line":"        return send("},{"line_number":301,"context_line":"            dns_message,"},{"line_number":302,"context_line":"            socket.gethostbyname(host),"},{"line_number":303,"context_line":"            port\u003dport,"},{"line_number":304,"context_line":"            timeout\u003dtimeout"},{"line_number":305,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"61eca093_79f4cb88","side":"PARENT","line":302,"in_reply_to":"9b17acb5_ae890dc2","updated":"2021-11-08 09:52:50.000000000","message":"gethostbyname() does not support IPv6 name resolution, and getaddrinfo() should be used instead for IPv4/v6 dual stack support.\n\nhttps://docs.python.org/3/library/socket.html#socket.gethostbyname","commit_id":"771197c2f31209fe135888aef6f2828af4889653"}],"designate/tests/unit/backend/test_agent.py":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"207d3b5806773595cb9514b2e029910322280b97","unresolved":true,"context_lines":[{"line_number":16,"context_line":"import dns"},{"line_number":17,"context_line":"import dns.rdataclass"},{"line_number":18,"context_line":"import dns.rdatatype"},{"line_number":19,"context_line":"import dns.query"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import designate.backend.agent as agent"},{"line_number":22,"context_line":"import designate.backend.private_codes as pcodes"}],"source_content_type":"text/x-python","patch_set":4,"id":"b3237859_8edde2be","line":19,"updated":"2021-11-08 09:52:50.000000000","message":"Ordering: q\u003cr","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"31bdd805ff8163bd7909ed250b8c04fe32381110","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import dns"},{"line_number":17,"context_line":"import dns.rdataclass"},{"line_number":18,"context_line":"import dns.rdatatype"},{"line_number":19,"context_line":"import dns.query"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import designate.backend.agent as agent"},{"line_number":22,"context_line":"import designate.backend.private_codes as pcodes"}],"source_content_type":"text/x-python","patch_set":4,"id":"aa62c398_1973d3cc","line":19,"in_reply_to":"b3237859_8edde2be","updated":"2021-11-09 02:26:11.000000000","message":"Done","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"207d3b5806773595cb9514b2e029910322280b97","unresolved":true,"context_lines":[{"line_number":183,"context_line":"    @mock.patch.object(dns.query, \u0027udp\u0027)"},{"line_number":184,"context_line":"    def test_send_dns_message(self, mock_udp, mock_tcp, mock_get_ip_address):"},{"line_number":185,"context_line":"        mock_udp.return_value \u003d \u0027mock udp resp\u0027"},{"line_number":186,"context_line":"        mock_get_ip_address.return_value \u003d \u0027host\u0027"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        out \u003d self.backend._send_dns_message(\u0027msg\u0027, \u0027host\u0027, 123, 1)"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"46b63a6d_9decec3f","line":186,"updated":"2021-11-08 09:52:50.000000000","message":"Maybe the return value should be an IP address to make visible that that is what we would expect there?","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"31bdd805ff8163bd7909ed250b8c04fe32381110","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    @mock.patch.object(dns.query, \u0027udp\u0027)"},{"line_number":184,"context_line":"    def test_send_dns_message(self, mock_udp, mock_tcp, mock_get_ip_address):"},{"line_number":185,"context_line":"        mock_udp.return_value \u003d \u0027mock udp resp\u0027"},{"line_number":186,"context_line":"        mock_get_ip_address.return_value \u003d \u0027host\u0027"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        out \u003d self.backend._send_dns_message(\u0027msg\u0027, \u0027host\u0027, 123, 1)"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d7b9d2e6_cf72bb1a","line":186,"in_reply_to":"46b63a6d_9decec3f","updated":"2021-11-09 02:26:11.000000000","message":"Done","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"207d3b5806773595cb9514b2e029910322280b97","unresolved":true,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    @mock.patch.object(dnsutils, \u0027get_ip_address\u0027)"},{"line_number":224,"context_line":"    @mock.patch.object(dns.query, \u0027tcp\u0027)"},{"line_number":225,"context_line":"    @mock.patch.object(dns.query, \u0027udp\u0027)"},{"line_number":226,"context_line":"    def test_send_dns_message_tcp(self, mock_udp, mock_tcp,"},{"line_number":227,"context_line":"                                  mock_get_ip_address):"},{"line_number":228,"context_line":"        self.CONF.set_override(\u0027all_tcp\u0027, True, \u0027service:mdns\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"e356360a_61841de2","line":225,"updated":"2021-11-08 09:52:50.000000000","message":"IMO these tests mix two layers of testing. Better have the tests in this file mock dnsutils.send_dns_message - just like you do in designate/tests/unit/mdns/test_notify.py - and have the details tests in designate/tests/unit/test_dnsutils.py. In particular on the agent side there no longer should be the need to test udp vs. tcp behavior.","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"31bdd805ff8163bd7909ed250b8c04fe32381110","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"    @mock.patch.object(dnsutils, \u0027get_ip_address\u0027)"},{"line_number":224,"context_line":"    @mock.patch.object(dns.query, \u0027tcp\u0027)"},{"line_number":225,"context_line":"    @mock.patch.object(dns.query, \u0027udp\u0027)"},{"line_number":226,"context_line":"    def test_send_dns_message_tcp(self, mock_udp, mock_tcp,"},{"line_number":227,"context_line":"                                  mock_get_ip_address):"},{"line_number":228,"context_line":"        self.CONF.set_override(\u0027all_tcp\u0027, True, \u0027service:mdns\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"6edb5cbf_1ade0e42","line":225,"in_reply_to":"e356360a_61841de2","updated":"2021-11-09 02:26:11.000000000","message":"The tests are kinda useless. Removed them.","commit_id":"7d26d53751c17321fcaab94d00cbdfe9f76bc198"}]}
