diff options
author | Zuul <zuul@review.openstack.org> | 2017-12-06 18:56:28 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2017-12-06 18:56:28 +0000 |
commit | 64fc17b58db3e71e6fc18a888a1df17854828f40 (patch) | |
tree | 2ae3e97e80829e8cee4c7b07b82467d3c3208c25 /zuul | |
parent | 9bab764dacb9457493faf437aabe6d09dd02f679 (diff) | |
parent | ecb0b84f112e87f773431197fb794a79f5c00114 (diff) | |
download | zuul-64fc17b58db3e71e6fc18a888a1df17854828f40.tar.gz |
Merge "Add support for shared ansible_host in inventory" into feature/zuulv3
Diffstat (limited to 'zuul')
-rw-r--r-- | zuul/configloader.py | 12 | ||||
-rw-r--r-- | zuul/executor/server.py | 3 | ||||
-rw-r--r-- | zuul/model.py | 7 |
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()) |