diff options
Diffstat (limited to 'test/integration/targets/want_json_modules_posix')
4 files changed, 81 insertions, 0 deletions
diff --git a/test/integration/targets/want_json_modules_posix/aliases b/test/integration/targets/want_json_modules_posix/aliases new file mode 100644 index 0000000..1d28bdb --- /dev/null +++ b/test/integration/targets/want_json_modules_posix/aliases @@ -0,0 +1,2 @@ +shippable/posix/group5 +context/controller diff --git a/test/integration/targets/want_json_modules_posix/library/helloworld.py b/test/integration/targets/want_json_modules_posix/library/helloworld.py new file mode 100644 index 0000000..80f8761 --- /dev/null +++ b/test/integration/targets/want_json_modules_posix/library/helloworld.py @@ -0,0 +1,34 @@ +#!/usr/bin/python +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# WANT_JSON + +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +import json +import sys + +try: + with open(sys.argv[1], 'r') as f: + data = json.load(f) +except (IOError, OSError, IndexError): + print(json.dumps(dict(msg="No argument file provided", failed=True))) + sys.exit(1) + +salutation = data.get('salutation', 'Hello') +name = data.get('name', 'World') +print(json.dumps(dict(msg='%s, %s!' % (salutation, name)))) diff --git a/test/integration/targets/want_json_modules_posix/meta/main.yml b/test/integration/targets/want_json_modules_posix/meta/main.yml new file mode 100644 index 0000000..1810d4b --- /dev/null +++ b/test/integration/targets/want_json_modules_posix/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - setup_remote_tmp_dir diff --git a/test/integration/targets/want_json_modules_posix/tasks/main.yml b/test/integration/targets/want_json_modules_posix/tasks/main.yml new file mode 100644 index 0000000..27e9f78 --- /dev/null +++ b/test/integration/targets/want_json_modules_posix/tasks/main.yml @@ -0,0 +1,43 @@ +- name: Hello, World! + helloworld: + register: hello_world + +- assert: + that: + - 'hello_world.msg == "Hello, World!"' + +- name: Hello, Ansible! + helloworld: + args: + name: Ansible + register: hello_ansible + +- assert: + that: + - 'hello_ansible.msg == "Hello, Ansible!"' + +- name: Goodbye, Ansible! + helloworld: + args: + salutation: Goodbye + name: Ansible + register: goodbye_ansible + +- assert: + that: + - 'goodbye_ansible.msg == "Goodbye, Ansible!"' + +- name: Copy module to remote + copy: + src: "{{ role_path }}/library/helloworld.py" + dest: "{{ remote_tmp_dir }}/helloworld.py" + +- name: Execute module directly + command: '{{ ansible_python_interpreter|default(ansible_playbook_python) }} {{ remote_tmp_dir }}/helloworld.py' + register: direct + ignore_errors: true + +- assert: + that: + - direct is failed + - 'direct.stdout | from_json == {"msg": "No argument file provided", "failed": true}' |