summaryrefslogtreecommitdiffstats
path: root/ansible_collections/cloud/common/plugins/modules
diff options
context:
space:
mode:
Diffstat (limited to 'ansible_collections/cloud/common/plugins/modules')
-rw-r--r--ansible_collections/cloud/common/plugins/modules/turbo_demo.py74
-rw-r--r--ansible_collections/cloud/common/plugins/modules/turbo_fail.py59
-rw-r--r--ansible_collections/cloud/common/plugins/modules/turbo_import.py46
3 files changed, 179 insertions, 0 deletions
diff --git a/ansible_collections/cloud/common/plugins/modules/turbo_demo.py b/ansible_collections/cloud/common/plugins/modules/turbo_demo.py
new file mode 100644
index 00000000..30093b55
--- /dev/null
+++ b/ansible_collections/cloud/common/plugins/modules/turbo_demo.py
@@ -0,0 +1,74 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright: (C) 2020, Gonéri Le Bouder <goneri@lebouder.net>
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+DOCUMENTATION = r"""
+---
+module: turbo_demo
+short_description: A demo module for ansible_module.turbo
+version_added: "1.0.0"
+description:
+- "This module is an example of an ansible_module.turbo integration."
+author:
+- Gonéri Le Bouder (@goneri)
+"""
+
+EXAMPLES = r"""
+- name: Run the module
+ cloud.common.turbo_demo:
+"""
+
+import os
+
+from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
+ AnsibleTurboModule as AnsibleModule,
+)
+
+
+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
+
+
+def get_message():
+ return f"This is me running with PID: {os.getpid()}, called {counter.i} time(s)"
+
+
+def run_module():
+ result = {}
+
+ # the AnsibleModule object will be our abstraction working with Ansible
+ # this includes instantiation, a couple of common attr would be the
+ # args/params passed to the execution, as well as if the module
+ # supports check mode
+ module = AnsibleModule(argument_spec={}, supports_check_mode=True)
+ module.collection_name = "cloud.common"
+ previous_value = counter.i
+ if not module.check_mode:
+ counter()
+ result["changed"] = True
+ result["message"] = get_message()
+ result["counter"] = counter.i
+ result["envvar"] = os.environ.get("TURBO_TEST_VAR")
+
+ if module._diff:
+ result["diff"] = {"before": previous_value, "after": counter.i}
+
+ module.exit_json(**result)
+
+
+def main():
+ from ansible_collections.cloud.common.plugins.module_utils import turbo_demo
+
+ run_module()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/ansible_collections/cloud/common/plugins/modules/turbo_fail.py b/ansible_collections/cloud/common/plugins/modules/turbo_fail.py
new file mode 100644
index 00000000..d9b4731f
--- /dev/null
+++ b/ansible_collections/cloud/common/plugins/modules/turbo_fail.py
@@ -0,0 +1,59 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# 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"""
+---
+module: turbo_fail
+short_description: A short module which honor additional args when calling fail_json
+version_added: "1.0.0"
+description:
+- "This module aims to test fail_json method on Ansible.turbo module"
+options:
+ params:
+ description:
+ - parameter to display in task output
+ required: false
+ type: dict
+author:
+- Aubin Bikouo (@abikouo)
+"""
+
+EXAMPLES = r"""
+- name: Fail without additional arguments
+ cloud.common.turbo_fail:
+
+- name: Fail with additional arguments
+ cloud.common.turbo_fail:
+ params:
+ test: "ansible"
+"""
+
+import os
+
+from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
+ AnsibleTurboModule as AnsibleModule,
+)
+
+
+def run_module():
+ module = AnsibleModule(
+ argument_spec=dict(
+ params=dict(type="dict"),
+ )
+ )
+ module.collection_name = "cloud.common"
+ msg = "ansible.cloud.fail"
+ if module.params.get("params"):
+ module.fail_json(msg=msg, **module.params.get("params"))
+ module.fail_json(msg=msg)
+
+
+def main():
+ run_module()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/ansible_collections/cloud/common/plugins/modules/turbo_import.py b/ansible_collections/cloud/common/plugins/modules/turbo_import.py
new file mode 100644
index 00000000..152107c4
--- /dev/null
+++ b/ansible_collections/cloud/common/plugins/modules/turbo_import.py
@@ -0,0 +1,46 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+# Copyright: (C) 2022, Red Hat
+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
+
+from __future__ import absolute_import, division, print_function
+
+__metaclass__ = type
+
+DOCUMENTATION = r"""
+---
+module: turbo_import
+short_description: A demo module to test import logic for turbo mode
+version_added: "1.0.0"
+description:
+- "This module tests the import logic for turbo mode."
+author:
+- Mike Graves (@gravesm)
+"""
+
+EXAMPLES = r"""
+- name: Run the module
+ cloud.common.turbo_import:
+"""
+
+
+from ansible_collections.cloud.common.plugins.module_utils.turbo.module import (
+ AnsibleTurboModule as AnsibleModule,
+)
+
+
+def run_module():
+ module = AnsibleModule(argument_spec={})
+ module.collection_name = "cloud.common"
+ module.exit_json(changed=False)
+
+
+def main():
+ from ansible_collections.cloud.common.plugins.module_utils import turbo_demo
+
+ run_module()
+
+
+if __name__ == "__main__":
+ main()