Verify flavor extra specs attributes of Nova APIs

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

The response body of flavor extra specs APIs are below:

Response of set & get extra specs of V2 & V3-

{
    "extra_specs": {
        "key1": "%(value1)s",
        "key2": "%(value2)s"
    }
}
Response code of set extra specs API differ-
 200 - V2
 201 - V3

Response of update & get extra specs key of V2 & V3-

{
    "key1": "%(value1)s"
}

Response code of unset extra specs API differ-
 200 - V2
 204 - V3
This does not return any response body.

Partially implements blueprint nova-api-attribute-test

Change-Id: I41e566cb484d0b7fa29197c639f9f231c8c32ea9
diff --git a/tempest/api_schema/compute/v3/flavors.py b/tempest/api_schema/compute/v3/flavors.py
index 542d2b1..468658c 100644
--- a/tempest/api_schema/compute/v3/flavors.py
+++ b/tempest/api_schema/compute/v3/flavors.py
@@ -15,6 +15,7 @@
 import copy
 
 from tempest.api_schema.compute import flavors
+from tempest.api_schema.compute import flavors_extra_specs
 
 list_flavors_details = copy.deepcopy(flavors.common_flavor_list_details)
 
@@ -31,3 +32,10 @@
 # So they are not 'required'.
 list_flavors_details['response_body']['properties']['flavors']['items'][
     'required'].extend(['disabled', 'ephemeral'])
+
+set_flavor_extra_specs = copy.deepcopy(flavors_extra_specs.flavor_extra_specs)
+set_flavor_extra_specs['status_code'] = [201]
+
+unset_flavor_extra_specs = {
+    'status_code': [204]
+}