)]}'
{"designate/mdns/handler.py":[{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"1a5f4b72fa068d88a4d37c2d8e1a29c79ee62b0c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                              \"%(host)s:%(port)d\") %"},{"line_number":54,"context_line":"                          {\u0027host\u0027: addr[0], \u0027port\u0027: addr[1]})"},{"line_number":55,"context_line":"            # We might not have the correct request id to send a response back"},{"line_number":56,"context_line":"            # So make up a response."},{"line_number":57,"context_line":"            response \u003d self._handle_query_error("},{"line_number":58,"context_line":"                self._fake_request, dns.rcode.FORMERR)"},{"line_number":59,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_9202d3b2","line":56,"updated":"2014-07-09 19:49:18.000000000","message":"Is this worthwhile?\n\nMost DNS clients will ignore any response without the correct ID, meaning we end up sending a response that get\u0027s ignored. \n\nI\u0027m curious what happens when BIND/PowerDNS etc get sent a packet they can\u0027t decode","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"3ac5632cb3e9bb20250fffbebb23b8a0a76e8395","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                              \"%(host)s:%(port)d\") %"},{"line_number":54,"context_line":"                          {\u0027host\u0027: addr[0], \u0027port\u0027: addr[1]})"},{"line_number":55,"context_line":"            # We might not have the correct request id to send a response back"},{"line_number":56,"context_line":"            # So make up a response."},{"line_number":57,"context_line":"            response \u003d self._handle_query_error("},{"line_number":58,"context_line":"                self._fake_request, dns.rcode.FORMERR)"},{"line_number":59,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_b6d6dd25","line":56,"in_reply_to":"baada198_9202d3b2","updated":"2014-07-10 04:08:41.000000000","message":"Bind does something similar to what I do here - except that they have an empty question section.  That is what I now do\nPowerDNS seems to ignore the packet and not return anything.","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"1a5f4b72fa068d88a4d37c2d8e1a29c79ee62b0c","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    def _handle_query(self, request):"},{"line_number":81,"context_line":"        \"\"\" Handle a DNS QUERY request \"\"\""},{"line_number":82,"context_line":"        # Currently we expect exactly 1 question in the section"},{"line_number":83,"context_line":"        # TODO(vinod) check if the assumption of 1 question is valid for mdns"},{"line_number":84,"context_line":"        if (len(request.question) !\u003d 1 or"},{"line_number":85,"context_line":"                request.question[0].rdclass !\u003d dns.rdataclass.IN):"},{"line_number":86,"context_line":"            return self._handle_query_error(request, dns.rcode.REFUSED)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_f2edcf26","line":83,"updated":"2014-07-09 19:49:18.000000000","message":"Ehh - Good question. DNS allows for multiple questions in a single packet, but, do we need or want to support that?\n\nTSIG etc place the pseudo records into the additional section, so we don\u0027t have to worry about it for that.\n\nI think we\u0027re OK making that assumption, and refusing for now.","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"eae5d0a36ab7e4e3dbbe1c7a422495467e737ebd","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SPF or"},{"line_number":98,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SRV or"},{"line_number":99,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SSHFP or"},{"line_number":100,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.TXT):"},{"line_number":101,"context_line":"            try:"},{"line_number":102,"context_line":"                # TODO(vinod) once validation is separated from the api,"},{"line_number":103,"context_line":"                # validate the parameters"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_d2b9abed","line":100,"updated":"2014-07-09 19:53:00.000000000","message":"At some point - in the future - we\u0027ll want to remove any hardcoded list of types etc.. But another day :)","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"eae5d0a36ab7e4e3dbbe1c7a422495467e737ebd","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    self.admin_context, criterion\u003dcriterion)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"                # Fetch the configuration ttl if the recordset ttl is null"},{"line_number":117,"context_line":"                ttl \u003d recordset.ttl if recordset.ttl else CONF.default_ttl"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"                # construct rdata from all the records"},{"line_number":120,"context_line":"                rdata \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_12ab238a","line":117,"updated":"2014-07-09 19:53:00.000000000","message":"I think we need to fallback to the Domain\u0027s TTL here, rather than the globally configured default.","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"3ac5632cb3e9bb20250fffbebb23b8a0a76e8395","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    self.admin_context, criterion\u003dcriterion)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"                # Fetch the configuration ttl if the recordset ttl is null"},{"line_number":117,"context_line":"                ttl \u003d recordset.ttl if recordset.ttl else CONF.default_ttl"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"                # construct rdata from all the records"},{"line_number":120,"context_line":"                rdata \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_0fe21901","line":117,"in_reply_to":"baada198_12ab238a","updated":"2014-07-10 04:08:41.000000000","message":"I fall back to the domain ttl or conf ttl in that order.","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"eae5d0a36ab7e4e3dbbe1c7a422495467e737ebd","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                    # For MX and SRV records add a priority field."},{"line_number":125,"context_line":"                    # TODO(vinod) add an additional section for MX records"},{"line_number":126,"context_line":"                    if (q_rrset.rdtype \u003d\u003d dns.rdatatype.MX or"},{"line_number":127,"context_line":"                            q_rrset.rdtype \u003d\u003d dns.rdatatype.SRV):"},{"line_number":128,"context_line":"                        rdata.append(str.format("},{"line_number":129,"context_line":"                            \"%d %s\" % (record.priority, str(record.data))))"},{"line_number":130,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_12824300","line":127,"updated":"2014-07-09 19:53:00.000000000","message":"I can\u0027t wait to move priority to the right place so we can avoid all this :P","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"eae5d0a36ab7e4e3dbbe1c7a422495467e737ebd","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    recordset.name, ttl, dns.rdataclass.IN, recordset.type,"},{"line_number":141,"context_line":"                    rdata)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"                response.set_rcode(dns.rcode.NOERROR)"},{"line_number":144,"context_line":"                response.answer \u003d [r_rrset]"},{"line_number":145,"context_line":"            except exceptions.NotFound:"},{"line_number":146,"context_line":"                # if the recordset or records are not found return an error"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_1299636e","line":143,"updated":"2014-07-09 19:53:00.000000000","message":"I *think* this is the default rcode?","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"3ac5632cb3e9bb20250fffbebb23b8a0a76e8395","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                    recordset.name, ttl, dns.rdataclass.IN, recordset.type,"},{"line_number":141,"context_line":"                    rdata)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"                response.set_rcode(dns.rcode.NOERROR)"},{"line_number":144,"context_line":"                response.answer \u003d [r_rrset]"},{"line_number":145,"context_line":"            except exceptions.NotFound:"},{"line_number":146,"context_line":"                # if the recordset or records are not found return an error"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_afddad44","line":143,"in_reply_to":"baada198_1299636e","updated":"2014-07-10 04:08:41.000000000","message":"I wanted to set it explicitly in the code to make it clear the rcode that we are returning.","commit_id":"54289f3790cc9d9bf4537b52186a01b08ac80b37"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"481046a9416256ee9abbf5634664577ec9f8fd5a","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SPF or"},{"line_number":99,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SRV or"},{"line_number":100,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SSHFP or"},{"line_number":101,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.TXT):"},{"line_number":102,"context_line":"            try:"},{"line_number":103,"context_line":"                # TODO(vinod) once validation is separated from the api,"},{"line_number":104,"context_line":"                # validate the parameters"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_913723b0","line":101,"updated":"2014-07-10 05:12:18.000000000","message":"You could consolidate this long if statement with something like: if q_rrset.rdtype in (dns.rdatatype.A, dns.rdatatype.AAAA, ...)","commit_id":"425e3eadf7b64d29e5fc7ffe6f67a79bdfd00ccd"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"847ed5f3339a1bf6d18f410ae7696ca75838115d","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SPF or"},{"line_number":99,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SRV or"},{"line_number":100,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.SSHFP or"},{"line_number":101,"context_line":"                q_rrset.rdtype \u003d\u003d dns.rdatatype.TXT):"},{"line_number":102,"context_line":"            try:"},{"line_number":103,"context_line":"                # TODO(vinod) once validation is separated from the api,"},{"line_number":104,"context_line":"                # validate the parameters"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_03201bf6","line":101,"in_reply_to":"baada198_913723b0","updated":"2014-07-10 14:19:41.000000000","message":"Done","commit_id":"425e3eadf7b64d29e5fc7ffe6f67a79bdfd00ccd"},{"author":{"_account_id":8130,"name":"Betsy Luzader","email":"betsy.luzader@rackspace.com","username":"bluzader"},"change_message_id":"481046a9416256ee9abbf5634664577ec9f8fd5a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                criterion \u003d {\u0027recordset_id\u0027: recordset.id}"},{"line_number":114,"context_line":"                records \u003d self.storage.find_records("},{"line_number":115,"context_line":"                    self.admin_context, criterion\u003dcriterion)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"                # Fetch the domain or the config ttl if the recordset ttl is"},{"line_number":118,"context_line":"                # null"},{"line_number":119,"context_line":"                if recordset.ttl:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_d158bbfc","line":116,"updated":"2014-07-10 05:12:18.000000000","message":"Once the recordset/record changes get merged in, the recordset will already have the records.","commit_id":"425e3eadf7b64d29e5fc7ffe6f67a79bdfd00ccd"},{"author":{"_account_id":8094,"name":"Vinod Mangalpally","email":"mrvinod@outlook.com","username":"vinodmr"},"change_message_id":"847ed5f3339a1bf6d18f410ae7696ca75838115d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                criterion \u003d {\u0027recordset_id\u0027: recordset.id}"},{"line_number":114,"context_line":"                records \u003d self.storage.find_records("},{"line_number":115,"context_line":"                    self.admin_context, criterion\u003dcriterion)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"                # Fetch the domain or the config ttl if the recordset ttl is"},{"line_number":118,"context_line":"                # null"},{"line_number":119,"context_line":"                if recordset.ttl:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_a33e8fd8","line":116,"in_reply_to":"baada198_d158bbfc","updated":"2014-07-10 14:19:41.000000000","message":"I was hoping that since this has fewer dependencies, this would go first and later we can make the necessary changes :-)","commit_id":"425e3eadf7b64d29e5fc7ffe6f67a79bdfd00ccd"},{"author":{"_account_id":741,"name":"Kiall Mac Innes","email":"kiall@macinnes.ie","username":"kiall"},"change_message_id":"24f0b19540810ebc5442258973a9e82a570eeec6","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        return response"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def _handle_query(self, request):"},{"line_number":82,"context_line":"        \"\"\" Handle a DNS QUERY request \"\"\""},{"line_number":83,"context_line":"        # Currently we expect exactly 1 question in the section"},{"line_number":84,"context_line":"        # TSIG places the pseudo records into the additional section."},{"line_number":85,"context_line":"        if (len(request.question) !\u003d 1 or"}],"source_content_type":"text/x-python","patch_set":4,"id":"baada198_de95ea33","line":82,"updated":"2014-07-11 13:40:06.000000000","message":"Annoyingly, these inline docs will need to be updated for H401 - i.e. removing the spaces at the start/end.\n\nI\u0027m not sure how this affects multiline docs though","commit_id":"f9d1a07db4455c7e9aacb86a779e90516aa9834d"}]}
