Example #1
0
    def gen_domain( self, domain, dname, records, rdomain ):
        if domain == 0 or dname == "root":
            print "Root domain, skipping"
            return
        else:
            print "Generating %s" % (dname)
        #if not re.search( "^10" ,self.ip_from_domainname(dname) ):
        #    return

        self.gen_NS( domain, dname, rdomain )
        records_to_remove = []
        search_string = "^"+self.ip_from_domainname(dname).replace('.','\.')+"\."
        for record in records:
            longip, name = record
            ip = long2ip(longip)
            # TODO compile this
            if re.search( search_string, ip ):
                #self.printer.print_PTR( ip, name )
                possible = PTR.objects.filter( ip_str = ip, name=name, ip_type='4' )
                if possible:
                    ptr = possible[0]
                else:
                    ptr = PTR( ip_str = ip, name=name, ip_type='4' )
                    ptr.full_clean()
                    ptr.save()

                records_to_remove.append( record )

        for record in records_to_remove:
            records.remove(record)

        self.gen_ORIGIN( domain, dname, 999 )
Example #2
0
    def gen_domain(self, domain, dname, records):
        if domain == 0 or dname == "root":
            print "Root domain, skipping"
            return
        else:
            print "Generating %s" % (dname)
        #if not re.search( "^10" ,self.ip_from_domainname(dname) ):
        #    return

        self.gen_ORIGIN(domain, dname, 999)
        self.gen_NS(domain, dname)
        self.gen_ORIGIN(domain, 'in-addr.arpa', 999)
        records_to_remove = []
        search_string = "^" + self.ip_from_domainname(dname).replace(
            '.', '\.') + "\."
        for record in records:
            longip, name = record
            ip = long2ip(longip)
            # TODO compile this
            if re.search(search_string, ip):
                self.printer.print_PTR(ip, name)
                records_to_remove.append(record)

        for record in records_to_remove:
            records.remove(record)

        self.gen_ORIGIN(domain, dname, 999)
    def gen_domain( self, domain, dname, records ):
        if domain == 0 or dname == "root":
            print "Root domain, skipping"
            return
        else:
            print "Generating %s" % (dname)
        #if not re.search( "^10" ,self.ip_from_domainname(dname) ):
        #    return

        self.gen_ORIGIN( domain, dname, 999 )
        self.gen_NS( domain, dname )
        self.gen_ORIGIN( domain, 'in-addr.arpa', 999 )
        records_to_remove = []
        search_string = "^"+self.ip_from_domainname(dname).replace('.','\.')+"\."
        for record in records:
            longip, name = record
            ip = long2ip(longip)
            # TODO compile this
            if re.search( search_string, ip ):
                self.printer.print_PTR( ip, name )
                records_to_remove.append( record )

        for record in records_to_remove:
            records.remove(record)

        self.gen_ORIGIN( domain, dname, 999 )
Example #4
0
 def gen_host( self, domain, dname ):
     self.cur.execute("SELECT * FROM `host` WHERE `domain`='%s';" % (domain))
     records = self.cur.fetchall()
     for record in records:
         if record[1] == 0:
             continue
         self.printer.print_A( record[3] , long2ip(record[1]) )
Example #5
0
 def gen_dyn_records( self ):
     self.cur.execute("SELECT start, end FROM ranges WHERE type='dynamic' ORDER by start")
     ip_ranges = self.cur.fetchall()
     PTR_records = []
     for ip_range in ip_ranges:
         for ip in range(ip_range[0],ip_range[1]+1):
             PTR_records.append( (ip,long2ip(ip).replace('.','-')) )
     return PTR_records
Example #6
0
 def gen_host(self, domain, dname):
     self.cur.execute("SELECT * FROM `host` WHERE `domain`='%s';" %
                      (domain))
     records = self.cur.fetchall()
     for record in records:
         if record[1] == 0:
             continue
         self.printer.print_A(record[3], long2ip(record[1]))
Example #7
0
File: zone.py Project: osunws/cyder
 def gen_dyn_ranges( self, domain, dname ):
     ##self.printer.print_raw( "; Gen dyn_ranges for %s\n" % (dname) )
     self.cur.execute(  "SELECT start, end FROM ranges, zone_range\
                         WHERE ranges.id = zone_range.range AND zone_range.default_domain = %s\
                         AND ranges.type='dynamic' ORDER by start" % (domain) )
     ip_ranges = self.cur.fetchall()
     for ip_range in ip_ranges:
         for ip in range(ip_range[0],ip_range[1]+1):
             ip = long2ip(ip)
Example #8
0
 def gen_dyn_records(self):
     self.cur.execute(
         "SELECT start, end FROM ranges WHERE type='dynamic' ORDER by start"
     )
     ip_ranges = self.cur.fetchall()
     PTR_records = []
     for ip_range in ip_ranges:
         for ip in range(ip_range[0], ip_range[1] + 1):
             PTR_records.append((ip, long2ip(ip).replace('.', '-')))
     return PTR_records
