summaryrefslogtreecommitdiffstats
path: root/ansible_collections/openstack/cloud/plugins/modules/config.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:04:41 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-13 12:04:41 +0000
commit975f66f2eebe9dadba04f275774d4ab83f74cf25 (patch)
tree89bd26a93aaae6a25749145b7e4bca4a1e75b2be /ansible_collections/openstack/cloud/plugins/modules/config.py
parentInitial commit. (diff)
downloadansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.tar.xz
ansible-975f66f2eebe9dadba04f275774d4ab83f74cf25.zip
Adding upstream version 7.7.0+dfsg.upstream/7.7.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/openstack/cloud/plugins/modules/config.py')
-rw-r--r--ansible_collections/openstack/cloud/plugins/modules/config.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/ansible_collections/openstack/cloud/plugins/modules/config.py b/ansible_collections/openstack/cloud/plugins/modules/config.py
new file mode 100644
index 000000000..94036e499
--- /dev/null
+++ b/ansible_collections/openstack/cloud/plugins/modules/config.py
@@ -0,0 +1,76 @@
+#!/usr/bin/python
+
+# Copyright (c) 2015 Hewlett-Packard Development Company, L.P.
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = '''
+---
+module: config
+short_description: Get OpenStack Client config
+description:
+ - Get I(openstack) client config data from clouds.yaml or environment
+notes:
+ - Facts are placed in the C(openstack.clouds) variable.
+options:
+ clouds:
+ description:
+ - List of clouds to limit the return list to. No value means return
+ information on all configured clouds
+ required: false
+ default: []
+ type: list
+ elements: str
+requirements:
+ - "python >= 3.6"
+ - "openstacksdk"
+author: OpenStack Ansible SIG
+'''
+
+EXAMPLES = '''
+- name: Get list of clouds that do not support security groups
+ openstack.cloud.config:
+
+- debug:
+ var: "{{ item }}"
+ with_items: "{{ openstack.clouds | rejectattr('secgroup_source', 'none') | list }}"
+
+- name: Get the information back just about the mordred cloud
+ openstack.cloud.config:
+ clouds:
+ - mordred
+'''
+
+try:
+ import openstack.config
+ from openstack import exceptions
+ HAS_OPENSTACKSDK = True
+except ImportError:
+ HAS_OPENSTACKSDK = False
+
+from ansible.module_utils.basic import AnsibleModule
+
+
+def main():
+ module = AnsibleModule(argument_spec=dict(
+ clouds=dict(required=False, type='list', default=[], elements='str'),
+ ))
+
+ if not HAS_OPENSTACKSDK:
+ module.fail_json(msg='openstacksdk is required for this module')
+
+ p = module.params
+
+ try:
+ config = openstack.config.OpenStackConfig()
+ clouds = []
+ for cloud in config.get_all_clouds():
+ if not p['clouds'] or cloud.name in p['clouds']:
+ cloud.config['name'] = cloud.name
+ clouds.append(cloud.config)
+ module.exit_json(ansible_facts=dict(openstack=dict(clouds=clouds)))
+ except exceptions.ConfigException as e:
+ module.fail_json(msg=str(e))
+
+
+if __name__ == "__main__":
+ main()