Merge "Removed smoke tags from all -api job tests"
diff --git a/neutron/tests/tempest/api/admin/test_quotas.py b/neutron/tests/tempest/api/admin/test_quotas.py
index 94471e1..4e00da2 100644
--- a/neutron/tests/tempest/api/admin/test_quotas.py
+++ b/neutron/tests/tempest/api/admin/test_quotas.py
@@ -15,6 +15,7 @@
 
 import six
 from tempest.lib.common.utils import data_utils
+from tempest.lib import exceptions as lib_exc
 from tempest import test
 
 from neutron.tests.tempest.api import base
@@ -60,7 +61,7 @@
         # Change quotas for tenant
         quota_set = self.admin_client.update_quotas(tenant_id,
                                                     **new_quotas)
-        self.addCleanup(self.admin_client.reset_quotas, tenant_id)
+        self.addCleanup(self._cleanup_quotas, tenant_id)
         for key, value in six.iteritems(new_quotas):
             self.assertEqual(value, quota_set[key])
 
@@ -83,3 +84,12 @@
         non_default_quotas = self.admin_client.list_quotas()
         for q in non_default_quotas['quotas']:
             self.assertNotEqual(tenant_id, q['tenant_id'])
+
+    def _cleanup_quotas(self, project_id):
+        # Try to clean up the resources. If it fails, then
+        # assume that everything was already deleted, so
+        # it is OK to continue.
+        try:
+            self.admin_client.reset_quotas(project_id)
+        except lib_exc.NotFound:
+            pass
diff --git a/neutron/tests/tempest/plugin.py b/neutron/tests/tempest/plugin.py
index e583b28..12a01ee 100644
--- a/neutron/tests/tempest/plugin.py
+++ b/neutron/tests/tempest/plugin.py
@@ -16,14 +16,14 @@
 
 import os
 
-from tempest import config
 from tempest.test_discover import plugins
 
 import neutron
 
+
 class NeutronTempestPlugin(plugins.TempestPlugin):
     def load_tests(self):
