diff --git a/states/_states/ovhapi.py b/states/_states/ovhapi.py index 74450bf..2d849cc 100644 --- a/states/_states/ovhapi.py +++ b/states/_states/ovhapi.py @@ -1,9 +1,5 @@ #!/usr/bin/python3 -import salt.utils.dictupdate -import salt.utils.dictdiffer - - def _error(ret, err_msg): ret['result'] = False ret['comment'] = err_msg @@ -17,11 +13,11 @@ def _str_split(string): return [e + delim for e in string.split(delim) if e] -def domain_record_present(name="", - zone="", - recordname="", +def domain_record_present(name=None, + zone=None, + recordname=None, recordtype="A", - target="", + target=None, ttl=0): res_output = "" @@ -32,47 +28,41 @@ def domain_record_present(name="", 'comment': 'Config is up to date' } - if not name: + if type(name) is not str: return _error(ret, 'Must provide name to ovhapi.domain_record_present') - if not zone: + if type(zone) is not str: return _error(ret, 'Must provide dns zone to ovhapi.domain_record_present') - if not recordname: + if type(recordname) is not str: return _error(ret, 'Must provide record name to ovhapi.domain_record_present') - if not recordtype: + if type(recordtype) is not str: return _error(ret, 'Must provide record type to ovhapi.domain_record_present') - if not target: + if type(target) is not str: return _error(ret, 'Must provide target to ovhapi.domain_record_present') - cur_zone_state = __salt__['ovhapi.domain_get_zone'](zone=zone) - # check if record exists cur_record = __salt__['ovhapi.domain_get_record'](zone=zone, fieldType=recordtype, subDomain=recordname, target=target) if cur_record: - __salt__['ovhapi.domain_put_record'](zone=zone, + new_record = __salt__['ovhapi.domain_put_record'](zone=zone, fieldType=recordtype, subDomain=recordname, target=target) - new_zone_state = __salt__['ovhapi.domain_get_zone'](zone=zone) ret['changes'] = { - "diff": salt.utils.stringutils.get_diff(_str_split(cur_zone_state), - _str_split(new_zone_state)) + "diff": f"old record: {cur_record}, new record: {new_record}" } res_output = f"Updated record {recordname}" else: - __salt__['ovhapi.domain_post_record'](zone=zone, + new_record = __salt__['ovhapi.domain_post_record'](zone=zone, subDomain=recordname, fieldType=recordtype, target=target, ttl=ttl) - new_zone_state = __salt__['ovhapi.domain_get_zone'](zone=zone) ret['changes'] = { - "diff": salt.utils.stringutils.get_diff(_str_split(cur_zone_state), - _str_split(new_zone_state)) + "diff": f"new record: {new_record}" } res_output = f"Created record {recordname}"