def render(self, session, service, protocol, dns_domain, target, dns_environment, **kwargs): name = "_%s._%s" % (service.strip().lower(), protocol.strip().lower()) dbfqdn = Fqdn.get_unique(session, name=name, dns_domain=dns_domain, dns_environment=dns_environment) if target: dbtarget = Fqdn.get_unique(session, target, compel=True) else: dbtarget = None rrs = [] if dbfqdn: for rr in dbfqdn.dns_records: if not isinstance(rr, SrvRecord): # pragma: no cover # This case can't happen right now. Maybe one day if we # add support for DNSSEC... continue if dbtarget and rr.target != dbtarget: continue rrs.append(rr) if not rrs: if dbtarget: msg = ", with target %s" % dbtarget.fqdn else: msg = "" raise NotFoundException("%s for service %s, protocol %s in DNS " "domain %s%s not found." % (SrvRecord._get_class_label(), service, protocol, dns_domain, msg)) map(delete_dns_record, rrs) session.flush() return
def render(self, session, service, protocol, dns_domain, dns_environment, **kwargs): dbdns_env = DnsEnvironment.get_unique_or_default( session, dns_environment) dbdns_domain = DnsDomain.get_unique(session, dns_domain, compel=True) name = "_%s._%s" % (service.strip().lower(), protocol.strip().lower()) q = session.query(SrvRecord) q = q.join((Fqdn, SrvRecord.fqdn_id == Fqdn.id)) q = q.options(contains_eager('fqdn')) q = q.filter_by(dns_domain=dbdns_domain) q = q.filter_by(name=name) q = q.filter_by(dns_environment=dbdns_env) result = q.all() if not result: raise NotFoundException( "%s for service %s, protocol %s in DNS " "domain %s not found." % (SrvRecord._get_class_label(), service, protocol, dns_domain)) return result
def render(self, session, service, protocol, dns_domain, dns_environment, **kwargs): dbdns_env = DnsEnvironment.get_unique_or_default(session, dns_environment) dbdns_domain = DnsDomain.get_unique(session, dns_domain, compel=True) name = "_%s._%s" % (service.strip().lower(), protocol.strip().lower()) q = session.query(SrvRecord) q = q.join((Fqdn, SrvRecord.fqdn_id == Fqdn.id)) q = q.options(contains_eager('fqdn')) q = q.filter_by(dns_domain=dbdns_domain) q = q.filter_by(name=name) q = q.filter_by(dns_environment=dbdns_env) result = q.all() if not result: raise NotFoundException("%s for service %s, protocol %s in DNS " "domain %s not found." % (SrvRecord._get_class_label(), service, protocol, dns_domain)) return result
def render(self, session, service, protocol, dns_domain, target, dns_environment, **kwargs): name = "_%s._%s" % (service.strip().lower(), protocol.strip().lower()) dbfqdn = Fqdn.get_unique(session, name=name, dns_domain=dns_domain, dns_environment=dns_environment) if target: dbtarget = Fqdn.get_unique(session, target, compel=True) else: dbtarget = None rrs = [] if dbfqdn: for rr in dbfqdn.dns_records: if not isinstance(rr, SrvRecord): # pragma: no cover # This case can't happen right now. Maybe one day if we # add support for DNSSEC... continue if dbtarget and rr.target != dbtarget: continue rrs.append(rr) if not rrs: if dbtarget: msg = ", with target %s" % dbtarget.fqdn else: msg = "" raise NotFoundException("%s for service %s, protocol %s in DNS " "domain %s%s not found." % (SrvRecord._get_class_label(), service, protocol, dns_domain, msg)) map(delete_dns_record, rrs) session.flush() return