summaryrefslogtreecommitdiff
path: root/zuul
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2017-12-06 18:56:28 +0000
committerGerrit Code Review <review@openstack.org>2017-12-06 18:56:28 +0000
commit64fc17b58db3e71e6fc18a888a1df17854828f40 (patch)
tree2ae3e97e80829e8cee4c7b07b82467d3c3208c25 /zuul
parent9bab764dacb9457493faf437aabe6d09dd02f679 (diff)
parentecb0b84f112e87f773431197fb794a79f5c00114 (diff)
downloadzuul-64fc17b58db3e71e6fc18a888a1df17854828f40.tar.gz
Merge "Add support for shared ansible_host in inventory" into feature/zuulv3
Diffstat (limited to 'zuul')
-rw-r--r--zuul/configloader.py12
-rw-r--r--zuul/executor/server.py3
-rw-r--r--zuul/model.py7
3 files changed, 13 insertions, 9 deletions
diff --git a/zuul/configloader.py b/zuul/configloader.py
index bcb3e49ec..fb1695c18 100644
--- a/zuul/configloader.py
+++ b/zuul/configloader.py
@@ -340,7 +340,7 @@ class PragmaParser(object):
class NodeSetParser(object):
@staticmethod
def getSchema(anonymous=False):
- node = {vs.Required('name'): str,
+ node = {vs.Required('name'): to_list(str),
vs.Required('label'): str,
}
@@ -365,11 +365,13 @@ class NodeSetParser(object):
node_names = set()
group_names = set()
for conf_node in as_list(conf['nodes']):
- if conf_node['name'] in node_names:
- raise DuplicateNodeError(conf['name'], conf_node['name'])
- node = model.Node(conf_node['name'], conf_node['label'])
+ for name in as_list(conf_node['name']):
+ if name in node_names:
+ raise DuplicateNodeError(name, conf_node['name'])
+ node = model.Node(as_list(conf_node['name']), conf_node['label'])
ns.addNode(node)
- node_names.add(conf_node['name'])
+ for name in as_list(conf_node['name']):
+ node_names.add(name)
for conf_group in as_list(conf.get('groups', [])):
for node_name in as_list(conf_group['nodes']):
if node_name not in node_names:
diff --git a/zuul/executor/server.py b/zuul/executor/server.py
index 696920111..83fdc3ce0 100644
--- a/zuul/executor/server.py
+++ b/zuul/executor/server.py
@@ -497,7 +497,8 @@ def make_inventory_dict(nodes, groups, all_vars):
hosts = {}
for node in nodes:
- hosts[node['name']] = node['host_vars']
+ for name in node['name']:
+ hosts[name] = node['host_vars']
inventory = {
'all': {
diff --git a/zuul/model.py b/zuul/model.py
index f3f358be2..3b49591bc 100644
--- a/zuul/model.py
+++ b/zuul/model.py
@@ -498,9 +498,10 @@ class NodeSet(object):
return n
def addNode(self, node):
- if node.name in self.nodes:
- raise Exception("Duplicate node in %s" % (self,))
- self.nodes[node.name] = node
+ for name in node.name:
+ if name in self.nodes:
+ raise Exception("Duplicate node in %s" % (self,))
+ self.nodes[tuple(node.name)] = node
def getNodes(self):
return list(self.nodes.values())