Exemplo n.º 1
0
 def delete_record(cls, type, domain, name):
     name = name.lower()  # DB constraint c_lowercase_name
     logger.info('Deleting %s record "%s" on domain "%s"', type, name,
                 domain)
     rec = cls.objects.get(name=name,
                           type=type,
                           domain_id=Domain.get_domain_id(domain))
     return rec.delete()
Exemplo n.º 2
0
 def add_record(cls, type, domain, name, content, ttl=TTL, prio=PRIO):
     name = name.lower()  # DB constraint c_lowercase_name
     logger.info('Adding %s record "%s" with content "%s" on domain "%s"',
                 type, name, content, domain)
     return cls.objects.create(domain_id=Domain.get_domain_id(domain),
                               name=name,
                               type=type,
                               content=content,
                               ttl=ttl,
                               prio=prio)
Exemplo n.º 3
0
    def update_record(cls,
                      type,
                      domain,
                      name,
                      content=None,
                      ttl=None,
                      prio=None):
        name = name.lower()  # DB constraint c_lowercase_name
        logger.info('Updating %s record "%s" with content "%s" on domain "%s"',
                    type, name, content, domain)
        rec = cls.objects.get(name=name,
                              type=type,
                              domain_id=Domain.get_domain_id(domain))

        if content is not None:
            rec.content = content
        if ttl is not None:
            rec.ttl = ttl
        if prio is not None:
            rec.prio = prio

        return rec.save()
Exemplo n.º 4
0
    def add_or_update_record(cls,
                             type,
                             domain,
                             name,
                             content,
                             ttl=None,
                             prio=None):
        name = name.lower()  # DB constraint c_lowercase_name
        domain_id = Domain.get_domain_id(domain)

        try:
            rec = cls.objects.get(type=type, name=name, domain_id=domain_id)
        except cls.DoesNotExist:
            logger.info(
                'Adding %s record "%s" with content "%s" on domain "%s"', type,
                name, content, domain)
            rec = cls(domain_id=domain_id,
                      name=name,
                      type=type,
                      content=content)

            if ttl is None:
                ttl = cls.TTL
            if prio is None:
                prio = cls.PRIO
        else:
            logger.info(
                'Updating %s record "%s" with content "%s" on domain "%s"',
                type, name, content, domain)
            rec.content = content

        if ttl is not None:
            rec.ttl = ttl
        if prio is not None:
            rec.prio = prio

        return rec.save()
Exemplo n.º 5
0
 def get_records_A(cls, name, domain):
     return cls.objects.select_related('domain').filter(
         type=cls.A,
         name=name.lower(),
         domain_id=Domain.get_domain_id(domain))