diff --git a/lib/ansible/modules/cloud/google/gce_img.py b/lib/ansible/modules/cloud/google/gce_img.py index 1c14a1421f..e8db207997 100644 --- a/lib/ansible/modules/cloud/google/gce_img.py +++ b/lib/ansible/modules/cloud/google/gce_img.py @@ -117,16 +117,16 @@ EXAMPLES = ''' try: - import libcloud - from libcloud.compute.types import Provider - from libcloud.compute.providers import get_driver - from libcloud.common.google import GoogleBaseError - from libcloud.common.google import ResourceExistsError - from libcloud.common.google import ResourceNotFoundError - _ = Provider.GCE - has_libcloud = True + import libcloud + from libcloud.compute.types import Provider + from libcloud.compute.providers import get_driver + from libcloud.common.google import GoogleBaseError + from libcloud.common.google import ResourceExistsError + from libcloud.common.google import ResourceNotFoundError + _ = Provider.GCE + has_libcloud = True except ImportError: - has_libcloud = False + has_libcloud = False from ansible.module_utils.basic import AnsibleModule from ansible.module_utils.gce import gce_connect @@ -136,98 +136,98 @@ GCS_URI = 'https://storage.googleapis.com/' def create_image(gce, name, module): - """Create an image with the specified name.""" - source = module.params.get('source') - zone = module.params.get('zone') - desc = module.params.get('description') - timeout = module.params.get('timeout') - family = module.params.get('family') + """Create an image with the specified name.""" + source = module.params.get('source') + zone = module.params.get('zone') + desc = module.params.get('description') + timeout = module.params.get('timeout') + family = module.params.get('family') - if not source: - module.fail_json(msg='Must supply a source', changed=False) + if not source: + module.fail_json(msg='Must supply a source', changed=False) - if source.startswith(GCS_URI): - # source is a Google Cloud Storage URI - volume = source - elif source.startswith('gs://'): - # libcloud only accepts https URI. - volume = source.replace('gs://', GCS_URI) - else: + if source.startswith(GCS_URI): + # source is a Google Cloud Storage URI + volume = source + elif source.startswith('gs://'): + # libcloud only accepts https URI. + volume = source.replace('gs://', GCS_URI) + else: + try: + volume = gce.ex_get_volume(source, zone) + except ResourceNotFoundError: + module.fail_json(msg='Disk %s not found in zone %s' % (source, zone), + changed=False) + except GoogleBaseError as e: + module.fail_json(msg=str(e), changed=False) + + gce_extra_args = {} + if family is not None: + gce_extra_args['family'] = family + + old_timeout = gce.connection.timeout try: - volume = gce.ex_get_volume(source, zone) - except ResourceNotFoundError: - module.fail_json(msg='Disk %s not found in zone %s' % (source, zone), - changed=False) + gce.connection.timeout = timeout + gce.ex_create_image(name, volume, desc, use_existing=False, **gce_extra_args) + return True + except ResourceExistsError: + return False except GoogleBaseError as e: - module.fail_json(msg=str(e), changed=False) - - gce_extra_args = {} - if family is not None: - gce_extra_args['family'] = family - - old_timeout = gce.connection.timeout - try: - gce.connection.timeout = timeout - gce.ex_create_image(name, volume, desc, use_existing=False, **gce_extra_args) - return True - except ResourceExistsError: - return False - except GoogleBaseError as e: - module.fail_json(msg=str(e), changed=False) - finally: - gce.connection.timeout = old_timeout + module.fail_json(msg=str(e), changed=False) + finally: + gce.connection.timeout = old_timeout def delete_image(gce, name, module): - """Delete a specific image resource by name.""" - try: - gce.ex_delete_image(name) - return True - except ResourceNotFoundError: - return False - except GoogleBaseError as e: - module.fail_json(msg=str(e), changed=False) + """Delete a specific image resource by name.""" + try: + gce.ex_delete_image(name) + return True + except ResourceNotFoundError: + return False + except GoogleBaseError as e: + module.fail_json(msg=str(e), changed=False) def main(): - module = AnsibleModule( - argument_spec=dict( - name=dict(required=True), - family=dict(), - description=dict(), - source=dict(), - state=dict(default='present', choices=['present', 'absent']), - zone=dict(default='us-central1-a'), - service_account_email=dict(), - pem_file=dict(type='path'), - project_id=dict(), - timeout=dict(type='int', default=180) - ) - ) + module = AnsibleModule( + argument_spec=dict( + name=dict(required=True), + family=dict(), + description=dict(), + source=dict(), + state=dict(default='present', choices=['present', 'absent']), + zone=dict(default='us-central1-a'), + service_account_email=dict(), + pem_file=dict(type='path'), + project_id=dict(), + timeout=dict(type='int', default=180) + ) + ) - if not has_libcloud: - module.fail_json(msg='libcloud with GCE support is required.') + if not has_libcloud: + module.fail_json(msg='libcloud with GCE support is required.') - gce = gce_connect(module) + gce = gce_connect(module) - name = module.params.get('name') - state = module.params.get('state') - family = module.params.get('family') - changed = False + name = module.params.get('name') + state = module.params.get('state') + family = module.params.get('family') + changed = False - if family is not None and hasattr(libcloud, '__version__') and libcloud.__version__ <= '0.20.1': - module.fail_json(msg="Apache Libcloud 1.0.0+ is required to use 'family' option", - changed=False) + if family is not None and hasattr(libcloud, '__version__') and libcloud.__version__ <= '0.20.1': + module.fail_json(msg="Apache Libcloud 1.0.0+ is required to use 'family' option", + changed=False) - # user wants to create an image. - if state == 'present': - changed = create_image(gce, name, module) + # user wants to create an image. + if state == 'present': + changed = create_image(gce, name, module) - # user wants to delete the image. - if state == 'absent': - changed = delete_image(gce, name, module) + # user wants to delete the image. + if state == 'absent': + changed = delete_image(gce, name, module) - module.exit_json(changed=changed, name=name) + module.exit_json(changed=changed, name=name) if __name__ == '__main__': main() diff --git a/test/sanity/pep8/legacy-files.txt b/test/sanity/pep8/legacy-files.txt index 40c8e92ddf..f7dd09e131 100644 --- a/test/sanity/pep8/legacy-files.txt +++ b/test/sanity/pep8/legacy-files.txt @@ -102,7 +102,6 @@ lib/ansible/modules/cloud/cloudstack/cs_sshkeypair.py lib/ansible/modules/cloud/digital_ocean/digital_ocean.py lib/ansible/modules/cloud/docker/_docker.py lib/ansible/modules/cloud/google/gc_storage.py -lib/ansible/modules/cloud/google/gce_img.py lib/ansible/modules/cloud/google/gce_tag.py lib/ansible/modules/cloud/google/gcpubsub.py lib/ansible/modules/cloud/misc/ovirt.py