Check add/remove flavor access APIs attributes

This patch adds the JSON schema for Nova V2/V3 add & remove flavor
access APIs response and validate the response with added JSON schema to
block the backward incompatibility change in the future.

The response body of V2 & V3 for add & remove flavor access APIs are same
and given below:

{
    "flavor_access": [
        {
            "flavor_id": "10",
            "tenant_id": "fake_tenant"
        }
}

Partially implements blueprint nova-api-attribute-test

Change-Id: I0e876494b9d1bda418076844ed3211f5513af76c
This commit is contained in:
Ghanshyam 2014-03-31 11:57:22 +09:00
parent 75588a3ae8
commit 95951ed68f
3 changed files with 13 additions and 3 deletions

View File

@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
list_flavor_access = {
add_remove_list_flavor_access = {
'status_code': [200],
'response_body': {
'type': 'object',

View File

@ -128,7 +128,8 @@ class FlavorsClientJSON(rest_client.RestClient):
"""Gets flavor access information given the flavor id."""
resp, body = self.get('flavors/%s/os-flavor-access' % flavor_id)
body = json.loads(body)
self.validate_response(schema_access.list_flavor_access, resp, body)
self.validate_response(schema_access.add_remove_list_flavor_access,
resp, body)
return resp, body['flavor_access']
def add_flavor_access(self, flavor_id, tenant_id):
@ -141,6 +142,8 @@ class FlavorsClientJSON(rest_client.RestClient):
post_body = json.dumps(post_body)
resp, body = self.post('flavors/%s/action' % flavor_id, post_body)
body = json.loads(body)
self.validate_response(schema_access.add_remove_list_flavor_access,
resp, body)
return resp, body['flavor_access']
def remove_flavor_access(self, flavor_id, tenant_id):
@ -153,4 +156,6 @@ class FlavorsClientJSON(rest_client.RestClient):
post_body = json.dumps(post_body)
resp, body = self.post('flavors/%s/action' % flavor_id, post_body)
body = json.loads(body)
self.validate_response(schema_access.add_remove_list_flavor_access,
resp, body)
return resp, body['flavor_access']

View File

@ -128,7 +128,8 @@ class FlavorsV3ClientJSON(rest_client.RestClient):
"""Gets flavor access information given the flavor id."""
resp, body = self.get('flavors/%s/flavor-access' % flavor_id)
body = json.loads(body)
self.validate_response(schema_access.list_flavor_access, resp, body)
self.validate_response(schema_access.add_remove_list_flavor_access,
resp, body)
return resp, body['flavor_access']
def add_flavor_access(self, flavor_id, tenant_id):
@ -141,6 +142,8 @@ class FlavorsV3ClientJSON(rest_client.RestClient):
post_body = json.dumps(post_body)
resp, body = self.post('flavors/%s/action' % flavor_id, post_body)
body = json.loads(body)
self.validate_response(schema_access.add_remove_list_flavor_access,
resp, body)
return resp, body['flavor_access']
def remove_flavor_access(self, flavor_id, tenant_id):
@ -153,4 +156,6 @@ class FlavorsV3ClientJSON(rest_client.RestClient):
post_body = json.dumps(post_body)
resp, body = self.post('flavors/%s/action' % flavor_id, post_body)
body = json.loads(body)
self.validate_response(schema_access.add_remove_list_flavor_access,
resp, body)
return resp, body['flavor_access']