diff --git a/zaza/openstack/charm_tests/glance_simplestreams_sync/setup.py b/zaza/openstack/charm_tests/glance_simplestreams_sync/setup.py index 96648af..b728d3c 100644 --- a/zaza/openstack/charm_tests/glance_simplestreams_sync/setup.py +++ b/zaza/openstack/charm_tests/glance_simplestreams_sync/setup.py @@ -21,6 +21,7 @@ import tenacity 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 @@ -77,3 +78,17 @@ 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', + 'snap-channel': 'edge'}) + test_config = lifecycle_utils.get_charm_config(fatal=False) + zaza_model.wait_for_application_states( + states=test_config.get('target_deploy_status', {})) diff --git a/zaza/openstack/charm_tests/glance_simplestreams_sync/tests.py b/zaza/openstack/charm_tests/glance_simplestreams_sync/tests.py index 0c0d472..c19339f 100644 --- a/zaza/openstack/charm_tests/glance_simplestreams_sync/tests.py +++ b/zaza/openstack/charm_tests/glance_simplestreams_sync/tests.py @@ -125,3 +125,23 @@ class GlanceSimpleStreamsSyncTest(test_utils.OpenStackBaseTest): _check_local_product_streams(expected_images) logging.debug("Local product stream successful") + + +class GlanceSimpleStreamsSyncWithPropertiesTest(GlanceSimpleStreamsSyncTest): + """Glance Simple Streams Sync Test with Image property. + + `setup.py:set_latest_property_config()` is required by this test and it is + called during 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")