summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/include_vars
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:03:01 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-14 20:03:01 +0000
commita453ac31f3428614cceb99027f8efbdb9258a40b (patch)
treef61f87408f32a8511cbd91799f9cececb53e0374 /test/integration/targets/include_vars
parentInitial commit. (diff)
downloadansible-upstream.tar.xz
ansible-upstream.zip
Adding upstream version 2.10.7+merged+base+2.10.8+dfsg.upstream/2.10.7+merged+base+2.10.8+dfsgupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/integration/targets/include_vars')
-rw-r--r--test/integration/targets/include_vars/aliases1
-rw-r--r--test/integration/targets/include_vars/defaults/main.yml3
-rw-r--r--test/integration/targets/include_vars/tasks/main.yml164
-rw-r--r--test/integration/targets/include_vars/vars/all/all.yml3
-rw-r--r--test/integration/targets/include_vars/vars/environments/development/all.yml3
-rw-r--r--test/integration/targets/include_vars/vars/environments/development/services/webapp.yml4
-rw-r--r--test/integration/targets/include_vars/vars/services/service_vars.yml2
-rw-r--r--test/integration/targets/include_vars/vars/services/service_vars_fqcn.yml3
-rw-r--r--test/integration/targets/include_vars/vars/services/webapp.yml4
-rw-r--r--test/integration/targets/include_vars/vars/webapp/file_without_extension2
10 files changed, 189 insertions, 0 deletions
diff --git a/test/integration/targets/include_vars/aliases b/test/integration/targets/include_vars/aliases
new file mode 100644
index 00000000..765b70da
--- /dev/null
+++ b/test/integration/targets/include_vars/aliases
@@ -0,0 +1 @@
+shippable/posix/group2
diff --git a/test/integration/targets/include_vars/defaults/main.yml b/test/integration/targets/include_vars/defaults/main.yml
new file mode 100644
index 00000000..901fb220
--- /dev/null
+++ b/test/integration/targets/include_vars/defaults/main.yml
@@ -0,0 +1,3 @@
+---
+testing: 1
+base_dir: defaults
diff --git a/test/integration/targets/include_vars/tasks/main.yml b/test/integration/targets/include_vars/tasks/main.yml
new file mode 100644
index 00000000..799d7b26
--- /dev/null
+++ b/test/integration/targets/include_vars/tasks/main.yml
@@ -0,0 +1,164 @@
+---
+- name: verify that the default value is indeed 1
+ assert:
+ that:
+ - "testing == 1"
+ - "base_dir == 'defaults'"
+
+- name: include the vars/environments/development/all.yml
+ include_vars:
+ file: environments/development/all.yml
+ register: included_one_file
+
+- name: verify that the correct file has been loaded and default value is indeed 789
+ assert:
+ that:
+ - "testing == 789"
+ - "base_dir == 'environments/development'"
+ - "{{ included_one_file.ansible_included_var_files | length }} == 1"
+ - "'vars/environments/development/all.yml' in included_one_file.ansible_included_var_files[0]"
+
+- name: include the vars/environments/development/all.yml and save results in all
+ include_vars:
+ file: environments/development/all.yml
+ name: all
+
+- name: verify that the values are stored in the all variable
+ assert:
+ that:
+ - "all['testing'] == 789"
+ - "all['base_dir'] == 'environments/development'"
+
+- name: include the all directory in vars
+ include_vars:
+ dir: all
+ depth: 1
+
+- name: verify that the default value is indeed 123
+ assert:
+ that:
+ - "testing == 123"
+ - "base_dir == 'all'"
+
+- name: include var files with extension only
+ include_vars:
+ dir: webapp
+ ignore_unknown_extensions: True
+ extensions: ['', 'yaml', 'yml', 'json']
+ register: include_without_file_extension
+
+- name: verify that only files with valid extensions are loaded
+ assert:
+ that:
+ - webapp_version is defined
+ - "'file_without_extension' in '{{ include_without_file_extension.ansible_included_var_files | join(' ') }}'"
+
+- name: include every directory in vars
+ include_vars:
+ dir: vars
+ extensions: ['', 'yaml', 'yml', 'json']
+ register: include_every_dir
+
+- name: verify that the correct files have been loaded and overwrite based on alphabetical order
+ assert:
+ that:
+ - "testing == 456"
+ - "base_dir == 'services'"
+ - "webapp_containers == 10"
+ - "{{ include_every_dir.ansible_included_var_files | length }} == 7"
+ - "'vars/all/all.yml' in include_every_dir.ansible_included_var_files[0]"
+ - "'vars/environments/development/all.yml' in include_every_dir.ansible_included_var_files[1]"
+ - "'vars/environments/development/services/webapp.yml' in include_every_dir.ansible_included_var_files[2]"
+ - "'vars/services/webapp.yml' in include_every_dir.ansible_included_var_files[5]"
+ - "'vars/webapp/file_without_extension' in include_every_dir.ansible_included_var_files[6]"
+
+- name: include every directory in vars except files matching webapp.yml
+ include_vars:
+ dir: vars
+ ignore_files:
+ - webapp.yml
+ - file_without_extension
+ register: include_without_webapp
+
+- name: verify that the webapp.yml file was not included
+ assert:
+ that:
+ - "testing == 789"
+ - "base_dir == 'environments/development'"
+ - "{{ include_without_webapp.ansible_included_var_files | length }} == 4"
+ - "'webapp.yml' not in '{{ include_without_webapp.ansible_included_var_files | join(' ') }}'"
+ - "'file_without_extension' not in '{{ include_without_webapp.ansible_included_var_files | join(' ') }}'"
+
+- name: include only files matching webapp.yml
+ include_vars:
+ dir: environments
+ files_matching: webapp.yml
+ register: include_match_webapp
+
+- name: verify that only files matching webapp.yml and in the environments directory get loaded.
+ assert:
+ that:
+ - "testing == 101112"
+ - "base_dir == 'development/services'"
+ - "webapp_containers == 20"
+ - "{{ include_match_webapp.ansible_included_var_files | length }} == 1"
+ - "'vars/environments/development/services/webapp.yml' in include_match_webapp.ansible_included_var_files[0]"
+ - "'all.yml' not in '{{ include_match_webapp.ansible_included_var_files | join(' ') }}'"
+
+- name: include only files matching webapp.yml and store results in webapp
+ include_vars:
+ dir: environments
+ files_matching: webapp.yml
+ name: webapp
+
+- name: verify that only files matching webapp.yml and in the environments directory get loaded into stored variable webapp.
+ assert:
+ that:
+ - "webapp['testing'] == 101112"
+ - "webapp['base_dir'] == 'development/services'"
+ - "webapp['webapp_containers'] == 20"
+
+- name: include var files without extension
+ include_vars:
+ dir: webapp
+ ignore_unknown_extensions: False
+ register: include_with_unknown_file_extension
+ ignore_errors: True
+
+- name: verify that files without valid extensions are loaded
+ assert:
+ that:
+ - "'a valid extension' in include_with_unknown_file_extension.message"
+
+- name: include var with raw params
+ include_vars: >
+ services/service_vars.yml
+
+- name: Verify that files with raw params is include without new line character
+ assert:
+ that:
+ - "service_name == 'my_custom_service'"
+
+- name: Check NoneType for raw params and file
+ include_vars:
+ file: "{{ lookup('first_found', possible_files, errors='ignore') }}"
+ vars:
+ possible_files:
+ - "does_not_exist.yml"
+ ignore_errors: True
+ register: include_with_non_existent_file
+
+- name: Verify that file and raw_params provide correct error message to user
+ assert:
+ that:
+ - "'Could not find file' in include_with_non_existent_file.message"
+
+- name: include var (FQCN) with raw params
+ ansible.builtin.include_vars: >
+ services/service_vars_fqcn.yml
+
+- name: Verify that FQCN of include_vars works
+ assert:
+ that:
+ - "'my_custom_service' == service_name_fqcn"
+ - "'my_custom_service' == service_name_tmpl_fqcn"
diff --git a/test/integration/targets/include_vars/vars/all/all.yml b/test/integration/targets/include_vars/vars/all/all.yml
new file mode 100644
index 00000000..14c3e92b
--- /dev/null
+++ b/test/integration/targets/include_vars/vars/all/all.yml
@@ -0,0 +1,3 @@
+---
+testing: 123
+base_dir: all
diff --git a/test/integration/targets/include_vars/vars/environments/development/all.yml b/test/integration/targets/include_vars/vars/environments/development/all.yml
new file mode 100644
index 00000000..9f370de5
--- /dev/null
+++ b/test/integration/targets/include_vars/vars/environments/development/all.yml
@@ -0,0 +1,3 @@
+---
+testing: 789
+base_dir: 'environments/development'
diff --git a/test/integration/targets/include_vars/vars/environments/development/services/webapp.yml b/test/integration/targets/include_vars/vars/environments/development/services/webapp.yml
new file mode 100644
index 00000000..a0a809c9
--- /dev/null
+++ b/test/integration/targets/include_vars/vars/environments/development/services/webapp.yml
@@ -0,0 +1,4 @@
+---
+testing: 101112
+base_dir: 'development/services'
+webapp_containers: 20
diff --git a/test/integration/targets/include_vars/vars/services/service_vars.yml b/test/integration/targets/include_vars/vars/services/service_vars.yml
new file mode 100644
index 00000000..96b05d6c
--- /dev/null
+++ b/test/integration/targets/include_vars/vars/services/service_vars.yml
@@ -0,0 +1,2 @@
+---
+service_name: 'my_custom_service' \ No newline at end of file
diff --git a/test/integration/targets/include_vars/vars/services/service_vars_fqcn.yml b/test/integration/targets/include_vars/vars/services/service_vars_fqcn.yml
new file mode 100644
index 00000000..2c04fee5
--- /dev/null
+++ b/test/integration/targets/include_vars/vars/services/service_vars_fqcn.yml
@@ -0,0 +1,3 @@
+---
+service_name_fqcn: 'my_custom_service'
+service_name_tmpl_fqcn: '{{ service_name_fqcn }}' \ No newline at end of file
diff --git a/test/integration/targets/include_vars/vars/services/webapp.yml b/test/integration/targets/include_vars/vars/services/webapp.yml
new file mode 100644
index 00000000..f0dcc8b5
--- /dev/null
+++ b/test/integration/targets/include_vars/vars/services/webapp.yml
@@ -0,0 +1,4 @@
+---
+testing: 456
+base_dir: services
+webapp_containers: 10
diff --git a/test/integration/targets/include_vars/vars/webapp/file_without_extension b/test/integration/targets/include_vars/vars/webapp/file_without_extension
new file mode 100644
index 00000000..9cfb60fb
--- /dev/null
+++ b/test/integration/targets/include_vars/vars/webapp/file_without_extension
@@ -0,0 +1,2 @@
+---
+webapp_version: "1"