Verify the response attributes of 'show_host_detail'
This patch verifies the response attributes of 'show_host_detail'.
The response body of v2 and v3 API has the same format:
"host": [
{
"resource": {
"cpu": 1,
"disk_gb": 1028,
"host": "5ca60c6792a1442f9471ff575443f94d",
"memory_mb": 8192,
"project": "(total)"
}
}
]
Partially implements blueprint nova-api-attribute-test
Change-Id: I1b9e698a97d487541abb26aea10fa20e79448f84
diff --git a/tempest/api_schema/compute/hosts.py b/tempest/api_schema/compute/hosts.py
index b9a3db9..a73e214 100644
--- a/tempest/api_schema/compute/hosts.py
+++ b/tempest/api_schema/compute/hosts.py
@@ -33,3 +33,34 @@
'required': ['hosts']
}
}
+
+show_host_detail = {
+ 'status_code': [200],
+ 'response_body': {
+ 'type': 'object',
+ 'properties': {
+ 'host': {
+ 'type': 'array',
+ 'item': {
+ 'type': 'object',
+ 'properties': {
+ 'resource': {
+ 'type': 'object',
+ 'properties': {
+ 'cpu': {'type': 'integer'},
+ 'disk_gb': {'type': 'integer'},
+ 'host': {'type': 'string'},
+ 'memory_mb': {'type': 'integer'},
+ 'project': {'type': 'string'}
+ },
+ 'required': ['cpu', 'disk_gb', 'host',
+ 'memory_mb', 'project']
+ }
+ },
+ 'required': ['resource']
+ }
+ }
+ },
+ 'required': ['host']
+ }
+}
diff --git a/tempest/services/compute/json/hosts_client.py b/tempest/services/compute/json/hosts_client.py
index 0130f27..eeb417a 100644
--- a/tempest/services/compute/json/hosts_client.py
+++ b/tempest/services/compute/json/hosts_client.py
@@ -45,6 +45,7 @@
resp, body = self.get("os-hosts/%s" % str(hostname))
body = json.loads(body)
+ self.validate_response(schema.show_host_detail, resp, body)
return resp, body['host']
def update_host(self, hostname, **kwargs):
diff --git a/tempest/services/compute/v3/json/hosts_client.py b/tempest/services/compute/v3/json/hosts_client.py
index bcb9d36..db7134c 100644
--- a/tempest/services/compute/v3/json/hosts_client.py
+++ b/tempest/services/compute/v3/json/hosts_client.py
@@ -45,6 +45,7 @@
resp, body = self.get("os-hosts/%s" % str(hostname))
body = json.loads(body)
+ self.validate_response(schema.show_host_detail, resp, body)
return resp, body['host']
def update_host(self, hostname, **kwargs):