Merge "Add "region" config for each service"
diff --git a/README.rst b/README.rst
index f18628a..4161cc6 100644
--- a/README.rst
+++ b/README.rst
@@ -32,16 +32,18 @@
     will have a configuration file already set up to work with your
     devstack installation.
 
-Tempest is not tied to any single test runner, but Nose been the most commonly
+Tempest is not tied to any single test runner, but testr is the most commonly
 used tool. After setting up your configuration file, you can execute
-the set of Tempest tests by using ``nosetests`` ::
+the set of Tempest tests by using ``testr`` ::
 
-    $> nosetests tempest
+    $> testr run --parallel tempest
 
 To run one single test  ::
 
-    $> nosetests -sv tempest.api.compute.servers.test_server_actions.py:
-       ServerActionsTestJSON.test_rebuild_nonexistent_server
+    $> testr run --parallel tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_nonexistent_server
+
+Alternatively, you can use the run_tests.sh script which will create a venv
+and run the tests or use tox to do the same.
 
 Configuration
 -------------
diff --git a/tempest/api/compute/admin/test_aggregates.py b/tempest/api/compute/admin/test_aggregates.py
index 0bb0460..a5dceca 100644
--- a/tempest/api/compute/admin/test_aggregates.py
+++ b/tempest/api/compute/admin/test_aggregates.py
@@ -61,12 +61,12 @@
         # Create and delete an aggregate.
         aggregate_name = rand_name(self.aggregate_name_prefix)
         resp, aggregate = self.client.create_aggregate(aggregate_name)
-        self.assertEquals(200, resp.status)
-        self.assertEquals(aggregate_name, aggregate['name'])
-        self.assertEquals(None, aggregate['availability_zone'])
+        self.assertEqual(200, resp.status)
+        self.assertEqual(aggregate_name, aggregate['name'])
+        self.assertEqual(None, aggregate['availability_zone'])
 
         resp, _ = self.client.delete_aggregate(aggregate['id'])
-        self.assertEquals(200, resp.status)
+        self.assertEqual(200, resp.status)
         self.client.wait_for_resource_deletion(aggregate['id'])
 
     @attr(type='gate')
@@ -75,12 +75,12 @@
         aggregate_name = rand_name(self.aggregate_name_prefix)
         az_name = rand_name(self.az_name_prefix)
         resp, aggregate = self.client.create_aggregate(aggregate_name, az_name)
-        self.assertEquals(200, resp.status)
-        self.assertEquals(aggregate_name, aggregate['name'])
-        self.assertEquals(az_name, aggregate['availability_zone'])
+        self.assertEqual(200, resp.status)
+        self.assertEqual(aggregate_name, aggregate['name'])
+        self.assertEqual(az_name, aggregate['availability_zone'])
 
         resp, _ = self.client.delete_aggregate(aggregate['id'])
-        self.assertEquals(200, resp.status)
+        self.assertEqual(200, resp.status)
         self.client.wait_for_resource_deletion(aggregate['id'])
 
     @attr(type='gate')
@@ -91,7 +91,7 @@
         self.addCleanup(self.client.delete_aggregate, aggregate['id'])
 
         resp, aggregates = self.client.list_aggregates()
-        self.assertEquals(200, resp.status)
+        self.assertEqual(200, resp.status)
         self.assertIn((aggregate['id'], aggregate['availability_zone']),
                       map(lambda x: (x['id'], x['availability_zone']),
                           aggregates))
@@ -104,10 +104,10 @@
         self.addCleanup(self.client.delete_aggregate, aggregate['id'])
 
         resp, body = self.client.get_aggregate(aggregate['id'])
-        self.assertEquals(200, resp.status)
-        self.assertEquals(aggregate['name'], body['name'])
-        self.assertEquals(aggregate['availability_zone'],
-                          body['availability_zone'])
+        self.assertEqual(200, resp.status)
+        self.assertEqual(aggregate['name'], body['name'])
+        self.assertEqual(aggregate['availability_zone'],
+                         body['availability_zone'])
 
     @attr(type=['negative', 'gate'])
     def test_aggregate_create_as_user(self):
