diff options
Diffstat (limited to 'ansible_collections/cloud/common/plugins/modules')
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() |