Fix issue with 404 logs on wait for delete.
In some cases the wait on volume deletes will receive a 404
error which results in a log output. However for these tests
this is the expected behavior so the log output isn't needed.
This adds a flag to suppress log output on 404 errors, which
is then used on all wait functions.
Fixes: bug 1084283
Change-Id: Id455a22317ecbdf318e9ad2ea0a76ad9f08ca899
diff --git a/tempest/common/rest_client.py b/tempest/common/rest_client.py
index 52ed6bc..8311365 100644
--- a/tempest/common/rest_client.py
+++ b/tempest/common/rest_client.py
@@ -162,8 +162,8 @@
def post(self, url, body, headers):
return self.request('POST', url, headers, body)
- def get(self, url, headers=None):
- return self.request('GET', url, headers)
+ def get(self, url, headers=None, wait=None):
+ return self.request('GET', url, headers, wait=wait)
def delete(self, url, headers=None):
return self.request('DELETE', url, headers)
@@ -186,7 +186,8 @@
def _parse_resp(self, body):
return json.loads(body)
- def request(self, method, url, headers=None, body=None, depth=0):
+ def request(self, method, url,
+ headers=None, body=None, depth=0, wait=None):
"""A simple HTTP request interface."""
if (self.token is None) or (self.base_url is None):
@@ -205,7 +206,8 @@
raise exceptions.Unauthorized()
if resp.status == 404:
- self._log(req_url, body, resp, resp_body)
+ if not wait:
+ self._log(req_url, body, resp, resp_body)
raise exceptions.NotFound(resp_body)
if resp.status == 400:
diff --git a/tempest/services/compute/json/volumes_extensions_client.py b/tempest/services/compute/json/volumes_extensions_client.py
index 5ac1124..240bcfe 100644
--- a/tempest/services/compute/json/volumes_extensions_client.py
+++ b/tempest/services/compute/json/volumes_extensions_client.py
@@ -59,10 +59,10 @@
body = json.loads(body)
return resp, body['volumes']
- def get_volume(self, volume_id):
+ def get_volume(self, volume_id, wait=None):
"""Returns the details of a single volume"""
url = "os-volumes/%s" % str(volume_id)
- resp, body = self.get(url)
+ resp, body = self.get(url, wait=wait)
body = json.loads(body)
return resp, body['volume']
@@ -111,7 +111,7 @@
def is_resource_deleted(self, id):
try:
- self.get_volume(id)
+ self.get_volume(id, wait=True)
except exceptions.NotFound:
return True
return False
diff --git a/tempest/services/compute/xml/volumes_extensions_client.py b/tempest/services/compute/xml/volumes_extensions_client.py
index 6869360..0fbc070 100644
--- a/tempest/services/compute/xml/volumes_extensions_client.py
+++ b/tempest/services/compute/xml/volumes_extensions_client.py
@@ -79,10 +79,10 @@
volumes += [self._parse_volume(vol) for vol in list(body)]
return resp, volumes
- def get_volume(self, volume_id):
+ def get_volume(self, volume_id, wait=None):
"""Returns the details of a single volume"""
url = "os-volumes/%s" % str(volume_id)
- resp, body = self.get(url, self.headers)
+ resp, body = self.get(url, self.headers, wait=wait)
body = etree.fromstring(body)
return resp, self._parse_volume(body)
@@ -139,7 +139,7 @@
def is_resource_deleted(self, id):
try:
- self.get_volume(id)
+ self.get_volume(id, wait=True)
except exceptions.NotFound:
return True
return False
diff --git a/tempest/services/volume/json/volumes_client.py b/tempest/services/volume/json/volumes_client.py
index 6f04e5e..28dae4e 100644
--- a/tempest/services/volume/json/volumes_client.py
+++ b/tempest/services/volume/json/volumes_client.py
@@ -62,10 +62,10 @@
body = json.loads(body)
return resp, body['volumes']
- def get_volume(self, volume_id):
+ def get_volume(self, volume_id, wait=None):
"""Returns the details of a single volume"""
url = "volumes/%s" % str(volume_id)
- resp, body = self.get(url)
+ resp, body = self.get(url, wait=wait)
body = json.loads(body)
return resp, body['volume']
@@ -133,7 +133,7 @@
def is_resource_deleted(self, id):
try:
- self.get_volume(id)
+ self.get_volume(id, wait=True)
except exceptions.NotFound:
return True
return False
diff --git a/tempest/services/volume/xml/volumes_client.py b/tempest/services/volume/xml/volumes_client.py
index ef5f3e9..9d2f159 100644
--- a/tempest/services/volume/xml/volumes_client.py
+++ b/tempest/services/volume/xml/volumes_client.py
@@ -82,10 +82,10 @@
volumes += [self._parse_volume(vol) for vol in list(body)]
return resp, volumes
- def get_volume(self, volume_id):
+ def get_volume(self, volume_id, wait=None):
"""Returns the details of a single volume"""
url = "volumes/%s" % str(volume_id)
- resp, body = self.get(url, self.headers)
+ resp, body = self.get(url, self.headers, wait=wait)
body = etree.fromstring(body)
return resp, self._parse_volume(body)
@@ -140,7 +140,7 @@
def is_resource_deleted(self, id):
try:
- self.get_volume(id)
+ self.get_volume(id, wait=True)
except exceptions.NotFound:
return True
return False