@@ -166,17 +166,17 @@
         self.addCleanup(self.client.delete_aggregate, aggregate['id'])
 
         resp, body = self.client.add_host(aggregate['id'], self.host)
-        self.assertEquals(200, resp.status)
-        self.assertEquals(aggregate_name, body['name'])
-        self.assertEquals(aggregate['availability_zone'],
-                          body['availability_zone'])
+        self.assertEqual(200, resp.status)
+        self.assertEqual(aggregate_name, body['name'])
+        self.assertEqual(aggregate['availability_zone'],
+                         body['availability_zone'])
         self.assertIn(self.host, body['hosts'])
 
         resp, body = self.client.remove_host(aggregate['id'], self.host)
-        self.assertEquals(200, resp.status)
-        self.assertEquals(aggregate_name, body['name'])
-        self.assertEquals(aggregate['availability_zone'],
-                          body['availability_zone'])
+        self.assertEqual(200, resp.status)
+        self.assertEqual(aggregate_name, body['name'])
+        self.assertEqual(aggregate['availability_zone'],
+                         body['availability_zone'])
         self.assertNotIn(self.host, body['hosts'])
 
     @attr(type='gate')
@@ -191,10 +191,10 @@
 
         resp, aggregates = self.client.list_aggregates()
         aggs = filter(lambda x: x['id'] == aggregate['id'], aggregates)
-        self.assertEquals(1, len(aggs))
+        self.assertEqual(1, len(aggs))
         agg = aggs[0]
-        self.assertEquals(aggregate_name, agg['name'])
-        self.assertEquals(None, agg['availability_zone'])
+        self.assertEqual(aggregate_name, agg['name'])
+        self.assertEqual(None, agg['availability_zone'])
         self.assertIn(self.host, agg['hosts'])
 
     @attr(type='gate')
@@ -208,8 +208,8 @@
         self.addCleanup(self.client.remove_host, aggregate['id'], self.host)
 
         resp, body = self.client.get_aggregate(aggregate['id'])
-        self.assertEquals(aggregate_name, body['name'])
-        self.assertEquals(None, body['availability_zone'])
+        self.assertEqual(aggregate_name, body['name'])
+        self.assertEqual(None, body['availability_zone'])
         self.assertIn(self.host, body['hosts'])
 
     @attr(type='gate')
diff --git a/tempest/api/compute/admin/test_flavors.py b/tempest/api/compute/admin/test_flavors.py
index 7efd3c1..b693227 100644
--- a/tempest/api/compute/admin/test_flavors.py
+++ b/tempest/api/compute/admin/test_flavors.py
@@ -136,8 +136,8 @@
         # Delete the flavor
         new_flavor_id = flavor['id']
         resp_delete, body = self.client.delete_flavor(new_flavor_id)
-        self.assertEquals(200, resp.status)
-        self.assertEquals(202, resp_delete.status)
+        self.assertEqual(200, resp.status)
+        self.assertEqual(202, resp_delete.status)
 
         # Deleted flavors can be seen via detailed GET
         resp, flavor = self.client.get_flavor_details(new_flavor_id)
@@ -230,6 +230,26 @@
         self.assertFalse(flag)
 
     @attr(type='gate')
+    def test_create_server_with_non_public_flavor(self):
+        # Create a flavor with os-flavor-access:is_public false
+        flavor_name = rand_name(self.flavor_name_prefix)
+        new_flavor_id = rand_int_id(start=1000)
+
+        # Create the flavor
+        resp, flavor = self.client.create_flavor(flavor_name,
+                                                 self.ram, self.vcpus,
+                                                 self.disk,
+                                                 new_flavor_id,
+                                                 is_public="False")
+        self.addCleanup(self.flavor_clean_up, flavor['id'])
+        self.assertEqual(200, resp.status)
+
+        # Verify flavor is not used by other user
+        self.assertRaises(exceptions.BadRequest,
+                          self.os.servers_client.create_server,
+                          'test', self.image_ref, flavor['id'])
+
+    @attr(type='gate')
     def test_list_public_flavor_with_other_user(self):
         # Create a Flavor with public access.
         # Try to List/Get flavor with another user
