Merge pull request #654 from loia/feature/aws_dynamodb

dynamodb_table docfixes and error handling
This commit is contained in:
Greg DeKoenigsberg 2015-06-29 11:09:07 -04:00
commit 9de82d186a

View file

@ -22,6 +22,7 @@ description:
- Create or delete AWS Dynamo DB tables. - Create or delete AWS Dynamo DB tables.
- Can update the provisioned throughput on existing tables. - Can update the provisioned throughput on existing tables.
- Returns the status of the specified table. - Returns the status of the specified table.
version_added: "2.0"
author: Alan Loi (@loia) author: Alan Loi (@loia)
version_added: "2.0" version_added: "2.0"
requirements: requirements:
@ -42,6 +43,7 @@ options:
- Name of the hash key. - Name of the hash key.
- Required when C(state=present). - Required when C(state=present).
required: false required: false
default: null
hash_key_type: hash_key_type:
description: description:
- Type of the hash key. - Type of the hash key.
@ -52,6 +54,7 @@ options:
description: description:
- Name of the range key. - Name of the range key.
required: false required: false
default: null
range_key_type: range_key_type:
description: description:
- Type of the range key. - Type of the range key.
@ -117,7 +120,7 @@ try:
from boto.dynamodb2.table import Table from boto.dynamodb2.table import Table
from boto.dynamodb2.fields import HashKey, RangeKey from boto.dynamodb2.fields import HashKey, RangeKey
from boto.dynamodb2.types import STRING, NUMBER, BINARY from boto.dynamodb2.types import STRING, NUMBER, BINARY
from boto.exception import BotoServerError, JSONResponseError from boto.exception import BotoServerError, NoAuthHandlerFound, JSONResponseError
HAS_BOTO = True HAS_BOTO = True
except ImportError: except ImportError:
@ -259,8 +262,15 @@ def main():
module.fail_json(msg='boto required for this module') module.fail_json(msg='boto required for this module')
region, ec2_url, aws_connect_params = get_aws_connection_info(module) region, ec2_url, aws_connect_params = get_aws_connection_info(module)
if not region:
module.fail_json(msg='region must be specified')
try:
connection = connect_to_aws(boto.dynamodb2, region, **aws_connect_params) connection = connect_to_aws(boto.dynamodb2, region, **aws_connect_params)
except (NoAuthHandlerFound, StandardError), e:
module.fail_json(msg=str(e))
state = module.params.get('state') state = module.params.get('state')
if state == 'present': if state == 'present':
create_or_update_dynamo_table(connection, module) create_or_update_dynamo_table(connection, module)
@ -272,4 +282,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()