Merge "Fix test_node_vhd_and_qcow2 to validate uploads" into feature/zuulv3

This commit is contained in:
Jenkins 2017-05-21 13:47:54 +00:00 committed by Gerrit Code Review
commit 7928f273fc
4 changed files with 21 additions and 13 deletions

View File

@ -899,6 +899,7 @@ class UploadWorker(BaseWorker):
data.state = zk.READY
data.external_id = external_id
data.external_name = ext_image_name
data.format = image.extension
return data
def _checkForProviderUploads(self):

View File

@ -274,19 +274,15 @@ class TestLauncher(tests.DBTestCase):
def test_node_vhd_and_qcow2(self):
"""Test label provided by vhd and qcow2 images builds"""
configfile = self.setup_config('node_vhd_and_qcow2.yaml')
pool = self.useNodepool(configfile, watermark_sleep=1)
self._useBuilder(configfile)
self.waitForImage('fake-provider1', 'fake-image')
self.waitForImage('fake-provider2', 'fake-image')
pool.start()
nodes = self.waitForNodes('fake-label', 2)
self.assertEqual(len(nodes), 2)
self.assertEqual(zk.READY, nodes[0].state)
self.assertEqual(zk.READY, nodes[1].state)
if nodes[0].provider == 'fake-provider1':
self.assertEqual(nodes[1].provider, 'fake-provider2')
else:
self.assertEqual(nodes[1].provider, 'fake-provider1')
p1_image = self.waitForImage('fake-provider1', 'fake-image')
p2_image = self.waitForImage('fake-provider2', 'fake-image')
# We can't guarantee which provider would build the requested
# nodes, but that doesn't matter so much as guaranteeing that the
# correct image type is uploaded to the correct provider.
self.assertEqual(p1_image.format, "vhd")
self.assertEqual(p2_image.format, "qcow2")
def test_dib_upload_fail(self):
"""Test that an image upload failure is contained."""

View File

@ -186,6 +186,7 @@ class TestZooKeeper(tests.DBTestCase):
orig_data = zk.ImageUpload()
orig_data.external_id = "deadbeef"
orig_data.state = zk.READY
orig_data.format = "qcow2"
build_number = self.zk.storeBuild(image, zk.ImageBuild())
upload_id = self.zk.storeImageUpload(image, build_number, provider,
@ -196,6 +197,7 @@ class TestZooKeeper(tests.DBTestCase):
self.assertEqual(orig_data.external_id, data.external_id)
self.assertEqual(orig_data.state, data.state)
self.assertEqual(orig_data.state_time, data.state_time)
self.assertEqual(orig_data.format, data.format)
self.assertEqual(self.zk.getBuildProviders("ubuntu-trusty",
build_number),
[provider])
@ -695,6 +697,7 @@ class TestZKModel(tests.BaseTestCase):
o.state = zk.UPLOADING
o.external_id = 'DEADBEEF'
o.external_name = 'trusty'
o.format = 'qcow2'
d = o.toDict()
self.assertNotIn('id', d)
@ -705,6 +708,7 @@ class TestZKModel(tests.BaseTestCase):
self.assertEqual(o.state_time, d['state_time'])
self.assertEqual(o.external_id, d['external_id'])
self.assertEqual(o.external_name, d['external_name'])
self.assertEqual(o.format, d['format'])
def test_ImageUpload_fromDict(self):
now = int(time.time())
@ -713,6 +717,7 @@ class TestZKModel(tests.BaseTestCase):
d = {
'external_id': 'DEADBEEF',
'external_name': 'trusty',
'format': 'qcow2',
'state': zk.READY,
'state_time': now
}
@ -726,6 +731,7 @@ class TestZKModel(tests.BaseTestCase):
self.assertEqual(o.state_time, d['state_time'])
self.assertEqual(o.external_id, d['external_id'])
self.assertEqual(o.external_name, d['external_name'])
self.assertEqual(o.format, d['format'])
def test_NodeRequest_toDict(self):
o = zk.NodeRequest("500-123")

View File

@ -258,6 +258,7 @@ class ImageUpload(BaseModel):
self.build_id = build_id
self.provider_name = provider_name
self.image_name = image_name
self.format = None
self.external_id = None # Provider ID of the image
self.external_name = None # Provider name of the image
@ -267,6 +268,7 @@ class ImageUpload(BaseModel):
d['build_id'] = self.build_id
d['provider_name'] = self.provider_name
d['image_name'] = self.image_name
d['format'] = self.format
d['stat'] = self.stat
return '<ImageUpload %s>' % d
@ -275,7 +277,8 @@ class ImageUpload(BaseModel):
return (self.id == other.id and
self.provider_name == other.provider_name and
self.build_id == other.build_id and
self.image_name == other.image_name)
self.image_name == other.image_name and
self.format == other.format)
else:
return False
@ -286,6 +289,7 @@ class ImageUpload(BaseModel):
d = super(ImageUpload, self).toDict()
d['external_id'] = self.external_id
d['external_name'] = self.external_name
d['format'] = self.format
return d
@staticmethod
@ -305,6 +309,7 @@ class ImageUpload(BaseModel):
super(ImageUpload, o).fromDict(d)
o.external_id = d.get('external_id')
o.external_name = d.get('external_name')
o.format = d.get('format')
return o