def execute(client, args): manager = DNSManager(client) zone = manager.get_zone(args['<domain>'])['id'] manager.create_record( zone, args['<record>'], args['<type>'], args['<data>'], ttl=args['--ttl'])
def execute(client, args): manager = DNSManager(client) results = manager.search_record( args['<domain>'], args['<record>']) for r in results: if args['--id'] and r['id'] != args['--id']: continue r['data'] = args['--data'] or r['data'] r['ttl'] = args['--ttl'] or r['ttl'] manager.edit_record(r)
def execute(client, args): manager = DNSManager(client) results = manager.search_record( args['<domain>'], args['<record>']) t = Table(['id', 'type', 'ttl', 'data']) t.align['ttl'] = 'c' for r in results: t.add_row([r['id'], r['type'], r['ttl'], r['data']]) return t
def execute(client, args): manager = DNSManager(client) if args['--id']: records = [{'id': args['--id']}] else: records = manager.search_record( args['<domain>'], args['<record>']) if args['--really'] or no_going_back('yes'): t = Table(['record']) for r in records: if args.get('--id') and args['--id'] != r['id']: continue manager.delete_record(r['id']) t.add_row([r['id']]) return t raise CLIAbort("Aborted.")
def execute(client, args): manager = DNSManager(client) zones = manager.list_zones() t = Table([ "id", "zone", "serial", "updated", ]) t.align['serial'] = 'c' t.align['updated'] = 'c' for z in zones: t.add_row([ z['id'], z['name'], z['serial'], z['updateDate'], ]) return t
def dns_sync(client, args): from SoftLayer.DNS import DNSManager, DNSZoneNotFound dns = DNSManager(client) cci = CCIManager(client) def sync_a_record(): #hostname = instance['fullyQualifiedDomainName'] records = dns.search_record( instance['domain'], instance['hostname'], ) if not records: # don't have a record, lets add one to the base zone dns.create_record( zone['id'], instance['hostname'], 'a', instance['primaryIpAddress'], ttl=7200) else: recs = filter(lambda x: x['type'].lower() == 'a', records) if len(recs) != 1: raise CLIAbort("Aborting A record sync, found %d " "A record exists!" % len(recs)) rec = recs[0] rec['data'] = instance['primaryIpAddress'] dns.edit_record(rec) def sync_ptr_record(): host_rec = instance['primaryIpAddress'].split('.')[-1] ptr_domains = client['Virtual_Guest'].\ getReverseDomainRecords(id=instance['id'])[0] edit_ptr = None for ptr in ptr_domains['resourceRecords']: if ptr['host'] == host_rec: edit_ptr = ptr break if edit_ptr: edit_ptr['data'] = instance['fullyQualifiedDomainName'] dns.edit_record(edit_ptr) else: dns.create_record( ptr_domains['id'], host_rec, 'ptr', instance['fullyQualifiedDomainName'], ttl=7200) cci_id = resolve_id(cci, args.get('<identifier>')) instance = cci.get_instance(cci_id) if not instance['primaryIpAddress']: raise CLIAbort('No primary IP address associated with this CCI') try: zone = dns.get_zone(instance['domain']) except DNSZoneNotFound: raise CLIAbort("Unable to create A record, " "no zone found matching: %s" % instance['domain']) go_for_it = args['--really'] or confirm( "Attempt to update DNS records for %s" % instance['fullyQualifiedDomainName']) if not go_for_it: raise CLIAbort("Aborting DNS sync") both = False if not args.get('--PTR') and not args.get('-A'): both = True if both or args.get('-A'): sync_a_record() if both or args.get('--PTR'): sync_ptr_record()
def execute(client, args): manager = DNSManager(client) if args['--really'] or no_going_back(args['<domain>']): manager.delete_zone(args['<domain>']) return "Deleted zone: %s" % args['<domain>'] raise CLIAbort("Aborted.")
def execute(client, args): manager = DNSManager(client) manager.create_zone(args['<domain>']) return "Created zone: %s" % args['<domain>']
def execute(client, args): manager = DNSManager(client) return manager.dump_zone(manager.get_zone(args['<domain>'])['id'])