Example #9
0
 def reverse_zones_build(self, build_dir):
     # Reverse zones
     Reverse_Zone.BUILD_DIR = build_dir
     rev_zone = Reverse_Zone(self.cur, self.fd, 0, '')
     records = rev_zone.gen_all_records()
     rev_zone.walk_tree(0, 'root', records)
     if self.run_records_test:
         print "===========THESE WERE NOT INCLUDED IN THE REVERSE BUILD==========="
         # Test for records that were not added to the build.
         for record in records:
             print "%s %s" % (long2ip(record[0]), record[1])
Example #10
0
 def reverse_zones_build( self, build_dir ):
     # Reverse zones
     Reverse_Zone.BUILD_DIR = build_dir
     rev_zone = Reverse_Zone( self.cur, self.fd, 0, '' )
     records = rev_zone.gen_all_records()
     rev_zone.walk_tree( 0, 'root', records )
     if self.run_records_test:
         print "===========THESE WERE NOT INCLUDED IN THE REVERSE BUILD==========="
         # Test for records that were not added to the build.
         for record in records:
             print "%s %s" % (long2ip(record[0]), record[1])
Example #11
0
File: zone.py Project: osunws/cyder
 def gen_host( self, domain, dname, cdomain ):
     self.cur.execute("SELECT * FROM `host` WHERE `domain`='%s';" % (domain))
     records = self.cur.fetchall()
     for record in records:
         if record[1] == 0:
             continue
         #self.printer.print_A( record[3] , long2ip(record[1]) )
         name= record[3]
         ip_str = long2ip(record[1])
         arec, _ = AddressRecord.objects.get_or_create( label=name,
                 domain= cdomain, ip_str=ip_str, ip_type='4' )
Example #12
0
 def gen_dyn_ranges(self, domain, dname):
     self.printer.print_raw("; Gen dyn_ranges for %s\n" % (dname))
     self.cur.execute("SELECT start, end FROM ranges, zone_range\
                         WHERE ranges.id = zone_range.range AND zone_range.default_domain = %s\
                         AND ranges.type='dynamic' ORDER by start" %
                      (domain))
     ip_ranges = self.cur.fetchall()
     for ip_range in ip_ranges:
         for ip in range(ip_range[0], ip_range[1] + 1):
             ip = long2ip(ip)
             self.printer.print_A(ip.replace('.', '-'), ip)
Example #13
0
 def gen_forward_pointers(self, domain, dname):
     sql = "SELECT * FROM `pointer` WHERE hostname LIKE '%" + dname + "' AND `type`='forward' ORDER BY hostname"
     self.cur.execute(sql)
     records = self.cur.fetchall()
     # We have abosulte names in the pointer table so print a root origin.
     self.gen_ORIGIN(domain, '', 999)
     for record in records:
         if record[1] == 0:
             continue
         self.printer.print_A(record[2], long2ip(record[1]))
     # Revert to dname origin.
     self.gen_ORIGIN(domain, dname, 999)
Example #14
0
 def gen_forward_pointers( self, domain, dname ):
     sql = "SELECT * FROM `pointer` WHERE hostname LIKE '%"+dname+"' AND `type`='forward' ORDER BY hostname"
     self.cur.execute(sql)
     records = self.cur.fetchall()
     # We have abosulte names in the pointer table so print a root origin.
     self.gen_ORIGIN( domain, '', 999 )
     for record in records:
         if record[1] == 0:
             continue
         self.printer.print_A( record[2] , long2ip(record[1]) )
     # Revert to dname origin.
     self.gen_ORIGIN( domain, dname , 999 )
Example #15
0
File: zone.py Project: osunws/cyder
                            cdomain.save()

                            for ip_str in ip_strs:
                                AddressRecord(label="", domain=cdomain,
                                        ip_str=ip_str, ip_type='4').save()
                            for server, prio, ttl in mx_data:
                                mx = MX(label="", domain=cdomain, server=server, priority=prio, ttl=ttl)
                                mx.save()
                                print "Adding: {0} MX {1}".format(mx.fqdn, mx.server)


                else:
                    cdomain = cdomain[0]

            ip_str = long2ip(record[1])
            try:
                AddressRecord.objects.get_or_create( label=name,
                        domain= cdomain, ip_str=ip_str, ip_type='4' )
            except ValidationError, e:
                print "ERROR: %s name: %s domain: %s ip: %s" % (str(e), name, cdomain.name, ip_str )

        # Revert to dname origin.
        self.gen_ORIGIN( domain, dname , 999 )

    """
    Generate all A records from the host table.
    """
    def gen_host( self, domain, dname, cdomain ):
        self.cur.execute("SELECT * FROM `host` WHERE `domain`='%s';" % (domain))
        records = self.cur.fetchall()