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()
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)
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()
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()
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))