Delegate Subdomain via PyRax on Rackspace Cloud DNS
Sat, 11 March 2017
requirements.txt
git+ssh://git@github.com/rackspace/pyrax.git#egg=pyrax
install_pip.sh
pip install -r requirements.txt --target=./ --upgrade
perform.py
username = "YOUR_RACKSPACE_USERNAME"
api_key = "YOUR_RACKSPACE_API_KEY"
domain_name = "example.com"
from __future__ import print_function
import os
import sys
import os
import sys
import six
import pyrax
import pyrax.exceptions as exc
from pyrax.clouddns import CloudDNSDomain
pyrax.set_setting("identity_type", "rackspace")
pyrax.set_credentials(username=username, api_key=api_key)
dns = pyrax.cloud_dns
try:
dom = dns.find(name=domain_name) # type: CloudDNSDomain
"""
Below can support the following fields:
- type (required)
- name (required)
- data (required)
- ttl (optional)
- comment (optional)
"""
print (dom.add_record({
"type": "NS",
"name": "subdomain.example.com",
"data": "ns1.somedomain.com",
"ttl": 300
}))
print (dom.add_record({
"type": "NS",
"name": "subdomain.example.com",
"data": "ns2.somedomain.com",
"ttl": 300
}))
print (dom.add_record({
"type": "NS",
"name": "subdomain.example.com",
"data": "ns3.somedomain.com",
"ttl": 300
}))
print (dom.add_record({
"type": "NS",
"name": "subdomain.example.com",
"data": "ns4.somedomain.com",
"ttl": 300
}))
except exc.NotFound as e:
print(e)
output.txt
$ python perform.py
[<CloudDNSRecord data=ns1.somedomain.com, domain_id=1234567, id=NS-963960376, name=subdomain.example.com, ttl=300, type=NS>]
[<CloudDNSRecord data=ns2.somedomain.com, domain_id=1234567, id=NS-724558473, name=subdomain.example.com, ttl=300, type=NS>]
[<CloudDNSRecord data=ns3.somedomain.com, domain_id=1234567, id=NS-392957295, name=subdomain.example.com, ttl=300, type=NS>]
[<CloudDNSRecord data=ns4.somedomain.com, domain_id=1234567, id=NS-967296759, name=subdomain.example.com, ttl=300, type=NS>]