diff --git a/tempest/api/compute/admin/test_flavors_extra_specs.py b/tempest/api/compute/admin/test_flavors_extra_specs.py
index ace77a6..e1e75cb 100644
--- a/tempest/api/compute/admin/test_flavors_extra_specs.py
+++ b/tempest/api/compute/admin/test_flavors_extra_specs.py
@@ -102,7 +102,7 @@
             self.flavor['id'])
         self.assertEqual(resp.status, 200)
         for key in specs:
-            self.assertEquals(body[key], specs[key])
+            self.assertEqual(body[key], specs[key])
 
     @attr(type=['negative', 'gate'])
     def test_flavor_non_admin_unset_keys(self):
diff --git a/tempest/api/compute/servers/test_servers.py b/tempest/api/compute/servers/test_servers.py
index 3ff2538..1dff806 100644
--- a/tempest/api/compute/servers/test_servers.py
+++ b/tempest/api/compute/servers/test_servers.py
@@ -81,7 +81,7 @@
         # Update the server with a new name
         resp, server = self.client.update_server(server['id'],
                                                  name='newname')
-        self.assertEquals(200, resp.status)
+        self.assertEqual(200, resp.status)
         self.client.wait_for_server_status(server['id'], 'ACTIVE')
 
         # Verify the name of the server has changed
diff --git a/tempest/api/compute/test_live_block_migration.py b/tempest/api/compute/test_live_block_migration.py
index 84fd653..7c60859 100644
--- a/tempest/api/compute/test_live_block_migration.py
+++ b/tempest/api/compute/test_live_block_migration.py
@@ -110,7 +110,7 @@
         target_host = self._get_host_other_than(actual_host)
         self._migrate_server_to(server_id, target_host)
         self.servers_client.wait_for_server_status(server_id, 'ACTIVE')
-        self.assertEquals(target_host, self._get_host_for_server(server_id))
+        self.assertEqual(target_host, self._get_host_for_server(server_id))
 
     @testtools.skipIf(not CONF.compute.live_migration_available,
                       'Live migration not available')
@@ -122,7 +122,7 @@
 
         self.assertRaises(exceptions.BadRequest, self._migrate_server_to,
                           server_id, target_host)
-        self.assertEquals('ACTIVE', self._get_server_status(server_id))
+        self.assertEqual('ACTIVE', self._get_server_status(server_id))
 
     @testtools.skipIf(not CONF.compute.live_migration_available or
                       not CONF.compute.use_block_migration_for_live_migration,
@@ -153,7 +153,7 @@
 
         self._migrate_server_to(server_id, target_host)
         self.servers_client.wait_for_server_status(server_id, 'ACTIVE')
-        self.assertEquals(target_host, self._get_host_for_server(server_id))
+        self.assertEqual(target_host, self._get_host_for_server(server_id))
 
     @classmethod
     def tearDownClass(cls):
diff --git a/tempest/api/identity/admin/test_roles.py b/tempest/api/identity/admin/test_roles.py
index ac145c6..c234efd 100644
--- a/tempest/api/identity/admin/test_roles.py
+++ b/tempest/api/identity/admin/test_roles.py
@@ -171,7 +171,7 @@
                                                        user['id'], role['id'])
         resp, body = self.client.remove_user_role(tenant['id'], user['id'],
                                                   user_role['id'])
-        self.assertEquals(resp['status'], '204')
+        self.assertEqual(resp['status'], '204')
 
     @attr(type='gate')
     def test_remove_user_role_by_unauthorized_user(self):
