summaryrefslogtreecommitdiff
path: root/lib/ansible/module_utils
diff options
context:
space:
mode:
authorMatt Martz <matt@sivel.net>2013-11-19 12:51:04 -0600
committerMatt Martz <matt@sivel.net>2013-11-21 15:46:25 -0600
commit3f2cbb7583e59dd1737b73dd1ffb53229448e82f (patch)
tree8307d56d9a58078aa2136fb9ffff0ae46df4a0c5 /lib/ansible/module_utils
parent607680c2212047c19b5c76a5d97973cc54b4c457 (diff)
downloadansible-3f2cbb7583e59dd1737b73dd1ffb53229448e82f.tar.gz
Add ansible.module_utils.rax
Diffstat (limited to 'lib/ansible/module_utils')
-rw-r--r--lib/ansible/module_utils/rax.py46
1 files changed, 46 insertions, 0 deletions
diff --git a/lib/ansible/module_utils/rax.py b/lib/ansible/module_utils/rax.py
new file mode 100644
index 0000000000..ddb5193ae4
--- /dev/null
+++ b/lib/ansible/module_utils/rax.py
@@ -0,0 +1,46 @@
+import os
+
+
+def rax_argument_spec():
+ return dict(
+ api_key=dict(type='str'),
+ credentials=dict(type='str', aliases=['creds_file']),
+ region=dict(type='str'),
+ username=dict(type='str'),
+ )
+
+
+def rax_required_together():
+ return [['api_key', 'username']]
+
+
+def setup_rax_module(module, rax_module):
+ api_key = module.params.get('api_key')
+ credentials = module.params.get('credentials')
+ region = module.params.get('region')
+ username = module.params.get('username')
+
+ try:
+ username = username or os.environ.get('RAX_USERNAME')
+ api_key = api_key or os.environ.get('RAX_API_KEY')
+ credentials = (credentials or os.environ.get('RAX_CREDENTIALS') or
+ os.environ.get('RAX_CREDS_FILE'))
+ region = region or os.environ.get('RAX_REGION')
+ except KeyError, e:
+ module.fail_json(msg='Unable to load %s' % e.message)
+
+ try:
+ rax_module.set_setting('identity_type', 'rackspace')
+
+ if api_key and username:
+ rax_module.set_credentials(username, api_key=api_key,
+ region=region)
+ elif credentials:
+ credentials = os.path.expanduser(credentials)
+ rax_module.set_credential_file(credentials, region=region)
+ else:
+ raise Exception('No credentials supplied!')
+ except Exception, e:
+ module.fail_json(msg='%s' % e.message)
+
+ return rax_module