ovh-scripts/ovh-domain.py

56 lines
1.8 KiB
Python
Executable File

#!/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)