Add host/group vars
This adds job-level definitions of Ansible host variables and group
variables.
Change-Id: I259144a8560f8fa5ff5990620854fed2002c8951
diff --git a/tests/base.py b/tests/base.py
index 70889bb..96491f9 100755
--- a/tests/base.py
+++ b/tests/base.py
@@ -1325,7 +1325,7 @@
host['host_vars']['ansible_connection'] = 'local'
hosts.append(dict(
- name=['localhost'],
+ name='localhost',
host_vars=dict(ansible_connection='local'),
host_keys=[]))
return hosts
diff --git a/tests/fixtures/config/ansible/git/common-config/playbooks/check-hostvars.yaml b/tests/fixtures/config/ansible/git/common-config/playbooks/check-hostvars.yaml
new file mode 100644
index 0000000..36e0eca
--- /dev/null
+++ b/tests/fixtures/config/ansible/git/common-config/playbooks/check-hostvars.yaml
@@ -0,0 +1,26 @@
+- hosts: host1
+ tasks:
+ - name: Assert hostvar is present.
+ assert:
+ that:
+ - allvar == 'all'
+ - hostvar == 'host'
+ - groupvar is not defined
+
+- hosts: host2
+ tasks:
+ - name: Assert groupvar is present.
+ assert:
+ that:
+ - allvar == 'all'
+ - hostvar is not defined
+ - groupvar == 'group'
+
+- hosts: host3
+ tasks:
+ - name: Assert groupvar is present.
+ assert:
+ that:
+ - allvar == 'all'
+ - hostvar is not defined
+ - groupvar == 'group'
diff --git a/tests/fixtures/config/ansible/git/common-config/zuul.yaml b/tests/fixtures/config/ansible/git/common-config/zuul.yaml
index d0a8f7b..7637a08 100644
--- a/tests/fixtures/config/ansible/git/common-config/zuul.yaml
+++ b/tests/fixtures/config/ansible/git/common-config/zuul.yaml
@@ -115,6 +115,32 @@
- job:
parent: python27
+ name: check-hostvars
+ run: playbooks/check-hostvars.yaml
+ nodeset:
+ nodes:
+ - name: host1
+ label: ubuntu-xenial
+ - name: host2
+ label: ubuntu-xenial
+ - name: host3
+ label: ubuntu-xenial
+ groups:
+ - name: group1
+ nodes:
+ - host2
+ - host3
+ vars:
+ allvar: all
+ host_vars:
+ host1:
+ hostvar: host
+ group_vars:
+ group1:
+ groupvar: group
+
+- job:
+ parent: python27
name: check-secret-names
run: playbooks/check-secret-names.yaml
nodeset:
diff --git a/tests/fixtures/config/ansible/git/org_project/.zuul.yaml b/tests/fixtures/config/ansible/git/org_project/.zuul.yaml
index 447f6cd..142625f 100644
--- a/tests/fixtures/config/ansible/git/org_project/.zuul.yaml
+++ b/tests/fixtures/config/ansible/git/org_project/.zuul.yaml
@@ -15,6 +15,7 @@
- python27
- faillocal
- check-vars
+ - check-hostvars
- check-secret-names
- timeout
- hello-world
diff --git a/tests/unit/test_executor.py b/tests/unit/test_executor.py
index 46e1d99..c67eb55 100755
--- a/tests/unit/test_executor.py
+++ b/tests/unit/test_executor.py
@@ -425,12 +425,14 @@
node = {'name': 'fake-host',
'host_keys': ['fake-host-key'],
'interface_ip': 'localhost'}
- keys = self.test_job.getHostList({'nodes': [node]})[0]['host_keys']
+ keys = self.test_job.getHostList({'nodes': [node],
+ 'host_vars': {}})[0]['host_keys']
self.assertEqual(keys[0], 'localhost fake-host-key')
# Test with custom connection_port set
node['connection_port'] = 22022
- keys = self.test_job.getHostList({'nodes': [node]})[0]['host_keys']
+ keys = self.test_job.getHostList({'nodes': [node],
+ 'host_vars': {}})[0]['host_keys']
self.assertEqual(keys[0], '[localhost]:22022 fake-host-key')