diff --git a/tempest/api/identity/admin/test_services.py b/tempest/api/identity/admin/test_services.py
index 2be0c29..508c177 100644
--- a/tempest/api/identity/admin/test_services.py
+++ b/tempest/api/identity/admin/test_services.py
@@ -50,7 +50,7 @@
             self.assertTrue(resp['status'].startswith('2'))
             # verifying the existence of service created
             self.assertIn('id', fetched_service)
-            self.assertEquals(fetched_service['id'], service_data['id'])
+            self.assertEqual(fetched_service['id'], service_data['id'])
             self.assertIn('name', fetched_service)
             self.assertEqual(fetched_service['name'], service_data['name'])
             self.assertIn('type', fetched_service)
diff --git a/tempest/api/identity/admin/test_users.py b/tempest/api/identity/admin/test_users.py
index 3455b5d..057e633 100644
--- a/tempest/api/identity/admin/test_users.py
+++ b/tempest/api/identity/admin/test_users.py
@@ -109,9 +109,9 @@
         resp, user = self.client.create_user(alt_user2, self.alt_password,
                                              self.data.tenant['id'],
                                              self.alt_email)
-        self.assertEquals('200', resp['status'])
+        self.assertEqual('200', resp['status'])
         resp, body = self.client.delete_user(user['id'])
-        self.assertEquals('204', resp['status'])
+        self.assertEqual('204', resp['status'])
 
     @attr(type=['negative', 'gate'])
     def test_delete_users_by_unauthorized_user(self):
@@ -236,7 +236,7 @@
         resp, user1 = self.client.create_user(alt_tenant_user1, 'password1',
                                               self.data.tenant['id'],
                                               'user1@123')
-        self.assertEquals('200', resp['status'])
+        self.assertEqual('200', resp['status'])
         user_ids.append(user1['id'])
         self.data.users.append(user1)
 
@@ -244,7 +244,7 @@
         resp, user2 = self.client.create_user(alt_tenant_user2, 'password2',
                                               self.data.tenant['id'],
                                               'user2@123')
-        self.assertEquals('200', resp['status'])
+        self.assertEqual('200', resp['status'])
         user_ids.append(user2['id'])
         self.data.users.append(user2)
         # List of users for the respective tenant ID
@@ -273,22 +273,22 @@
         user_ids.append(user['id'])
         resp, role = self.client.assign_user_role(tenant['id'], user['id'],
                                                   role['id'])
-        self.assertEquals('200', resp['status'])
+        self.assertEqual('200', resp['status'])
 
         alt_user2 = rand_name('second_user_')
         resp, second_user = self.client.create_user(alt_user2, 'password1',
                                                     self.data.tenant['id'],
                                                     'user2@123')
-        self.assertEquals('200', resp['status'])
+        self.assertEqual('200', resp['status'])
         user_ids.append(second_user['id'])
         self.data.users.append(second_user)
         resp, role = self.client.assign_user_role(tenant['id'],
                                                   second_user['id'],
                                                   role['id'])
-        self.assertEquals('200', resp['status'])
+        self.assertEqual('200', resp['status'])
         # List of users with roles for the respective tenant ID
         resp, body = self.client.list_users_for_tenant(self.data.tenant['id'])
-        self.assertEquals('200', resp['status'])
+        self.assertEqual('200', resp['status'])
         for i in body:
             fetched_user_ids.append(i['id'])
         # verifying the user Id in the list
diff --git a/tempest/api/identity/admin/v3/test_credentials.py b/tempest/api/identity/admin/v3/test_credentials.py
index efd2f83..cda5863 100644
--- a/tempest/api/identity/admin/v3/test_credentials.py
+++ b/tempest/api/identity/admin/v3/test_credentials.py
@@ -112,8 +112,7 @@
                          if c not in fetched_cred_ids]
         self.assertEqual(0, len(missing_creds),
                          "Failed to find cred %s in fetched list" %
-                         ', '.join(m_cred for m_cred
-                         in missing_creds))
+                         ', '.join(m_cred for m_cred in missing_creds))
 
 
 class CredentialsTestXML(CredentialsTestJSON):
