Avoid image format tests if glance is enforcing
If glance refuses to allow bad images to be uploaded, then we cannot even register them to then test against nova or other services. Gate these tests on a knob indicating whether or not glance will allow them to be uploaded. The ListUserImagesTest class depends entirely on being able to upload random data as every format/container, which is fundamentally not something we can do with glance enforcing content rules. This makes the tempest-slow-py3 job disable glance image format inspection so that we can get the compute tests to run. Depends-On: https://review.opendev.org/c/openstack/devstack/+/931026 Change-Id: I05bb233cf1482895b96396852a15532295d3829b
This commit is contained in:
parent
c89e516e5f
commit
2ba7ed8e39
@ -0,0 +1,8 @@
|
||||
---
|
||||
features:
|
||||
- |
|
||||
Add a new config option
|
||||
`[image_feature_enabled]/image_format_enforcement` which tells tempest
|
||||
that glance will do image format inspection and enforcement on upload. This
|
||||
will disable tests that require glance to accept a bad image in order to
|
||||
test another service (i.e. nova).
|
@ -536,6 +536,15 @@ class ListUserImagesTest(base.BaseV2ImageTest):
|
||||
for container_fmt in container_fmts
|
||||
for disk_fmt in disk_fmts]
|
||||
|
||||
# NOTE(danms): This tests depends on being able to lie about image
|
||||
# content. We can probably improve this in some way, but without a
|
||||
# valid sample of each image format in each container format, there is
|
||||
# no easy solution.
|
||||
if CONF.image_feature_enabled.image_format_enforcement:
|
||||
raise cls.skipException(
|
||||
'Image format enforcement prevents testing with '
|
||||
'bogus image data')
|
||||
|
||||
for (container_fmt, disk_fmt) in all_pairs[:6]:
|
||||
LOG.debug("Creating an image "
|
||||
"(Container format: %s, Disk format: %s).",
|
||||
|
@ -166,6 +166,12 @@ class ImagesFormatTest(base.BaseV2ImageTest,
|
||||
# a properly-formatted image for it, so skip it.
|
||||
self.skipTest(
|
||||
'Format %s not allowed by config' % self.imgdef['format'])
|
||||
if CONF.image_feature_enabled.image_format_enforcement:
|
||||
# If glance rejects bad images during upload, we cannot get them
|
||||
# registered so that we can test nova.
|
||||
self.skipTest(
|
||||
'Unable to test compute image formats if glance does not '
|
||||
'allow them to be uploaded')
|
||||
|
||||
# VMDK with footer was not supported by earlier service versions,
|
||||
# so we need to tolerate it passing and failing (skip for the latter).
|
||||
@ -191,6 +197,12 @@ class ImagesFormatTest(base.BaseV2ImageTest,
|
||||
@decorators.idempotent_id('ffe21610-e801-4992-9b81-e2d646e2e2e9')
|
||||
def test_compute_rejects_format_mismatch(self):
|
||||
"""Make sure compute rejects any image with a format mismatch."""
|
||||
if CONF.image_feature_enabled.image_format_enforcement:
|
||||
# If glance rejects bad images during upload, we cannot get them
|
||||
# registered so that we can test nova.
|
||||
self.skipTest(
|
||||
'Unable to test compute image formats if glance does not '
|
||||
'allow them to be uploaded')
|
||||
# Lying about the disk_format should always fail
|
||||
override_fmt = (
|
||||
self.imgdef['format'] in ('raw', 'gpt') and 'qcow2' or 'raw')
|
||||
|
@ -728,6 +728,11 @@ ImageFeaturesGroup = [
|
||||
cfg.BoolOpt('image_conversion',
|
||||
default=False,
|
||||
help=('Is image_conversion enabled in glance.')),
|
||||
cfg.BoolOpt('image_format_enforcement',
|
||||
default=True,
|
||||
help=('Indicates that image format is enforced by glance, '
|
||||
'such that we should not expect to be able to upload '
|
||||
'bad images for testing other services.')),
|
||||
]
|
||||
|
||||
network_group = cfg.OptGroup(name='network',
|
||||
|
@ -330,6 +330,7 @@
|
||||
devstack_localrc:
|
||||
CINDER_ENABLED_BACKENDS: lvm:lvmdriver-1,lvm:lvmdriver-2
|
||||
ENABLE_VOLUME_MULTIATTACH: true
|
||||
GLANCE_ENFORCE_IMAGE_FORMAT: false
|
||||
devstack_plugins:
|
||||
neutron: https://opendev.org/openstack/neutron
|
||||
devstack_services:
|
||||
|
Loading…
x
Reference in New Issue
Block a user