#!/usr/bin/python3 import argparse import json import ovh import pycurl import requests try: input = raw_input except NameError: pass def addCNAME(client,domain,fr,to): result = client.get(base_url + "/record",fieldType="CNAME",subDomain=fr) if not result: result = client.post(base_url + "/record",fieldType="CNAME",subDomain=fr,target=to) print(json.dumps(result,indent=4)) result = client.post(base_url+ "/refresh") print("Refresh zone trigger") else: print("CNAME already existing") def addA(client,domain,fr,to): result = client.get(base_url + "/record",fieldType="A",subDomain=fr) if not result: result = client.post(base_url + "/record",fieldType="A",subDomain=fr,target=to) print(json.dumps(result,indent=4)) result = client.post(base_url+ "/refresh") print("Refresh zone trigger") else: print("A record already existing") parser = argparse.ArgumentParser(description="Process arguments") parser.add_argument("domain", metavar="domain", type=str, help="Domain to request") parser.add_argument("--method", metavar="type", type=str, help="Function to use. Ex: addCNAME") parser.add_argument("--src", metavar="src", type=str, help="Source subdomain") parser.add_argument("--dest", metavar="dst", type=str, help="Dest IP or domain") args = parser.parse_args() # Instantiate. Visit https://api.ovh.com/createToken/?GET=/me # to get your credentials client = ovh.Client() # Grab bill list base_url = "/domain/zone/" + args.domain zone = client.get(base_url + "/record") if args.method == "list": for id in zone: entry = client.get(base_url + "/record/"+str(id)) print(entry) elif args.method == "addCNAME": addCNAME(client,args.domain,args.src,args.dest) elif args.method == "addA": addA(client,args.domain,args.src,args.dest)