summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/plugin_filtering
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/plugin_filtering')
-rw-r--r--test/integration/targets/plugin_filtering/aliases2
-rw-r--r--test/integration/targets/plugin_filtering/copy.yml10
-rw-r--r--test/integration/targets/plugin_filtering/filter_lookup.ini4
-rw-r--r--test/integration/targets/plugin_filtering/filter_lookup.yml6
-rw-r--r--test/integration/targets/plugin_filtering/filter_modules.ini4
-rw-r--r--test/integration/targets/plugin_filtering/filter_modules.yml9
-rw-r--r--test/integration/targets/plugin_filtering/filter_ping.ini4
-rw-r--r--test/integration/targets/plugin_filtering/filter_ping.yml5
-rw-r--r--test/integration/targets/plugin_filtering/filter_stat.ini4
-rw-r--r--test/integration/targets/plugin_filtering/filter_stat.yml5
-rw-r--r--test/integration/targets/plugin_filtering/lookup.yml14
-rw-r--r--test/integration/targets/plugin_filtering/no_blacklist_module.ini3
-rw-r--r--test/integration/targets/plugin_filtering/no_blacklist_module.yml3
-rw-r--r--test/integration/targets/plugin_filtering/no_filters.ini4
-rw-r--r--test/integration/targets/plugin_filtering/pause.yml6
-rw-r--r--test/integration/targets/plugin_filtering/ping.yml6
-rwxr-xr-xtest/integration/targets/plugin_filtering/runme.sh137
-rw-r--r--test/integration/targets/plugin_filtering/stat.yml6
-rw-r--r--test/integration/targets/plugin_filtering/tempfile.yml9
19 files changed, 241 insertions, 0 deletions
diff --git a/test/integration/targets/plugin_filtering/aliases b/test/integration/targets/plugin_filtering/aliases
new file mode 100644
index 0000000..8278ec8
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/aliases
@@ -0,0 +1,2 @@
+shippable/posix/group3
+context/controller
diff --git a/test/integration/targets/plugin_filtering/copy.yml b/test/integration/targets/plugin_filtering/copy.yml
new file mode 100644
index 0000000..083386a
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/copy.yml
@@ -0,0 +1,10 @@
+---
+- hosts: testhost
+ gather_facts: False
+ tasks:
+ - copy:
+ content: 'Testing 1... 2... 3...'
+ dest: ./testing.txt
+ - file:
+ state: absent
+ path: ./testing.txt
diff --git a/test/integration/targets/plugin_filtering/filter_lookup.ini b/test/integration/targets/plugin_filtering/filter_lookup.ini
new file mode 100644
index 0000000..c14afad
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_lookup.ini
@@ -0,0 +1,4 @@
+[defaults]
+retry_files_enabled = False
+plugin_filters_cfg = ./filter_lookup.yml
+
diff --git a/test/integration/targets/plugin_filtering/filter_lookup.yml b/test/integration/targets/plugin_filtering/filter_lookup.yml
new file mode 100644
index 0000000..694ebfc
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_lookup.yml
@@ -0,0 +1,6 @@
+---
+filter_version: 1.0
+module_blacklist:
+ # Specify the name of a lookup plugin here. This should have no effect as
+ # this is only for filtering modules
+ - list
diff --git a/test/integration/targets/plugin_filtering/filter_modules.ini b/test/integration/targets/plugin_filtering/filter_modules.ini
new file mode 100644
index 0000000..97e672f
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_modules.ini
@@ -0,0 +1,4 @@
+[defaults]
+retry_files_enabled = False
+plugin_filters_cfg = ./filter_modules.yml
+
diff --git a/test/integration/targets/plugin_filtering/filter_modules.yml b/test/integration/targets/plugin_filtering/filter_modules.yml
new file mode 100644
index 0000000..6cffa67
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_modules.yml
@@ -0,0 +1,9 @@
+---
+filter_version: 1.0
+module_blacklist:
+ # A pure action plugin
+ - pause
+ # A hybrid action plugin with module
+ - copy
+ # A pure module
+ - tempfile
diff --git a/test/integration/targets/plugin_filtering/filter_ping.ini b/test/integration/targets/plugin_filtering/filter_ping.ini
new file mode 100644
index 0000000..b837bd7
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_ping.ini
@@ -0,0 +1,4 @@
+[defaults]
+retry_files_enabled = False
+plugin_filters_cfg = ./filter_ping.yml
+
diff --git a/test/integration/targets/plugin_filtering/filter_ping.yml b/test/integration/targets/plugin_filtering/filter_ping.yml
new file mode 100644
index 0000000..08e56f2
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_ping.yml
@@ -0,0 +1,5 @@
+---
+filter_version: 1.0
+module_blacklist:
+ # Ping is special
+ - ping
diff --git a/test/integration/targets/plugin_filtering/filter_stat.ini b/test/integration/targets/plugin_filtering/filter_stat.ini
new file mode 100644
index 0000000..7d18f11
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_stat.ini
@@ -0,0 +1,4 @@
+[defaults]
+retry_files_enabled = False
+plugin_filters_cfg = ./filter_stat.yml
+
diff --git a/test/integration/targets/plugin_filtering/filter_stat.yml b/test/integration/targets/plugin_filtering/filter_stat.yml
new file mode 100644
index 0000000..c1ce42e
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/filter_stat.yml
@@ -0,0 +1,5 @@
+---
+filter_version: 1.0
+module_blacklist:
+ # Stat is special
+ - stat
diff --git a/test/integration/targets/plugin_filtering/lookup.yml b/test/integration/targets/plugin_filtering/lookup.yml
new file mode 100644
index 0000000..de6d1b4
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/lookup.yml
@@ -0,0 +1,14 @@
+---
+- hosts: testhost
+ gather_facts: False
+ vars:
+ data:
+ - one
+ - two
+ tasks:
+ - debug:
+ msg: '{{ lookup("list", data) }}'
+
+ - debug:
+ msg: '{{ item }}'
+ with_list: '{{ data }}'
diff --git a/test/integration/targets/plugin_filtering/no_blacklist_module.ini b/test/integration/targets/plugin_filtering/no_blacklist_module.ini
new file mode 100644
index 0000000..65b51d6
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/no_blacklist_module.ini
@@ -0,0 +1,3 @@
+[defaults]
+retry_files_enabled = False
+plugin_filters_cfg = ./no_blacklist_module.yml
diff --git a/test/integration/targets/plugin_filtering/no_blacklist_module.yml b/test/integration/targets/plugin_filtering/no_blacklist_module.yml
new file mode 100644
index 0000000..52a55df
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/no_blacklist_module.yml
@@ -0,0 +1,3 @@
+---
+filter_version: 1.0
+module_blacklist:
diff --git a/test/integration/targets/plugin_filtering/no_filters.ini b/test/integration/targets/plugin_filtering/no_filters.ini
new file mode 100644
index 0000000..e4eed7b
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/no_filters.ini
@@ -0,0 +1,4 @@
+[defaults]
+retry_files_enabled = False
+plugin_filters_cfg = ./empty.yml
+
diff --git a/test/integration/targets/plugin_filtering/pause.yml b/test/integration/targets/plugin_filtering/pause.yml
new file mode 100644
index 0000000..e2c1ef9
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/pause.yml
@@ -0,0 +1,6 @@
+---
+- hosts: testhost
+ gather_facts: False
+ tasks:
+ - pause:
+ seconds: 1
diff --git a/test/integration/targets/plugin_filtering/ping.yml b/test/integration/targets/plugin_filtering/ping.yml
new file mode 100644
index 0000000..9e2214b
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/ping.yml
@@ -0,0 +1,6 @@
+---
+- hosts: testhost
+ gather_facts: False
+ tasks:
+ - ping:
+ data: 'Testing 1... 2... 3...'
diff --git a/test/integration/targets/plugin_filtering/runme.sh b/test/integration/targets/plugin_filtering/runme.sh
new file mode 100755
index 0000000..aa0e2b0
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/runme.sh
@@ -0,0 +1,137 @@
+#!/usr/bin/env bash
+
+set -ux
+
+#
+# Check that with no filters set, all of these modules run as expected
+#
+ANSIBLE_CONFIG=no_filters.ini ansible-playbook copy.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to run copy with no filters applied"
+ exit 1
+fi
+ANSIBLE_CONFIG=no_filters.ini ansible-playbook pause.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to run pause with no filters applied"
+ exit 1
+fi
+ANSIBLE_CONFIG=no_filters.ini ansible-playbook tempfile.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to run tempfile with no filters applied"
+ exit 1
+fi
+
+#
+# Check that if no modules are blacklisted then Ansible should not through traceback
+#
+ANSIBLE_CONFIG=no_blacklist_module.ini ansible-playbook tempfile.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to run tempfile with no modules blacklisted"
+ exit 1
+fi
+
+#
+# Check that with these modules filtered out, all of these modules fail to be found
+#
+ANSIBLE_CONFIG=filter_modules.ini ansible-playbook copy.yml -i ../../inventory -v "$@"
+if test $? = 0 ; then
+ echo "### Failed to prevent copy from running"
+ exit 1
+else
+ echo "### Copy was prevented from running as expected"
+fi
+ANSIBLE_CONFIG=filter_modules.ini ansible-playbook pause.yml -i ../../inventory -v "$@"
+if test $? = 0 ; then
+ echo "### Failed to prevent pause from running"
+ exit 1
+else
+ echo "### pause was prevented from running as expected"
+fi
+ANSIBLE_CONFIG=filter_modules.ini ansible-playbook tempfile.yml -i ../../inventory -v "$@"
+if test $? = 0 ; then
+ echo "### Failed to prevent tempfile from running"
+ exit 1
+else
+ echo "### tempfile was prevented from running as expected"
+fi
+
+#
+# ping is a special module as we test for its existence. Check it specially
+#
+
+# Check that ping runs with no filter
+ANSIBLE_CONFIG=no_filters.ini ansible-playbook ping.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to run ping with no filters applied"
+ exit 1
+fi
+
+# Check that other modules run with ping filtered
+ANSIBLE_CONFIG=filter_ping.ini ansible-playbook copy.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to run copy when a filter was applied to ping"
+ exit 1
+fi
+# Check that ping fails to run when it is filtered
+ANSIBLE_CONFIG=filter_ping.ini ansible-playbook ping.yml -i ../../inventory -v "$@"
+if test $? = 0 ; then
+ echo "### Failed to prevent ping from running"
+ exit 1
+else
+ echo "### Ping was prevented from running as expected"
+fi
+
+#
+# Check that specifying a lookup plugin in the filter has no effect
+#
+
+ANSIBLE_CONFIG=filter_lookup.ini ansible-playbook lookup.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to use a lookup plugin when it is incorrectly specified in the *module* blacklist"
+ exit 1
+fi
+
+#
+# stat is a special module as we use it to run nearly every other module. Check it specially
+#
+
+# Check that stat runs with no filter
+ANSIBLE_CONFIG=no_filters.ini ansible-playbook stat.yml -i ../../inventory -vvv "$@"
+if test $? != 0 ; then
+ echo "### Failed to run stat with no filters applied"
+ exit 1
+fi
+
+# Check that running another module when stat is filtered gives us our custom error message
+ANSIBLE_CONFIG=filter_stat.ini
+export ANSIBLE_CONFIG
+CAPTURE=$(ansible-playbook copy.yml -i ../../inventory -vvv "$@" 2>&1)
+if test $? = 0 ; then
+ echo "### Copy ran even though stat is in the module blacklist"
+ exit 1
+else
+ echo "$CAPTURE" | grep 'The stat module was specified in the module blacklist file,.*, but Ansible will not function without the stat module. Please remove stat from the blacklist.'
+ if test $? != 0 ; then
+ echo "### Stat did not give us our custom error message"
+ exit 1
+ fi
+ echo "### Filtering stat failed with our custom error message as expected"
+fi
+unset ANSIBLE_CONFIG
+
+# Check that running stat when stat is filtered gives our custom error message
+ANSIBLE_CONFIG=filter_stat.ini
+export ANSIBLE_CONFIG
+CAPTURE=$(ansible-playbook stat.yml -i ../../inventory -vvv "$@" 2>&1)
+if test $? = 0 ; then
+ echo "### Stat ran even though it is in the module blacklist"
+ exit 1
+else
+ echo "$CAPTURE" | grep 'The stat module was specified in the module blacklist file,.*, but Ansible will not function without the stat module. Please remove stat from the blacklist.'
+ if test $? != 0 ; then
+ echo "### Stat did not give us our custom error message"
+ exit 1
+ fi
+ echo "### Filtering stat failed with our custom error message as expected"
+fi
+unset ANSIBLE_CONFIG
diff --git a/test/integration/targets/plugin_filtering/stat.yml b/test/integration/targets/plugin_filtering/stat.yml
new file mode 100644
index 0000000..4f24baa
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/stat.yml
@@ -0,0 +1,6 @@
+---
+- hosts: testhost
+ gather_facts: False
+ tasks:
+ - stat:
+ path: '/'
diff --git a/test/integration/targets/plugin_filtering/tempfile.yml b/test/integration/targets/plugin_filtering/tempfile.yml
new file mode 100644
index 0000000..0646354
--- /dev/null
+++ b/test/integration/targets/plugin_filtering/tempfile.yml
@@ -0,0 +1,9 @@
+---
+- hosts: testhost
+ gather_facts: False
+ tasks:
+ - tempfile:
+ register: temp_result
+ - file:
+ state: absent
+ path: '{{ temp_result["path"] }}'