diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:04:41 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:04:41 +0000 |
commit | 975f66f2eebe9dadba04f275774d4ab83f74cf25 (patch) | |
tree | 89bd26a93aaae6a25749145b7e4bca4a1e75b2be /ansible_collections/cloud/common/plugins/lookup | |
parent | Initial commit. (diff) | |
download | ansible-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/cloud/common/plugins/lookup')
-rw-r--r-- | ansible_collections/cloud/common/plugins/lookup/turbo_demo.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/ansible_collections/cloud/common/plugins/lookup/turbo_demo.py b/ansible_collections/cloud/common/plugins/lookup/turbo_demo.py new file mode 100644 index 000000000..88778cd67 --- /dev/null +++ b/ansible_collections/cloud/common/plugins/lookup/turbo_demo.py @@ -0,0 +1,69 @@ +# Copyright: (c) 2021, Aubin Bikouo (@abikouo) +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +DOCUMENTATION = r""" +name: turbo_demo +author: + - Aubin Bikouo (@abikouo) + +short_description: A demo for lookup plugins on cloud.common +description: + - return the parent process of the running process +options: + playbook_vars: + description: list of playbook variables to add in the output. + type: list + elements: str +""" + +EXAMPLES = r""" +""" + +RETURN = r""" +""" + + +import os +import sys +import traceback + +from ansible_collections.cloud.common.plugins.plugin_utils.turbo.lookup import ( + TurboLookupBase as LookupBase, +) + + +def counter(): + counter.i += 1 + return counter.i + + +# NOTE: workaround to avoid a warning with ansible-doc +if True: # pylint: disable=using-constant-test + counter.i = 0 + + +async def execute(terms, variables, playbook_vars): + result = [] + result.append("running from pid: {pid}".format(pid=os.getpid())) + if playbook_vars is not None: + result += [ + variables["vars"].get(x) for x in playbook_vars if x in variables["vars"] + ] + if terms: + result += terms + + for id, stack in list(sys._current_frames().items()): + for fname, line_id, name, line in traceback.extract_stack(stack): + if fname == __file__: + continue + + result.append("turbo_demo_counter: {0}".format(counter())) + return result + + +class LookupModule(LookupBase): + async def _run(self, terms, variables=None, playbook_vars=None): + result = await execute(terms, variables, playbook_vars) + return result + + run = _run if not hasattr(LookupBase, "run_on_daemon") else LookupBase.run_on_daemon |