diff --git a/tempest/api/identity/admin/v3/test_users.py b/tempest/api/identity/admin/v3/test_users.py
index bf7a554..50e9702 100644
--- a/tempest/api/identity/admin/v3/test_users.py
+++ b/tempest/api/identity/admin/v3/test_users.py
@@ -116,7 +116,7 @@
         self.assertEqual(0, len(missing_projects),
                          "Failed to find project %s in fetched list" %
                          ', '.join(m_project for m_project
-                         in missing_projects))
+                                   in missing_projects))
 
 
 class UsersV3TestXML(UsersV3TestJSON):
diff --git a/tempest/api/image/v1/test_image_members.py b/tempest/api/image/v1/test_image_members.py
index 29bcaf4..fcbde50 100644
--- a/tempest/api/image/v1/test_image_members.py
+++ b/tempest/api/image/v1/test_image_members.py
@@ -42,7 +42,7 @@
                                         disk_format='raw',
                                         is_public=True,
                                         data=image_file)
-        self.assertEquals(201, resp.status)
+        self.assertEqual(201, resp.status)
         image_id = image['id']
         return image_id
 
@@ -50,9 +50,9 @@
     def test_add_image_member(self):
         image = self._create_image()
         resp = self.client.add_member(self.tenants[0], image)
-        self.assertEquals(204, resp.status)
+        self.assertEqual(204, resp.status)
         resp, body = self.client.get_image_membership(image)
-        self.assertEquals(200, resp.status)
+        self.assertEqual(200, resp.status)
         members = body['members']
         members = map(lambda x: x['member_id'], members)
         self.assertIn(self.tenants[0], members)
@@ -61,12 +61,12 @@
     def test_get_shared_images(self):
         image = self._create_image()
         resp = self.client.add_member(self.tenants[0], image)
-        self.assertEquals(204, resp.status)
+        self.assertEqual(204, resp.status)
         share_image = self._create_image()
         resp = self.client.add_member(self.tenants[0], share_image)
-        self.assertEquals(204, resp.status)
+        self.assertEqual(204, resp.status)
         resp, body = self.client.get_shared_images(self.tenants[0])
-        self.assertEquals(200, resp.status)
+        self.assertEqual(200, resp.status)
         images = body['shared_images']
         images = map(lambda x: x['image_id'], images)
         self.assertIn(share_image, images)
@@ -76,10 +76,10 @@
     def test_remove_member(self):
         image_id = self._create_image()
         resp = self.client.add_member(self.tenants[0], image_id)
-        self.assertEquals(204, resp.status)
+        self.assertEqual(204, resp.status)
         resp = self.client.delete_member(self.tenants[0], image_id)
-        self.assertEquals(204, resp.status)
+        self.assertEqual(204, resp.status)
         resp, body = self.client.get_image_membership(image_id)
-        self.assertEquals(200, resp.status)
+        self.assertEqual(200, resp.status)
         members = body['members']
-        self.assertEquals(0, len(members))
+        self.assertEqual(0, len(members))
diff --git a/tempest/api/network/test_load_balancer.py b/tempest/api/network/test_load_balancer.py
index 3880f4f..d604c69 100644
--- a/tempest/api/network/test_load_balancer.py
+++ b/tempest/api/network/test_load_balancer.py
@@ -34,6 +34,8 @@
         delete vIP
         update pool
         delete pool
