Verify attributes through Nova os-quota-sets API

This patch adds checks whether a response of Nova os-quota-sets
update/get/get_default/get_detail API includes the attributes
to block the backward incompatibility change in the future.

The quotas response body of v2 get/get_default API is the following:
{
    "quota_set": {
        "id": "231a1e7fd1b344f9874d0334d98b459c",
        "instances": 10,
        "cores": 20,
        "ram": 51200,
        "floating_ips": 10,
        "fixed_ips": -1,
        "metadata_items": 128,
        "injected_files": 5,
        "injected_file_content_bytes": 10240,
        "injected_file_path_bytes": 255,
        "key_pairs": 100,
        "security_groups": 10
        "security_group_rules": 20,
    }
}

The quotas response body of v2 update API is the following:
{
    "quota_set": {
        "instances": 10,
        "cores": 20,
        "ram": 51200,
        "floating_ips": 10,
        "fixed_ips": -1,
        "metadata_items": 128,
        "injected_files": 5,
        "injected_file_content_bytes": 10240,
        "injected_file_path_bytes": 255,
        "key_pairs": 100,
        "security_groups": 10
        "security_group_rules": 20,
    }
}

The quotas response body of v3 get/get default API is the following:
{
    "quota_set": {
        "id": "231a1e7fd1b344f9874d0334d98b459c",
        "instances": 10,
        "cores": 20,
        "ram": 51200,
        "floating_ips": 10,
        "fixed_ips": -1,
        "metadata_items": 128,
        "key_pairs": 100,
        "security_groups": 10
        "security_group_rules": 20,
    }
}

The quotas response body of v3 get detail API is the following:
{
    "quota_set": {
        "id": "30032cae7b864e5aad58
        "instances": {
            "reserved": 0,
            "limit": 10,
            "in_use": 0
        },
        "cores": {
            "reserved": 0,
            "limit": 20,
            "in_use": 0
        },
        "ram": {
            "reserved": 0,
            "limit": 51200,
            "in_use": 0
        },
        "floating_ips": {
            "reserved": 0,
            "limit": 10,
            "in_use": 0
        },
        "fixed_ips": {
            "reserved": 0,
            "limit": -1,
            "in_use": 0
        },
        "metadata_items": {
            "reserved": 0,
            "limit": 128,
            "in_use": 0
        },
        "key_pairs": {
            "reserved": 0,
            "limit": 100,
            "in_use": 0
        },
        "security_groups": {
            "reserved": 0,
            "limit": 10,
            "in_use": 0
        },
        "security_group_rules": {
            "reserved": 0,
            "limit": 20,
            "in_use": 0
        }
    }
}

Partially implements blueprint nova-api-attribute-test

Change-Id: I3730cde95f6ffea75e3329aed4d13d3bb6cc765b
4 files changed