From 3db4039ad115e272a8c677c76336dc2d0d5d321e Mon Sep 17 00:00:00 2001 From: Rene Moser Date: Tue, 25 Aug 2015 13:54:21 +0200 Subject: [PATCH] cloudstack: implement general api_region support, update docs --- lib/ansible/module_utils/cloudstack.py | 3 ++- .../utils/module_docs_fragments/cloudstack.py | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/ansible/module_utils/cloudstack.py b/lib/ansible/module_utils/cloudstack.py index 5bfd3d2db9f..b4d7cd4db13 100644 --- a/lib/ansible/module_utils/cloudstack.py +++ b/lib/ansible/module_utils/cloudstack.py @@ -94,7 +94,8 @@ class AnsibleCloudStack(object): method=api_http_method ) else: - self.cs = CloudStack(**read_config()) + api_region = self.module.params.get('api_region', 'cloudstack') + self.cs = CloudStack(**read_config(api_region)) def get_or_fallback(self, key=None, fallback_key=None): diff --git a/lib/ansible/utils/module_docs_fragments/cloudstack.py b/lib/ansible/utils/module_docs_fragments/cloudstack.py index bafb7b4c15a..3826f7aba2c 100644 --- a/lib/ansible/utils/module_docs_fragments/cloudstack.py +++ b/lib/ansible/utils/module_docs_fragments/cloudstack.py @@ -48,18 +48,25 @@ options: - HTTP timeout. required: false default: 10 + api_region: + description: + - Name of the ini section in the C(cloustack.ini) file. + required: false + default: cloudstack requirements: - "python >= 2.6" - - cs + - "cs >= 0.6.10" notes: - Ansible uses the C(cs) library's configuration method if credentials are not - provided by the options C(api_url), C(api_key), C(api_secret). + provided by the arguments C(api_url), C(api_key), C(api_secret). Configuration is read from several locations, in the following order. - The C(CLOUDSTACK_ENDPOINT), C(CLOUDSTACK_KEY), C(CLOUDSTACK_SECRET) and C(CLOUDSTACK_METHOD). C(CLOUDSTACK_TIMEOUT) environment variables. - A C(CLOUDSTACK_CONFIG) environment variable pointing to an C(.ini) file, - A C(cloudstack.ini) file in the current working directory. - A C(.cloudstack.ini) file in the users home directory. - See https://github.com/exoscale/cs for more information. + Optionally multiple credentials and endpoints can be specified using ini sections in C(cloudstack.ini). + Use the argument C(api_region) to select the section name, default section is C(cloudstack). + See https://github.com/exoscale/cs for more information. - This module supports check mode. '''