+        show pool
+        list pool
     """
 
     @classmethod
@@ -101,6 +103,23 @@
         self.assertEqual(self.vip['id'], vip['id'])
         self.assertEqual(self.vip['name'], vip['name'])
 
+    @attr(type='smoke')
+    def test_show_pool(self):
+        # Verifies the details of a pool
+        resp, body = self.client.show_pool(self.pool['id'])
+        self.assertEqual('200', resp['status'])
+        pool = body['pool']
+        self.assertEqual(self.pool['id'], pool['id'])
+        self.assertEqual(self.pool['name'], pool['name'])
+
+    @attr(type='smoke')
+    def test_list_pools(self):
+        # Verify the pool exists in the list of all pools
+        resp, body = self.client.list_pools()
+        self.assertEqual('200', resp['status'])
+        pools = body['pools']
+        self.assertIn(self.pool['id'], [p['id'] for p in pools])
+
 
 class LoadBalancerXML(LoadBalancerJSON):
     _interface = 'xml'
diff --git a/tempest/api/object_storage/test_account_services.py b/tempest/api/object_storage/test_account_services.py
index b443933..d4201ee 100644
--- a/tempest/api/object_storage/test_account_services.py
+++ b/tempest/api/object_storage/test_account_services.py
@@ -59,7 +59,7 @@
             params = {'limit': limit}
             resp, container_list = \
                 self.account_client.list_account_containers(params=params)
-            self.assertEquals(len(container_list), limit)
+            self.assertEqual(len(container_list), limit)
 
     @attr(type='smoke')
     def test_list_containers_with_marker(self):
@@ -70,11 +70,11 @@
         params = {'marker': self.containers[-1]}
         resp, container_list = \
             self.account_client.list_account_containers(params=params)
-        self.assertEquals(len(container_list), 0)
+        self.assertEqual(len(container_list), 0)
         params = {'marker': self.containers[self.containers_count / 2]}
         resp, container_list = \
             self.account_client.list_account_containers(params=params)
-        self.assertEquals(len(container_list), self.containers_count / 2 - 1)
+        self.assertEqual(len(container_list), self.containers_count / 2 - 1)
 
     @attr(type='smoke')
     def test_list_containers_with_end_marker(self):
@@ -85,11 +85,11 @@
         params = {'end_marker': self.containers[0]}
         resp, container_list = \
             self.account_client.list_account_containers(params=params)
-        self.assertEquals(len(container_list), 0)
+        self.assertEqual(len(container_list), 0)
         params = {'end_marker': self.containers[self.containers_count / 2]}
         resp, container_list = \
             self.account_client.list_account_containers(params=params)
-        self.assertEquals(len(container_list), self.containers_count / 2)
+        self.assertEqual(len(container_list), self.containers_count / 2)
 
     @attr(type='smoke')
     def test_list_containers_with_limit_and_marker(self):
diff --git a/tempest/cli/__init__.py b/tempest/cli/__init__.py
index cbb8d08..b082b1e 100644
--- a/tempest/cli/__init__.py
+++ b/tempest/cli/__init__.py
@@ -95,9 +95,11 @@
         """Executes given command with auth attributes appended."""
         # TODO(jogo) make admin=False work
         creds = ('--os-username %s --os-tenant-name %s --os-password %s '
-                 '--os-auth-url %s ' % (self.identity.admin_username,
-                 self.identity.admin_tenant_name, self.identity.admin_password,
-                 self.identity.uri))
+                 '--os-auth-url %s ' %
+                 (self.identity.admin_username,
+                  self.identity.admin_tenant_name,
+                  self.identity.admin_password,
+                  self.identity.uri))
         flags = creds + ' ' + flags
         return self.cmd(cmd, action, flags, params, fail_ok)
 
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index 21c37b9..9137b93 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -425,7 +425,7 @@
         self.addCleanup(image_client.images.delete, image_id)
         self.status_timeout(image_client.images, image_id, 'active')
         snapshot_image = image_client.images.get(image_id)
-        self.assertEquals(name, snapshot_image.name)
+        self.assertEqual(name, snapshot_image.name)
         LOG.debug("Created snapshot image %s for server %s",
                   snapshot_image.name, server.name)
         return snapshot_image
diff --git a/tempest/scenario/test_server_advanced_ops.py b/tempest/scenario/test_server_advanced_ops.py
index cf72cd4..9c50489 100644
--- a/tempest/scenario/test_server_advanced_ops.py
+++ b/tempest/scenario/test_server_advanced_ops.py
@@ -15,7 +15,6 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 
-from tempest.common.utils.data_utils import rand_name
 from tempest.openstack.common import log as logging
 from tempest.scenario import manager
 from tempest.test import services
@@ -49,18 +48,7 @@
     @services('compute')
     def test_resize_server_confirm(self):
         # We create an instance for use in this test
-        i_name = rand_name('instance')
-        flavor_id = self.config.compute.flavor_ref
-        base_image_id = self.config.compute.image_ref
-        self.instance = self.compute_client.servers.create(
-            i_name, base_image_id, flavor_id)
-        self.assertEqual(self.instance.name, i_name)
-        self.set_resource('instance', self.instance)
-        self.assertEqual(self.instance.status, 'BUILD')
-        instance_id = self.get_resource('instance').id
-        self.status_timeout(
-            self.compute_client.servers, instance_id, 'ACTIVE')
-        instance = self.get_resource('instance')
+        instance = self.create_server(self.compute_client)
         instance_id = instance.id
         resize_flavor = self.config.compute.flavor_ref_alt
         LOG.debug("Resizing instance %s from flavor %s to flavor %s",
@@ -78,18 +66,7 @@
     @services('compute')
     def test_server_sequence_suspend_resume(self):
         # We create an instance for use in this test
-        i_name = rand_name('instance')
-        flavor_id = self.config.compute.flavor_ref
-        base_image_id = self.config.compute.image_ref
-        self.instance = self.compute_client.servers.create(
-            i_name, base_image_id, flavor_id)
-        self.assertEqual(self.instance.name, i_name)
-        self.set_resource('instance', self.instance)
-        self.assertEqual(self.instance.status, 'BUILD')
-        instance_id = self.get_resource('instance').id
-        self.status_timeout(
-            self.compute_client.servers, instance_id, 'ACTIVE')
-        instance = self.get_resource('instance')
+        instance = self.create_server(self.compute_client)
         instance_id = instance.id
         LOG.debug("Suspending instance %s. Current status: %s",
                   instance_id, instance.status)
diff --git a/tempest/scenario/test_stamp_pattern.py b/tempest/scenario/test_stamp_pattern.py
index c5a4aaf..ab464e3 100644
--- a/tempest/scenario/test_stamp_pattern.py
+++ b/tempest/scenario/test_stamp_pattern.py
@@ -92,7 +92,7 @@
         self.addCleanup(cleaner)
         self._wait_for_volume_status(volume, 'available')
         self._wait_for_volume_snapshot_status(snapshot, 'available')
-        self.assertEquals(snapshot_name, snapshot.display_name)
+        self.assertEqual(snapshot_name, snapshot.display_name)
         return snapshot
 
     def _wait_for_volume_status(self, volume, status):
diff --git a/tempest/services/network/json/network_client.py b/tempest/services/network/json/network_client.py
index bc0a6cf..ceb4c62 100644
--- a/tempest/services/network/json/network_client.py
+++ b/tempest/services/network/json/network_client.py
@@ -478,3 +478,15 @@
         resp, body = self.put(uri, body=body, headers=self.headers)
         body = json.loads(body)
         return resp, body
+
+    def list_pools(self):
+        uri = '%s/lb/pools' % (self.uri_prefix)
+        resp, body = self.get(uri, self.headers)
+        body = json.loads(body)
+        return resp, body
+
+    def show_pool(self, uuid):
+        uri = '%s/lb/pools/%s' % (self.uri_prefix, uuid)
+        resp, body = self.get(uri, self.headers)
+        body = json.loads(body)
+        return resp, body
diff --git a/tempest/tests/test_wrappers.py b/tempest/tests/test_wrappers.py
index aeea98d..1a5af00 100644
--- a/tempest/tests/test_wrappers.py
+++ b/tempest/tests/test_wrappers.py
@@ -60,7 +60,7 @@
         subprocess.call(['git', 'init'])
         exit_code = subprocess.call('sh pretty_tox.sh tests.passing',
                                     shell=True, stdout=DEVNULL, stderr=DEVNULL)
-        self.assertEquals(exit_code, 0)
+        self.assertEqual(exit_code, 0)
 
     @attr(type='smoke')
     def test_pretty_tox_fails(self):
@@ -76,7 +76,7 @@
         subprocess.call(['git', 'init'])
         exit_code = subprocess.call('sh pretty_tox.sh', shell=True,
                                     stdout=DEVNULL, stderr=DEVNULL)
-        self.assertEquals(exit_code, 1)
+        self.assertEqual(exit_code, 1)
 
     @attr(type='smoke')
     def test_pretty_tox_serial(self):
@@ -88,7 +88,7 @@
         os.chdir(self.directory)
         exit_code = subprocess.call('sh pretty_tox_serial.sh tests.passing',
                                     shell=True, stdout=DEVNULL, stderr=DEVNULL)
-        self.assertEquals(exit_code, 0)
+        self.assertEqual(exit_code, 0)
 
     @attr(type='smoke')
     def test_pretty_tox_serial_fails(self):
@@ -100,4 +100,4 @@
         os.chdir(self.directory)
         exit_code = subprocess.call('sh pretty_tox_serial.sh', shell=True,
                                     stdout=DEVNULL, stderr=DEVNULL)
-        self.assertEquals(exit_code, 1)
+        self.assertEqual(exit_code, 1)
diff --git a/tempest/thirdparty/boto/test_ec2_instance_run.py b/tempest/thirdparty/boto/test_ec2_instance_run.py
index a848fc9..7fab364 100644
--- a/tempest/thirdparty/boto/test_ec2_instance_run.py
+++ b/tempest/thirdparty/boto/test_ec2_instance_run.py
@@ -176,25 +176,25 @@
             instance.add_tag('key1', value='value1')
 
         tags = self.ec2_client.get_all_tags()
-        self.assertEquals(tags[0].name, 'key1')
-        self.assertEquals(tags[0].value, 'value1')
+        self.assertEqual(tags[0].name, 'key1')
+        self.assertEqual(tags[0].value, 'value1')
 
         tags = self.ec2_client.get_all_tags(filters={'key': 'key1'})
-        self.assertEquals(tags[0].name, 'key1')
-        self.assertEquals(tags[0].value, 'value1')
+        self.assertEqual(tags[0].name, 'key1')
+        self.assertEqual(tags[0].value, 'value1')
 
         tags = self.ec2_client.get_all_tags(filters={'value': 'value1'})
-        self.assertEquals(tags[0].name, 'key1')
-        self.assertEquals(tags[0].value, 'value1')
+        self.assertEqual(tags[0].name, 'key1')
+        self.assertEqual(tags[0].value, 'value1')
 
         tags = self.ec2_client.get_all_tags(filters={'key': 'value2'})
-        self.assertEquals(len(tags), 0)
+        self.assertEqual(len(tags), 0)
 
         for instance in reservation.instances:
             instance.remove_tag('key1', value='value1')
 
         tags = self.ec2_client.get_all_tags()
-        self.assertEquals(len(tags), 0)
+        self.assertEqual(len(tags), 0)
 
         for instance in reservation.instances:
             instance.stop()
diff --git a/tempest/thirdparty/boto/utils/wait.py b/tempest/thirdparty/boto/utils/wait.py
index 1507deb..a44e283 100644
--- a/tempest/thirdparty/boto/utils/wait.py
+++ b/tempest/thirdparty/boto/utils/wait.py
@@ -54,8 +54,7 @@
             raise TestCase.failureException("State change timeout exceeded!"
                                             '(%ds) While waiting'
                                             'for %s at "%s"' %
-                                            (dtime,
-                                            final_set, status))
+                                            (dtime, final_set, status))
         time.sleep(default_check_interval)
         old_status = status
         status = lfunction()
@@ -78,8 +77,7 @@
             raise TestCase.failureException('Pattern find timeout exceeded!'
                                             '(%ds) While waiting for'
                                             '"%s" pattern in "%s"' %
-                                            (dtime,
-                                            regexp, text))
+                                            (dtime, regexp, text))
         time.sleep(default_check_interval)