Skip to content

Commit

Permalink
Add glance-simplestreams-sync set_latest_property config functest
Browse files Browse the repository at this point in the history
When creating Openstack VMs the user has to specify the image it wants
to use. sstream-mirror-glance adds a date to the image name, so they
always have to recheck which is the current latest image.

This commit tests the usage of the `set_latest_property` configuration.

When --set-latest-property is given sstream-mirror-glance will set the
recently synced image with the `latest=true` property and then remove
the `latest` property from all the os_version/architecture matching
images.

Closes-bug: LP #1933130
  • Loading branch information
guimaluf committed Aug 8, 2022
1 parent 4697ce4 commit 03b2176
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
13 changes: 13 additions & 0 deletions zaza/openstack/charm_tests/glance_simplestreams_sync/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import pprint

import zaza.model as zaza_model
import zaza.charm_lifecycle.utils as lifecycle_utils
import zaza.openstack.utilities.generic as generic_utils
import zaza.openstack.utilities.openstack as openstack_utils

Expand Down Expand Up @@ -77,3 +78,15 @@ def sync_images():
logging.info('Contents of Keystone service catalog: "{}"'
.format(pprint.pformat(catalog)))
raise


def set_latest_property_config():
"""Enable set_latest_property config.
This config adds `latest=true` to new synced images"""
logging.info("Change config `set_latest_property=true`")
zaza_model.set_application_config('glance-simplestreams-sync',
{'set_latest_property': 'true'})
test_config = lifecycle_utils.get_charm_config(fatal=False)
zaza_model.wait_for_application_states(
states=test_config.get('target_deploy_status', {}))
18 changes: 18 additions & 0 deletions zaza/openstack/charm_tests/glance_simplestreams_sync/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,21 @@ def _check_local_product_streams(expected_images):
_check_local_product_streams(expected_images)

logging.debug("Local product stream successful")


class GlanceSimpleStreamsSyncWithPropertiesTest(GlanceSimpleStreamsSyncTest):
"""Glance Simple Streams Sync Test with Image property metadata set
`setup.py:set_latest_property_config()` is required by this test and it is
called by charm-glance-simplestreams-sync/tests/tests.yaml:configure phase
"""
# TODO(guimalufb) test if the latest property gets removed from old images
def test_200_check_image_latest_property(self):
"""Verify that images had metadata property set"""
logging.debug("Checking images with latest=true property...")

filter_properties = {'filters': {'latest': 'true'}}
images = self.glance_client.images.list(**filter_properties)
self.assertTrue(len(list(images)) > 0,
"'latest=true' property not found in glance images"
" list")

0 comments on commit 03b2176

Please sign in to comment.