The Floating IP DNS extension provides an interface for managing DNS records associated with IP addresses allocated by the Floating Ips extension. Requests are dispatched to a DNS driver selected at startup.
To obtain current information the extensions available to you, issue an EXTENSION query on the OpenStack system where it is installed, such as http://mycloud.com/v1.1/tenant/extension.
As shown below, responses to an EXTENSION query in XML or JSON provide basic information about the extension.
Extension Query Response: XML:
None
Extension Query Response: JSON:
{'extensions':
[{'updated': '2011-12-23T00:00:00+00:00',
'name': 'Floating_ip_dns',
'links': [],
'namespace': 'http://docs.openstack.org/ext/floating_ip_dns/api/v1.1',
'alias': 'os-floating-ip_dns',
'description': 'Floating IP DNS support'}]}
Revision Date | Summary of Changes |
2011-12-23 | Initial draft |
2012-03-30 | Reformat of content |
This extension to the Compute API enables management of DNS entries for floating IP addresses.
This support is provided by the addition of new resources.
None
None
None
Get a list of registered DNS Domains published by the DNS drivers:
GET /v1.1/<tenant_id>/os-floating-ip-dns/
# Sample Response:
{'domain_entries' : [
{'domain': 'domain1.example.org', 'scope': 'public', 'project': 'proj1'}
{'domain': 'domain2.example.net', 'scope': 'public', 'project': 'proj2'}
{'domain': 'example.net', 'scope': 'public', 'project': ''}
{'domain': 'example.internal', 'scope': 'private', 'availability_zone': 'zone1'}]}
Create or modify a DNS domain:
PUT /v1.1/<tenant_id>/os-floating-ip-dns/<domain>
# Sample body, public domain:
{'domain_entry' :
{'scope': 'public',
'project' : 'project1'}}
# Sample body, public (projectless) domain:
{'domain_entry' :
{'scope': 'public'}}
# Sample Response, public domain (success):
{'domain_entry' :
{'domain': 'domain1.example.org',
'scope': 'public',
'project': 'project1'}}
# Sample body, private domain:
{'domain_entry' :
{'scope': 'private',
'availability_domain': 'zone1'}}
# Sample Response, private domain (success):
{'domain_entry' :
{'domain': 'domain1.private',
'scope': 'private',
'availability_zone': 'zone1'}}
Failure Response Code: 403 (Insufficient permissions.)
Delete a DNS domain and all associated host entries:
DELETE /v1.1/<tenant_id>/os-floating-ip-dns/<domain>
Normal Response Code: 200
Failure Response Code: 404 (Domain to be deleted not found.)
Failure Response Code: 403 (Insufficient permissions to delete.)
Create or modify a DNS entry:
PUT /v1.1/<tenant_id>/os-floating-ip-dns/<domain>/entries/<name>
# Sample body:
{ 'dns_entry' :
{ 'ip': '192.168.53.11',
'dns_type': 'A' }}
# Sample Response (success):
{ 'dns_entry' :
{ 'type' : 'A',
'name' : 'instance1' }}
Find unique DNS entry for a given domain and name:
GET /v1.1/<tenant_id>/os-floating-ip-dns/<domain>/entries/<name>
# Sample Response:
{ 'dns_entry' :
{ 'ip' : '192.168.53.11',
'type' : 'A',
'domain' : <domain>,
'name' : <name> }}
Find DNS entries for a given domain and ip:
GET /v1.1/<tenant_id>/os-floating-ip-dns/<domain>/entries?ip=<ip>
# Sample Response:
{ 'dns_entries' : [
{ 'ip' : <ip>,
'type' : 'A',
'domain' : <domain>,
'name' : 'example1' }
{ 'ip' : <ip>,
'type' : 'A',
'domain' : <domain>,
'name' : 'example2' }]}
Delete a DNS entry:
DELETE /v1.1/<tenant_id>/os-floating-ip-dns/<domain>/entries/<name>
Normal Response Code: 200
Failure Response Code: 404 (Entry to be deleted not found)
None
None