port admin/test_servers* into Nova V3 tests part2

1. porting admin/test_servers.py and admin/test_servers_negative.py
   into nova v3
2. sync nova v2 changes in Ibd04a1fdaab74fe59bcf16cc99d4ecf4821f4ae2
3. fix a few typos in servers_client.py

Partially implements blueprint nova-v3-api-tests

Change-Id: I319bef11d1aee11ffa892c366cd57eef338b36ee
Closes-Bug: #1259056
Skip simple_tenant_usage related tests

This patch adds skip decorator for simple_tenant_usage related tests.
After use 'project' instead of 'tenant' in simple_tenant_usage v3,
will update those tests.

Related patches:
https://review.openstack.org/#/c/58443/
https://review.openstack.org/#/c/58444/

Change-Id: Ifcb30d1eade2b7a7196c3c0a6b4165e5fdce2944
Related-Bug: #1265416
Fix reference config before initialization in cli tests

In 'setUpClass' method config groups were referenced
before initialization using still empty oslo.config
which is empty if use without other cli test suites.
Fixed.

Change-Id: I4f0109617bf98bbb375cfcf816c074762b9fc69a
Closes-Bug: #1265909
Make run_tests.sh for running unit tests

In other projects the run_tests.sh script is used for project
verification (ie running unit tests) However, because tempest didn't
have unit tests and is itself a test suite the run_tests.sh script was
used to execute the tempest tests. Now that we have unit tests starting
to trickle into tempest the run_tests.sh script can be used for it's
traditional purpose. So, this commit removes the tempest specific
functionality from run_tests.sh and makes it run the unit tests.

Partially implements bp unit-tests

Change-Id: Iac4e9d0908274a20c3d278b2c8d7e00949a1f36e
Add a run_tempest.sh script

This commit adds a run_tempest.sh script which is used for running
tempest in the same manner that used to be handled by run_tests.sh.

Partially implements bp unit-tests

Change-Id: Id03d198b888ebd3673b2ca6fa895164910a42c4c
Add extra list server by status test

Add list server by shutoff status test
Add list server by error status test

Change-Id: Ica063797a954a71c0e4c206be08c3c5cf4c60163
Add base class for Telemetry tests

This patch adds the base class for all Telemetry tests.

Partially implements: blueprint add-basic-ceilometer-tests

Change-Id: If467d05bceb4f5c29a7cac6c83be6fc8aae159c8
Add heat stack action test case

Ensure heat action-suspend and action-resume can work
well, so add these cases.

Change-Id: I6ec1b82f1e138ea56d6a8e7cf78d1f9a12a96f2d
port test_server_metadata and test_server_personality into v3 part2

this port test_server_metadata into v3. the personality has been removed
in nova v3 api, and the absolute has been removed from limits api, so
just remove them.

Change-Id: Ia366cfc15b3ebea787b1aa24c8197e4e01567d4c
Moves negative tests from test_instance_actions

This change set moves the negative tests in
tempest/api/compute/servers/test_instance_actions
to a new file test_instance_actions_negative

Also removes usage of modules directly.

Note: HACKING.rst
The second requirement is that all negative tests must be added to a negative
test file. If such a file doesn't exist for the particular resource being
tested a new test file should be added

Change-Id: I6fd392e3fca84f7daeb3769ff59a8d5dadb900c3
Remove skip_because in swift object expiry test

According to the comments in bug #1069849 container
listing will list an expired object (normal behavior).
This is up to the client to handle that a DELETE on
an expired object will return a 404 error.
delete_container method does not take care of any
HTTP return code for object deletion.

This patch remove the skip_because statement as the
test works as expected and not fails in tearDownClass.

This patch also add a test for metadata X-Delete-At.

Change-Id: I6c6efa151fd7b64684b25b049539680a3766e0cd
Fix typo in ceilometer and neutron tests

Fix spelling s/Skiping/Skipping/ and add missing space to
ceilometer message.

Change-Id: Ic3d7e1077bb31ce81bc348d9903b13bfc23c48cf
List Nova and Cinder extensions in debug log

For debugging purposes and post-processing Tempest logs it is useful
to get a list of Nova and Cinder extensions. This patch logs every
found extension to the debug log as a comma-separated list.

Change-Id: Ib550913e6c7b8b9eef12569c0ad7022c44b1f84d
Add a discoverable_apis option for swift

This commit adds a new list option for the object-storage-feature-enabled
config group, discoverable_apis, which lists out which Swift discoverable
optional apis are expected to be enabled on the swift server. It also
converts the pre-existing single boolean options for these types of
features to use the new list option. This option is used in the same
manner as the extensions list options for the other services. However,
since swift doesn't have the same concept of extensions as some of the
other OpenStack projects optional discoverable apis (which are often
but not always tied with middleware) were used instead. If an optional
api being enabled isn't discoverable from an external api call then
that should have a separate config option in the
object-storage-feature-enabled config group.

Partially implements bp config-cleanup

Change-Id: I846860804050ec44491ce05d6b72e1cc639609b1
Fix typo in ssh_floating.json for stress tests

check_interval was spelled check_inerval, missing the 't'
Closes bug #1267473

Change-Id: I2cbeba11d4389472925b30b2029e170c034cf44a
log console_output when test_network_basic_ops failed

For trouble shooting network connectibility check,
This commit add console_output log

Change-Id: I77826970d397b12ee5945a7ed9d68f1de863b9bc
Related-bug:1265495
Remove Swift container-sync test skipping

The skipping reason was bug #1093743 that
is currently marked as invalid in Swift bugtracker.

This patch remove the skip and propose some
refactoring to the test code.

The test is marked as slow as it can take long
to run as it depends on container-sync process run
internal which is 300 seconds by default.

Change-Id: I939a014646b42cb2a461f874a5ad0edfc79c5561
Neutron Agent Management List Agents Non Admin

Moved test_list_agents_non_admin to test_agent_management.py as
it remains relevant (and will not be autogenerated).

Change-Id: I48c7c86acd581ebef772a2154f2b9d59f30f9082
trusts API test, avoid creating duplicate user

We currently call create_trustor_and_roles twice, in the base
class and the test class, which is wrong and results in the test
leaving a user behind which is not cleaned up.  So only call it
in the test class, because we need self._interface to be set.

Change-Id: I9b96ae4435714d17bfd2b0b2abe570d98e61bfa6
Closes-Bug: #1267704
Fixes handling of arrays in XML to JSON conversion

The xml to json method in compute/xml/common.py has
an option to specify which XML elements shall be translated
to a list rather than a dict.
The current implementation though applies only for the
first level of elements and it's not passed down to
children elements.

Closes-Bug: #1267867
Change-Id: I70f6b95fbeac2a9e28e935e506ba43d183690994