Change telemetry client to return one value and update tests
The get/set alarm state methods returned strings so they were left as returning
two values. Checking of success codes was added to the client as that had not
been done previously.
Partially implements: blueprint clients-return-one-value
Change-Id: Ic991bc576c69b778e2ccd00e97c62022757b8440
diff --git a/tempest/api/telemetry/base.py b/tempest/api/telemetry/base.py
index e840e3b..8885187 100644
--- a/tempest/api/telemetry/base.py
+++ b/tempest/api/telemetry/base.py
@@ -52,11 +52,11 @@
@classmethod
def create_alarm(cls, **kwargs):
- resp, body = cls.telemetry_client.create_alarm(
+ body = cls.telemetry_client.create_alarm(
name=data_utils.rand_name('telemetry_alarm'),
type='threshold', **kwargs)
cls.alarm_ids.append(body['alarm_id'])
- return resp, body
+ return body
@classmethod
def create_server(cls):
@@ -100,10 +100,9 @@
timeout = CONF.compute.build_timeout
start = timeutils.utcnow()
while timeutils.delta_seconds(start, timeutils.utcnow()) < timeout:
- resp, body = self.telemetry_client.list_samples(metric, query)
- self.assertEqual(resp.status, 200)
+ body = self.telemetry_client.list_samples(metric, query)
if body:
- return resp, body
+ return body
time.sleep(CONF.compute.build_interval)
raise exceptions.TimeoutException(
diff --git a/tempest/api/telemetry/test_telemetry_alarming_api.py b/tempest/api/telemetry/test_telemetry_alarming_api.py
index b45d545..97eb4eb 100644
--- a/tempest/api/telemetry/test_telemetry_alarming_api.py
+++ b/tempest/api/telemetry/test_telemetry_alarming_api.py
@@ -32,8 +32,7 @@
@test.attr(type="gate")
def test_alarm_list(self):
# List alarms
- resp, alarm_list = self.telemetry_client.list_alarms()
- self.assertEqual(200, resp.status)
+ alarm_list = self.telemetry_client.list_alarms()
# Verify created alarm in the list
fetched_ids = [a['alarm_id'] for a in alarm_list]
@@ -47,9 +46,8 @@
def test_create_update_get_delete_alarm(self):
# Create an alarm
alarm_name = data_utils.rand_name('telemetry_alarm')
- resp, body = self.telemetry_client.create_alarm(
+ body = self.telemetry_client.create_alarm(
name=alarm_name, type='threshold', threshold_rule=self.rule)
- self.assertEqual(201, resp.status)
self.assertEqual(alarm_name, body['name'])
alarm_id = body['alarm_id']
self.assertDictContainsSubset(self.rule, body['threshold_rule'])
@@ -59,39 +57,34 @@
'threshold': 70.0,
'period': 60}
alarm_name = data_utils.rand_name('telemetry-alarm-update')
- resp, body = self.telemetry_client.update_alarm(
+ body = self.telemetry_client.update_alarm(
alarm_id,
threshold_rule=new_rule,
name=alarm_name,
type='threshold')
- self.assertEqual(200, resp.status)
self.assertEqual(alarm_name, body['name'])
self.assertDictContainsSubset(new_rule, body['threshold_rule'])
# Get and verify details of an alarm after update
- resp, body = self.telemetry_client.get_alarm(alarm_id)
- self.assertEqual(200, resp.status)
+ body = self.telemetry_client.get_alarm(alarm_id)
self.assertEqual(alarm_name, body['name'])
self.assertDictContainsSubset(new_rule, body['threshold_rule'])
# Delete alarm and verify if deleted
- resp, _ = self.telemetry_client.delete_alarm(alarm_id)
- self.assertEqual(204, resp.status)
+ self.telemetry_client.delete_alarm(alarm_id)
self.assertRaises(exceptions.NotFound,
self.telemetry_client.get_alarm, alarm_id)
@test.attr(type="gate")
def test_set_get_alarm_state(self):
alarm_states = ['ok', 'alarm', 'insufficient data']
- _, alarm = self.create_alarm(threshold_rule=self.rule)
+ alarm = self.create_alarm(threshold_rule=self.rule)
# Set alarm state and verify
new_state =\
[elem for elem in alarm_states if elem != alarm['state']][0]
- resp, state = self.telemetry_client.alarm_set_state(alarm['alarm_id'],
- new_state)
- self.assertEqual(200, resp.status)
+ _, state = self.telemetry_client.alarm_set_state(alarm['alarm_id'],
+ new_state)
self.assertEqual(new_state, state)
# Get alarm state and verify
- resp, state = self.telemetry_client.alarm_get_state(alarm['alarm_id'])
- self.assertEqual(200, resp.status)
+ _, state = self.telemetry_client.alarm_get_state(alarm['alarm_id'])
self.assertEqual(new_state, state)
@test.attr(type="gate")
@@ -100,15 +93,13 @@
"operator": "or"}
# Verifies alarm create
alarm_name = data_utils.rand_name('combination_alarm')
- resp, body = self.telemetry_client.create_alarm(name=alarm_name,
- combination_rule=rule,
- type='combination')
- self.assertEqual(201, resp.status)
+ body = self.telemetry_client.create_alarm(name=alarm_name,
+ combination_rule=rule,
+ type='combination')
self.assertEqual(alarm_name, body['name'])
alarm_id = body['alarm_id']
self.assertDictContainsSubset(rule, body['combination_rule'])
# Verify alarm delete
- resp, _ = self.telemetry_client.delete_alarm(alarm_id)
- self.assertEqual(204, resp.status)
+ self.telemetry_client.delete_alarm(alarm_id)
self.assertRaises(exceptions.NotFound,
self.telemetry_client.get_alarm, alarm_id)
diff --git a/tempest/cmd/cleanup_service.py b/tempest/cmd/cleanup_service.py
index a0bbb70..b3f2b03 100644
--- a/tempest/cmd/cleanup_service.py
+++ b/tempest/cmd/cleanup_service.py
@@ -778,7 +778,7 @@
def list(self):
client = self.client
- _, alarms = client.list_alarms()
+ alarms = client.list_alarms()
LOG.debug("List count, %s Alarms" % len(alarms))
return alarms
diff --git a/tempest/cmd/javelin.py b/tempest/cmd/javelin.py
index 9fb982c..6a827f8 100755
--- a/tempest/cmd/javelin.py
+++ b/tempest/cmd/javelin.py
@@ -467,11 +467,10 @@
LOG.info("checking telemetry")
for server in self.res['servers']:
client = client_for_user(server['owner'])
- response, body = client.telemetry.list_samples(
+ body = client.telemetry.list_samples(
'instance',
query=('metadata.display_name', 'eq', server['name'])
)
- self.assertEqual(response.status, 200)
self.assertTrue(len(body) >= 1, 'expecting at least one sample')
self._confirm_telemetry_sample(server, body[-1])
diff --git a/tempest/scenario/test_swift_telemetry_middleware.py b/tempest/scenario/test_swift_telemetry_middleware.py
index e8eb45c..dce6023 100644
--- a/tempest/scenario/test_swift_telemetry_middleware.py
+++ b/tempest/scenario/test_swift_telemetry_middleware.py
@@ -71,7 +71,7 @@
Otherwise returning False will case _check_samples to be
called again.
"""
- _, results = self.telemetry_client.list_samples(
+ results = self.telemetry_client.list_samples(
'storage.api.request')
LOG.debug('got samples %s', results)
diff --git a/tempest/services/telemetry/json/telemetry_client.py b/tempest/services/telemetry/json/telemetry_client.py
index 2967cfa..dd899e4 100644
--- a/tempest/services/telemetry/json/telemetry_client.py
+++ b/tempest/services/telemetry/json/telemetry_client.py
@@ -45,8 +45,9 @@
uri = "%s/meters/%s" % (self.uri_prefix, meter_name)
body = self.serialize(sample_list)
resp, body = self.post(uri, body)
+ self.expected_success(200, resp.status)
body = self.deserialize(body)
- return resp, body
+ return service_client.ResponseBody(resp, body)
def helper_list(self, uri, query=None, period=None):
uri_dict = {}
@@ -59,8 +60,9 @@
if uri_dict:
uri += "?%s" % urllib.urlencode(uri_dict)
resp, body = self.get(uri)
+ self.expected_success(200, resp.status)
body = self.deserialize(body)
- return resp, body
+ return service_client.ResponseBodyList(resp, body)
def list_resources(self, query=None):
uri = '%s/resources' % self.uri_prefix
@@ -85,39 +87,45 @@
def get_resource(self, resource_id):
uri = '%s/resources/%s' % (self.uri_prefix, resource_id)
resp, body = self.get(uri)
+ self.expected_success(200, resp.status)
body = self.deserialize(body)
- return resp, body
+ return service_client.ResponseBody(resp, body)
def get_alarm(self, alarm_id):
uri = '%s/alarms/%s' % (self.uri_prefix, alarm_id)
resp, body = self.get(uri)
+ self.expected_success(200, resp.status)
body = self.deserialize(body)
- return resp, body
+ return service_client.ResponseBody(resp, body)
def delete_alarm(self, alarm_id):
uri = "%s/alarms/%s" % (self.uri_prefix, alarm_id)
resp, body = self.delete(uri)
+ self.expected_success(204, resp.status)
if body:
body = self.deserialize(body)
- return resp, body
+ return service_client.ResponseBody(resp, body)
def create_alarm(self, **kwargs):
uri = "%s/alarms" % self.uri_prefix
body = self.serialize(kwargs)
resp, body = self.post(uri, body)
+ self.expected_success(201, resp.status)
body = self.deserialize(body)
- return resp, body
+ return service_client.ResponseBody(resp, body)
def update_alarm(self, alarm_id, **kwargs):
uri = "%s/alarms/%s" % (self.uri_prefix, alarm_id)
body = self.serialize(kwargs)
resp, body = self.put(uri, body)
+ self.expected_success(200, resp.status)
body = self.deserialize(body)
- return resp, body
+ return service_client.ResponseBody(resp, body)
def alarm_get_state(self, alarm_id):
uri = "%s/alarms/%s/state" % (self.uri_prefix, alarm_id)
resp, body = self.get(uri)
+ self.expected_success(200, resp.status)
body = self.deserialize(body)
return resp, body
@@ -125,5 +133,6 @@
uri = "%s/alarms/%s/state" % (self.uri_prefix, alarm_id)
body = self.serialize(state)
resp, body = self.put(uri, body)
+ self.expected_success(200, resp.status)
body = self.deserialize(body)
return resp, body