Don't raise or catch StandardError in amazon modules

This commit is contained in:
Toshio Kuratomi 2015-11-30 19:01:57 -08:00 committed by Matt Clay
parent 5fbc5cb529
commit 5bd1bcaa2d
15 changed files with 164 additions and 176 deletions

View file

@ -272,8 +272,7 @@ def main():
try: try:
connection = connect_to_aws(boto.dynamodb2, region, **aws_connect_params) connection = connect_to_aws(boto.dynamodb2, region, **aws_connect_params)
except (NoAuthHandlerFound, AnsibleAWSError), e:
except (NoAuthHandlerFound, StandardError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
state = module.params.get('state') state = module.params.get('state')

View file

@ -182,7 +182,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.ec2.elb, region, **aws_connect_params) connection = connect_to_aws(boto.ec2.elb, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")
@ -192,4 +192,5 @@ def main():
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
from ansible.module_utils.ec2 import * from ansible.module_utils.ec2 import *
main() if __name__ == '__main__':
main()

View file

@ -193,9 +193,6 @@ def create_eni(connection, module):
instance_id = module.params.get("instance_id") instance_id = module.params.get("instance_id")
if instance_id == 'None': if instance_id == 'None':
instance_id = None instance_id = None
do_detach = True
else:
do_detach = False
device_index = module.params.get("device_index") device_index = module.params.get("device_index")
subnet_id = module.params.get('subnet_id') subnet_id = module.params.get('subnet_id')
private_ip_address = module.params.get('private_ip_address') private_ip_address = module.params.get('private_ip_address')
@ -210,7 +207,7 @@ def create_eni(connection, module):
if instance_id is not None: if instance_id is not None:
try: try:
eni.attach(instance_id, device_index) eni.attach(instance_id, device_index)
except BotoServerError as ex: except BotoServerError:
eni.delete() eni.delete()
raise raise
# Wait to allow creation / attachment to finish # Wait to allow creation / attachment to finish
@ -234,8 +231,6 @@ def modify_eni(connection, module):
else: else:
do_detach = False do_detach = False
device_index = module.params.get("device_index") device_index = module.params.get("device_index")
subnet_id = module.params.get('subnet_id')
private_ip_address = module.params.get('private_ip_address')
description = module.params.get('description') description = module.params.get('description')
security_groups = module.params.get('security_groups') security_groups = module.params.get('security_groups')
force_detach = module.params.get("force_detach") force_detach = module.params.get("force_detach")
@ -243,7 +238,6 @@ def modify_eni(connection, module):
delete_on_termination = module.params.get("delete_on_termination") delete_on_termination = module.params.get("delete_on_termination")
changed = False changed = False
try: try:
# Get the eni with the eni_id specified # Get the eni with the eni_id specified
eni_result_set = connection.get_all_network_interfaces(eni_id) eni_result_set = connection.get_all_network_interfaces(eni_id)
@ -374,7 +368,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.ec2, region, **aws_connect_params) connection = connect_to_aws(boto.ec2, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")
@ -401,4 +395,5 @@ from ansible.module_utils.ec2 import *
# this is magic, see lib/ansible/module_common.py # this is magic, see lib/ansible/module_common.py
#<<INCLUDE_ANSIBLE_MODULE_COMMON>> #<<INCLUDE_ANSIBLE_MODULE_COMMON>>
main() if __name__ == '__main__':
main()

View file

@ -123,7 +123,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.ec2, region, **aws_connect_params) connection = connect_to_aws(boto.ec2, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")

View file

@ -70,18 +70,18 @@ def get_instance_info(instance):
# Get groups # Get groups
groups = [] groups = []
for group in instance.groups: for group in instance.groups:
groups.append({ 'id': group.id, 'name': group.name }.copy()) groups.append({ 'id': group.id, 'name': group.name }.copy())
# Get interfaces # Get interfaces
interfaces = [] interfaces = []
for interface in instance.interfaces: for interface in instance.interfaces:
interfaces.append({ 'id': interface.id, 'mac_address': interface.mac_address }.copy()) interfaces.append({ 'id': interface.id, 'mac_address': interface.mac_address }.copy())
# If an instance is terminated, sourceDestCheck is no longer returned # If an instance is terminated, sourceDestCheck is no longer returned
try: try:
source_dest_check = instance.sourceDestCheck source_dest_check = instance.sourceDestCheck
except AttributeError: except AttributeError:
source_dest_check = None source_dest_check = None
instance_info = { 'id': instance.id, instance_info = { 'id': instance.id,
'kernel': instance.kernel, 'kernel': instance.kernel,
@ -154,7 +154,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.ec2, region, **aws_connect_params) connection = connect_to_aws(boto.ec2, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")
@ -167,4 +167,3 @@ from ansible.module_utils.ec2 import *
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View file

@ -138,7 +138,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.vpc, region, **aws_connect_params) connection = connect_to_aws(boto.vpc, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")

View file

@ -570,7 +570,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.vpc, region, **aws_connect_params) connection = connect_to_aws(boto.vpc, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")
@ -597,4 +597,3 @@ from ansible.module_utils.ec2 import * # noqa
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View file

@ -116,7 +116,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.vpc, region, **aws_connect_params) connection = connect_to_aws(boto.vpc, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")

View file

@ -142,7 +142,7 @@ def create_subnet(vpc_conn, vpc_id, cidr, az, check_mode):
if e.error_code == "DryRunOperation": if e.error_code == "DryRunOperation":
subnet = None subnet = None
else: else:
raise AnsibleVPCSubnetCreationException( raise AnsibleVPCSubnetCreationException(
'Unable to create subnet {0}, error: {1}'.format(cidr, e)) 'Unable to create subnet {0}, error: {1}'.format(cidr, e))
return subnet return subnet
@ -249,14 +249,13 @@ def main():
if not region: if not region:
module.fail_json(msg='Region must be specified') module.fail_json(msg='Region must be specified')
try: if region:
vpc_conn = boto.vpc.connect_to_region( try:
region, connection = connect_to_aws(boto.vpc, region, **aws_connect_params)
aws_access_key_id=aws_access_key, except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
aws_secret_access_key=aws_secret_key module.fail_json(msg=str(e))
) else:
except boto.exception.NoAuthHandlerFound as e: module.fail_json(msg="region must be specified")
module.fail_json(msg=str(e))
vpc_id = module.params.get('vpc_id') vpc_id = module.params.get('vpc_id')
tags = module.params.get('tags') tags = module.params.get('tags')
@ -281,4 +280,3 @@ from ansible.module_utils.ec2 import * # noqa
if __name__ == '__main__': if __name__ == '__main__':
main() main()

View file

@ -116,7 +116,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.vpc, region, **aws_connect_params) connection = connect_to_aws(boto.vpc, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")

View file

@ -24,7 +24,8 @@ notes:
description: description:
- Creates or terminates ecs clusters. - Creates or terminates ecs clusters.
version_added: "2.0" version_added: "2.0"
requirements: [ json, time, boto, boto3 ] author: Mark Chance(@Java1Guy)
requirements: [ boto, boto3 ]
options: options:
state: state:
description: description:
@ -97,8 +98,9 @@ status:
returned: ACTIVE returned: ACTIVE
type: string type: string
''' '''
import time
try: try:
import json, time
import boto import boto
HAS_BOTO = True HAS_BOTO = True
except ImportError: except ImportError:
@ -144,7 +146,7 @@ class EcsClusterManager:
c = self.find_in_array(response['clusters'], cluster_name) c = self.find_in_array(response['clusters'], cluster_name)
if c: if c:
return c return c
raise StandardError("Unknown problem describing cluster %s." % cluster_name) raise Exception("Unknown problem describing cluster %s." % cluster_name)
def create_cluster(self, clusterName = 'default'): def create_cluster(self, clusterName = 'default'):
response = self.ecs.create_cluster(clusterName=clusterName) response = self.ecs.create_cluster(clusterName=clusterName)
@ -167,12 +169,10 @@ def main():
module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True, required_together=required_together) module = AnsibleModule(argument_spec=argument_spec, supports_check_mode=True, required_together=required_together)
if not HAS_BOTO: if not HAS_BOTO:
module.fail_json(msg='boto is required.') module.fail_json(msg='boto is required.')
if not HAS_BOTO3: if not HAS_BOTO3:
module.fail_json(msg='boto3 is required.') module.fail_json(msg='boto3 is required.')
cluster_name = module.params['name']
cluster_mgr = EcsClusterManager(module) cluster_mgr = EcsClusterManager(module)
try: try:

View file

@ -328,7 +328,6 @@ def destroy_lifecycle_rule(connection, module):
else: else:
lifecycle_obj.append(existing_rule) lifecycle_obj.append(existing_rule)
# Write lifecycle to bucket or, if there no rules left, delete lifecycle configuration # Write lifecycle to bucket or, if there no rules left, delete lifecycle configuration
try: try:
if lifecycle_obj: if lifecycle_obj:
@ -389,7 +388,7 @@ def main():
# use this as fallback because connect_to_region seems to fail in boto + non 'classic' aws accounts in some cases # use this as fallback because connect_to_region seems to fail in boto + non 'classic' aws accounts in some cases
if connection is None: if connection is None:
connection = boto.connect_s3(**aws_connect_params) connection = boto.connect_s3(**aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
expiration_date = module.params.get("expiration_date") expiration_date = module.params.get("expiration_date")

View file

@ -155,7 +155,7 @@ def main():
region, ec2_url, aws_connect_params = get_aws_connection_info(module) region, ec2_url, aws_connect_params = get_aws_connection_info(module)
if region in ('us-east-1', '', None): if region in ('us-east-1', '', None):
# S3ism for the US Standard region # S3ism for the US Standard region
location = Location.DEFAULT location = Location.DEFAULT
else: else:
# Boto uses symbolic names for locations but region strings will # Boto uses symbolic names for locations but region strings will
@ -166,10 +166,9 @@ def main():
# use this as fallback because connect_to_region seems to fail in boto + non 'classic' aws accounts in some cases # use this as fallback because connect_to_region seems to fail in boto + non 'classic' aws accounts in some cases
if connection is None: if connection is None:
connection = boto.connect_s3(**aws_connect_params) connection = boto.connect_s3(**aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
state = module.params.get("state") state = module.params.get("state")
if state == 'present': if state == 'present':

View file

@ -220,7 +220,7 @@ def main():
try: try:
connection = connect_to_aws(boto.sqs, region, **aws_connect_params) connection = connect_to_aws(boto.sqs, region, **aws_connect_params)
except (NoAuthHandlerFound, StandardError), e: except (NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
state = module.params.get('state') state = module.params.get('state')
@ -234,4 +234,5 @@ def main():
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
from ansible.module_utils.ec2 import * from ansible.module_utils.ec2 import *
main() if __name__ == '__main__':
main()

View file

@ -82,9 +82,6 @@ ec2_tag:
''' '''
import sys
import time
try: try:
import boto.sts import boto.sts
from boto.exception import BotoServerError from boto.exception import BotoServerError
@ -136,7 +133,7 @@ def main():
if region: if region:
try: try:
connection = connect_to_aws(boto.sts, region, **aws_connect_params) connection = connect_to_aws(boto.sts, region, **aws_connect_params)
except (boto.exception.NoAuthHandlerFound, StandardError), e: except (boto.exception.NoAuthHandlerFound, AnsibleAWSError), e:
module.fail_json(msg=str(e)) module.fail_json(msg=str(e))
else: else:
module.fail_json(msg="region must be specified") module.fail_json(msg="region must be specified")
@ -151,4 +148,5 @@ def main():
from ansible.module_utils.basic import * from ansible.module_utils.basic import *
from ansible.module_utils.ec2 import * from ansible.module_utils.ec2 import *
main() if __name__ == '__main__':
main()