From 95dcef21f730922f5bbf0bc34b1d84e2aa844209 Mon Sep 17 00:00:00 2001 From: Joshua White Date: Mon, 11 Apr 2016 06:17:42 -0700 Subject: [PATCH] "is_resource_deleted" fails to verify delete Is resource deleted in images_client.py isn't adequate for admin role because when checking for deleted images the admin role returns a value whether the image is active or deleted. This causes an endless loop if a call is waiting on a response of true. Change-Id: I4e6937c992398cfc7db5391cfabb101aaefdb7e6 Closes-Bug: #1557088 Closes-Bug: #1564661 Closes-Bug: #1564614 --- tempest/lib/services/compute/images_client.py | 4 +++- tempest/services/image/v1/json/images_client.py | 3 ++- tempest/tests/lib/services/compute/test_images_client.py | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tempest/lib/services/compute/images_client.py b/tempest/lib/services/compute/images_client.py index 4a55ce7cc2..da8a61eb50 100644 --- a/tempest/lib/services/compute/images_client.py +++ b/tempest/lib/services/compute/images_client.py @@ -131,8 +131,10 @@ class ImagesClient(base_compute_client.BaseComputeClient): return rest_client.ResponseBody(resp, body) def is_resource_deleted(self, id): + # Added status check for user with admin role try: - self.show_image(id) + if self.show_image(id)['image']['status'] == 'DELETED': + return True except lib_exc.NotFound: return True return False diff --git a/tempest/services/image/v1/json/images_client.py b/tempest/services/image/v1/json/images_client.py index 3f256ec3f9..e29ff89466 100644 --- a/tempest/services/image/v1/json/images_client.py +++ b/tempest/services/image/v1/json/images_client.py @@ -213,7 +213,8 @@ class ImagesClient(rest_client.RestClient): def is_resource_deleted(self, id): try: - self.get_image_meta(id) + if self.get_image_meta(id)['status'] == 'deleted': + return True except lib_exc.NotFound: return True return False diff --git a/tempest/tests/lib/services/compute/test_images_client.py b/tempest/tests/lib/services/compute/test_images_client.py index 28757c39fa..3ebc27ffbc 100644 --- a/tempest/tests/lib/services/compute/test_images_client.py +++ b/tempest/tests/lib/services/compute/test_images_client.py @@ -186,7 +186,7 @@ class TestImagesClient(base.BaseComputeServiceTest): def _test_resource_deleted(self, bytes_body=False): params = {"id": self.FAKE_IMAGE_ID} - expected_op = self.FAKE_IMAGE_DATA['show']['image'] + expected_op = self.FAKE_IMAGE_DATA['show'] self.useFixture(mockpatch.Patch('tempest.lib.services.compute' '.images_client.ImagesClient.show_image', side_effect=lib_exc.NotFound))