Skip to main content

Python interface to Rackspace Cloud DNS

Project description

Homepage:https://github.com/chmouel/python-clouddns
Credits:Copyright 2011 Chmouel Boudjnah <chmouel@chmouel.com>
Licence:BSD

Usage

A Rackspace Cloud username and API key are required and can be obtained from https://mycloud.rackspace.com.

Domains and records can be found by specifying their name or id. To enable debugging output for the HTTP connection, include the keyword argument debuglevel=1. Additional debugging output is available by setting the ‘PYTHON_CLOUDDNS_DEBUG’ environment variable.

List all domains:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

for domain in dns.get_domains():
    print domain.name

Create a new domain:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

dns.create_domain(name='1234-example.com', ttl=300,
                  emailAddress='me@you.com')

Import a domain from a BIND zone file or string:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

with open('/tmp/example.com.zone', 'r') as f:
    dns.import_domain(f)

Update a domain:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

domain = dns.get_domain(name='1234-example.com')
domain.update(ttl=600)

Delete a domain:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

domain = dns.get_domain(name='1234-example.com')
dns.delete_domain(domain.id)

List all records for a domain:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

domain = dns.get_domain(name='1234-example.com')
for record in domain.get_records():
    print '(%s) %s -> %s' % (record.type, record.name, record.data)

Create new record:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

domain = dns.get_domain(name='1234-example.com')
domain.create_record('www.1234-example.com', '127.0.0.1', 'A')

Update a record:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

domain = dns.get_domain(name='1234-example.com')
record = domain.get_record(name='www.1234-example.com')
record.update(data='10.1.1.1', ttl=600)

Delete a record:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey')

domain = dns.get_domain(name='1234-example.com')
record = domain.get_record(name='www.1234-example.com')
domain.delete_record(record.id)

Alternative Geographic Endpoints

The examples above use the default authentication endpoint in the US. For UK accounts, you must override the authentication URL:

#!/usr/bin/env python
import clouddns
dns = clouddns.connection.Connection('username','apikey',
                                     authurl=clouddb.consts.uk_authurl)

GUI

A web based GUI is available here: https://github.com/rackerhacker/rackspace-clouddns-gui

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-clouddns, version 0.0.0
Filename, size File type Python version Upload date Hashes
Filename, size python-clouddns-0.0.0.tar.gz (10.5 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page