diff options
author | Matt Martz <matt@sivel.net> | 2013-11-19 12:51:04 -0600 |
---|---|---|
committer | Matt Martz <matt@sivel.net> | 2013-11-21 15:46:25 -0600 |
commit | 3f2cbb7583e59dd1737b73dd1ffb53229448e82f (patch) | |
tree | 8307d56d9a58078aa2136fb9ffff0ae46df4a0c5 /lib/ansible/module_utils | |
parent | 607680c2212047c19b5c76a5d97973cc54b4c457 (diff) | |
download | ansible-3f2cbb7583e59dd1737b73dd1ffb53229448e82f.tar.gz |
Add ansible.module_utils.rax
Diffstat (limited to 'lib/ansible/module_utils')
-rw-r--r-- | lib/ansible/module_utils/rax.py | 46 |
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 |