def patch_one(self, zone_transfer_request_id): """Update ZoneTransferRequest""" request = pecan.request context = request.environ['context'] body = request.body_dict response = pecan.response if request.content_type == 'application/json-patch+json': raise NotImplemented('json-patch not implemented') # Fetch the existing zone_transfer_request zone_transfer_request = self.central_api.get_zone_transfer_request( context, zone_transfer_request_id) zone_transfer_request = DesignateAdapter.parse( 'API_v2', body, zone_transfer_request) zone_transfer_request.validate() zone_transfer_request = self.central_api.update_zone_transfer_request( context, zone_transfer_request) response.status_int = 200 return DesignateAdapter.render( 'API_v2', zone_transfer_request, request=request, context=context)
def post_all(self, zone_id): """Create RecordSet""" request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict recordset = DesignateAdapter.parse('API_v2', body, RecordSet()) recordset.validate() # SOA recordsets cannot be created manually if recordset.type == 'SOA': raise exceptions.BadRequest( "Creating a SOA recordset is not allowed") # Create the recordset recordset = self.central_api.create_recordset( context, zone_id, recordset) # Prepare the response headers if recordset['status'] == 'PENDING': response.status_int = 202 else: response.status_int = 201 recordset = DesignateAdapter.render( 'API_v2', recordset, request=request) response.headers['Location'] = recordset['links']['self'] # Prepare and return the response body return recordset
def post_all(self, zone_id): """Create ZoneTransferRequest""" request = pecan.request response = pecan.response context = request.environ['context'] try: body = request.body_dict except Exception as e: if six.text_type(e) != 'TODO: Unsupported Content Type': raise else: # Got a blank body body = dict() body['zone_id'] = zone_id zone_transfer_request = DesignateAdapter.parse( 'API_v2', body, ZoneTransferRequest()) zone_transfer_request.validate() # Create the zone_transfer_request zone_transfer_request = self.central_api.create_zone_transfer_request( context, zone_transfer_request) response.status_int = 201 zone_transfer_request = DesignateAdapter.render( 'API_v2', zone_transfer_request, request=request, context=context) response.headers['Location'] = zone_transfer_request['links']['self'] # Prepare and return the response body return zone_transfer_request
def post_all(self): """Create a Pool""" LOG.warning( _LW("Use of this API Method is DEPRECATED. This will have " "unforeseen side affects when used with the " "designate-manage pool commands")) request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict pool = DesignateAdapter.parse('API_v2', body, Pool()) pool.validate() # Create the pool pool = self.central_api.create_pool(context, pool) LOG.info(_LI("Created %(pool)s"), {'pool': pool}) pool = DesignateAdapter.render('API_v2', pool, request=request) response.status_int = 201 response.headers['Location'] = pool['links']['self'] # Prepare and return the response body return pool
def patch_one(self, fip_key): """ Set or unset a PTR """ request = pecan.request response = pecan.response context = request.environ['context'] try: body = request.body_dict except Exception as e: if e.message != 'TODO: Unsupported Content Type': raise else: # Got a blank body body = dict() region, id_ = fip_key_to_data(fip_key) fip = DesignateAdapter.parse('API_v2', body, objects.FloatingIP()) fip.validate() fip = self.central_api.update_floatingip(context, region, id_, fip) response.status_int = 202 if fip: return DesignateAdapter.render('API_v2', fip, request=request)
def post_all(self): """Create a Pool""" LOG.warning(_LW("Use of this API Method is DEPRICATED. This will have " "unforseen side affects when used with the " "designate-manage pool commands")) request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict pool = DesignateAdapter.parse('API_v2', body, Pool()) pool.validate() # Create the pool pool = self.central_api.create_pool(context, pool) LOG.info(_LI("Created %(pool)s"), {'pool': pool}) pool = DesignateAdapter.render('API_v2', pool, request=request) response.status_int = 201 response.headers['Location'] = pool['links']['self'] # Prepare and return the response body return pool
def post_all(self): """Create ZoneTransferAccept""" request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict zone_transfer_accept = DesignateAdapter.parse( 'API_v2', body, ZoneTransferAccept()) zone_transfer_accept.validate() # Create the zone_transfer_request zone_transfer_accept = self.central_api.create_zone_transfer_accept( context, zone_transfer_accept) response.status_int = 201 LOG.info(_LI("Created %(zone_transfer_accept)s"), {'zone_transfer_accept': zone_transfer_accept}) zone_transfer_accept = DesignateAdapter.render( 'API_v2', zone_transfer_accept, request=request) response.headers['Location'] = zone_transfer_accept['links']['self'] # Prepare and return the response body return zone_transfer_accept
def post_all(self): """Create Blacklisted Zone""" request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict blacklist = DesignateAdapter.parse('API_v2', body, Blacklist()) blacklist.validate() # Create the blacklist blacklist = self.central_api.create_blacklist( context, blacklist) LOG.info("Created %(blacklist)s", {'blacklist': blacklist}) response.status_int = 201 blacklist = DesignateAdapter.render( 'API_v2', blacklist, request=request) response.headers['Location'] = blacklist['links']['self'] # Prepare and return the response body return blacklist
def post_all(self): """Create Zone Import""" request = pecan.request response = pecan.response context = request.environ['context'] if six.PY2: body = request.body else: body = request.body.decode('utf-8') if request.content_type != 'text/dns': raise exceptions.UnsupportedContentType( 'Content-type must be text/dns') # Create the zone_import zone_import = self.central_api.create_zone_import( context, body) response.status_int = 202 LOG.info(_LI("Created %(zone_import)s"), {'zone_import': zone_import}) zone_import = DesignateAdapter.render( 'API_v2', zone_import, request=request) response.headers['Location'] = zone_import['links']['self'] # Prepare and return the response body return zone_import
def patch_one(self, pool_id): """Update the specific pool""" LOG.warning(_LW("Use of this API Method is DEPRICATED. This will have " "unforseen side affects when used with the " "designate-manage pool commands")) request = pecan.request context = request.environ['context'] body = request.body_dict response = pecan.response if request.content_type == 'application/json-patch+json': raise NotImplemented('json-patch not implemented') # Fetch the existing pool pool = self.central_api.get_pool(context, pool_id) pool = DesignateAdapter.parse('API_v2', body, pool) pool.validate() pool = self.central_api.update_pool(context, pool) LOG.info(_LI("Updated %(pool)s"), {'pool': pool}) response.status_int = 202 return DesignateAdapter.render('API_v2', pool, request=request)
def get_all(self, **params): """List Zones""" request = pecan.request context = request.environ['context'] marker, limit, sort_key, sort_dir = utils.get_paging_params( context, params, self.SORT_KEYS) # Extract any filter params. accepted_filters = ( 'name', 'type', 'email', 'status', 'description', 'ttl', ) criterion = self._apply_filter_params(params, accepted_filters, {}) zones = self.central_api.find_zones(context, criterion, marker, limit, sort_key, sort_dir) LOG.info("Retrieved %(zones)s", {'zones': zones}) return DesignateAdapter.render('API_v2', zones, request=request)
def patch_one(self, tsigkey_id): """Update TsigKey""" request = pecan.request context = request.environ['context'] body = request.body_dict response = pecan.response if request.content_type == 'application/json-patch+json': raise NotImplemented('json-patch not implemented') # Fetch the existing tsigkey entry tsigkey = self.central_api.get_tsigkey(context, tsigkey_id) tsigkey = DesignateAdapter.parse('API_v2', body, tsigkey) # Validate the new set of data tsigkey.validate() # Update and persist the resource tsigkey = self.central_api.update_tsigkey(context, tsigkey) LOG.info("Updated %(tsigkey)s", {'tsigkey': tsigkey}) response.status_int = 200 return DesignateAdapter.render('API_v2', tsigkey, request=request)
def patch_one(self, fip_key): """ Set or unset a PTR """ request = pecan.request response = pecan.response context = request.environ['context'] try: body = request.body_dict except Exception as e: if e.message != 'TODO: Unsupported Content Type': raise else: # Got a blank body body = dict() region, id_ = fip_key_to_data(fip_key) fip = DesignateAdapter.parse('API_v2', body, objects.FloatingIP()) fip.validate() LOG.info(_LI("Updated %(fip)s"), {'fip': fip}) fip = self.central_api.update_floatingip(context, region, id_, fip) response.status_int = 202 if fip: return DesignateAdapter.render('API_v2', fip, request=request)
def post_all(self, zone_id): """Create RecordSet""" request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict recordset = DesignateAdapter.parse('API_v2', body, RecordSet()) recordset.validate() # SOA recordsets cannot be created manually if recordset.type == 'SOA': raise exceptions.BadRequest( "Creating a SOA recordset is not allowed") # Create the recordset recordset = self.central_api.create_recordset(context, zone_id, recordset) # Prepare the response headers if recordset['status'] == 'PENDING': response.status_int = 202 else: response.status_int = 201 recordset = DesignateAdapter.render('API_v2', recordset, request=request) response.headers['Location'] = recordset['links']['self'] # Prepare and return the response body return recordset
def post_all(self, zone_id): """Create ZoneTransferRequest""" request = pecan.request response = pecan.response context = request.environ['context'] try: body = request.body_dict except exceptions.EmptyRequestBody: body = dict() zone = self.central_api.get_zone(context, zone_id) body['zone_name'] = zone.name body['zone_id'] = zone_id zone_transfer_request = DesignateAdapter.parse( 'API_v2', body, ZoneTransferRequest()) zone_transfer_request.validate() # Create the zone_transfer_request zone_transfer_request = self.central_api.create_zone_transfer_request( context, zone_transfer_request) response.status_int = 201 LOG.info("Created %(zone_transfer_request)s", {'zone_transfer_request': zone_transfer_request}) zone_transfer_request = DesignateAdapter.render( 'API_v2', zone_transfer_request, request=request, context=context) response.headers['Location'] = zone_transfer_request['links']['self'] # Prepare and return the response body return zone_transfer_request
def _handle_errors(self, request, exception): response = {} headers = [ ('Content-Type', 'application/json'), ] rendered_errors = DesignateAdapter.render( self.api_version, exception.errors, failed_object=exception.object) url = getattr(request, 'url', None) response['code'] = exception.error_code response['type'] = exception.error_type or 'unknown' response['errors'] = rendered_errors # Return the new response if 'context' in request.environ: response['request_id'] = request.environ['context'].request_id notifications.send_api_fault(request.environ['context'], url, response['code'], exception) else: # TODO(ekarlso): Remove after verifying that there's actually a # context always set LOG.error('Missing context in request, please check.') return flask.Response(status=exception.error_code, headers=headers, response=jsonutils.dump_as_bytes(response))
def post_all(self): """Create Blacklisted Zone""" request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict blacklist = DesignateAdapter.parse('API_v2', body, Blacklist()) blacklist.validate() # Create the blacklist blacklist = self.central_api.create_blacklist( context, blacklist) LOG.info("Created %(blacklist)s", {'blacklist': blacklist}) response.status_int = 201 blacklist = DesignateAdapter.render( 'API_v2', blacklist, request=request) response.headers['Location'] = blacklist['links']['self'] # Prepare and return the response body return blacklist
def post_all(self, zone_id): """Create ZoneTransferRequest""" request = pecan.request response = pecan.response context = request.environ['context'] try: body = request.body_dict except exceptions.EmptyRequestBody: body = dict() body['zone_id'] = zone_id zone_transfer_request = DesignateAdapter.parse('API_v2', body, ZoneTransferRequest()) zone_transfer_request.validate() # Create the zone_transfer_request zone_transfer_request = self.central_api.create_zone_transfer_request( context, zone_transfer_request) response.status_int = 201 zone_transfer_request = DesignateAdapter.render('API_v2', zone_transfer_request, request=request, context=context) response.headers['Location'] = zone_transfer_request['links']['self'] # Prepare and return the response body return zone_transfer_request
def _handle_errors(self, request, exception): response = {} headers = [ ('Content-Type', 'application/json'), ] rendered_errors = DesignateAdapter.render( self.api_version, exception.errors, failed_object=exception.object) url = getattr(request, 'url', None) response['code'] = exception.error_code response['type'] = exception.error_type or 'unknown' response['errors'] = rendered_errors # Return the new response if 'context' in request.environ: response['request_id'] = request.environ['context'].request_id notifications.send_api_fault(request.environ['context'], url, response['code'], exception) else: # TODO(ekarlso): Remove after verifying that there's actually a # context always set LOG.error(_LE('Missing context in request, please check.')) return flask.Response(status=exception.error_code, headers=headers, response=json.dumps(response))
def get_all(self, zone_id, **params): """List RecordSets""" request = pecan.request context = request.environ['context'] # NOTE: We need to ensure the zone actually exists, otherwise we may # return deleted recordsets instead of a zone not found self.central_api.get_zone(context, zone_id) # Extract the pagination params marker, limit, sort_key, sort_dir = utils.get_paging_params( params, self.SORT_KEYS) # Extract any filter params. accepted_filters = ( 'name', 'type', 'ttl', 'data', 'status', 'description', ) criterion = self._apply_filter_params( params, accepted_filters, {}) criterion['zone_id'] = zone_id recordsets = self.central_api.find_recordsets( context, criterion, marker, limit, sort_key, sort_dir) LOG.info(_LI("Retrieved %(recordsets)s"), {'recordsets': recordsets}) return DesignateAdapter.render('API_v2', recordsets, request=request)
def patch_one(self, tsigkey_id): """Update TsigKey""" request = pecan.request context = request.environ['context'] body = request.body_dict response = pecan.response if request.content_type == 'application/json-patch+json': raise NotImplemented('json-patch not implemented') # Fetch the existing tsigkey entry tsigkey = self.central_api.get_tsigkey(context, tsigkey_id) tsigkey = DesignateAdapter.parse('API_v2', body, tsigkey) # Validate the new set of data tsigkey.validate() # Update and persist the resource tsigkey = self.central_api.update_tsigkey(context, tsigkey) LOG.info("Updated %(tsigkey)s", {'tsigkey': tsigkey}) response.status_int = 200 return DesignateAdapter.render('API_v2', tsigkey, request=request)
def post_all(self): """Create Zone Import""" request = pecan.request response = pecan.response context = request.environ['context'] if six.PY2: body = request.body else: body = request.body.decode('utf-8') if request.content_type != 'text/dns': raise exceptions.UnsupportedContentType( 'Content-type must be text/dns') # Create the zone_import zone_import = self.central_api.create_zone_import(context, body) response.status_int = 202 LOG.info(_LI("Created %(zone_import)s"), {'zone_import': zone_import}) zone_import = DesignateAdapter.render('API_v2', zone_import, request=request) response.headers['Location'] = zone_import['links']['self'] # Prepare and return the response body return zone_import
def post_all(self): request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict rbac_obj = DesignateAdapter.parse('API_v2', body, RBACBaseObject()) rbac_obj.validate() # Create the blacklist rbac_obj = self.central_api.create_rbacrule( context, rbac_obj) LOG.info("Created %(rbac)s", {'rbac': rbac_obj}) response.status_int = 201 rbac_obj = DesignateAdapter.render( 'API_v2', rbac_obj, request=request) #response.headers['Location'] = rbac_obj['links']['self'] # Prepare and return the response body return rbac
def get_all(self, **params): """List RBAC rules that comply with either object or project ids for a Tenant""" request = pecan.request context = request.environ['context'] object_id = None project_id = None try: body = request.body_dict rbac_obj = DesignateAdapter.parse('API_v2', body, RBACBaseObject()) object_id = rbac_obj.object_id project_id = rbac_obj.project_id except Exception as e: if str(e) != 'TODO: Unsupported Content Type': raise else: # Got a blank body body = dict() rules = self.central_api.list_rbac_rules(object_id=object_id, project_id=project_id) LOG.info("Retrieved %(rbacrules)s", {'rbacrules': rules}) return DesignateAdapter.render('API_v2', rules, request=request)
def patch_one(self, pool_id): """Update the specific pool""" LOG.warning(_LW("Use of this API Method is DEPRICATED. This will have " "unforseen side affects when used with the " "designate-manage pool commands")) request = pecan.request context = request.environ['context'] body = request.body_dict response = pecan.response if request.content_type == 'application/json-patch+json': raise NotImplemented('json-patch not implemented') # Fetch the existing pool pool = self.central_api.get_pool(context, pool_id) pool = DesignateAdapter.parse('API_v2', body, pool) pool.validate() pool = self.central_api.update_pool(context, pool) response.status_int = 202 return DesignateAdapter.render('API_v2', pool, request=request)
def post_all(self): """Create ZoneTransferAccept""" request = pecan.request response = pecan.response context = request.environ['context'] body = request.body_dict zone_transfer_accept = DesignateAdapter.parse( 'API_v2', body, ZoneTransferAccept()) zone_transfer_accept.validate() # Create the zone_transfer_request zone_transfer_accept = self.central_api.create_zone_transfer_accept( context, zone_transfer_accept) response.status_int = 201 LOG.info(_LI("Created %(zone_transfer_accept)s"), {'zone_transfer_accept': zone_transfer_accept}) zone_transfer_accept = DesignateAdapter.render( 'API_v2', zone_transfer_accept, request=request) response.headers['Location'] = zone_transfer_accept['links']['self'] # Prepare and return the response body return zone_transfer_accept
def patch_one(self, zone_id): """Update Zone""" # TODO(kiall): This needs cleanup to say the least.. request = pecan.request context = request.environ['context'] body = request.body_dict response = pecan.response # TODO(kiall): Validate we have a sane UUID for zone_id # Fetch the existing zone zone = self.central_api.get_zone(context, zone_id) # Don't allow updates to zones that are being deleted if zone.action == "DELETE": raise exceptions.BadRequest('Can not update a deleting zone') if request.content_type == 'application/json-patch+json': # Possible pattern: # # 1) Load existing zone. # 2) Apply patch, maintain list of changes. # 3) Return changes, after passing through the code ^ for plain # JSON. # # Difficulties: # # 1) "Nested" resources? records inside a recordset. # 2) What to do when a zone doesn't exist in the first place? # 3) ...? raise NotImplemented('json-patch not implemented') else: # Update the zone object with the new values zone = DesignateAdapter.parse('API_v2', body, zone) zone.validate() # If masters are specified then we set zone.transferred_at to None # which will cause a new transfer if 'attributes' in zone.obj_what_changed(): zone.transferred_at = None # Update and persist the resource if zone.type == 'SECONDARY' and 'email' in zone.obj_what_changed(): msg = "Changed email is not allowed." raise exceptions.InvalidObject(msg) increment_serial = zone.type == 'PRIMARY' zone = self.central_api.update_zone( context, zone, increment_serial=increment_serial) LOG.info(_LI("Updated %(zone)s"), {'zone': zone}) if zone.status == 'PENDING': response.status_int = 202 else: response.status_int = 200 return DesignateAdapter.render('API_v2', zone, request=request)
def get_one(self, tenant_id): context = pecan.request.environ['context'] quotas = self.central_api.get_quotas(context, tenant_id) quotas = QuotaList.from_dict(quotas) return DesignateAdapter.render('API_v2', quotas)
def get_all(self, zone_id, **params): """List RecordSets""" request = pecan.request context = request.environ['context'] recordsets = common.retrieve_matched_rrsets(context, self, zone_id, **params) return DesignateAdapter.render('API_v2', recordsets, request=request)
def get_all(self, **params): """List Floating IP PTRs for a Tenant""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.list_floatingips(context), request=request)
def get_one(self, zone_id, recordset_id): """Get RecordSet""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render('API_v2', self.central_api.get_recordset( context, zone_id, recordset_id), request=request)
def get_one(self, pool_id): """Get the specific Pool""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_pool(context, pool_id), request=request)
def get_one(self, pool_id): """Get the specific Pool""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_pool(context, pool_id), request=request)
def get_all(self, **params): """List Floating IP PTRs for a Tenant""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.list_floatingips(context), request=request)
def get_all(self, zone_id, **params): """List RecordSets""" request = pecan.request context = request.environ['context'] # NOTE: We need to ensure the domain actually exists, otherwise we may # return deleted recordsets instead of a domain not found self.central_api.get_domain(context, zone_id) # Extract the pagination params marker, limit, sort_key, sort_dir = utils.get_paging_params( params, self.SORT_KEYS) # Extract any filter params. accepted_filters = ( 'name', 'type', 'ttl', 'data', 'status', 'description', ) criterion = self._apply_filter_params( params, accepted_filters, {}) criterion['domain_id'] = zone_id # Data must be filtered separately, through the Records table data = criterion.pop('data', None) status = criterion.pop('status', None) # Retrieve recordsets recordsets = self.central_api.find_recordsets( context, criterion, marker, limit, sort_key, sort_dir) # 'data' filter param: only return recordsets with matching data if data: records = self.central_api.find_records( context, criterion={'data': data, 'domain_id': zone_id}) recordset_with_data_ids = set(record.recordset_id for record in records) new_rsets = RecordSetList() for recordset in recordsets: if recordset.id in recordset_with_data_ids: new_rsets.append(recordset) recordsets = new_rsets recordsets.total_count = len(recordset_with_data_ids) # 'status' filter param: only return recordsets with matching status if status: new_rsets = RecordSetList() for recordset in recordsets: if recordset.status == status: new_rsets.append(recordset) recordsets = new_rsets return DesignateAdapter.render('API_v2', recordsets, request=request)
def get_one(self, blacklist_id): """Get Blacklist""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_blacklist(context, blacklist_id), request=request)
def get_all(self, **params): """List RecordSets""" request = pecan.request context = request.environ['context'] recordsets = common.retrieve_matched_rrsets(context, self, None, **params) LOG.info(_LI("Retrieved %(recordsets)s"), {'recordsets': recordsets}) return DesignateAdapter.render('API_v2', recordsets, request=request)
def delete_one(self, zone_id): """Delete Zone""" request = pecan.request response = pecan.response context = request.environ['context'] zone = self.central_api.delete_zone(context, zone_id) response.status_int = 202 return DesignateAdapter.render('API_v2', zone, request=request)
def get_all(self, **params): """List Floating IP PTRs for a Tenant""" request = pecan.request context = request.environ['context'] fips = self.central_api.list_floatingips(context) LOG.info(_LI("Retrieved %(fips)s"), {'fips': fips}) return DesignateAdapter.render('API_v2', fips, request=request)
def get_one(self, zone_id, recordset_id): """Get RecordSet""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_recordset( context, zone_id, recordset_id), request=request)
def get_one(self, tld_id): """Get Tld""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render('API_v2', self.central_api.get_tld( context, tld_id), request=request)
def get_one(self, blacklist_id): """Get Blacklist""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render('API_v2', self.central_api.get_blacklist( context, blacklist_id), request=request)
def get_one(self, pool_id): """Get the specific Pool""" request = pecan.request context = request.environ['context'] pool = self.central_api.get_pool(context, pool_id) LOG.info(_LI("Retrieved %(pool)s"), {'pool': pool}) return DesignateAdapter.render('API_v2', pool, request=request)
def get_all(self, **params): """List RecordSets""" request = pecan.request context = request.environ['context'] recordsets = common.retrieve_matched_rrsets(context, self, None, **params) LOG.info("Retrieved %(recordsets)s", {'recordsets': recordsets}) return DesignateAdapter.render('API_v2', recordsets, request=request)
def get_all(self, **params): """List Floating IP PTRs for a Tenant""" request = pecan.request context = request.environ['context'] fips = self.central_api.list_floatingips(context) LOG.info("Retrieved %(fips)s", {'fips': fips}) return DesignateAdapter.render('API_v2', fips, request=request)
def get_one(self, pool_id): """Get the specific Pool""" request = pecan.request context = request.environ['context'] pool = self.central_api.get_pool(context, pool_id) LOG.info(_LI("Retrieved %(pool)s"), {'pool': pool}) return DesignateAdapter.render('API_v2', pool, request=request)
def delete_one(self, zone_id): """Delete Zone""" request = pecan.request response = pecan.response context = request.environ['context'] zone = self.central_api.delete_zone(context, zone_id) response.status_int = 202 return DesignateAdapter.render('API_v2', zone, request=request)
def get_one(self, tld_id): """Get Tld""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_tld(context, tld_id), request=request)
def get_one(self, transfer_accept_id): """Get transfer_accepts""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_zone_transfer_accept( context, transfer_accept_id), request=request)
def generate_file(self, file): try: pools = self.central_api.find_pools(self.context) except messaging.exceptions.MessagingTimeout: LOG.critical( _LC("No response recieved from designate-central. " "Check it is running, and retry")) with open(file, 'w') as stream: yaml.dump(DesignateAdapter.render('YAML', pools), stream, default_flow_style=False)
def get_one(self, import_id): """Get Zone Imports""" request = pecan.request context = request.environ['context'] zone_import = self.central_api.get_zone_import(context, import_id) LOG.info(_LI("Retrived %(zone_import)s"), {'zone_import': zone_import}) return DesignateAdapter.render('API_v2', zone_import, request=request)
def get_one(self, blacklist_id): """Get Blacklist""" request = pecan.request context = request.environ['context'] blacklist = self.central_api.get_blacklist(context, blacklist_id) LOG.info("Retrieved %(blacklist)s", {'blacklist': blacklist}) return DesignateAdapter.render('API_v2', blacklist, request=request)
def get_one(self, transfer_accept_id): """Get transfer_accepts""" request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_zone_transfer_accept(context, transfer_accept_id), request=request)
def get_one(self, zone_id): """Get Zone""" # TODO(kiall): Validate we have a sane UUID for zone_id request = pecan.request context = request.environ['context'] return DesignateAdapter.render( 'API_v2', self.central_api.get_zone(context, zone_id), request=request)
def get_one(self, service_id): """Get Service Status""" request = pecan.request context = request.environ['context'] criterion = {"id": service_id} service_status = self.central_api.find_service_status( context, criterion) return DesignateAdapter.render( 'API_v2', service_status, request=request)