DHCPv6 network tests

With upcoming IPv6 support we need to test specific
DHCPv6 features that don't exist on IPv4, like
SLAAC, stateless, etc. RFC: 3315, etc.
Partially implements: blueprint ipv6-api-testing-parity

Change-Id: I0a063e543e320ea625a5411547bce7fa2ad66b7d
Adds scenario for IPv6 addresses

* Checks the way how  IPv6 addresses assigned to vNIC
* Eliminates hardcoded IPv4 subnet creation.
* Fixes problem with creating FIP for port with few addresses.
* Adds ping6 to remote_client

Partially implements: blueprint ipv6-api-testing-parity
Change-Id: I728edf0165ba47b6f8930f2fb3d08bd29cfbb317
Handle pagination keys in lister response

Right now, NetworkClientJSON.deserialize_list() returns the
first key-value pair from the lister response.

But the lister response might differ when pagination is enabled
with pagination_max_limit set to some value. There will be one
additional key-value pair like {resource}s-links: {href:, rel: ..},
which deserialize_list() does not handle

This patch attempts to fix this bug

Change-Id: Ic554abb0342288f9226cc358dc930cc150d098a2
Closes-bug: #1398811
Do not test the maxImageMeta limit when there is no limit

Change-Id: I6e7797a5dd60da8e5c69caab2224ab27add8a2f4
Closes-Bug: #1400383
Skip test_update_router_admin_state for baremetal

The baremetal deployment relies on a flat network without tenant isolation.
The router servicing this single network should not be taken up and down,
especially if there are other tests running that may be accessing things
via public IP.  This is accounted for already during network/router/subnet
creation, but this test needs to be skipped as well.

Change-Id: I4064e134493085d90a0f0967b7b9ad640aadf75c
Closes-bug: #1400902
Check that the number of fixed_ips is at least one

In DevStack-Gate, we are attempting to run dual stacked, so even when
running IPv6 tests, an IPv4 address will be present.

Change-Id: I303d15cdf9fb458df49e4b8eaf3adc41226bf176
Required-By: I3d416275f77913769b98e77f7e47bed17fc4d1cc
Remove network debug

This commit removes all of the network debugging gorp usage from
tempest. These were added as a crutch over a year ago to enable
real neutron testing in the gate, which was impossible to debug
at the time. This debug info is an inherent layer violation in tempest
which is only supposed to be black-box and not care about any of the
underlying internals. It also assumes a single host environment and
that tempest is running on that machine, which is mostly specific to
the gate and devtest setups. Additionally the amount of output on a
failure is staggering to the point where keeping this around is
counter-productive. If we are unable to debug issues at this point
neutron needs to improve their logging so people can figure out what
failed.

Change-Id: Ia1ed4ab3cd2e4941fb072b3390f4859420989e74
Remove unused TOKEN_CHARS_RE

TOKEN_CHARS_RE is not used in rest_client.py, and this patch
removes it.

Change-Id: I33db1b937efc6393d979da6c3f6b55cf31b5779c
Do not test the metadata_items limit when there is no limit

Change-Id: I08919f935df1f34e8b75efa2772b08a9eb643872
Closes-Bug: #1401116
Use assertIn to check for subnet membership

For dual stacked networks, the gateway port will have multiple subnets
associated

Change-Id: I450f896f29051921b011e1643f1a1e24ed82ac08
Merge "Check that the number of fixed_ips is at least one"
Merge "Skip test_update_router_admin_state for baremetal"
Framework for staged setup

Split up the resource_setup in a number of methods to avoid
calls to tearDownClass when not needed, and enforce good
practices in the structure of the setUpClass.

Partially-implements bp:resource-cleanup

Change-Id: I3eae85f8e42f8ed58c87e6336792faf66c8f13aa
Make InvalidServiceTag inherit from TempestException

Exceptions which inherit from RestClientException should raise based
on an error response which is returned from REST API servers(nova-api,
etc). However, InvalidServiceTag is not now.
We have a plan RestClient is implemented in tempest-lib and related
exceptions also are moved to tempest-lib.
For doing that, this patch separates an unrelated exception from
RestClientException.

Change-Id: I49d50fb14b18c6fb263308a68d7ac6a97b1a9800
Move safe_body() into specific class

safe_body() is used in RestClient class only, so this patch
moves safe_body() into the class for the code cleanup.

Change-Id: Ice80d5ab19438162ba7a5705fa78c1ab91c1ccd5
Merge "Framework for staged setup"
Merge "Make InvalidServiceTag inherit from TempestException"
Merge "Move safe_body() into specific class"
Change rest client exceptions' inheritances

RateLimitExceeded, ServerFault and OverLimit raise at rest_client layer
and they should inherit from RestClientException for representing what
happens clearly. This patch changes them.

Change-Id: I0b74bd44a88cc68bdaeab6bd605722d47f5a28a9
Updated from global requirements

Change-Id: Icc3af198981cb427fb735b747aacfa02b85e7242