feat: Start clone to alts function
All checks were successful
Build Docker / Build SLDs Image (push) Successful in 36s
Build Docker / Build Main Image (push) Successful in 39s

This commit is contained in:
Nathan Woodburn 2023-12-12 14:33:23 +11:00
parent 80594ca9ac
commit 5980edbf89
Signed by: nathanwoodburn
GPG Key ID: 203B000478AD0EF1

59
varo.py
View File

@ -10,6 +10,13 @@ city_domain = os.getenv('CITY_DOMAIN')
if city_domain == "localhost": if city_domain == "localhost":
city_domain = "exampledomainnathan1" city_domain = "exampledomainnathan1"
alt_domains = os.getenv('ALT_DOMAINS')
if alt_domains == None:
alt_domains = []
else:
alt_domains = alt_domains.split(",")
server_ip = os.getenv('CITY_IP') server_ip = os.getenv('CITY_IP')
def update_auth(auth,domain): def update_auth(auth,domain):
@ -46,6 +53,8 @@ def update_auth(auth,domain):
'Content-Type': 'application/json' 'Content-Type': 'application/json'
} }
r = requests.put(url, headers=headers, json=data) r = requests.put(url, headers=headers, json=data)
copy_to_alts(domain)
return r.text return r.text
@ -184,6 +193,7 @@ def update_avatar(avatar,domain):
"record": record_id "record": record_id
} }
r = requests.post(url, headers=headers, json=data) r = requests.post(url, headers=headers, json=data)
copy_to_alts(domain)
return r.text return r.text
def verify_ALIAS(domain): def verify_ALIAS(domain):
@ -223,4 +233,53 @@ def verify_ALIAS(domain):
"content": TLSA, "content": TLSA,
} }
r = requests.post(url, headers=headers, json=data) r = requests.post(url, headers=headers, json=data)
copy_to_alts(domain)
return r.text return r.text
def copy_to_alts(domain):
# Get DNS from domain and copy to each alt
data = {
"action": "getRecords",
"zone": zone,
"name": domain+"."+city_domain,
"type": "",
"content": ""
}
url = "https://reg.woodburn.au/api"
headers = {
'Authorization': 'Bearer '+REG_KEY,
'Content-Type': 'application/json'
}
r = requests.post(url, headers=headers, json=data)
r = r.json()
if 'data' not in r:
return
records = r['data']
for alt_domain in alt_domains:
# Get the zone for the alt
alt_zone = ""
data = {
"action": "getZones"
}
r = requests.post(url, headers=headers, json=data)
r = r.json()
for tmpzone in r['data']:
if tmpzone['name'] == alt_domain:
alt_zone = tmpzone['id']
print(alt_zone)
if alt_zone == "":
continue
# Add each record to each alt
for record in records:
data = {
"action": "addRecord",
"zone": alt_zone,
"type": record['type'],
"name": record['name'].replace(domain,alt_domain),
"content": record['content'],
}
print(data)
r = requests.post(url, headers=headers, json=data)
print(r.text)