def on_delete(self, req, resp, tenant_id, domain, entry): client = req.env['sl_client'] mgr = DNSManager(client) domain = unquote_plus(domain) zone_id = mgr._get_zone_id_from_name(domain)[0] record = mgr.get_records(zone_id, host=entry)[0] mgr.delete_record(record['id']) resp.status = 204
def on_get(self, req, resp, tenant_id): client = req.env['sl_client'] mgr = DNSManager(client) results = [] for zone in mgr.list_zones(): results.append({ 'project': None, 'scope': 'public', 'domain': zone['name'], 'availability_zone': None, }) resp.body = {'domain_entries': results}
def on_get(self, req, resp, tenant_id, domain, entry=None): client = req.env['sl_client'] mgr = DNSManager(client) domain = unquote_plus(domain) zone_id = mgr._get_zone_id_from_name(domain)[0] if entry: record = mgr.get_records(zone_id, host=entry)[0] result = get_dns_entry_dict(domain, record['host'], record['data'], record['type'], entry_id=record['id']) resp.body = {'dns_entry': result}
def on_put(self, req, resp, tenant_id, domain, entry): client = req.env['sl_client'] mgr = DNSManager(client) body = json.loads(req.stream.read().decode()) ip = lookup(body, 'dns_entry', 'ip') record_type = lookup(body, 'dns_entry', 'type') if not record_type: record_type = 'A' domain = unquote_plus(domain) zone_id = mgr._get_zone_id_from_name(domain)[0] mgr.create_record(zone_id=zone_id, record=entry, record_type=record_type, data=ip) new_record = mgr.get_records(zone_id, host=entry)[0] result = get_dns_entry_dict(domain, entry, ip, record_type, entry_id=new_record['id']) resp.body = {'dns_entry': result}
def get_dns_manager(): return DNSManager(get_client())