mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-23 21:30:22 -07:00
add etcd3 lookup plugin (#127)
* add etcd3 lookup plugin * retire version_added tag Co-Authored-By: Felix Fontein <felix@fontein.de> * typo fixes Co-Authored-By: Felix Fontein <felix@fontein.de> * fix YAML syntax in example Co-Authored-By: Felix Fontein <felix@fontein.de> * typo fixes Co-Authored-By: Felix Fontein <felix@fontein.de> * remove python shebang as it is useless in Ansible lookup module Co-Authored-By: Felix Fontein <felix@fontein.de> * Update plugins/lookup/etcd3.py typo Co-Authored-By: Felix Fontein <felix@fontein.de> * fixes: - replaced LookupBase._display by ansible.utils.display.Display - add regex to retrieve host and port from ETCDCTL_ENDPOINTS env - add env support for user, password, timeout * fixes: - use short form for types - update doc section with envs - catch exceptions between etcd3 api calls * etcd3 lookup pass ansible sanity checks introduce ansible integration tests for etcd3 lookup * extract etcd3 setup from existing etcd3 module integration test * fix etcd3 module/lookup integration tests * fixes: - fix port option in docstring - raise connecttion error - fix display format issues - fix ETCDCTL_ENDPOINTS regex adds: - basic unit tests * fix sanity issues * add etcd3 lookup plugin * retire version_added tag Co-Authored-By: Felix Fontein <felix@fontein.de> * typo fixes Co-Authored-By: Felix Fontein <felix@fontein.de> * fix YAML syntax in example Co-Authored-By: Felix Fontein <felix@fontein.de> * typo fixes Co-Authored-By: Felix Fontein <felix@fontein.de> * remove python shebang as it is useless in Ansible lookup module Co-Authored-By: Felix Fontein <felix@fontein.de> * Update plugins/lookup/etcd3.py typo Co-Authored-By: Felix Fontein <felix@fontein.de> * fixes: - replaced LookupBase._display by ansible.utils.display.Display - add regex to retrieve host and port from ETCDCTL_ENDPOINTS env - add env support for user, password, timeout * fixes: - use short form for types - update doc section with envs - catch exceptions between etcd3 api calls * etcd3 lookup pass ansible sanity checks introduce ansible integration tests for etcd3 lookup * extract etcd3 setup from existing etcd3 module integration test * fix etcd3 module/lookup integration tests * fixes: - fix port option in docstring - raise connecttion error - fix display format issues - fix ETCDCTL_ENDPOINTS regex adds: - basic unit tests * fix sanity issues * changes: - replace kwargs lookups with get_option() - add 'entpoint' option for correct handling of ETCDCTL_ENDPOINTS env - code simplification * fix etcd3 lookup unit test: replace LookupModule instanciation with lookup_loader * fix sanity checks * etcd3 changes: - docstring documentation fixes/updates - create etcd3 cnx object with a get_option() loop instead of copying 'private' class object - set 'endpoints' option mutually exclusive with 'host' and 'port' (raises an AnsibleError exception) * etcd3 changes: - added ANSIBLE_METADATA, - added default value for 'endpoints' option, - removed defaults for options 'host' and 'port', - fixed docstring links, - added 'notes' and 'seealso' sections in doctring - updated options code handling to reflect docstring's updates * etcd3 changes: - fix descriptions for endpoints, host, and port options - update notes sections - fix reference to etcd lookup plugin in seealso section - fix return docstring - remove useless logging - obfuscates password in connection logging * more pythonic lookup on dict keys Co-Authored-By: Felix Fontein <felix@fontein.de> * Update password obfuscation Co-Authored-By: Felix Fontein <felix@fontein.de> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
61cf2b74c4
commit
695eed943b
17 changed files with 510 additions and 0 deletions
1
tests/integration/targets/setup_etcd3/vars/RedHat-7.yml
Normal file
1
tests/integration/targets/setup_etcd3/vars/RedHat-7.yml
Normal file
|
@ -0,0 +1 @@
|
|||
etcd3_pip_module: etcd3<0.12
|
3
tests/integration/targets/setup_etcd3/vars/Suse-py3.yml
Normal file
3
tests/integration/targets/setup_etcd3/vars/Suse-py3.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
# SuSE's python 3.6.10 comes with six 1.11.0 as distutil
|
||||
# we restrict to etcd3 < 0.11 to avoid pip to try to upgrade six
|
||||
etcd3_pip_module: 'etcd3<0.11'
|
3
tests/integration/targets/setup_etcd3/vars/Suse.yml
Normal file
3
tests/integration/targets/setup_etcd3/vars/Suse.yml
Normal file
|
@ -0,0 +1,3 @@
|
|||
# SuSE's python 3.6.10 comes with six 1.11.0 as distutil
|
||||
# we restrict to etcd3 < 0.11 to avoid pip to try to upgrade six
|
||||
etcd3_pip_module: 'etcd3<0.11'
|
2
tests/integration/targets/setup_etcd3/vars/default.yml
Normal file
2
tests/integration/targets/setup_etcd3/vars/default.yml
Normal file
|
@ -0,0 +1,2 @@
|
|||
---
|
||||
# default should don't touch anything
|
Loading…
Add table
Add a link
Reference in a new issue