mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-22 12:50:22 -07:00
Bulk autopep8 (modules)
As agreed in 2017-12-07 Core meeting bulk fix pep8 issues Generated using: autopep8 1.3.3 (pycodestyle: 2.3.1) autopep8 -r --max-line-length 160 --in-place --ignore E305,E402,E722,E741 lib/ansible/modules Manually fix issues that autopep8 has introduced
This commit is contained in:
parent
d13d7e9404
commit
c57a7f05e1
314 changed files with 3462 additions and 3383 deletions
|
@ -179,27 +179,26 @@ def grant_check(module, gs, obj):
|
|||
try:
|
||||
acp = obj.get_acl()
|
||||
if module.params.get('permission') == 'public-read':
|
||||
grant = [ x for x in acp.entries.entry_list if x.scope.type == 'AllUsers']
|
||||
grant = [x for x in acp.entries.entry_list if x.scope.type == 'AllUsers']
|
||||
if not grant:
|
||||
obj.set_acl('public-read')
|
||||
module.exit_json(changed=True, result="The objects permission as been set to public-read")
|
||||
if module.params.get('permission') == 'authenticated-read':
|
||||
grant = [ x for x in acp.entries.entry_list if x.scope.type == 'AllAuthenticatedUsers']
|
||||
grant = [x for x in acp.entries.entry_list if x.scope.type == 'AllAuthenticatedUsers']
|
||||
if not grant:
|
||||
obj.set_acl('authenticated-read')
|
||||
module.exit_json(changed=True, result="The objects permission as been set to authenticated-read")
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def key_check(module, gs, bucket, obj):
|
||||
try:
|
||||
bucket = gs.lookup(bucket)
|
||||
key_check = bucket.get_key(obj)
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
if key_check:
|
||||
grant_check(module, gs, key_check)
|
||||
return True
|
||||
|
@ -213,7 +212,7 @@ def keysum(module, gs, bucket, obj):
|
|||
if not key_check:
|
||||
return None
|
||||
md5_remote = key_check.etag[1:-1]
|
||||
etag_multipart = '-' in md5_remote # Check for multipart, etag is not md5
|
||||
etag_multipart = '-' in md5_remote # Check for multipart, etag is not md5
|
||||
if etag_multipart is True:
|
||||
module.fail_json(msg="Files uploaded with multipart of gs are not supported with checksum, unable to compute checksum.")
|
||||
return md5_remote
|
||||
|
@ -223,7 +222,7 @@ def bucket_check(module, gs, bucket):
|
|||
try:
|
||||
result = gs.lookup(bucket)
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
if result:
|
||||
grant_check(module, gs, result)
|
||||
return True
|
||||
|
@ -237,7 +236,7 @@ def create_bucket(module, gs, bucket):
|
|||
bucket.set_acl(module.params.get('permission'))
|
||||
bucket.configure_versioning(module.params.get('versioning'))
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
if bucket:
|
||||
return True
|
||||
|
||||
|
@ -251,7 +250,7 @@ def delete_bucket(module, gs, bucket):
|
|||
bucket.delete()
|
||||
return True
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
|
||||
def delete_key(module, gs, bucket, obj):
|
||||
|
@ -260,7 +259,7 @@ def delete_key(module, gs, bucket, obj):
|
|||
bucket.delete_key(obj)
|
||||
module.exit_json(msg="Object deleted from bucket ", changed=True)
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
|
||||
def create_dirkey(module, gs, bucket, obj):
|
||||
|
@ -270,7 +269,7 @@ def create_dirkey(module, gs, bucket, obj):
|
|||
key.set_contents_from_string('')
|
||||
module.exit_json(msg="Virtual directory %s created in bucket %s" % (obj, bucket.name), changed=True)
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
|
||||
def path_check(path):
|
||||
|
@ -308,7 +307,7 @@ def upload_gsfile(module, gs, bucket, obj, src, expiry):
|
|||
url = key.generate_url(expiry)
|
||||
module.exit_json(msg="PUT operation complete", url=url, changed=True)
|
||||
except gs.provider.storage_copy_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
|
||||
def download_gsfile(module, gs, bucket, obj, dest):
|
||||
|
@ -318,7 +317,7 @@ def download_gsfile(module, gs, bucket, obj, dest):
|
|||
key.get_contents_to_filename(dest)
|
||||
module.exit_json(msg="GET operation complete", changed=True)
|
||||
except gs.provider.storage_copy_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
|
||||
def download_gsstr(module, gs, bucket, obj):
|
||||
|
@ -328,7 +327,7 @@ def download_gsstr(module, gs, bucket, obj):
|
|||
contents = key.get_contents_as_string()
|
||||
module.exit_json(msg="GET operation complete", contents=contents, changed=True)
|
||||
except gs.provider.storage_copy_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
|
||||
def get_download_url(module, gs, bucket, obj, expiry):
|
||||
|
@ -338,7 +337,7 @@ def get_download_url(module, gs, bucket, obj, expiry):
|
|||
url = key.generate_url(expiry)
|
||||
module.exit_json(msg="Download url:", url=url, expiration=expiry, changed=True)
|
||||
except gs.provider.storage_response_error as e:
|
||||
module.fail_json(msg= str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
|
||||
def handle_get(module, gs, bucket, obj, overwrite, dest):
|
||||
|
@ -355,7 +354,7 @@ def handle_get(module, gs, bucket, obj, overwrite, dest):
|
|||
def handle_put(module, gs, bucket, obj, overwrite, src, expiration):
|
||||
# Lets check to see if bucket exists to get ground truth.
|
||||
bucket_rc = bucket_check(module, gs, bucket)
|
||||
key_rc = key_check(module, gs, bucket, obj)
|
||||
key_rc = key_check(module, gs, bucket, obj)
|
||||
|
||||
# Lets check key state. Does it exist and if it does, compute the etag md5sum.
|
||||
if bucket_rc and key_rc:
|
||||
|
@ -380,7 +379,7 @@ def handle_put(module, gs, bucket, obj, overwrite, src, expiration):
|
|||
def handle_delete(module, gs, bucket, obj):
|
||||
if bucket and not obj:
|
||||
if bucket_check(module, gs, bucket):
|
||||
module.exit_json(msg="Bucket %s and all keys have been deleted."%bucket, changed=delete_bucket(module, gs, bucket))
|
||||
module.exit_json(msg="Bucket %s and all keys have been deleted." % bucket, changed=delete_bucket(module, gs, bucket))
|
||||
else:
|
||||
module.exit_json(msg="Bucket does not exist.", changed=False)
|
||||
if bucket and obj:
|
||||
|
@ -409,7 +408,7 @@ def handle_create(module, gs, bucket, obj):
|
|||
|
||||
if bucket_check(module, gs, bucket):
|
||||
if key_check(module, gs, bucket, dirobj):
|
||||
module.exit_json(msg="Bucket %s and key %s already exists."% (bucket, obj), changed=False)
|
||||
module.exit_json(msg="Bucket %s and key %s already exists." % (bucket, obj), changed=False)
|
||||
else:
|
||||
create_dirkey(module, gs, bucket, dirobj)
|
||||
else:
|
||||
|
@ -419,35 +418,35 @@ def handle_create(module, gs, bucket, obj):
|
|||
|
||||
def main():
|
||||
module = AnsibleModule(
|
||||
argument_spec = dict(
|
||||
bucket = dict(required=True),
|
||||
object = dict(default=None, type='path'),
|
||||
src = dict(default=None),
|
||||
dest = dict(default=None, type='path'),
|
||||
expiration = dict(type='int', default=600, aliases=['expiry']),
|
||||
mode = dict(choices=['get', 'put', 'delete', 'create', 'get_url', 'get_str'], required=True),
|
||||
permission = dict(choices=['private', 'public-read', 'authenticated-read'], default='private'),
|
||||
headers = dict(type='dict', default={}),
|
||||
gs_secret_key = dict(no_log=True, required=True),
|
||||
gs_access_key = dict(required=True),
|
||||
overwrite = dict(default=True, type='bool', aliases=['force']),
|
||||
region = dict(default='US', type='str'),
|
||||
versioning = dict(default='no', type='bool')
|
||||
argument_spec=dict(
|
||||
bucket=dict(required=True),
|
||||
object=dict(default=None, type='path'),
|
||||
src=dict(default=None),
|
||||
dest=dict(default=None, type='path'),
|
||||
expiration=dict(type='int', default=600, aliases=['expiry']),
|
||||
mode=dict(choices=['get', 'put', 'delete', 'create', 'get_url', 'get_str'], required=True),
|
||||
permission=dict(choices=['private', 'public-read', 'authenticated-read'], default='private'),
|
||||
headers=dict(type='dict', default={}),
|
||||
gs_secret_key=dict(no_log=True, required=True),
|
||||
gs_access_key=dict(required=True),
|
||||
overwrite=dict(default=True, type='bool', aliases=['force']),
|
||||
region=dict(default='US', type='str'),
|
||||
versioning=dict(default='no', type='bool')
|
||||
),
|
||||
)
|
||||
|
||||
if not HAS_BOTO:
|
||||
module.fail_json(msg='boto 2.9+ required for this module')
|
||||
|
||||
bucket = module.params.get('bucket')
|
||||
obj = module.params.get('object')
|
||||
src = module.params.get('src')
|
||||
dest = module.params.get('dest')
|
||||
mode = module.params.get('mode')
|
||||
expiry = module.params.get('expiration')
|
||||
bucket = module.params.get('bucket')
|
||||
obj = module.params.get('object')
|
||||
src = module.params.get('src')
|
||||
dest = module.params.get('dest')
|
||||
mode = module.params.get('mode')
|
||||
expiry = module.params.get('expiration')
|
||||
gs_secret_key = module.params.get('gs_secret_key')
|
||||
gs_access_key = module.params.get('gs_access_key')
|
||||
overwrite = module.params.get('overwrite')
|
||||
overwrite = module.params.get('overwrite')
|
||||
|
||||
if mode == 'put':
|
||||
if not src or not object:
|
||||
|
@ -459,7 +458,7 @@ def main():
|
|||
try:
|
||||
gs = boto.connect_gs(gs_access_key, gs_secret_key)
|
||||
except boto.exception.NoAuthHandlerFound as e:
|
||||
module.fail_json(msg = str(e))
|
||||
module.fail_json(msg=str(e))
|
||||
|
||||
if mode == 'get':
|
||||
if not bucket_check(module, gs, bucket) or not key_check(module, gs, bucket, obj):
|
||||
|
|
|
@ -348,7 +348,7 @@ PROVIDER = Provider.GOOGLE
|
|||
# I'm hard-coding the supported record types here, because they (hopefully!)
|
||||
# shouldn't change much, and it allows me to use it as a "choices" parameter
|
||||
# in an AnsibleModule argument_spec.
|
||||
SUPPORTED_RECORD_TYPES = [ 'A', 'AAAA', 'CNAME', 'SRV', 'TXT', 'SOA', 'NS', 'MX', 'SPF', 'PTR' ]
|
||||
SUPPORTED_RECORD_TYPES = ['A', 'AAAA', 'CNAME', 'SRV', 'TXT', 'SOA', 'NS', 'MX', 'SPF', 'PTR']
|
||||
|
||||
|
||||
################################################################################
|
||||
|
@ -378,8 +378,8 @@ def create_record(module, gcdns, zone, record):
|
|||
# The record doesn't match, so we need to check if we can overwrite it.
|
||||
if not overwrite:
|
||||
module.fail_json(
|
||||
msg = 'cannot overwrite existing record, overwrite protection enabled',
|
||||
changed = False
|
||||
msg='cannot overwrite existing record, overwrite protection enabled',
|
||||
changed=False
|
||||
)
|
||||
|
||||
# The record either doesn't exist, or it exists and we can overwrite it.
|
||||
|
@ -393,9 +393,9 @@ def create_record(module, gcdns, zone, record):
|
|||
# not when combined (e.g., an 'A' record with "www.example.com"
|
||||
# as its value).
|
||||
module.fail_json(
|
||||
msg = 'value is invalid for the given type: ' +
|
||||
"%s, got value: %s" % (record_type, record_data),
|
||||
changed = False
|
||||
msg='value is invalid for the given type: ' +
|
||||
"%s, got value: %s" % (record_type, record_data),
|
||||
changed=False
|
||||
)
|
||||
|
||||
elif error.code == 'cnameResourceRecordSetConflict':
|
||||
|
@ -403,8 +403,8 @@ def create_record(module, gcdns, zone, record):
|
|||
# already have another type of resource record with the name
|
||||
# domain name.
|
||||
module.fail_json(
|
||||
msg = "non-CNAME resource record already exists: %s" % record_name,
|
||||
changed = False
|
||||
msg="non-CNAME resource record already exists: %s" % record_name,
|
||||
changed=False
|
||||
)
|
||||
|
||||
else:
|
||||
|
@ -428,8 +428,8 @@ def create_record(module, gcdns, zone, record):
|
|||
try:
|
||||
gcdns.create_record(record.name, record.zone, record.type, record.data)
|
||||
module.fail_json(
|
||||
msg = 'error updating record, the original record was restored',
|
||||
changed = False
|
||||
msg='error updating record, the original record was restored',
|
||||
changed=False
|
||||
)
|
||||
except LibcloudError:
|
||||
# We deleted the old record, couldn't create the new record, and
|
||||
|
@ -437,12 +437,12 @@ def create_record(module, gcdns, zone, record):
|
|||
# record to the failure output so the user can resore it if
|
||||
# necessary.
|
||||
module.fail_json(
|
||||
msg = 'error updating record, and could not restore original record, ' +
|
||||
"original name: %s " % record.name +
|
||||
"original zone: %s " % record.zone +
|
||||
"original type: %s " % record.type +
|
||||
"original data: %s" % record.data,
|
||||
changed = True)
|
||||
msg='error updating record, and could not restore original record, ' +
|
||||
"original name: %s " % record.name +
|
||||
"original zone: %s " % record.zone +
|
||||
"original type: %s " % record.type +
|
||||
"original data: %s" % record.data,
|
||||
changed=True)
|
||||
|
||||
return True
|
||||
|
||||
|
@ -450,8 +450,8 @@ def create_record(module, gcdns, zone, record):
|
|||
def remove_record(module, gcdns, record):
|
||||
"""Remove a resource record."""
|
||||
|
||||
overwrite = module.boolean(module.params['overwrite'])
|
||||
ttl = module.params['ttl']
|
||||
overwrite = module.boolean(module.params['overwrite'])
|
||||
ttl = module.params['ttl']
|
||||
record_data = module.params['record_data']
|
||||
|
||||
# If there is no record, we're obviously done.
|
||||
|
@ -463,10 +463,10 @@ def remove_record(module, gcdns, record):
|
|||
if not overwrite:
|
||||
if not _records_match(record.data['ttl'], record.data['rrdatas'], ttl, record_data):
|
||||
module.fail_json(
|
||||
msg = 'cannot delete due to non-matching ttl or record_data: ' +
|
||||
"ttl: %d, record_data: %s " % (ttl, record_data) +
|
||||
"original ttl: %d, original record_data: %s" % (record.data['ttl'], record.data['rrdatas']),
|
||||
changed = False
|
||||
msg='cannot delete due to non-matching ttl or record_data: ' +
|
||||
"ttl: %d, record_data: %s " % (ttl, record_data) +
|
||||
"original ttl: %d, original record_data: %s" % (record.data['ttl'], record.data['rrdatas']),
|
||||
changed=False
|
||||
)
|
||||
|
||||
# If we got to this point, we're okay to delete the record.
|
||||
|
@ -529,30 +529,30 @@ def _records_match(old_ttl, old_record_data, new_ttl, new_record_data):
|
|||
def _sanity_check(module):
|
||||
"""Run sanity checks that don't depend on info from the zone/record."""
|
||||
|
||||
overwrite = module.params['overwrite']
|
||||
overwrite = module.params['overwrite']
|
||||
record_name = module.params['record']
|
||||
record_type = module.params['type']
|
||||
state = module.params['state']
|
||||
ttl = module.params['ttl']
|
||||
state = module.params['state']
|
||||
ttl = module.params['ttl']
|
||||
record_data = module.params['record_data']
|
||||
|
||||
# Apache libcloud needs to be installed and at least the minimum version.
|
||||
if not HAS_LIBCLOUD:
|
||||
module.fail_json(
|
||||
msg = 'This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed = False
|
||||
msg='This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed=False
|
||||
)
|
||||
elif LooseVersion(LIBCLOUD_VERSION) < MINIMUM_LIBCLOUD_VERSION:
|
||||
module.fail_json(
|
||||
msg = 'This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed = False
|
||||
msg='This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# A negative TTL is not permitted (how would they even work?!).
|
||||
if ttl < 0:
|
||||
module.fail_json(
|
||||
msg = 'TTL cannot be less than zero, got: %d' % ttl,
|
||||
changed = False
|
||||
msg='TTL cannot be less than zero, got: %d' % ttl,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# Deleting SOA records is not permitted.
|
||||
|
@ -572,8 +572,8 @@ def _sanity_check(module):
|
|||
socket.inet_aton(value)
|
||||
except socket.error:
|
||||
module.fail_json(
|
||||
msg = 'invalid A record value, got: %s' % value,
|
||||
changed = False
|
||||
msg='invalid A record value, got: %s' % value,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# AAAA records must contain valid IPv6 addresses.
|
||||
|
@ -583,23 +583,23 @@ def _sanity_check(module):
|
|||
socket.inet_pton(socket.AF_INET6, value)
|
||||
except socket.error:
|
||||
module.fail_json(
|
||||
msg = 'invalid AAAA record value, got: %s' % value,
|
||||
changed = False
|
||||
msg='invalid AAAA record value, got: %s' % value,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# CNAME and SOA records can't have multiple values.
|
||||
if record_type in ['CNAME', 'SOA'] and len(record_data) > 1:
|
||||
module.fail_json(
|
||||
msg = 'CNAME or SOA records cannot have more than one value, ' +
|
||||
"got: %s" % record_data,
|
||||
changed = False
|
||||
msg='CNAME or SOA records cannot have more than one value, ' +
|
||||
"got: %s" % record_data,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# Google Cloud DNS does not support wildcard NS records.
|
||||
if record_type == 'NS' and record_name[0] == '*':
|
||||
module.fail_json(
|
||||
msg = "wildcard NS records not allowed, got: %s" % record_name,
|
||||
changed = False
|
||||
msg="wildcard NS records not allowed, got: %s" % record_name,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# Values for txt records must begin and end with a double quote.
|
||||
|
@ -607,32 +607,32 @@ def _sanity_check(module):
|
|||
for value in record_data:
|
||||
if value[0] != '"' and value[-1] != '"':
|
||||
module.fail_json(
|
||||
msg = 'TXT record_data must be enclosed in double quotes, ' +
|
||||
'got: %s' % value,
|
||||
changed = False
|
||||
msg='TXT record_data must be enclosed in double quotes, ' +
|
||||
'got: %s' % value,
|
||||
changed=False
|
||||
)
|
||||
|
||||
|
||||
def _additional_sanity_checks(module, zone):
|
||||
"""Run input sanity checks that depend on info from the zone/record."""
|
||||
|
||||
overwrite = module.params['overwrite']
|
||||
overwrite = module.params['overwrite']
|
||||
record_name = module.params['record']
|
||||
record_type = module.params['type']
|
||||
state = module.params['state']
|
||||
state = module.params['state']
|
||||
|
||||
# CNAME records are not allowed to have the same name as the root domain.
|
||||
if record_type == 'CNAME' and record_name == zone.domain:
|
||||
module.fail_json(
|
||||
msg = 'CNAME records cannot match the zone name',
|
||||
changed = False
|
||||
msg='CNAME records cannot match the zone name',
|
||||
changed=False
|
||||
)
|
||||
|
||||
# The root domain must always have an NS record.
|
||||
if record_type == 'NS' and record_name == zone.domain and state == 'absent':
|
||||
module.fail_json(
|
||||
msg = 'cannot delete root NS records',
|
||||
changed = False
|
||||
msg='cannot delete root NS records',
|
||||
changed=False
|
||||
)
|
||||
|
||||
# Updating NS records with the name as the root domain is not allowed
|
||||
|
@ -640,16 +640,16 @@ def _additional_sanity_checks(module, zone):
|
|||
# records cannot be removed.
|
||||
if record_type == 'NS' and record_name == zone.domain and overwrite:
|
||||
module.fail_json(
|
||||
msg = 'cannot update existing root NS records',
|
||||
changed = False
|
||||
msg='cannot update existing root NS records',
|
||||
changed=False
|
||||
)
|
||||
|
||||
# SOA records with names that don't match the root domain are not permitted
|
||||
# (and wouldn't make sense anyway).
|
||||
if record_type == 'SOA' and record_name != zone.domain:
|
||||
module.fail_json(
|
||||
msg = 'non-root SOA records are not permitted, got: %s' % record_name,
|
||||
changed = False
|
||||
msg='non-root SOA records are not permitted, got: %s' % record_name,
|
||||
changed=False
|
||||
)
|
||||
|
||||
|
||||
|
@ -661,46 +661,46 @@ def main():
|
|||
"""Main function"""
|
||||
|
||||
module = AnsibleModule(
|
||||
argument_spec = dict(
|
||||
state = dict(default='present', choices=['present', 'absent'], type='str'),
|
||||
record = dict(required=True, aliases=['name'], type='str'),
|
||||
zone = dict(type='str'),
|
||||
zone_id = dict(type='str'),
|
||||
type = dict(required=True, choices=SUPPORTED_RECORD_TYPES, type='str'),
|
||||
record_data = dict(aliases=['value'], type='list'),
|
||||
ttl = dict(default=300, type='int'),
|
||||
overwrite = dict(default=False, type='bool'),
|
||||
service_account_email = dict(type='str'),
|
||||
pem_file = dict(type='path'),
|
||||
credentials_file = dict(type='path'),
|
||||
project_id = dict(type='str')
|
||||
argument_spec=dict(
|
||||
state=dict(default='present', choices=['present', 'absent'], type='str'),
|
||||
record=dict(required=True, aliases=['name'], type='str'),
|
||||
zone=dict(type='str'),
|
||||
zone_id=dict(type='str'),
|
||||
type=dict(required=True, choices=SUPPORTED_RECORD_TYPES, type='str'),
|
||||
record_data=dict(aliases=['value'], type='list'),
|
||||
ttl=dict(default=300, type='int'),
|
||||
overwrite=dict(default=False, type='bool'),
|
||||
service_account_email=dict(type='str'),
|
||||
pem_file=dict(type='path'),
|
||||
credentials_file=dict(type='path'),
|
||||
project_id=dict(type='str')
|
||||
),
|
||||
required_if = [
|
||||
required_if=[
|
||||
('state', 'present', ['record_data']),
|
||||
('overwrite', False, ['record_data'])
|
||||
],
|
||||
required_one_of = [['zone', 'zone_id']],
|
||||
supports_check_mode = True
|
||||
required_one_of=[['zone', 'zone_id']],
|
||||
supports_check_mode=True
|
||||
)
|
||||
|
||||
_sanity_check(module)
|
||||
|
||||
record_name = module.params['record']
|
||||
record_type = module.params['type']
|
||||
state = module.params['state']
|
||||
ttl = module.params['ttl']
|
||||
zone_name = module.params['zone']
|
||||
zone_id = module.params['zone_id']
|
||||
state = module.params['state']
|
||||
ttl = module.params['ttl']
|
||||
zone_name = module.params['zone']
|
||||
zone_id = module.params['zone_id']
|
||||
|
||||
json_output = dict(
|
||||
state = state,
|
||||
record = record_name,
|
||||
zone = zone_name,
|
||||
zone_id = zone_id,
|
||||
type = record_type,
|
||||
record_data = module.params['record_data'],
|
||||
ttl = ttl,
|
||||
overwrite = module.boolean(module.params['overwrite'])
|
||||
state=state,
|
||||
record=record_name,
|
||||
zone=zone_name,
|
||||
zone_id=zone_id,
|
||||
type=record_type,
|
||||
record_data=module.params['record_data'],
|
||||
ttl=ttl,
|
||||
overwrite=module.boolean(module.params['overwrite'])
|
||||
)
|
||||
|
||||
# Google Cloud DNS wants the trailing dot on all DNS names.
|
||||
|
@ -718,13 +718,13 @@ def main():
|
|||
zone = _get_zone(gcdns, zone_name, zone_id)
|
||||
if zone is None and zone_name is not None:
|
||||
module.fail_json(
|
||||
msg = 'zone name was not found: %s' % zone_name,
|
||||
changed = False
|
||||
msg='zone name was not found: %s' % zone_name,
|
||||
changed=False
|
||||
)
|
||||
elif zone is None and zone_id is not None:
|
||||
module.fail_json(
|
||||
msg = 'zone id was not found: %s' % zone_id,
|
||||
changed = False
|
||||
msg='zone id was not found: %s' % zone_id,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# Populate the returns with the actual zone information.
|
||||
|
@ -738,8 +738,8 @@ def main():
|
|||
except InvalidRequestError:
|
||||
# We gave Google Cloud DNS an invalid DNS record name.
|
||||
module.fail_json(
|
||||
msg = 'record name is invalid: %s' % record_name,
|
||||
changed = False
|
||||
msg='record name is invalid: %s' % record_name,
|
||||
changed=False
|
||||
)
|
||||
|
||||
_additional_sanity_checks(module, zone)
|
||||
|
@ -752,20 +752,20 @@ def main():
|
|||
diff['before_header'] = '<absent>'
|
||||
else:
|
||||
diff['before'] = dict(
|
||||
record = record.data['name'],
|
||||
type = record.data['type'],
|
||||
record_data = record.data['rrdatas'],
|
||||
ttl = record.data['ttl']
|
||||
record=record.data['name'],
|
||||
type=record.data['type'],
|
||||
record_data=record.data['rrdatas'],
|
||||
ttl=record.data['ttl']
|
||||
)
|
||||
diff['before_header'] = "%s:%s" % (record_type, record_name)
|
||||
|
||||
# Create, remove, or modify the record.
|
||||
if state == 'present':
|
||||
diff['after'] = dict(
|
||||
record = record_name,
|
||||
type = record_type,
|
||||
record_data = module.params['record_data'],
|
||||
ttl = ttl
|
||||
record=record_name,
|
||||
type=record_type,
|
||||
record_data=module.params['record_data'],
|
||||
ttl=ttl
|
||||
)
|
||||
diff['after_header'] = "%s:%s" % (record_type, record_name)
|
||||
|
||||
|
|
|
@ -145,18 +145,19 @@ MINIMUM_LIBCLOUD_VERSION = '0.19.0'
|
|||
PROVIDER = Provider.GOOGLE
|
||||
|
||||
# The URL used to verify ownership of a zone in Google Cloud DNS.
|
||||
ZONE_VERIFICATION_URL= 'https://www.google.com/webmasters/verification/'
|
||||
ZONE_VERIFICATION_URL = 'https://www.google.com/webmasters/verification/'
|
||||
|
||||
################################################################################
|
||||
# Functions
|
||||
################################################################################
|
||||
|
||||
|
||||
def create_zone(module, gcdns, zone):
|
||||
"""Creates a new Google Cloud DNS zone."""
|
||||
|
||||
description = module.params['description']
|
||||
extra = dict(description = description)
|
||||
zone_name = module.params['zone']
|
||||
extra = dict(description=description)
|
||||
zone_name = module.params['zone']
|
||||
|
||||
# Google Cloud DNS wants the trailing dot on the domain name.
|
||||
if zone_name[-1] != '.':
|
||||
|
@ -184,8 +185,8 @@ def create_zone(module, gcdns, zone):
|
|||
# The zone name or a parameter might be completely invalid. This is
|
||||
# typically caused by an illegal DNS name (e.g. foo..com).
|
||||
module.fail_json(
|
||||
msg = "zone name is not a valid DNS name: %s" % zone_name,
|
||||
changed = False
|
||||
msg="zone name is not a valid DNS name: %s" % zone_name,
|
||||
changed=False
|
||||
)
|
||||
|
||||
elif error.code == 'managedZoneDnsNameNotAvailable':
|
||||
|
@ -193,8 +194,8 @@ def create_zone(module, gcdns, zone):
|
|||
# names, such as TLDs, ccTLDs, or special domain names such as
|
||||
# example.com.
|
||||
module.fail_json(
|
||||
msg = "zone name is reserved or already in use: %s" % zone_name,
|
||||
changed = False
|
||||
msg="zone name is reserved or already in use: %s" % zone_name,
|
||||
changed=False
|
||||
)
|
||||
|
||||
elif error.code == 'verifyManagedZoneDnsNameOwnership':
|
||||
|
@ -202,8 +203,8 @@ def create_zone(module, gcdns, zone):
|
|||
# it. This occurs when a user attempts to create a zone which shares
|
||||
# a domain name with a zone hosted elsewhere in Google Cloud DNS.
|
||||
module.fail_json(
|
||||
msg = "ownership of zone %s needs to be verified at %s" % (zone_name, ZONE_VERIFICATION_URL),
|
||||
changed = False
|
||||
msg="ownership of zone %s needs to be verified at %s" % (zone_name, ZONE_VERIFICATION_URL),
|
||||
changed=False
|
||||
)
|
||||
|
||||
else:
|
||||
|
@ -226,8 +227,8 @@ def remove_zone(module, gcdns, zone):
|
|||
# refuse to remove the zone.
|
||||
if len(zone.list_records()) > 2:
|
||||
module.fail_json(
|
||||
msg = "zone is not empty and cannot be removed: %s" % zone.domain,
|
||||
changed = False
|
||||
msg="zone is not empty and cannot be removed: %s" % zone.domain,
|
||||
changed=False
|
||||
)
|
||||
|
||||
try:
|
||||
|
@ -246,8 +247,8 @@ def remove_zone(module, gcdns, zone):
|
|||
# the milliseconds between the check and the removal command,
|
||||
# records were added to the zone.
|
||||
module.fail_json(
|
||||
msg = "zone is not empty and cannot be removed: %s" % zone.domain,
|
||||
changed = False
|
||||
msg="zone is not empty and cannot be removed: %s" % zone.domain,
|
||||
changed=False
|
||||
)
|
||||
|
||||
else:
|
||||
|
@ -273,6 +274,7 @@ def _get_zone(gcdns, zone_name):
|
|||
|
||||
return found_zone
|
||||
|
||||
|
||||
def _sanity_check(module):
|
||||
"""Run module sanity checks."""
|
||||
|
||||
|
@ -281,40 +283,41 @@ def _sanity_check(module):
|
|||
# Apache libcloud needs to be installed and at least the minimum version.
|
||||
if not HAS_LIBCLOUD:
|
||||
module.fail_json(
|
||||
msg = 'This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed = False
|
||||
msg='This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed=False
|
||||
)
|
||||
elif LooseVersion(LIBCLOUD_VERSION) < MINIMUM_LIBCLOUD_VERSION:
|
||||
module.fail_json(
|
||||
msg = 'This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed = False
|
||||
msg='This module requires Apache libcloud %s or greater' % MINIMUM_LIBCLOUD_VERSION,
|
||||
changed=False
|
||||
)
|
||||
|
||||
# Google Cloud DNS does not support the creation of TLDs.
|
||||
if '.' not in zone_name or len([label for label in zone_name.split('.') if label]) == 1:
|
||||
module.fail_json(
|
||||
msg = 'cannot create top-level domain: %s' % zone_name,
|
||||
changed = False
|
||||
msg='cannot create top-level domain: %s' % zone_name,
|
||||
changed=False
|
||||
)
|
||||
|
||||
################################################################################
|
||||
# Main
|
||||
################################################################################
|
||||
|
||||
|
||||
def main():
|
||||
"""Main function"""
|
||||
|
||||
module = AnsibleModule(
|
||||
argument_spec = dict(
|
||||
state = dict(default='present', choices=['present', 'absent'], type='str'),
|
||||
zone = dict(required=True, aliases=['name'], type='str'),
|
||||
description = dict(default='', type='str'),
|
||||
service_account_email = dict(type='str'),
|
||||
pem_file = dict(type='path'),
|
||||
credentials_file = dict(type='path'),
|
||||
project_id = dict(type='str')
|
||||
argument_spec=dict(
|
||||
state=dict(default='present', choices=['present', 'absent'], type='str'),
|
||||
zone=dict(required=True, aliases=['name'], type='str'),
|
||||
description=dict(default='', type='str'),
|
||||
service_account_email=dict(type='str'),
|
||||
pem_file=dict(type='path'),
|
||||
credentials_file=dict(type='path'),
|
||||
project_id=dict(type='str')
|
||||
),
|
||||
supports_check_mode = True
|
||||
supports_check_mode=True
|
||||
)
|
||||
|
||||
_sanity_check(module)
|
||||
|
@ -327,9 +330,9 @@ def main():
|
|||
zone_name = zone_name + '.'
|
||||
|
||||
json_output = dict(
|
||||
state = state,
|
||||
zone = zone_name,
|
||||
description = module.params['description']
|
||||
state=state,
|
||||
zone=zone_name,
|
||||
description=module.params['description']
|
||||
)
|
||||
|
||||
# Build a connection object that was can use to connect with Google
|
||||
|
@ -347,16 +350,16 @@ def main():
|
|||
diff['before_header'] = '<absent>'
|
||||
else:
|
||||
diff['before'] = dict(
|
||||
zone = zone.domain,
|
||||
description = zone.extra['description']
|
||||
zone=zone.domain,
|
||||
description=zone.extra['description']
|
||||
)
|
||||
diff['before_header'] = zone_name
|
||||
|
||||
# Create or remove the zone.
|
||||
if state == 'present':
|
||||
diff['after'] = dict(
|
||||
zone = zone_name,
|
||||
description = module.params['description']
|
||||
zone=zone_name,
|
||||
description=module.params['description']
|
||||
)
|
||||
diff['after_header'] = zone_name
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue