Merge "Change node 'image' to 'label'" into feature/zuulv3
This commit is contained in:
commit
5820e07b89
|
@ -1091,14 +1091,14 @@ class FakeBuild(object):
|
|||
self.jobdir = None
|
||||
self.uuid = job.unique
|
||||
self.parameters = json.loads(job.arguments)
|
||||
# TODOv3(jeblair): self.node is really "the image of the node
|
||||
# assigned". We should rename it (self.node_image?) if we
|
||||
# TODOv3(jeblair): self.node is really "the label of the node
|
||||
# assigned". We should rename it (self.node_label?) if we
|
||||
# keep using it like this, or we may end up exposing more of
|
||||
# the complexity around multi-node jobs here
|
||||
# (self.nodes[0].image?)
|
||||
# (self.nodes[0].label?)
|
||||
self.node = None
|
||||
if len(self.parameters.get('nodes')) == 1:
|
||||
self.node = self.parameters['nodes'][0]['image']
|
||||
self.node = self.parameters['nodes'][0]['label']
|
||||
self.unique = self.parameters['ZUUL_UUID']
|
||||
self.pipeline = self.parameters['ZUUL_PIPELINE']
|
||||
self.project = self.parameters['ZUUL_PROJECT']
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
name: check-vars
|
||||
nodes:
|
||||
- name: ubuntu-xenial
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: hello
|
||||
|
|
|
@ -16,11 +16,11 @@
|
|||
name: nodeset1
|
||||
nodes:
|
||||
- name: controller
|
||||
image: controller-image
|
||||
label: controller-label
|
||||
- name: compute1
|
||||
image: compute-image
|
||||
label: compute-label
|
||||
- name: compute2
|
||||
image: compute-image
|
||||
label: compute-label
|
||||
groups:
|
||||
- name: ceph-osd
|
||||
nodes:
|
||||
|
@ -35,7 +35,7 @@
|
|||
name: single-inventory
|
||||
nodes:
|
||||
- name: ubuntu-xenial
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: group-inventory
|
||||
|
|
|
@ -15,4 +15,4 @@
|
|||
name: python27
|
||||
nodes:
|
||||
- name: controller
|
||||
image: ubuntu-trusty
|
||||
label: ubuntu-trusty
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
name: nodeset1
|
||||
nodes:
|
||||
- name: controller
|
||||
image: controller-image
|
||||
label: controller-label
|
||||
|
||||
- job:
|
||||
name: project1-test1
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
name: nodeset1
|
||||
nodes:
|
||||
- name: controller
|
||||
image: controller-image
|
||||
label: controller-label
|
||||
|
||||
- job:
|
||||
name: project2-test1
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
timeout: 30
|
||||
nodes:
|
||||
- name: controller
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: python27
|
||||
|
@ -50,7 +50,7 @@
|
|||
branches: stable/mitaka
|
||||
nodes:
|
||||
- name: controller
|
||||
image: ubuntu-trusty
|
||||
label: ubuntu-trusty
|
||||
|
||||
- job:
|
||||
name: python35
|
||||
|
|
|
@ -49,20 +49,20 @@
|
|||
attempts: 4
|
||||
nodes:
|
||||
- name: controller
|
||||
image: image1
|
||||
label: label1
|
||||
|
||||
- job:
|
||||
name: project-test1
|
||||
branches: stable
|
||||
nodes:
|
||||
- name: controller
|
||||
image: image2
|
||||
label: label2
|
||||
|
||||
- job:
|
||||
name: project-post
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: project-test2
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
name: project-test1
|
||||
nodes:
|
||||
- name: controller
|
||||
image: image1
|
||||
label: label1
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
name: project-post
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
name: project-bitrot-stable-old
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: project-bitrot-stable-older
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-trusty
|
||||
label: ubuntu-trusty
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
|
|
|
@ -27,13 +27,13 @@
|
|||
name: project-bitrot-stable-old
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: project-bitrot-stable-older
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-trusty
|
||||
label: ubuntu-trusty
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
|
|
|
@ -40,14 +40,14 @@
|
|||
name: project-test1
|
||||
nodes:
|
||||
- name: controller
|
||||
image: image1
|
||||
label: label1
|
||||
|
||||
- job:
|
||||
name: project-test1
|
||||
branches: stable
|
||||
nodes:
|
||||
- name: controller
|
||||
image: image2
|
||||
label: label2
|
||||
|
||||
- job:
|
||||
name: project-test2
|
||||
|
|
|
@ -46,14 +46,14 @@
|
|||
name: project-test1
|
||||
nodes:
|
||||
- name: controller
|
||||
image: image1
|
||||
label: label1
|
||||
|
||||
- job:
|
||||
name: project-test1
|
||||
branches: stable
|
||||
nodes:
|
||||
- name: controller
|
||||
image: image2
|
||||
label: label2
|
||||
|
||||
- job:
|
||||
name: project-test2
|
||||
|
|
|
@ -28,13 +28,13 @@
|
|||
name: project-bitrot-stable-old
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-xenial
|
||||
label: ubuntu-xenial
|
||||
|
||||
- job:
|
||||
name: project-bitrot-stable-older
|
||||
nodes:
|
||||
- name: static
|
||||
image: ubuntu-trusty
|
||||
label: ubuntu-trusty
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
|
|
|
@ -186,7 +186,7 @@ class TestJob(BaseTestCase):
|
|||
'post-run': 'base-post',
|
||||
'nodes': [{
|
||||
'name': 'controller',
|
||||
'image': 'base',
|
||||
'label': 'base',
|
||||
}],
|
||||
})
|
||||
layout.addJob(base)
|
||||
|
@ -199,7 +199,7 @@ class TestJob(BaseTestCase):
|
|||
'post-run': 'py27-post',
|
||||
'nodes': [{
|
||||
'name': 'controller',
|
||||
'image': 'new',
|
||||
'label': 'new',
|
||||
}],
|
||||
'timeout': 40,
|
||||
})
|
||||
|
@ -216,7 +216,7 @@ class TestJob(BaseTestCase):
|
|||
'post-run': 'py27-diablo-post',
|
||||
'nodes': [{
|
||||
'name': 'controller',
|
||||
'image': 'old',
|
||||
'label': 'old',
|
||||
}],
|
||||
'timeout': 50,
|
||||
})
|
||||
|
@ -264,7 +264,7 @@ class TestJob(BaseTestCase):
|
|||
self.assertEqual(job.timeout, 40)
|
||||
nodes = job.nodeset.getNodes()
|
||||
self.assertEqual(len(nodes), 1)
|
||||
self.assertEqual(nodes[0].image, 'new')
|
||||
self.assertEqual(nodes[0].label, 'new')
|
||||
self.assertEqual([x.path for x in job.pre_run],
|
||||
['playbooks/base-pre',
|
||||
'playbooks/py27-pre'])
|
||||
|
@ -292,7 +292,7 @@ class TestJob(BaseTestCase):
|
|||
self.assertEqual(job.timeout, 50)
|
||||
nodes = job.nodeset.getNodes()
|
||||
self.assertEqual(len(nodes), 1)
|
||||
self.assertEqual(nodes[0].image, 'old')
|
||||
self.assertEqual(nodes[0].label, 'old')
|
||||
self.assertEqual([x.path for x in job.pre_run],
|
||||
['playbooks/base-pre',
|
||||
'playbooks/py27-pre',
|
||||
|
|
|
@ -60,7 +60,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.assertEqual(A.data['status'], 'MERGED')
|
||||
self.assertEqual(A.reported, 2)
|
||||
self.assertEqual(self.getJobFromHistory('project-test1').node,
|
||||
'image1')
|
||||
'label1')
|
||||
self.assertIsNone(self.getJobFromHistory('project-test2').node)
|
||||
|
||||
# TODOv3(jeblair): we may want to report stats by tenant (also?).
|
||||
|
@ -110,7 +110,7 @@ class TestScheduler(ZuulTestCase):
|
|||
self.assertIn('gate', A.messages[1],
|
||||
"A should transit gate")
|
||||
self.assertEqual(self.getJobFromHistory('project-test1').node,
|
||||
'image2')
|
||||
'label2')
|
||||
|
||||
def test_parallel_changes(self):
|
||||
"Test that changes are tested in parallel and merged in series"
|
||||
|
|
|
@ -375,9 +375,9 @@ class TestInRepoConfig(ZuulTestCase):
|
|||
name: duplicate
|
||||
nodes:
|
||||
- name: compute
|
||||
image: foo
|
||||
label: foo
|
||||
- name: compute
|
||||
image: foo
|
||||
label: foo
|
||||
""")
|
||||
|
||||
file_dict = {'.zuul.yaml': in_repo_conf}
|
||||
|
@ -400,7 +400,7 @@ class TestInRepoConfig(ZuulTestCase):
|
|||
name: duplicate
|
||||
nodes:
|
||||
- name: compute
|
||||
image: foo
|
||||
label: foo
|
||||
groups:
|
||||
- name: group
|
||||
nodes: compute
|
||||
|
|
|
@ -214,7 +214,7 @@ class NodeSetParser(object):
|
|||
@staticmethod
|
||||
def getSchema():
|
||||
node = {vs.Required('name'): str,
|
||||
vs.Required('image'): str,
|
||||
vs.Required('label'): str,
|
||||
}
|
||||
|
||||
group = {vs.Required('name'): str,
|
||||
|
@ -239,7 +239,7 @@ class NodeSetParser(object):
|
|||
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['image'])
|
||||
node = model.Node(conf_node['name'], conf_node['label'])
|
||||
ns.addNode(node)
|
||||
node_names.add(conf_node['name'])
|
||||
for conf_group in as_list(conf.get('groups', [])):
|
||||
|
@ -285,7 +285,7 @@ class JobParser(object):
|
|||
}
|
||||
|
||||
node = {vs.Required('name'): str,
|
||||
vs.Required('image'): str,
|
||||
vs.Required('label'): str,
|
||||
}
|
||||
|
||||
zuul_role = {vs.Required('zuul'): str,
|
||||
|
@ -432,7 +432,7 @@ class JobParser(object):
|
|||
else:
|
||||
ns = model.NodeSet()
|
||||
for conf_node in conf_nodes:
|
||||
node = model.Node(conf_node['name'], conf_node['image'])
|
||||
node = model.Node(conf_node['name'], conf_node['label'])
|
||||
ns.addNode(node)
|
||||
job.nodeset = ns
|
||||
|
||||
|
|
|
@ -279,7 +279,7 @@ class ExecutorClient(object):
|
|||
nodeset = item.current_build_set.getJobNodeSet(job.name)
|
||||
nodes = []
|
||||
for node in nodeset.getNodes():
|
||||
nodes.append(dict(name=node.name, image=node.image,
|
||||
nodes.append(dict(name=node.name, label=node.label,
|
||||
az=node.az,
|
||||
host_keys=node.host_keys,
|
||||
provider=node.provider,
|
||||
|
|
|
@ -354,9 +354,9 @@ class Node(object):
|
|||
provided by Nodepool.
|
||||
"""
|
||||
|
||||
def __init__(self, name, image):
|
||||
def __init__(self, name, label):
|
||||
self.name = name
|
||||
self.image = image
|
||||
self.label = label
|
||||
self.id = None
|
||||
self.lock = None
|
||||
# Attributes from Nodepool
|
||||
|
@ -383,7 +383,7 @@ class Node(object):
|
|||
self.state_time = time.time()
|
||||
|
||||
def __repr__(self):
|
||||
return '<Node %s %s:%s>' % (self.id, self.name, self.image)
|
||||
return '<Node %s %s:%s>' % (self.id, self.name, self.label)
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
@ -392,7 +392,7 @@ class Node(object):
|
|||
if not isinstance(other, Node):
|
||||
return False
|
||||
return (self.name == other.name and
|
||||
self.image == other.image and
|
||||
self.label == other.label and
|
||||
self.id == other.id)
|
||||
|
||||
def toDict(self):
|
||||
|
@ -471,7 +471,7 @@ class NodeSet(object):
|
|||
def copy(self):
|
||||
n = NodeSet(self.name)
|
||||
for name, node in self.nodes.items():
|
||||
n.addNode(Node(node.name, node.image))
|
||||
n.addNode(Node(node.name, node.label))
|
||||
for name, group in self.groups.items():
|
||||
n.addGroup(Group(group.name, group.nodes[:]))
|
||||
return n
|
||||
|
@ -538,7 +538,7 @@ class NodeRequest(object):
|
|||
|
||||
def toDict(self):
|
||||
d = {}
|
||||
nodes = [n.image for n in self.nodeset.getNodes()]
|
||||
nodes = [n.label for n in self.nodeset.getNodes()]
|
||||
d['node_types'] = nodes
|
||||
d['requestor'] = self.requestor
|
||||
d['state'] = self.state
|
||||
|
|
Loading…
Reference in New Issue