From 41cf476c6deb00435929f4d87a170b8c2d2ab196 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Fri, 21 Oct 2011 12:49:33 -0400 Subject: [PATCH] Add support for Rackspace Cloud DNS registration. Change-Id: Ic0936d99f88a85585aaaf45538dd484c77351c69 --- launch_slave.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/launch_slave.py b/launch_slave.py index 1e8f96f7..7c1840d1 100644 --- a/launch_slave.py +++ b/launch_slave.py @@ -28,6 +28,8 @@ node_size = '3' node_type = '76' if CLOUD_SERVERS_DRIVER == 'rackspace': + import clouddns + for (name, value) in option_pairs: if name == "--distro": if value == "maverick": @@ -90,6 +92,18 @@ else: if CLOUD_SERVERS_DRIVER == 'rackspace': node = conn.deploy_node(name=node_name, image=image, size=size, deploy=msd, ex_files=files) + dns_ctx = clouddns.connection.Connection(CLOUD_SERVERS_USERNAME, + CLOUD_SERVERS_API_KEY) + domain_name = ".".join(node_name.split(".")[-2:]) + domain = dns_ctx.get_domain(name=domain_name) + try: + record = domain.get_record(name=node_name) + except: + record = None + if record is None: + domain.create_record(node_name, node.public_ip[0], "A") + else: + record.update(data=node.public_ip[0]) else: node = conn.create_node(name=node_name, image=image, size=size, ex_keyname=node_name, ex_userdata=launch_script)