summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/old_style_cache_plugins/runme.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/old_style_cache_plugins/runme.sh')
-rwxr-xr-xtest/integration/targets/old_style_cache_plugins/runme.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/integration/targets/old_style_cache_plugins/runme.sh b/test/integration/targets/old_style_cache_plugins/runme.sh
new file mode 100755
index 0000000..ffa6723
--- /dev/null
+++ b/test/integration/targets/old_style_cache_plugins/runme.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+set -eux
+
+source virtualenv.sh
+
+trap 'ansible-playbook cleanup.yml' EXIT
+
+export PATH="$PATH:/usr/local/bin"
+
+ansible-playbook setup_redis_cache.yml "$@"
+
+# Cache should start empty
+redis-cli keys ansible_
+[ "$(redis-cli keys ansible_)" = "" ]
+
+export ANSIBLE_CACHE_PLUGINS=./plugins/cache
+export ANSIBLE_CACHE_PLUGIN_CONNECTION=localhost:6379:0
+export ANSIBLE_CACHE_PLUGIN_PREFIX='ansible_facts_'
+
+# Test legacy cache plugins (that use ansible.constants) and
+# new cache plugins that use config manager both work for facts.
+for fact_cache in legacy_redis configurable_redis; do
+
+ export ANSIBLE_CACHE_PLUGIN="$fact_cache"
+
+ # test set_fact with cacheable: true
+ ansible-playbook test_fact_gathering.yml --tags set_fact "$@"
+ [ "$(redis-cli keys ansible_facts_localhost | wc -l)" -eq 1 ]
+ ansible-playbook inspect_cache.yml --tags set_fact "$@"
+
+ # cache gathered facts in addition
+ ansible-playbook test_fact_gathering.yml --tags gather_facts "$@"
+ ansible-playbook inspect_cache.yml --tags additive_gather_facts "$@"
+
+ # flush cache and only cache gathered facts
+ ansible-playbook test_fact_gathering.yml --flush-cache --tags gather_facts --tags flush "$@"
+ ansible-playbook inspect_cache.yml --tags gather_facts "$@"
+
+ redis-cli del ansible_facts_localhost
+ unset ANSIBLE_CACHE_PLUGIN
+
+done
+
+# Legacy cache plugins need to be updated to use set_options/get_option to be compatible with inventory plugins.
+# Inventory plugins load cache options with the config manager.
+ansible-playbook test_inventory_cache.yml "$@"