Add validation test in identity v3 test_role

Add validation to test:
- test_grant_revoke_role_to_group_on_project

Change-Id: Ie4d07972ac09bd7e4f9b8b860355eb2ab1140494
Define 'links' as a common parameter type

Nova APIs contain a lot of 'links' parameter and the definitions of
each API are the same. This patch adds a common type for 'links' and
shares it between APIs for the maintenancebility.

Partially implements blueprint nova-api-attribute-test

Change-Id: I9609a9cadb0a7edd707fe57e76b3d629a0b3f8bc
Validate list_keypair attribute of Nova V2/V3 APIs

This patch adds the JSON Schema for response of Nova V2 & V3
list_keypair APIs and validate the response with added JSON Schema to
block the backward incompatibility change in the future.

The response body of V2 & V3 list_keypairs APIs is same and given below:

{
    "keypairs": [
        {
            "keypair": {
                "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD
                              nPe3MJhEwcQNGZpYRaGYTwY9D9L3pr1c+eqJIP99
                              mtrUuqTEp3/YPiAzpL0Dem/32WWPOV4DEc27NBMx
                              rpOi9JJBssDq+6UdK5hMIwrZ/6dZt+CPz+76Lwxn
                              R1vilVFocis+OC9ddntazV1wrAWGyYL9a83vwcuT
                              V01FJzSNlYV4hni2vxcgQPkbgt+ldYoTmBS9X3W5
                              Qy/NrzuG53zHjkYjmz3tjiadZwgffDvjT3SBYWU3
                              kBGy6gxIs5f/wIvZUSUXGorOJNUw6FubMj4sLfE4
                              cbHS6W72xs6bmEhqxyjSLQK5fuHE1MgCCDPTd0vq
                              XdbLnCZ6+l0I8lpDhd Generated by Nova\n",
                "name": "test_key",
                "fingerprint": "52:53:dd:89:6a:73:c6:18:87:4b:1e:c1:4c
                               :b8:c3:c9"
            }
        },
        {
            "keypair": {
                "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC
                              9E3tf6msdTyVcytQrs882e4aX3Zhkp1ELIAowspL
                              OykUbzq21+0JALCxMkUxXig2GCF3jomfWez1frhG
                              o+Qj/ZgdwJG44k1ZzLswPZn5k5SMQzROTsnzDLXX
                              f95q6fWZLlfAbF7MA/wd/d/7oBmmrTfaiV27Xq9B8
                              x/TlWldmMd1Cst6SEYkeVhaynlxaFnrW9sr1nKGec
                              XSOtVagtUFP4XPxsN1XbAwxZX+ZeWMTYUgliD4+Sm
                              QevNuWfpHXPSTZ947GMxMythCIPjmZ34W4wq5xVI9
                              o1MCgL7s2nLUDqYm/DesB+m9MI/ylCpLVqwFDdDHg
                              rI9x+fRYInsHbUuF Generated by Nova\n",
                "name": "test_key2",
                "fingerprint": "ea:51:b2:56:85:b3:fb:43:6f:b7:a5:54:b7:
                               bd:ab:6d"
            }
        }
    ]
}

Partially implements blueprint nova-api-attribute-test

Change-Id: Ie500239af2e862c14d49daac0e8018b24c92982b
Check attach-detach FIP & get FIP pool attributes

This patch adds the JSON schema for get Floating IPs pools
and attach & detach Floating IP APIs response and validate
the response with added JSON schema to block the backward
incompatibility change in the future.

attch, detach & delete Floating IPs does not return any
response body. So only response code is being validated.

The response body of get Floating IP pools API is below:

{
    "floating_ip_pools": [
        {
            "name": "pool1"
        }
    ]
}

Partially implements blueprint nova-api-attribute-test

Change-Id: I540b6c72fdcb6b568adbef72f5b2423a038bac7a
Test current tenant not added to private flavor

Avoid adding the current tenant to the flavor access list when
a private flavor is created. In order to add tenants to the
flavor access list we should use the add_tenant api

Change-Id: Id02f0dea8e19ee7e948d6f08163a2ede96c38dd8
Partial-Bug: #1286297
Verify the list volume attributes of Nova APIs

This patch adds the JSON schema for volume list and
validate the response of Nova Volume list APIs with
added JSON schema to block the backward incompatibility
change in the future.

The response body of Nova APIs volume list-'os-volumes'
& volume list details-'os-volumes/detail' is the below:

{
    "volumes": [
        {
            "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
            "status": "in-use",
            "displayName": "Volume Name",
            "availabilityZone": "zone1:host1",
            "createdAt": "1999-01-01T01:01:01",
            "displayDescription": "Volume Description"
            "volumeType": "Backup",
            "snapshotId": null,
            "metadata": {},
            "size": 100,
            "attachments": [
                {
                    "id": "a26887c6-c47b-4654-abb5-dfadf7d3f803",
                    "device": "/",
                    "volumeId": "a287c6-c47b-4654-abb5-dfadf7d3f803",
                    "serverId": "3912f4-c5ba-4aec-9165-872876fe202e"
                }
            ]
        }
    ]
}

Partially implements blueprint nova-api-attribute-test

Change-Id: I97bb6310a6fcb7d475dbd2bc53814d38c5e9c173
Add a new exception for invalid structure

This commit fixes too broad exception in output_parser. Otherwise, we
can't assert the Exception in unit tests.

Partially implements bp unit-tests

Change-Id: I9e45571dbf964a37dd9d0249a6f662216d5d046c
Verify attributes through Nova "list security groups" API

This patch adds checks whether a response of Nova "list security groups" API
includes the attributes to block the backward incompatibility change
in the future.

The response body of v2 API is the below:
{
    "security_groups": [
        {
            "id": 17,
            "name": "default",
            "tenant_id": "f5e60a2a87ed4a02ae1ab388bdb10cb5",
            "rules": [],
            "description": "default"
        }
    ]
}

Partially implements blueprint nova-api-attribute-test

Change-Id: Ibb2cc07e6d723e836b554f08168757aa93f61890
simplify heat test_limits

the test_limits test has a lot of conventions from other parts
of tempest which are not needed, like the use of setUpClass, and
setting _interface.

To do this we need to assign a client in the base class, further
refactoring should be able to remove a lot of code from these
tests.

This trims this down to the same functional equivalent, but with
less code.

Change-Id: Iabfa9afb7b55c4cdb86c519bce798e548463e7c4
Merge "Test current tenant not added to private flavor"
Merge "Verify attributes through Nova "list security groups" API"
Merge "Add a new exception for invalid structure"
Merge "simplify heat test_limits"
Merge "Verify the list volume attributes of Nova APIs"
Merge "Define 'links' as a common parameter type"
Merge "Validate list_keypair attribute of Nova V2/V3 APIs"
Merge "Check attach-detach FIP & get FIP pool attributes"
Merge "Add validation test in identity v3 test_role"
Merge branch 'master' of https://github.com/openstack/tempest