blob: 409986365a7e21c05692c3debddc47ea16c20535 [file] [log] [blame]
from pprint import pprint
from libcloud.compute.providers import get_driver as get_compute_driver
from libcloud.compute.types import Provider as ComputeProvider
from libcloud.dns.providers import get_driver as get_dns_driver
from libcloud.dns.types import Provider as DNSProvider
from libcloud.dns.types import RecordType
CREDENTIALS_RACKSPACE = ('username', 'api key')
CREDENTIALS_ZERIGO = ('email', 'api key')
cls = get_compute_driver(ComputeProvider.RACKSPACE)
compute_driver = cls(*CREDENTIALS_RACKSPACE)
cls = get_dns_driver(DNSProvider.ZERIGO)
dns_driver = cls(*CREDENTIALS_ZERIGO)
# Retrieve all the nodes
nodes = compute_driver.list_nodes()
# Create a new zone
zone = dns_driver.create_zone(domain='mydomain2.com')
created = []
for node in nodes:
name = node.name
ip = node.public_ips[0] if node.public_ips else None
if not ip:
continue
print('Creating %s record (data=%s) for node %s' % ('A', ip, name))
record = zone.create_record(name=name, type=RecordType.A, data=ip)
created.append(record)
print('Done, created %d records' % (len(created)))
pprint(created)