mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #28376 from lyft/multivalue-route53-values-2015.8
Support update of route53 records with multiple values
This commit is contained in:
commit
a69b124aaa
1 changed files with 17 additions and 8 deletions
|
@ -219,6 +219,13 @@ def get_record(name, zone, record_type, fetch_all=False, region=None, key=None,
|
|||
return ret
|
||||
|
||||
|
||||
def _munge_value(value, _type):
|
||||
split_types = ['A', 'MX', 'AAAA', 'TXT', 'SRV', 'SPF', 'NS']
|
||||
if _type in split_types:
|
||||
return value.split(',')
|
||||
return value
|
||||
|
||||
|
||||
def add_record(name, value, zone, record_type, identifier=None, ttl=None,
|
||||
region=None, key=None, keyid=None, profile=None,
|
||||
wait_for_sync=True, split_dns=False, private_zone=False):
|
||||
|
@ -244,20 +251,21 @@ def add_record(name, value, zone, record_type, identifier=None, ttl=None,
|
|||
return False
|
||||
_type = record_type.upper()
|
||||
|
||||
_value = _munge_value(value, _type)
|
||||
if _type == 'A':
|
||||
status = _zone.add_a(name, value, ttl, identifier)
|
||||
status = _zone.add_a(name, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
elif _type == 'CNAME':
|
||||
status = _zone.add_cname(name, value, ttl, identifier)
|
||||
status = _zone.add_cname(name, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
elif _type == 'MX':
|
||||
status = _zone.add_mx(name, value, ttl, identifier)
|
||||
status = _zone.add_mx(name, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
else:
|
||||
# add_record requires a ttl value, annoyingly.
|
||||
if ttl is None:
|
||||
ttl = 60
|
||||
status = _zone.add_record(_type, name, value, ttl, identifier)
|
||||
status = _zone.add_record(_type, name, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
|
||||
|
||||
|
@ -286,20 +294,21 @@ def update_record(name, value, zone, record_type, identifier=None, ttl=None,
|
|||
return False
|
||||
_type = record_type.upper()
|
||||
|
||||
_value = _munge_value(value, _type)
|
||||
if _type == 'A':
|
||||
status = _zone.update_a(name, value, ttl, identifier)
|
||||
status = _zone.update_a(name, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
elif _type == 'CNAME':
|
||||
status = _zone.update_cname(name, value, ttl, identifier)
|
||||
status = _zone.update_cname(name, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
elif _type == 'MX':
|
||||
status = _zone.update_mx(name, value, ttl, identifier)
|
||||
status = _zone.update_mx(name, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
else:
|
||||
old_record = _zone.find_records(name, _type)
|
||||
if not old_record:
|
||||
return False
|
||||
status = _zone.update_record(old_record, value, ttl, identifier)
|
||||
status = _zone.update_record(old_record, _value, ttl, identifier)
|
||||
return _wait_for_sync(status.id, conn, wait_for_sync)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue