44 lines
1.4 KiB
Python
Executable File
44 lines
1.4 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")
|
|
|
|
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")
|
|
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)
|