paulbsd-salt/states/_states/ovhapi.py
Paul Lecuq 0412f86d26
Some checks failed
continuous-integration/drone/push Build is failing
updated ovhapi module
2022-12-11 13:46:51 +01:00

88 lines
2.7 KiB
Python

#!/usr/bin/python3
def _error(ret, err_msg):
ret['result'] = False
ret['comment'] = err_msg
return ret
def _str_split(string):
delim = "\n"
return [e + delim for e in string.split(delim) if e]
def domain_record_present(name=None,
zone=None,
recordname=None,
recordtype="A",
target=None,
ttl=0):
res_output = ""
ret = {
'name': name,
'changes': {},
'result': True,
'comment': 'Config is up to date'
}
if type(name) is not str:
return _error(ret, 'Must provide name to ovhapi.domain_record_present')
if type(zone) is not str:
return _error(ret, 'Must provide dns zone to ovhapi.domain_record_present')
if type(recordname) is not str:
return _error(ret, 'Must provide record name to ovhapi.domain_record_present')
if type(recordtype) is not str:
return _error(ret, 'Must provide record type to ovhapi.domain_record_present')
if type(target) is not str:
return _error(ret, 'Must provide target to ovhapi.domain_record_present')
# check if record exists
cur_record = __salt__['ovhapi.domain_get_record'](zone=zone,
fieldType=recordtype,
subDomain=recordname,
target=target)
if cur_record:
new_record = __salt__['ovhapi.domain_put_record'](zone=zone,
fieldType=recordtype,
subDomain=recordname,
target=target)
ret['changes'] = {
"diff": f"old record: {cur_record}, new record: {new_record}"
}
res_output = f"Updated record {recordname}"
else:
new_record = __salt__['ovhapi.domain_post_record'](zone=zone,
subDomain=recordname,
fieldType=recordtype,
target=target,
ttl=ttl)
ret['changes'] = {
"diff": f"new record: {new_record}"
}
res_output = f"Created record {recordname}"
ret['comment'] = f'Result is {res_output}'
return ret
def domain_zone_refresh(name="", zone=""):
res_output = ""
ret = {
'name': name,
'changes': {},
'result': True,
'comment': 'Zone is refreshed'
}
res_output = __salt__['ovhapi.domain_refresh_zone'](zone=zone)
ret['comment'] = f'Result is {res_output}'
return ret