-        base_path =  os.path.split(os.path.dirname(
+        base_path = os.path.split(os.path.dirname(
             os.path.abspath(neutron.__file__)))[0]
         test_dir = "neutron/tests/tempest"
         full_test_dir = os.path.join(base_path, test_dir)
diff --git a/neutron/tests/tempest/services/network/json/network_client.py b/neutron/tests/tempest/services/network/json/network_client.py
index 18f33e7..e273f55 100644
--- a/neutron/tests/tempest/services/network/json/network_client.py
+++ b/neutron/tests/tempest/services/network/json/network_client.py
@@ -12,7 +12,7 @@
 
 import time
 
-from oslo_serialization import jsonutils as json
+from oslo_serialization import jsonutils
 from six.moves.urllib import parse as urlparse
 from tempest.lib.common import rest_client as service_client
 from tempest.lib import exceptions as lib_exc
@@ -164,7 +164,7 @@
     def create_subnetpool(self, name, **kwargs):
         subnetpool_data = {'name': name}
         for arg in kwargs:
-           subnetpool_data[arg] = kwargs[arg]
+            subnetpool_data[arg] = kwargs[arg]
 
         post_data = {'subnetpool': subnetpool_data}
         body = self.serialize_list(post_data, "subnetpools", "subnetpool")
@@ -201,7 +201,7 @@
     def update_subnetpool(self, id, **kwargs):
         subnetpool_data = {}
         for arg in kwargs:
-           subnetpool_data[arg] = kwargs[arg]
+            subnetpool_data[arg] = kwargs[arg]
 
         post_data = {'subnetpool': subnetpool_data}
         body = self.serialize_list(post_data, "subnetpools", "subnetpool")
@@ -279,40 +279,40 @@
         uri = '%s/bgp-speakers/%s/add_bgp_peer' % (self.uri_prefix,
                                                    bgp_speaker_id)
         update_body = {"bgp_peer_id": bgp_peer_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def remove_bgp_peer_with_id(self, bgp_speaker_id, bgp_peer_id):
         uri = '%s/bgp-speakers/%s/remove_bgp_peer' % (self.uri_prefix,
                                                       bgp_speaker_id)
         update_body = {"bgp_peer_id": bgp_peer_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def add_bgp_gateway_network(self, bgp_speaker_id, network_id):
         uri = '%s/bgp-speakers/%s/add_gateway_network' % (self.uri_prefix,
                                                         bgp_speaker_id)
         update_body = {"network_id": network_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def remove_bgp_gateway_network(self, bgp_speaker_id, network_id):
         uri = '%s/bgp-speakers/%s/remove_gateway_network'
         uri = uri % (self.uri_prefix, bgp_speaker_id)
         update_body = {"network_id": network_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def get_bgp_advertised_routes(self, bgp_speaker_id):
@@ -381,10 +381,10 @@
         return False
 
     def deserialize_single(self, body):
-        return json.loads(body)
+        return jsonutils.loads(body)
 
     def deserialize_list(self, body):
-        res = json.loads(body)
+        res = jsonutils.loads(body)
         # expecting response in form
         # {'resources': [ res1, res2] } => when pagination disabled
         # {'resources': [..], 'resources_links': {}} => if pagination enabled
@@ -394,18 +394,18 @@
             return res[k]
 
     def serialize(self, data):
-        return json.dumps(data)
+        return jsonutils.dumps(data)
 
     def serialize_list(self, data, root=None, item=None):
         return self.serialize(data)
 
     def update_quotas(self, tenant_id, **kwargs):
         put_body = {'quota': kwargs}
-        body = json.dumps(put_body)
+        body = jsonutils.dumps(put_body)
         uri = '%s/quotas/%s' % (self.uri_prefix, tenant_id)
         resp, body = self.put(uri, body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body['quota'])
 
     def reset_quotas(self, tenant_id):
@@ -418,18 +418,18 @@
         post_body = {'router': kwargs}
         post_body['router']['name'] = name
         post_body['router']['admin_state_up'] = admin_state_up
-        body = json.dumps(post_body)
+        body = jsonutils.dumps(post_body)
         uri = '%s/routers' % (self.uri_prefix)
         resp, body = self.post(uri, body)
         self.expected_success(201, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def _update_router(self, router_id, set_enable_snat, **kwargs):
         uri = '%s/routers/%s' % (self.uri_prefix, router_id)
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         update_body = {}
         update_body['name'] = kwargs.get('name', body['router']['name'])
         update_body['admin_state_up'] = kwargs.get(
@@ -450,10 +450,10 @@
         if 'distributed' in kwargs:
             update_body['distributed'] = kwargs['distributed']
         update_body = dict(router=update_body)
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def update_router(self, router_id, **kwargs):
@@ -477,47 +477,47 @@
         uri = '%s/routers/%s/add_router_interface' % (self.uri_prefix,
                                                       router_id)
         update_body = {"subnet_id": subnet_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def add_router_interface_with_port_id(self, router_id, port_id):
         uri = '%s/routers/%s/add_router_interface' % (self.uri_prefix,
                                                       router_id)
         update_body = {"port_id": port_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def remove_router_interface_with_subnet_id(self, router_id, subnet_id):
         uri = '%s/routers/%s/remove_router_interface' % (self.uri_prefix,
                                                          router_id)
         update_body = {"subnet_id": subnet_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def remove_router_interface_with_port_id(self, router_id, port_id):
         uri = '%s/routers/%s/remove_router_interface' % (self.uri_prefix,
                                                          router_id)
         update_body = {"port_id": port_id}
-        update_body = json.dumps(update_body)
+        update_body = jsonutils.dumps(update_body)
         resp, body = self.put(uri, update_body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def list_router_interfaces(self, uuid):
         uri = '%s/ports?device_id=%s' % (self.uri_prefix, uuid)
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def update_agent(self, agent_id, agent_info):
@@ -527,33 +527,33 @@
         """
         uri = '%s/agents/%s' % (self.uri_prefix, agent_id)
         agent = {"agent": agent_info}
-        body = json.dumps(agent)
+        body = jsonutils.dumps(agent)
         resp, body = self.put(uri, body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def list_routers_on_l3_agent(self, agent_id):
         uri = '%s/agents/%s/l3-routers' % (self.uri_prefix, agent_id)
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def list_l3_agents_hosting_router(self, router_id):
         uri = '%s/routers/%s/l3-agents' % (self.uri_prefix, router_id)
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def add_router_to_l3_agent(self, agent_id, router_id):
         uri = '%s/agents/%s/l3-routers' % (self.uri_prefix, agent_id)
         post_body = {"router_id": router_id}
-        body = json.dumps(post_body)
+        body = jsonutils.dumps(post_body)
         resp, body = self.post(uri, body)
         self.expected_success(201, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def remove_router_from_l3_agent(self, agent_id, router_id):
@@ -567,14 +567,14 @@
         uri = '%s/networks/%s/dhcp-agents' % (self.uri_prefix, network_id)
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def list_networks_hosted_by_one_dhcp_agent(self, agent_id):
         uri = '%s/agents/%s/dhcp-networks' % (self.uri_prefix, agent_id)
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def remove_network_from_dhcp_agent(self, agent_id, network_id):
@@ -592,10 +592,10 @@
                             "destination": destination}]
             }
         }
-        body = json.dumps(put_body)
+        body = jsonutils.dumps(put_body)
         resp, body = self.put(uri, body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def delete_extra_routes(self, router_id):
@@ -606,19 +606,19 @@
                 'routes': null_routes
             }
         }
-        body = json.dumps(put_body)
+        body = jsonutils.dumps(put_body)
         resp, body = self.put(uri, body)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def add_dhcp_agent_to_network(self, agent_id, network_id):
         post_body = {'network_id': network_id}
-        body = json.dumps(post_body)
+        body = jsonutils.dumps(post_body)
         uri = '%s/agents/%s/dhcp-networks' % (self.uri_prefix, agent_id)
         resp, body = self.post(uri, body)
         self.expected_success(201, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def list_qos_policies(self, **filters):
@@ -629,16 +629,18 @@
             uri = '%s/qos/policies' % self.uri_prefix
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def create_qos_policy(self, name, description, shared, tenant_id=None):
         uri = '%s/qos/policies' % self.uri_prefix
-        post_data = {'policy': {
+        post_data = {
+            'policy': {
                 'name': name,
                 'description': description,
                 'shared': shared
-            }}
+            }
+        }
         if tenant_id is not None:
             post_data['policy']['tenant_id'] = tenant_id
         resp, body = self.post(uri, self.serialize(post_data))
@@ -657,14 +659,15 @@
     def create_bandwidth_limit_rule(self, policy_id, max_kbps, max_burst_kbps):
         uri = '%s/qos/policies/%s/bandwidth_limit_rules' % (
             self.uri_prefix, policy_id)
-        post_data = self.serialize(
-            {'bandwidth_limit_rule': {
+        post_data = self.serialize({
+            'bandwidth_limit_rule': {
                 'max_kbps': max_kbps,
-                'max_burst_kbps': max_burst_kbps}
-            })
+                'max_burst_kbps': max_burst_kbps
+            }
+        })
         resp, body = self.post(uri, post_data)
         self.expected_success(201, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def list_bandwidth_limit_rules(self, policy_id):
@@ -687,7 +690,7 @@
         uri = '%s/qos/policies/%s/bandwidth_limit_rules/%s' % (
             self.uri_prefix, policy_id, rule_id)
         post_data = {'bandwidth_limit_rule': kwargs}
-        resp, body = self.put(uri, json.dumps(post_data))
+        resp, body = self.put(uri, jsonutils.dumps(post_data))
         body = self.deserialize_single(body)
         self.expected_success(200, resp.status)
         return service_client.ResponseBody(resp, body)
@@ -702,13 +705,14 @@
     def create_dscp_marking_rule(self, policy_id, dscp_mark):
         uri = '%s/qos/policies/%s/dscp_marking_rules' % (
             self.uri_prefix, policy_id)
-        post_data = self.serialize(
-            {'dscp_marking_rule': {
-                'dscp_mark': dscp_mark}
-            })
+        post_data = self.serialize({
+            'dscp_marking_rule': {
+                'dscp_mark': dscp_mark
+            }
+        })
         resp, body = self.post(uri, post_data)
         self.expected_success(201, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def list_dscp_marking_rules(self, policy_id):
@@ -731,7 +735,7 @@
         uri = '%s/qos/policies/%s/dscp_marking_rules/%s' % (
             self.uri_prefix, policy_id, rule_id)
         post_data = {'dscp_marking_rule': kwargs}
-        resp, body = self.put(uri, json.dumps(post_data))
+        resp, body = self.put(uri, jsonutils.dumps(post_data))
         body = self.deserialize_single(body)
         self.expected_success(200, resp.status)
         return service_client.ResponseBody(resp, body)
@@ -747,12 +751,12 @@
         uri = '%s/qos/rule-types' % self.uri_prefix
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)
 
     def get_auto_allocated_topology(self, tenant_id=None):
         uri = '%s/auto-allocated-topology/%s' % (self.uri_prefix, tenant_id)
         resp, body = self.get(uri)
         self.expected_success(200, resp.status)
-        body = json.loads(body)
+        body = jsonutils.loads(body)
         return service_client.ResponseBody(resp, body)