# Central

## Central RPC API

class designate.central.rpcapi.CentralAPI(topic=None)

  Bases: `object`

  Client side of the central RPC API.

  API version history:

  > 1.0 - Initial version 1.1 - Add new finder methods 1.2 - Add get_tenant and get_tenants 1.3 - Add get_absolute_limits 2.0 - Renamed most get_resources to find_resources 2.1 - Add quota methods 3.0 - RecordSet Changes 3.1 - Add floating ip ptr methods 3.2 - TLD Api changes 3.3 - Add methods for blacklisted domains 4.0 - Create methods now accept designate objects 4.1 - Add methods for server pools 4.2 - Add methods for pool manager integration 4.3 - Added Zone Transfer Methods 5.0 - Remove dead server code 5.1 - Add xfr_zone 5.2 - Add Zone Import methods 5.3 - Add Zone Export method 5.4 - Add asynchronous Zone Export methods 5.5 - Add deleted zone purging task 5.6 - Changed ‘purge_zones’ function args 6.0 - Renamed domains to zones 6.1 - Add ServiceStatus methods 6.2 - Changed ‘find_recordsets’ method args 6.3 - Changed ‘update_status’ method args 6.4 - Removed unused record and diagnostic methods 6.5 - Removed additional unused methods 6.6 - Add methods for shared zones 6.7 - Add increment_zone_serial 6.8 - Add managed recordset methods 6.9 - Removed unused methods 6.10 - Add Zone Pool Move method 6.11 - Add zone attributes to zone import 6.12 - Add delete service status method

  RPC_API_VERSION = '6.12'
  RPC_LOGGING_DISALLOW = ['update_service_status', 'get_instance', '__init__']
  count_report(context, criterion=None)
  create_blacklist(context, blacklist)
  create_managed_records(context, zone_id, records_values, recordset_values)
  create_pool(context, pool)
  create_recordset(context, zone_id, recordset)
  create_tld(context, tld)
  create_tsigkey(context, tsigkey)
  create_zone(context, zone)
  create_zone_export(context, zone_id)
  create_zone_import(context, request_body, zone_attributes=None)
  create_zone_transfer_accept(context, zone_transfer_accept)
  create_zone_transfer_request(context, zone_transfer_request)
  delete_blacklist(context, blacklist_id)
  delete_managed_records(context, zone_id=None, criterion=None)
  delete_pool(context, pool_id)
  delete_recordset(context, zone_id, recordset_id, increment_serial=True)
  delete_service_status(context, service_status)
  delete_tld(context, tld_id)
  delete_tsigkey(context, tsigkey_id)
  delete_zone(context, zone_id)
  delete_zone_export(context, zone_export_id)
  delete_zone_import(context, zone_import_id)
  delete_zone_transfer_request(context, zone_transfer_request_id)
  export_zone(context, zone_id)
  find_blacklists(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_pool(context, criterion=None)
  find_pools(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_recordsets(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None, force_index=False)
  find_service_status(context, criterion=None)
  find_service_statuses(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_shared_zones(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_tenants(context)
  find_tlds(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_tsigkeys(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_exports(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_imports(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_transfer_accepts(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_transfer_requests(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zones(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  get_absolute_limits(context)
  get_blacklist(context, blacklist_id)
  get_floatingip(context, region, floatingip_id)
  classmethod get_instance()

    The rpc.get_client() which is called upon the API object initialization will cause a assertion error if the designate.rpc.TRANSPORT isn’t setup by rpc.init() before.

    This fixes that by creating the rpcapi when demanded.

  get_pool(context, pool_id)
  get_quotas(context, tenant_id)
  get_recordset(context, zone_id, recordset_id)
  get_shared_zone(context, zone_id, zone_share_id)
  get_tenant(context, tenant_id)
  get_tld(context, tld_id)
  get_tsigkey(context, tsigkey_id)
  get_zone(context, zone_id)
  get_zone_export(context, zone_export_id)
  get_zone_import(context, zone_import_id)
  get_zone_ns_records(context, zone_id)
  get_zone_transfer_accept(context, zone_transfer_accept_id)
  get_zone_transfer_request(context, zone_transfer_request_id)
  increment_zone_serial(context, zone)
  list_floatingips(context)
  pool_move_zone(context, zone_id, target_pool_id)
  purge_zones(context, criterion, limit=None)
  reset_quotas(context, tenant_id)
  set_quota(context, tenant_id, resource, hard_limit)
  share_zone(context, zone_id, shared_zone)
  unshare_zone(context, zone_id, zone_share_id)
  update_blacklist(context, blacklist)
  update_floatingip(context, region, floatingip_id, values)
  update_pool(context, pool)
  update_recordset(context, recordset, increment_serial=True)
  update_service_status(context, service_status)
  update_status(context, zone_id, status, serial, action=None)
  update_tld(context, tld)
  update_tsigkey(context, tsigkey)
  update_zone(context, zone, increment_serial=True)
  update_zone_export(context, zone_export)
  update_zone_transfer_request(context, zone_transfer_request)
  xfr_zone(context, zone_id)

designate.central.rpcapi.reset()

## Central Service

class designate.central.service.Service

  Bases: `RPCService`

  RPC_API_VERSION = '6.12'
  count_records(context, criterion=None)
  count_recordsets(context, criterion=None)
  count_report(context, criterion=None)
  count_tenants(context)
  count_zones(context, criterion=None)
  create_blacklist(context, blacklist)
  create_managed_records(context, zone_id, records_values, recordset_values)
  create_pool(context, pool)
  create_recordset(context, zone_id, recordset, increment_serial=True)
  create_tld(context, tld)
  create_tsigkey(context, tsigkey)
  create_zone(context, zone)

    Create zone: perform checks and then call _create_zone()

  create_zone_export(context, zone_id)
  create_zone_import(context, request_body, zone_attributes=None)
  create_zone_transfer_accept(context, zone_transfer_accept)
  create_zone_transfer_request(context, zone_transfer_request)
  delete_blacklist(context, blacklist_id)
  delete_managed_records(context, zone_id, criterion)
  delete_pool(context, pool_id)
  delete_recordset(context, zone_id, recordset_id, increment_serial=True)
  delete_service_status(context, service_status)
  delete_tld(context, tld_id)
  delete_tsigkey(context, tsigkey_id)
  delete_zone(context, zone_id)

    Delete or abandon a zone On abandon, delete the zone from the DB immediately. Otherwise, set action to DELETE and status to PENDING and poke Pool Manager’s “delete_zone” to update the resolvers. PM will then poke back to set action to NONE and status to DELETED

  delete_zone_export(context, zone_export_id)
  delete_zone_import(context, zone_import_id)
  delete_zone_transfer_request(context, zone_transfer_request_id)
  export_zone(context, zone_id)
  find_blacklists(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_pool(context, criterion=None)
  find_pools(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_records(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_recordset(context, criterion=None)
  find_recordsets(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None, force_index=False)
  find_service_status(context, criterion=None)
  find_service_statuses(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)

    List service statuses.

  find_shared_zones(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_tenants(context)
  find_tlds(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_tsigkeys(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_exports(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_imports(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_transfer_accepts(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zone_transfer_requests(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)
  find_zones(context, criterion=None, marker=None, limit=None, sort_key=None, sort_dir=None)

    List existing zones including the ones flagged for deletion.

  get_absolute_limits(context)
  get_blacklist(context, blacklist_id)
  get_floatingip(context, region, floatingip_id)

    Get Floating IP PTR

  get_pool(context, pool_id)
  get_quotas(context, tenant_id)
  get_recordset(context, zone_id, recordset_id)
  get_shared_zone(context, zone_id, zone_share_id)
  get_tenant(context, tenant_id)
  get_tld(context, tld_id)
  get_tsigkey(context, tsigkey_id)
  get_zone(context, zone_id, apply_tenant_criteria=True)

    Get a zone, even if flagged for deletion

  get_zone_export(context, zone_export_id)
  get_zone_import(context, zone_import_id)
  get_zone_ns_records(context, zone_id=None, criterion=None)
  get_zone_transfer_accept(context, zone_transfer_accept_id)
  get_zone_transfer_request(context, zone_transfer_request_id)
  increment_zone_serial(context, zone)
  list_floatingips(context)

    List Floating IPs PTR

    1. We have service_catalog in the context and do a lookup using the

         token pr Neutron in the SC

    2. We lookup FIPs using the configured values for this deployment.

  pool_move_zone(context, zone_id, target_pool_id=None)

    Move zone. Perform checks and then create zone in destination pool

    Returns:

      moved zone

  purge_zones(context, criterion, limit=None)

    Purge deleted zones. :returns: number of purged zones

  property quota
  reset_quotas(context, tenant_id)
  property scheduler
  property service_name
  set_quota(context, tenant_id, resource, hard_limit)
  share_zone(context, zone_id, shared_zone)
  start()

    Start a service.

  stop(graceful=True)

    Stop a service.

    Parameters:

      graceful – indicates whether to wait for all threads to finish or terminate them instantly

  property storage
  target = <Target version=6.12>
  unshare_zone(context, zone_id, zone_share_id)
  update_blacklist(context, blacklist)
  update_floatingip(context, region, floatingip_id, values)

    We strictly see if values[‘ptrdname’] is str or None and set / unset the requested FloatingIP’s PTR record based on that.

  update_pool(context, pool)
  update_recordset(context, recordset, increment_serial=True)
  update_service_status(context, service_status)
  update_status(context, zone_id, status, serial, action=None)
    Parameters:

      - context – Security context information.

      - zone_id – The ID of the designate zone.

      - status – The status, ‘SUCCESS’ or ‘ERROR’.

      - serial – The consensus serial number for the zone.

      - action – The action, ‘CREATE’, ‘UPDATE’, ‘DELETE’ or ‘NONE’.

    Returns:

      updated zone

  update_tld(context, tld)
  update_tsigkey(context, tsigkey)
  update_zone(context, zone, increment_serial=True)

    Update zone. Perform checks and then call _update_zone()

    Returns:

      updated zone

  update_zone_export(context, zone_export)
  update_zone_import(context, zone_import)
  update_zone_transfer_request(context, zone_transfer_request)
  property worker_api
  xfr_zone(context, zone_id)

this page last updated: 2026-08-19 02:25:39

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug