예제 #1
0
 def handle(self, filename, *args, **options):
     zone = dns.zone.from_file(filename)
     domain = Domain(name=str(zone.origin).strip('.'), type='MASTER')
     domain.save()
     for entry in zone:
         node = zone[entry]
         name = str(entry.choose_relativity(zone.origin, False)).strip('.')
         for rdataset in node:
             qtype = dns.rdatatype.to_text(rdataset.rdtype)
             ttl = rdataset.ttl
             for rdata in rdataset:
                 prio = None
                 if qtype == 'MX':
                     prio = rdata.preference
                     content = str(
                         rdata.exchange.choose_relativity(
                             zone.origin, False))
                 elif qtype == 'TXT':
                     content = b'\n'.join(rdata.strings)
                 elif qtype == 'CNAME':
                     content = rdata.to_text(zone.origin, False).strip('.')
                 else:
                     content = rdata.to_text(zone.origin, False)
                 record = Record(
                     domain=domain,
                     name=name,
                     type=qtype,
                     ttl=ttl,
                     prio=prio,
                     content=content,
                 )
                 record.save()
예제 #2
0
 def setUp(self):
     self.domain = Domain(name='example.com')
     self.domain.save()
     self.user = User.objects.create_user('user', '*****@*****.**',
                                          'password')