From f60f22d1a47b1c4fd5d4f08da0040f65ce7009f4 Mon Sep 17 00:00:00 2001 From: Vitaly Gridnev Date: Wed, 27 May 2015 13:33:53 +0300 Subject: [PATCH] Minor improvement of validation rules We can put in validation message only tags that are missing. Change-Id: Idc6b52c87de0c37bc7f54ab53f5acc2245bde8b4 Closes-bug: 1455410 --- sahara/service/validations/base.py | 12 ++++++------ sahara/tests/unit/service/validation/utils.py | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sahara/service/validations/base.py b/sahara/service/validations/base.py index 6efdbd0f..fe67a630 100644 --- a/sahara/service/validations/base.py +++ b/sahara/service/validations/base.py @@ -395,9 +395,9 @@ def check_required_image_tags(plugin_name, hadoop_version, image_id): image = api.get_image(id=image_id) plugin = plugin_base.PLUGINS.get_plugin(plugin_name) req_tags = set(plugin.get_required_image_tags(hadoop_version)) - if not req_tags.issubset(set(image.tags)): - raise ex.InvalidReferenceException( - _("Tags of requested image '%(image)s' don't contain required" - " tags ['%(name)s', '%(version)s']") - % {'image': image_id, 'name': plugin_name, - 'version': hadoop_version}) + req_tags = list(req_tags.difference(set(image.tags))) + if req_tags: + raise ex.InvalidReferenceException( + _("Requested image '%(image)s' doesn't contain required" + " tags: %(tags)s") + % {'image': image_id, 'tags': req_tags}) diff --git a/sahara/tests/unit/service/validation/utils.py b/sahara/tests/unit/service/validation/utils.py index b733d486..109be6bb 100644 --- a/sahara/tests/unit/service/validation/utils.py +++ b/sahara/tests/unit/service/validation/utils.py @@ -184,7 +184,7 @@ def start_patch(patch_templates=True): if self.name == 'test': return ['vanilla', '1.2.1'] else: - return ['wrong_tag'] + return ['vanilla', 'wrong_tag'] def _get_image(id): if id == '550e8400-e29b-41d4-a716-446655440000': @@ -414,7 +414,7 @@ class ValidationTestCase(base.SaharaTestCase): self._assert_create_object_validation( data=data, bad_req_i=(1, 'INVALID_REFERENCE', - "Tags of requested image " + "Requested image " "'813fe450-40d2-4acc-ade5-ea753a1bd5bc' " - "don't contain required tags " - "['vanilla', '1.2.1']")) + "doesn't contain required tags: " + "['1.2.1']"))