Removed smoke tags from all -api job tests

Most of the smoke tests now in the Neutron tree were inherited from Tempest
and are in the process of being reconciled back. Since [1], Neutron tests
can be run via a Tempest plugin, therefore there is a chance that these
are picked up unwillingly by some CI systems (like the one of Puppet
sub-project).

We should purge the tags for now, complete the de-fork and consider which
ones are worth the tag again.

[1] Ia233aa162746845f6ae08a8157dcd242dcd58eab
[2] https://etherpad.openstack.org/p/neutron-tempest-defork-patches-since-initial-sync

Change-Id: Id0bbfef2058363c22dc042c8d0793a1df7bac3aa
diff --git a/neutron/tests/tempest/api/admin/test_agent_management.py b/neutron/tests/tempest/api/admin/test_agent_management.py
index 4e95391..b710dc3 100644
--- a/neutron/tests/tempest/api/admin/test_agent_management.py
+++ b/neutron/tests/tempest/api/admin/test_agent_management.py
@@ -29,7 +29,6 @@
         cls.agent = agents[0]  # don't modify this agent
         cls.dyn_agent = agents[1]
 
-    @test.attr(type='smoke')
     @test.idempotent_id('9c80f04d-11f3-44a4-8738-ed2f879b0ff4')
     def test_list_agent(self):
         body = self.admin_client.list_agents()
@@ -42,20 +41,17 @@
             agent.pop('configurations', None)
         self.assertIn(self.agent, agents)
 
-    @test.attr(type=['smoke'])
     @test.idempotent_id('e335be47-b9a1-46fd-be30-0874c0b751e6')
     def test_list_agents_non_admin(self):
         body = self.client.list_agents()
         self.assertEqual(len(body["agents"]), 0)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('869bc8e8-0fda-4a30-9b71-f8a7cf58ca9f')
     def test_show_agent(self):
         body = self.admin_client.show_agent(self.agent['id'])
         agent = body['agent']
         self.assertEqual(agent['id'], self.agent['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('371dfc5b-55b9-4cb5-ac82-c40eadaac941')
     def test_update_agent_status(self):
         origin_status = self.agent['admin_state_up']
@@ -67,7 +63,6 @@
         updated_status = body['agent']['admin_state_up']
         self.assertEqual(origin_status, updated_status)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('68a94a14-1243-46e6-83bf-157627e31556')
     def test_update_agent_description(self):
         self.useFixture(tempest_fixtures.LockFixture('agent_description'))
diff --git a/neutron/tests/tempest/api/admin/test_dhcp_agent_scheduler.py b/neutron/tests/tempest/api/admin/test_dhcp_agent_scheduler.py
index 049afe5..d058ffd 100644
--- a/neutron/tests/tempest/api/admin/test_dhcp_agent_scheduler.py
+++ b/neutron/tests/tempest/api/admin/test_dhcp_agent_scheduler.py
@@ -30,13 +30,11 @@
         cls.cidr = cls.subnet['cidr']
         cls.port = cls.create_port(cls.network)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('5032b1fe-eb42-4a64-8f3b-6e189d8b5c7d')
     def test_list_dhcp_agent_hosting_network(self):
         self.admin_client.list_dhcp_agent_hosting_network(
             self.network['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('30c48f98-e45d-4ffb-841c-b8aad57c7587')
     def test_list_networks_hosted_by_one_dhcp(self):
         body = self.admin_client.list_dhcp_agent_hosting_network(
@@ -56,7 +54,6 @@
             network_ids.append(network['id'])
         return network_id in network_ids
 
-    @test.attr(type='smoke')
     @test.idempotent_id('a0856713-6549-470c-a656-e97c8df9a14d')
     def test_add_remove_network_from_dhcp_agent(self):
         # The agent is now bound to the network, we can free the port
diff --git a/neutron/tests/tempest/api/admin/test_extension_driver_port_security_admin.py b/neutron/tests/tempest/api/admin/test_extension_driver_port_security_admin.py
index 1f602ae..deef5af 100644
--- a/neutron/tests/tempest/api/admin/test_extension_driver_port_security_admin.py
+++ b/neutron/tests/tempest/api/admin/test_extension_driver_port_security_admin.py
@@ -23,7 +23,7 @@
 class PortSecurityAdminTests(base_security.BaseSecGroupTest,
                              base.BaseAdminNetworkTest):
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('d39a96e2-2dea-4feb-8093-e7ac991ce6f8')
     @test.requires_ext(extension='port-security', service='network')
     def test_create_port_security_false_on_shared_network(self):
diff --git a/neutron/tests/tempest/api/admin/test_external_network_extension.py b/neutron/tests/tempest/api/admin/test_external_network_extension.py
index 5403ad0..a99d78c 100644
--- a/neutron/tests/tempest/api/admin/test_external_network_extension.py
+++ b/neutron/tests/tempest/api/admin/test_external_network_extension.py
@@ -38,7 +38,6 @@
         self.addCleanup(self.admin_client.delete_network, network['id'])
         return network
 
-    @test.attr(type='smoke')
     @test.idempotent_id('afd8f1b7-a81e-4629-bca8-a367b3a144bb')
     def test_regular_client_shares_with_another(self):
         net = self.create_network()
@@ -63,7 +62,6 @@
                 action='access_as_external',
                 target_tenant='*')
 
-    @test.attr(type='smoke')
     @test.idempotent_id('a2e19f06-48a9-4e4c-b717-08cb2008707d')
     def test_wildcard_policy_created_from_external_network_api(self):
         # create external makes wildcard
diff --git a/neutron/tests/tempest/api/admin/test_floating_ips_admin_actions.py b/neutron/tests/tempest/api/admin/test_floating_ips_admin_actions.py
index b8512ad..792e682 100644
--- a/neutron/tests/tempest/api/admin/test_floating_ips_admin_actions.py
+++ b/neutron/tests/tempest/api/admin/test_floating_ips_admin_actions.py
@@ -41,7 +41,7 @@
         cls.create_router_interface(cls.router['id'], cls.subnet['id'])
         cls.port = cls.create_port(cls.network)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('11116ee9-4e99-5b15-b8e1-aa7df92ca589')
     def test_associate_floating_ip_with_port_from_another_tenant(self):
         body = self.admin_client.create_floatingip(
@@ -64,7 +64,6 @@
     @testtools.skipUnless(
         CONF.neutron_plugin_options.specify_floating_ip_address_available,
         "Feature for specifying floating IP address is disabled")
-    @test.attr(type='smoke')
     @test.idempotent_id('332a8ae4-402e-4b98-bb6f-532e5a87b8e0')
     def test_create_floatingip_with_specified_ip_address(self):
         # other tests may end up stealing the IP before we can use it
diff --git a/neutron/tests/tempest/api/admin/test_l3_agent_scheduler.py b/neutron/tests/tempest/api/admin/test_l3_agent_scheduler.py
index de09ba1..a276441 100644
--- a/neutron/tests/tempest/api/admin/test_l3_agent_scheduler.py
+++ b/neutron/tests/tempest/api/admin/test_l3_agent_scheduler.py
@@ -79,12 +79,10 @@
                 cls.client.add_router_interface_with_port_id(
                     cls.router['id'], cls.port['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('b7ce6e89-e837-4ded-9b78-9ed3c9c6a45a')
     def test_list_routers_on_l3_agent(self):
         self.admin_client.list_routers_on_l3_agent(self.agent['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('9464e5e7-8625-49c3-8fd1-89c52be59d66')
     def test_add_list_remove_router_on_l3_agent(self):
         l3_agent_ids = list()
diff --git a/neutron/tests/tempest/api/admin/test_routers_dvr.py b/neutron/tests/tempest/api/admin/test_routers_dvr.py
index ff429b8..c9d6e1e 100644
--- a/neutron/tests/tempest/api/admin/test_routers_dvr.py
+++ b/neutron/tests/tempest/api/admin/test_routers_dvr.py
@@ -39,7 +39,6 @@
             raise cls.skipException(msg)
         cls.admin_client.delete_router(router['router']['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('08a2a0a8-f1e4-4b34-8e30-e522e836c44e')
     def test_distributed_router_creation(self):
         """
@@ -57,7 +56,6 @@
                         router['router']['id'])
         self.assertTrue(router['router']['distributed'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('8a0a72b4-7290-4677-afeb-b4ffe37bc352')
     def test_centralized_router_creation(self):
         """
@@ -76,7 +74,6 @@
                         router['router']['id'])
         self.assertFalse(router['router']['distributed'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('acd43596-c1fb-439d-ada8-31ad48ae3c2e')
     def test_centralized_router_update_to_dvr(self):
         """
diff --git a/neutron/tests/tempest/api/admin/test_shared_network_extension.py b/neutron/tests/tempest/api/admin/test_shared_network_extension.py
index 4c7bf6a..a637c3e 100644
--- a/neutron/tests/tempest/api/admin/test_shared_network_extension.py
+++ b/neutron/tests/tempest/api/admin/test_shared_network_extension.py
@@ -155,14 +155,12 @@
         cls.network = cls.create_shared_network()
         cls.create_subnet(cls.network, client=cls.admin_client)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-ffffffff1fff')
     def test_create_with_address_pair_blocked_on_other_network(self):
         with testtools.ExpectedException(lib_exc.Forbidden):
             self.create_port(self.network,
                              allowed_address_pairs=self.allowed_address_pairs)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-ffffffff2fff')
     def test_update_with_address_pair_blocked_on_other_network(self):
         port = self.create_port(self.network)
@@ -194,7 +192,6 @@
         )['rbac_policy']
         return {'network': net, 'subnet': subnet, 'policy': pol}
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff1fff')
     def test_network_only_visible_to_policy_target(self):
         net = self._make_admin_net_and_subnet_shared_to_tenant_id(
@@ -204,7 +201,6 @@
             # client2 has not been granted access
             self.client2.show_network(net['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff2fff')
     def test_subnet_on_network_only_visible_to_policy_target(self):
         sub = self._make_admin_net_and_subnet_shared_to_tenant_id(
@@ -214,7 +210,6 @@
             # client2 has not been granted access
             self.client2.show_subnet(sub['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff2eee')
     def test_policy_target_update(self):
         res = self._make_admin_net_and_subnet_shared_to_tenant_id(
@@ -238,7 +233,6 @@
                 object_type='network', object_id=res['network']['id'],
                 action='access_as_shared', target_tenant=self.client.tenant_id)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff3fff')
     def test_port_presence_prevents_network_rbac_policy_deletion(self):
         res = self._make_admin_net_and_subnet_shared_to_tenant_id(
@@ -269,7 +263,6 @@
         # anchor is gone, delete should pass
         self.admin_client.delete_rbac_policy(wild['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-beefbeefbeef')
     def test_tenant_can_delete_port_on_own_network(self):
         net = self.create_network()  # owned by self.client
@@ -287,7 +280,6 @@
         with testtools.ExpectedException(lib_exc.NotFound):
             self.client2.delete_port(port['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff4fff')
     def test_regular_client_shares_to_another_regular_client(self):
         net = self.create_network()  # owned by self.client
@@ -306,7 +298,6 @@
             [p['id']
              for p in self.client2.list_rbac_policies()['rbac_policies']])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('bf5052b8-b11e-407c-8e43-113447404d3e')
     def test_filter_fields(self):
         net = self.create_network()
@@ -319,7 +310,6 @@
             res = self.client.list_rbac_policies(fields=fields)
             self.assertEqual(set(fields), set(res['rbac_policies'][0].keys()))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff5fff')
     def test_policy_show(self):
         res = self._make_admin_net_and_subnet_shared_to_tenant_id(
@@ -335,7 +325,6 @@
         self.assertEqual(
             p2, self.admin_client.show_rbac_policy(p2['id'])['rbac_policy'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('e7bcb1ea-4877-4266-87bb-76f68b421f31')
     def test_filter_policies(self):
         net = self.create_network()
@@ -354,7 +343,6 @@
         self.assertEqual(pol1['id'], res1[0]['id'])
         self.assertEqual(pol2['id'], res2[0]['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff6fff')
     def test_regular_client_blocked_from_sharing_anothers_network(self):
         net = self._make_admin_net_and_subnet_shared_to_tenant_id(
@@ -364,7 +352,6 @@
                 object_type='network', object_id=net['id'],
                 action='access_as_shared', target_tenant=self.client.tenant_id)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('c5f8f785-ce8d-4430-af7e-a236205862fb')
     @test.requires_ext(extension="quotas", service="network")
     def test_rbac_policy_quota(self):
@@ -381,7 +368,6 @@
                     action='access_as_shared',
                     target_tenant=str(uuid.uuid4()).replace('-', ''))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-afffffff7fff')
     def test_regular_client_blocked_from_sharing_with_wildcard(self):
         net = self.create_network()
@@ -397,7 +383,6 @@
             self.client.update_rbac_policy(pol['rbac_policy']['id'],
                                            target_tenant='*')
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-aeeeeeee7fff')
     def test_filtering_works_with_rbac_records_present(self):
         resp = self._make_admin_net_and_subnet_shared_to_tenant_id(
diff --git a/neutron/tests/tempest/api/test_address_scopes.py b/neutron/tests/tempest/api/test_address_scopes.py
index aedc552..8290784 100644
--- a/neutron/tests/tempest/api/test_address_scopes.py
+++ b/neutron/tests/tempest/api/test_address_scopes.py
@@ -56,7 +56,6 @@
 
 class AddressScopeTest(AddressScopeTestBase):
 
-    @test.attr(type='smoke')
     @test.idempotent_id('045f9294-8b1a-4848-b6a8-edf1b41e9d06')
     def test_tenant_create_list_address_scope(self):
         address_scope = self._create_address_scope(ip_version=4)
@@ -69,7 +68,6 @@
                       [a_s['name'] for a_s in returned_address_scopes],
                       "Created address scope name should be in the list")
 
-    @test.attr(type='smoke')
     @test.idempotent_id('85e0326b-4c75-4b92-bd6e-7c7de6aaf05c')
     def test_show_address_scope(self):
         address_scope = self._create_address_scope(ip_version=4)
@@ -81,12 +79,10 @@
                          returned_address_scope['name'])
         self.assertFalse(returned_address_scope['shared'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('85a259b2-ace6-4e32-9657-a9a392b452aa')
     def test_tenant_update_address_scope(self):
         self._test_update_address_scope_helper()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('22b3b600-72a8-4b60-bc94-0f29dd6271df')
     def test_delete_address_scope(self):
         address_scope = self._create_address_scope(ip_version=4)
@@ -94,7 +90,6 @@
         self.assertRaises(lib_exc.NotFound, self.client.show_address_scope,
                           address_scope['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('5a06c287-8036-4d04-9d78-def8e06d43df')
     def test_admin_create_shared_address_scope(self):
         address_scope = self._create_address_scope(is_admin=True, shared=True,
@@ -106,7 +101,6 @@
                          returned_address_scope['name'])
         self.assertTrue(returned_address_scope['shared'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('e9e1ccdd-9ccd-4076-9503-71820529508b')
     def test_admin_update_shared_address_scope(self):
         address_scope = self._test_update_address_scope_helper(is_admin=True,
diff --git a/neutron/tests/tempest/api/test_address_scopes_negative.py b/neutron/tests/tempest/api/test_address_scopes_negative.py
index 9fc9e5b..05afa04 100644
--- a/neutron/tests/tempest/api/test_address_scopes_negative.py
+++ b/neutron/tests/tempest/api/test_address_scopes_negative.py
@@ -21,32 +21,32 @@
 
 class AddressScopeTestNegative(test_address_scopes.AddressScopeTestBase):
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('9c92ec34-0c50-4104-aa47-9ce98d5088df')
     def test_tenant_create_shared_address_scope(self):
         self.assertRaises(lib_exc.Forbidden, self._create_address_scope,
                           shared=True, ip_version=4)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('a857b61e-bf53-4fab-b21a-b0daaf81b5bd')
     def test_tenant_update_address_scope_shared_true(self):
         self.assertRaises(lib_exc.Forbidden,
                           self._test_update_address_scope_helper, shared=True)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('a859ef2f-9c76-4e2e-ba0f-e0339a489e8c')
     def test_tenant_update_address_scope_shared_false(self):
         self.assertRaises(lib_exc.Forbidden,
                           self._test_update_address_scope_helper, shared=False)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('9b6dd7ad-cabb-4f55-bd5e-e61176ef41f6')
     def test_get_non_existent_address_scope(self):
         non_exist_id = data_utils.rand_name('address_scope')
         self.assertRaises(lib_exc.NotFound, self.client.show_address_scope,
                           non_exist_id)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('ef213552-f2da-487d-bf4a-e1705d115ff1')
     def test_tenant_get_not_shared_admin_address_scope(self):
         address_scope = self._create_address_scope(is_admin=True,
@@ -55,21 +55,21 @@
         self.assertRaises(lib_exc.NotFound, self.client.show_address_scope,
                           address_scope['id'])
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('5c25dc6a-1e92-467a-9cc7-cda74b6003db')
     def test_delete_non_existent_address_scope(self):
         non_exist_id = data_utils.rand_name('address_scope')
         self.assertRaises(lib_exc.NotFound, self.client.delete_address_scope,
                           non_exist_id)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('47c25dc5-e886-4a84-88c3-ac5031969661')
     def test_update_non_existent_address_scope(self):
         non_exist_id = data_utils.rand_name('address_scope')
         self.assertRaises(lib_exc.NotFound, self.client.update_address_scope,
                           non_exist_id, name='foo-name')
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('702d0515-82cb-4207-b0d9-703336e54665')
     def test_update_shared_address_scope_to_unshare(self):
         address_scope = self._create_address_scope(is_admin=True, shared=True,
@@ -78,7 +78,7 @@
                           self.admin_client.update_address_scope,
                           address_scope['id'], name='new-name', shared=False)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('1e471e5c-6f9c-437a-9257-fd9bc4b6f0fb')
     def test_delete_address_scope_associated_with_subnetpool(self):
         address_scope = self._create_address_scope(ip_version=4)
diff --git a/neutron/tests/tempest/api/test_allowed_address_pair.py b/neutron/tests/tempest/api/test_allowed_address_pair.py
index f6db86e..88818b2 100644
--- a/neutron/tests/tempest/api/test_allowed_address_pair.py
+++ b/neutron/tests/tempest/api/test_allowed_address_pair.py
@@ -50,7 +50,6 @@
         cls.ip_address = port['fixed_ips'][0]['ip_address']
         cls.mac_address = port['mac_address']
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86c3529b-1231-40de-803c-00e40882f043')
     def test_create_list_port_with_address_pair(self):
         # Create port with allowed address pair attribute
@@ -70,7 +69,6 @@
         self.assertTrue(port, msg)
         self._confirm_allowed_address_pair(port[0], self.ip_address)
 
-    @test.attr(type='smoke')
     def _update_port_with_address(self, address, mac_address=None, **kwargs):
         # Create a port without allowed address pair
         body = self.client.create_port(network_id=self.network['id'])
@@ -89,13 +87,11 @@
         allowed_address_pair = body['port']['allowed_address_pairs']
         self.assertEqual(allowed_address_pair, allowed_address_pairs)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('9599b337-272c-47fd-b3cf-509414414ac4')
     def test_update_port_with_address_pair(self):
         # Update port with allowed address pair
         self._update_port_with_address(self.ip_address)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('4d6d178f-34f6-4bff-a01c-0a2f8fe909e4')
     def test_update_port_with_cidr_address_pair(self):
         # Update allowed address pair with cidr
@@ -104,7 +100,6 @@
                 'network', 'project_network_cidr')))
         self._update_port_with_address(cidr)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('b3f20091-6cd5-472b-8487-3516137df933')
     def test_update_port_with_multiple_ip_mac_address_pair(self):
         # Create an ip _address and mac_address through port create
diff --git a/neutron/tests/tempest/api/test_auto_allocated_topology.py b/neutron/tests/tempest/api/test_auto_allocated_topology.py
index d9c59c3..1610c85 100644
--- a/neutron/tests/tempest/api/test_auto_allocated_topology.py
+++ b/neutron/tests/tempest/api/test_auto_allocated_topology.py
@@ -75,7 +75,6 @@
         body = client.list_networks(name='auto_allocated_network')
         self.networks.extend(body['networks'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('64bc0b02-cee4-11e5-9f3c-080027605a2b')
     def test_get_allocated_net_topology_as_tenant(self):
         resources_before = self._count_topology_resources()
diff --git a/neutron/tests/tempest/api/test_bgp_speaker_extensions_negative.py b/neutron/tests/tempest/api/test_bgp_speaker_extensions_negative.py
index d0b7d1e..19c1a02 100644
--- a/neutron/tests/tempest/api/test_bgp_speaker_extensions_negative.py
+++ b/neutron/tests/tempest/api/test_bgp_speaker_extensions_negative.py
@@ -23,28 +23,28 @@
 
     """Negative test cases asserting proper behavior of BGP API extension"""
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('75e9ee2f-6efd-4320-bff7-ae24741c8b06')
     def test_create_bgp_speaker_illegal_local_asn(self):
         self.assertRaises(lib_exc.BadRequest,
                           self.create_bgp_speaker,
                           local_as='65537')
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('6742ec2e-382a-4453-8791-13a19b47cd13')
     def test_create_bgp_speaker_non_admin(self):
         self.assertRaises(lib_exc.Forbidden,
                           self.client.create_bgp_speaker,
                           {'bgp_speaker': self.default_bgp_speaker_args})
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('33f7aaf0-9786-478b-b2d1-a51086a50eb4')
     def test_create_bgp_peer_non_admin(self):
         self.assertRaises(lib_exc.Forbidden,
                           self.client.create_bgp_peer,
                           {'bgp_peer': self.default_bgp_peer_args})
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('39435932-0266-4358-899b-0e9b1e53c3e9')
     def test_update_bgp_speaker_local_asn(self):
         bgp_speaker = self.create_bgp_speaker(**self.default_bgp_speaker_args)
diff --git a/neutron/tests/tempest/api/test_extension_driver_port_security.py b/neutron/tests/tempest/api/test_extension_driver_port_security.py
index ce29260..de25d9f 100644
--- a/neutron/tests/tempest/api/test_extension_driver_port_security.py
+++ b/neutron/tests/tempest/api/test_extension_driver_port_security.py
@@ -28,7 +28,6 @@
 class PortSecTest(base_security.BaseSecGroupTest,
                   base.BaseNetworkTest):
 
-    @test.attr(type='smoke')
     @test.idempotent_id('7c338ddf-e64e-4118-bd33-e49a1f2f1495')
     @test.requires_ext(extension='port-security', service='network')
     def test_port_sec_default_value(self):
@@ -40,7 +39,6 @@
         port = self.create_port(network)
         self.assertTrue(port['port_security_enabled'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('e60eafd2-31de-4c38-8106-55447d033b57')
     @test.requires_ext(extension='port-security', service='network')
     @ddt.unpack
@@ -55,7 +53,6 @@
         self.assertEqual(network['port_security_enabled'], port_sec_net)
         self.assertEqual(port['port_security_enabled'], expected)
 
-    @test.attr(type=['smoke'])
     @test.idempotent_id('05642059-1bfc-4581-9bc9-aaa5db08dd60')
     @test.requires_ext(extension='port-security', service='network')
     def test_create_port_sec_with_security_group(self):
@@ -71,7 +68,7 @@
         self.assertFalse(port['port_security_enabled'])
         self.assertEmpty(port['security_groups'])
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('05642059-1bfc-4581-9bc9-aaa5db08dd60')
     @test.requires_ext(extension='port-security', service='network')
     def test_port_sec_update_port_failed(self):
@@ -99,7 +96,6 @@
         # Remove security group from port before deletion on resource_cleanup
         self.update_port(port, security_groups=[])
 
-    @test.attr(type=['smoke'])
     @test.idempotent_id('05642059-1bfc-4581-9bc9-aaa5db08dd60')
     @test.requires_ext(extension='port-security', service='network')
     def test_port_sec_update_pass(self):
@@ -124,7 +120,6 @@
         self.assertEmpty(port['security_groups'])
         self.assertFalse(port['port_security_enabled'])
 
-    @test.attr(type=['smoke'])
     @test.idempotent_id('2df6114b-b8c3-48a1-96e8-47f08159d35c')
     @test.requires_ext(extension='port-security', service='network')
     def test_delete_with_port_sec(self):
@@ -137,7 +132,7 @@
         self.assertTrue(
             self.client.is_resource_deleted('network', network['id']))
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('ed93e453-3f8d-495e-8e7e-b0e268c2ebd9')
     @test.requires_ext(extension='port-security', service='network')
     @test.requires_ext(extension='allowed-address-pairs', service='network')
diff --git a/neutron/tests/tempest/api/test_extra_dhcp_options.py b/neutron/tests/tempest/api/test_extra_dhcp_options.py
index a51ad27..291bd9e 100644
--- a/neutron/tests/tempest/api/test_extra_dhcp_options.py
+++ b/neutron/tests/tempest/api/test_extra_dhcp_options.py
@@ -52,7 +52,6 @@
             {'opt_value': cls.ip_server, 'opt_name': 'server-ip-address'}
         ]
 
-    @test.attr(type='smoke')
     @test.idempotent_id('d2c17063-3767-4a24-be4f-a23dbfa133c9')
     def test_create_list_port_with_extra_dhcp_options(self):
         # Create a port with Extra DHCP Options
@@ -69,7 +68,6 @@
         self.assertTrue(port)
         self._confirm_extra_dhcp_options(port[0], self.extra_dhcp_opts)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('9a6aebf4-86ee-4f47-b07a-7f7232c55607')
     def test_update_show_port_with_extra_dhcp_options(self):
         # Update port with extra dhcp options
diff --git a/neutron/tests/tempest/api/test_flavors_extensions.py b/neutron/tests/tempest/api/test_flavors_extensions.py
index 063d503..57ce27d 100644
--- a/neutron/tests/tempest/api/test_flavors_extensions.py
+++ b/neutron/tests/tempest/api/test_flavors_extensions.py
@@ -63,7 +63,6 @@
         labels = self.admin_client.list_service_profiles(id=service_profile_id)
         self.assertEqual(len(labels['service_profiles']), 0)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('ec8e15ff-95d0-433b-b8a6-b466bddb1e50')
     def test_create_update_delete_service_profile(self):
         # Creates a service profile
@@ -87,7 +86,6 @@
                   id=service_profile['id']))
         self.assertEqual(len(labels['service_profiles']), 1)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('ec8e15ff-95d0-433b-b8a6-b466bddb1e50')
     def test_create_update_delete_flavor(self):
         # Creates a flavor
@@ -107,7 +105,6 @@
         labels = (self.admin_client.list_flavors(id=flavor['id']))
         self.assertEqual(len(labels['flavors']), 1)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('30abb445-0eea-472e-bd02-8649f54a5968')
     def test_show_service_profile(self):
         # Verifies the details of a service profile
@@ -121,7 +118,6 @@
                          service_profile['metainfo'])
         self.assertTrue(service_profile['enabled'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('30abb445-0eea-472e-bd02-8649f54a5968')
     def test_show_flavor(self):
         # Verifies the details of a flavor
@@ -132,7 +128,6 @@
         self.assertEqual(self.flavor['name'], flavor['name'])
         self.assertTrue(flavor['enabled'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('e2fb2f8c-45bf-429a-9f17-171c70444612')
     def test_list_flavors(self):
         # Verify flavor lists
@@ -140,7 +135,6 @@
         flavors = body['flavors']
         self.assertEqual(0, len(flavors))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('e2fb2f8c-45bf-429a-9f17-171c70444612')
     def test_list_service_profiles(self):
         # Verify service profiles lists
diff --git a/neutron/tests/tempest/api/test_floating_ips.py b/neutron/tests/tempest/api/test_floating_ips.py
index dd64448..570ca54 100644
--- a/neutron/tests/tempest/api/test_floating_ips.py
+++ b/neutron/tests/tempest/api/test_floating_ips.py
@@ -41,7 +41,6 @@
         for i in range(2):
             cls.create_port(cls.network)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('c72c1c0c-2193-4aca-eeee-b1442641ffff')
     @test.requires_ext(extension="standard-attr-description",
                        service="network")
diff --git a/neutron/tests/tempest/api/test_floating_ips_negative.py b/neutron/tests/tempest/api/test_floating_ips_negative.py
index 700fa10..4616747 100644
--- a/neutron/tests/tempest/api/test_floating_ips_negative.py
+++ b/neutron/tests/tempest/api/test_floating_ips_negative.py
@@ -38,7 +38,7 @@
         cls.create_router_interface(cls.router['id'], cls.subnet['id'])
         cls.port = cls.create_port(cls.network)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('0b5b8797-6de7-4191-905c-a48b888eb429')
     def test_associate_floatingip_with_port_with_floatingip(self):
         net = self.create_network()
diff --git a/neutron/tests/tempest/api/test_metering_extensions.py b/neutron/tests/tempest/api/test_metering_extensions.py
index 3ef55db..42b8e48 100644
--- a/neutron/tests/tempest/api/test_metering_extensions.py
+++ b/neutron/tests/tempest/api/test_metering_extensions.py
@@ -58,7 +58,6 @@
                  id=metering_label_rule_id))
         self.assertEqual(len(rules['metering_label_rules']), 0)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('e2fb2f8c-45bf-429a-9f17-171c70444612')
     def test_list_metering_labels(self):
         # Verify label filtering
@@ -66,7 +65,6 @@
         metering_labels = body['metering_labels']
         self.assertEqual(0, len(metering_labels))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('ec8e15ff-95d0-433b-b8a6-b466bddb1e50')
     def test_create_delete_metering_label_with_filters(self):
         # Creates a label
@@ -83,7 +81,6 @@
                   id=metering_label['id']))
         self.assertEqual(len(labels['metering_labels']), 1)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('30abb445-0eea-472e-bd02-8649f54a5968')
     def test_show_metering_label(self):
         # Verifies the details of a label
@@ -96,7 +93,6 @@
         self.assertEqual(self.metering_label['description'],
                          metering_label['description'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('cc832399-6681-493b-9d79-0202831a1281')
     def test_list_metering_label_rules(self):
         # Verify rule filtering
@@ -104,7 +100,6 @@
         metering_label_rules = body['metering_label_rules']
         self.assertEqual(0, len(metering_label_rules))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f4d547cd-3aee-408f-bf36-454f8825e045')
     def test_create_delete_metering_label_rule_with_filters(self):
         # Creates a rule
@@ -123,7 +118,6 @@
                  id=metering_label_rule['id']))
         self.assertEqual(len(rules['metering_label_rules']), 1)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('b7354489-96ea-41f3-9452-bace120fb4a7')
     def test_show_metering_label_rule(self):
         # Verifies the details of a rule
diff --git a/neutron/tests/tempest/api/test_network_ip_availability.py b/neutron/tests/tempest/api/test_network_ip_availability.py
index 2976da0..f84e14e 100644
--- a/neutron/tests/tempest/api/test_network_ip_availability.py
+++ b/neutron/tests/tempest/api/test_network_ip_availability.py
@@ -107,7 +107,6 @@
 
 class NetworksIpAvailabilityIPv4Test(NetworksIpAvailabilityTest):
 
-    @test.attr(type='smoke')
     @test.idempotent_id('0f33cc8c-1bf6-47d1-9ce1-010618240599')
     def test_admin_network_availability_before_subnet(self):
         net_name = data_utils.rand_name('network-')
@@ -116,7 +115,6 @@
         net_availability = self.admin_client.list_network_ip_availabilities()
         self._assert_total_and_used_ips(0, 0, network, net_availability)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('3aecd3b2-16ed-4b87-a54a-91d7b3c2986b')
     def test_net_ip_availability_after_subnet_and_ports(self):
         net_name = data_utils.rand_name('network-')
@@ -136,7 +134,6 @@
             calc_total_ips(prefix, self._ip_version),
             network, net_availability)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('9f11254d-757b-492e-b14b-f52144e4ee7b')
     def test_net_ip_availability_after_port_delete(self):
         net_name = data_utils.rand_name('network-')
diff --git a/neutron/tests/tempest/api/test_networks.py b/neutron/tests/tempest/api/test_networks.py
index 7a315db..b96a5bd 100644
--- a/neutron/tests/tempest/api/test_networks.py
+++ b/neutron/tests/tempest/api/test_networks.py
@@ -39,7 +39,6 @@
         super(NetworksTestJSON, cls).resource_setup()
         cls.network = cls.create_network()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('2bf13842-c93f-4a69-83ed-717d2ec3b44e')
     def test_show_network(self):
         # Verify the details of a network
@@ -51,7 +50,6 @@
         for key in fields:
             self.assertEqual(network[key], self.network[key])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('867819bb-c4b6-45f7-acf9-90edcf70aa5e')
     def test_show_network_fields(self):
         # Verify specific fields of a network
@@ -65,7 +63,6 @@
         for field_name in fields:
             self.assertEqual(network[field_name], self.network[field_name])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('c72c1c0c-2193-4aca-ccc4-b1442640bbbb')
     @test.requires_ext(extension="standard-attr-description",
                        service="network")
@@ -81,7 +78,6 @@
         body = self.client.list_networks(id=net_id)['networks'][0]
         self.assertEqual('d2', body['description'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('6ae6d24f-9194-4869-9c85-c313cb20e080')
     def test_list_networks_fields(self):
         # Verify specific fields of the networks
diff --git a/neutron/tests/tempest/api/test_ports.py b/neutron/tests/tempest/api/test_ports.py
index 23db50b..dd929da 100644
--- a/neutron/tests/tempest/api/test_ports.py
+++ b/neutron/tests/tempest/api/test_ports.py
@@ -25,7 +25,6 @@
         super(PortsTestJSON, cls).resource_setup()
         cls.network = cls.create_network()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('c72c1c0c-2193-4aca-bbb4-b1442640bbbb')
     @test.requires_ext(extension="standard-attr-description",
                        service="network")
diff --git a/neutron/tests/tempest/api/test_qos.py b/neutron/tests/tempest/api/test_qos.py
index e8a8686..24ef38b 100644
--- a/neutron/tests/tempest/api/test_qos.py
+++ b/neutron/tests/tempest/api/test_qos.py
@@ -28,7 +28,6 @@
     def resource_setup(cls):
         super(QosTestJSON, cls).resource_setup()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('108fbdf7-3463-4e47-9871-d07f3dcf5bbb')
     def test_create_policy(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -47,7 +46,6 @@
         policies_ids = [p['id'] for p in policies]
         self.assertIn(policy['id'], policies_ids)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f8d20e92-f06d-4805-b54f-230f77715815')
     def test_list_policy_filter_by_name(self):
         self.create_qos_policy(name='test', description='test policy',
@@ -62,7 +60,6 @@
         retrieved_policy = policies[0]
         self.assertEqual('test', retrieved_policy['name'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('8e88a54b-f0b2-4b7d-b061-a15d93c2c7d6')
     def test_policy_update(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -78,7 +75,6 @@
         self.assertTrue(retrieved_policy['shared'])
         self.assertEqual([], retrieved_policy['rules'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('1cb42653-54bd-4a9a-b888-c55e18199201')
     def test_delete_policy(self):
         policy = self.admin_client.create_qos_policy(
@@ -92,12 +88,10 @@
         self.assertRaises(exceptions.NotFound,
                           self.admin_client.show_qos_policy, policy['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('cf776f77-8d3d-49f2-8572-12d6a1557224')
     def test_list_admin_rule_types(self):
         self._test_list_rule_types(self.admin_client)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('49c8ea35-83a9-453a-bd23-239cf3b13929')
     def test_list_regular_rule_types(self):
         self._test_list_rule_types(self.client)
@@ -133,7 +127,6 @@
         updated_network = self.admin_client.show_network(network_id)
         self.assertIsNone(updated_network['network']['qos_policy_id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('65b9ef75-1911-406a-bbdb-ca1d68d528b0')
     def test_policy_association_with_admin_network(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -148,7 +141,6 @@
 
         self._disassociate_network(self.admin_client, network['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('1738de5d-0476-4163-9022-5e1b548c208e')
     def test_policy_association_with_tenant_network(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -163,7 +155,6 @@
 
         self._disassociate_network(self.client, network['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('9efe63d0-836f-4cc2-b00c-468e63aa614e')
     def test_policy_association_with_network_nonexistent_policy(self):
         self.assertRaises(
@@ -172,7 +163,6 @@
             'test network',
             qos_policy_id='9efe63d0-836f-4cc2-b00c-468e63aa614e')
 
-    @test.attr(type='smoke')
     @test.idempotent_id('1aa55a79-324f-47d9-a076-894a8fc2448b')
     def test_policy_association_with_network_non_shared_policy(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -183,7 +173,6 @@
             self.create_network,
             'test network', qos_policy_id=policy['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('09a9392c-1359-4cbb-989f-fb768e5834a8')
     def test_policy_update_association_with_admin_network(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -206,7 +195,6 @@
         updated_port = self.admin_client.show_port(port_id)
         self.assertIsNone(updated_port['port']['qos_policy_id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('98fcd95e-84cf-4746-860e-44692e674f2e')
     def test_policy_association_with_port_shared_policy(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -221,7 +209,6 @@
 
         self._disassociate_port(port['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('49e02f5a-e1dd-41d5-9855-cfa37f2d195e')
     def test_policy_association_with_port_nonexistent_policy(self):
         network = self.create_shared_network('test network')
@@ -231,7 +218,6 @@
             network,
             qos_policy_id='49e02f5a-e1dd-41d5-9855-cfa37f2d195e')
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f53d961c-9fe5-4422-8b66-7add972c6031')
     def test_policy_association_with_port_non_shared_policy(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -243,7 +229,6 @@
             self.create_port,
             network, qos_policy_id=policy['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f8163237-fba9-4db5-9526-bad6d2343c76')
     def test_policy_update_association_with_port_shared_policy(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -261,7 +246,6 @@
 
         self._disassociate_port(port['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('18163237-8ba9-4db5-9525-bad6d2343c75')
     def test_delete_not_allowed_if_policy_in_use_by_network(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -276,7 +260,6 @@
         self._disassociate_network(self.admin_client, network['id'])
         self.admin_client.delete_qos_policy(policy['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('24153230-84a9-4dd5-9525-bad6d2343c75')
     def test_delete_not_allowed_if_policy_in_use_by_port(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -291,7 +274,6 @@
         self._disassociate_port(port['id'])
         self.admin_client.delete_qos_policy(policy['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('a2a5849b-dd06-4b18-9664-0b6828a1fc27')
     def test_qos_policy_delete_with_rules(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -312,7 +294,6 @@
     def resource_setup(cls):
         super(QosBandwidthLimitRuleTestJSON, cls).resource_setup()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('8a59b00b-3e9c-4787-92f8-93a5cdf5e378')
     def test_rule_create(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -344,7 +325,6 @@
         self.assertEqual(qos_consts.RULE_TYPE_BANDWIDTH_LIMIT,
                          policy_rules[0]['type'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('8a59b00b-ab01-4787-92f8-93a5cdf5e378')
     def test_rule_create_fail_for_the_same_type(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -359,7 +339,6 @@
                           policy_id=policy['id'],
                           max_kbps=201, max_burst_kbps=1338)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('149a6988-2568-47d2-931e-2dbc858943b3')
     def test_rule_update(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -380,7 +359,6 @@
         self.assertEqual(200, retrieved_policy['max_kbps'])
         self.assertEqual(1337, retrieved_policy['max_burst_kbps'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('67ee6efd-7b33-4a68-927d-275b4f8ba958')
     def test_rule_delete(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -399,7 +377,6 @@
                           self.admin_client.show_bandwidth_limit_rule,
                           policy['id'], rule['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f211222c-5808-46cb-a961-983bbab6b852')
     def test_rule_create_rule_nonexistent_policy(self):
         self.assertRaises(
@@ -407,7 +384,6 @@
             self.create_qos_bandwidth_limit_rule,
             'policy', 200, 1337)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('eed8e2a6-22da-421b-89b9-935a2c1a1b50')
     def test_policy_create_forbidden_for_regular_tenants(self):
         self.assertRaises(
@@ -415,7 +391,6 @@
             self.client.create_qos_policy,
             'test-policy', 'test policy', False)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('a4a2e7ad-786f-4927-a85a-e545a93bd274')
     def test_rule_create_forbidden_for_regular_tenants(self):
         self.assertRaises(
@@ -423,7 +398,6 @@
             self.client.create_bandwidth_limit_rule,
             'policy', 1, 2)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('ce0bd0c2-54d9-4e29-85f1-cfb36ac3ebe2')
     def test_get_rules_by_policy(self):
         policy1 = self.create_qos_policy(name='test-policy1',
@@ -709,7 +683,6 @@
     def resource_setup(cls):
         super(QosDscpMarkingRuleTestJSON, cls).resource_setup()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('8a59b00b-3e9c-4787-92f8-93a5cdf5e378')
     def test_rule_create(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -739,7 +712,6 @@
         self.assertEqual(qos_consts.RULE_TYPE_DSCP_MARK,
                          policy_rules[0]['type'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('8a59b00b-ab01-4787-92f8-93a5cdf5e378')
     def test_rule_create_fail_for_the_same_type(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -753,7 +725,6 @@
                           policy_id=policy['id'],
                           dscp_mark=self.VALID_DSCP_MARK2)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('149a6988-2568-47d2-931e-2dbc858943b3')
     def test_rule_update(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -770,7 +741,6 @@
         retrieved_policy = retrieved_policy['dscp_marking_rule']
         self.assertEqual(self.VALID_DSCP_MARK2, retrieved_policy['dscp_mark'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('67ee6efd-7b33-4a68-927d-275b4f8ba958')
     def test_rule_delete(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -789,7 +759,6 @@
                           self.admin_client.show_dscp_marking_rule,
                           policy['id'], rule['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f211222c-5808-46cb-a961-983bbab6b852')
     def test_rule_create_rule_nonexistent_policy(self):
         self.assertRaises(
@@ -797,7 +766,6 @@
             self.admin_client.create_dscp_marking_rule,
             'policy', self.VALID_DSCP_MARK1)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('a4a2e7ad-786f-4927-a85a-e545a93bd274')
     def test_rule_create_forbidden_for_regular_tenants(self):
         self.assertRaises(
@@ -805,7 +773,6 @@
             self.client.create_dscp_marking_rule,
             'policy', self.VALID_DSCP_MARK1)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('33646b08-4f05-4493-a48a-bde768a18533')
     def test_invalid_rule_create(self):
         policy = self.create_qos_policy(name='test-policy',
@@ -816,7 +783,6 @@
             self.admin_client.create_dscp_marking_rule,
             policy['id'], 58)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('ce0bd0c2-54d9-4e29-85f1-cfb36ac3ebe2')
     def test_get_rules_by_policy(self):
         policy1 = self.create_qos_policy(name='test-policy1',
diff --git a/neutron/tests/tempest/api/test_routers.py b/neutron/tests/tempest/api/test_routers.py
index 6acf259..65fda89 100644
--- a/neutron/tests/tempest/api/test_routers.py
+++ b/neutron/tests/tempest/api/test_routers.py
@@ -39,7 +39,6 @@
             if cls._ip_version == 4 else
             config.safe_get_config_value('network', 'project_network_v6_cidr'))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('c72c1c0c-2193-4aca-eeee-b1442640eeee')
     @test.requires_ext(extension="standard-attr-description",
                        service="network")
@@ -55,7 +54,6 @@
 
     @test.idempotent_id('847257cc-6afd-4154-b8fb-af49f5670ce8')
     @test.requires_ext(extension='ext-gw-mode', service='network')
-    @test.attr(type='smoke')
     def test_create_router_with_default_snat_value(self):
         # Create a router with default snat rule
         name = data_utils.rand_name('router')
@@ -67,7 +65,6 @@
 
     @test.idempotent_id('ea74068d-09e9-4fd7-8995-9b6a1ace920f')
     @test.requires_ext(extension='ext-gw-mode', service='network')
-    @test.attr(type='smoke')
     def test_create_router_with_snat_explicit(self):
         name = data_utils.rand_name('snat-router')
         # Create a router enabling snat attributes
@@ -110,7 +107,6 @@
 
     @test.idempotent_id('b386c111-3b21-466d-880c-5e72b01e1a33')
     @test.requires_ext(extension='ext-gw-mode', service='network')
-    @test.attr(type='smoke')
     def test_update_router_set_gateway_with_snat_explicit(self):
         router = self._create_router(data_utils.rand_name('router-'))
         self.admin_client.update_router_with_snat_gw_info(
@@ -126,7 +122,6 @@
 
     @test.idempotent_id('96536bc7-8262-4fb2-9967-5c46940fa279')
     @test.requires_ext(extension='ext-gw-mode', service='network')
-    @test.attr(type='smoke')
     def test_update_router_set_gateway_without_snat(self):
         router = self._create_router(data_utils.rand_name('router-'))
         self.admin_client.update_router_with_snat_gw_info(
@@ -142,7 +137,6 @@
 
     @test.idempotent_id('f2faf994-97f4-410b-a831-9bc977b64374')
     @test.requires_ext(extension='ext-gw-mode', service='network')
-    @test.attr(type='smoke')
     def test_update_router_reset_gateway_without_snat(self):
         router = self._create_router(
             data_utils.rand_name('router-'),
@@ -160,7 +154,6 @@
 
     @test.idempotent_id('c86ac3a8-50bd-4b00-a6b8-62af84a0765c')
     @test.requires_ext(extension='extraroute', service='network')
-    @test.attr(type='smoke')
     def test_update_extra_route(self):
         self.network = self.create_network()
         self.name = self.network['name']
@@ -193,7 +186,6 @@
     def _delete_extra_routes(self, router_id):
         self.client.delete_extra_routes(router_id)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('01f185d1-d1a6-4cf9-abf7-e0e1384c169c')
     def test_network_attached_with_two_routers(self):
         network = self.create_network(data_utils.rand_name('network1'))
@@ -231,7 +223,6 @@
     def skip_checks(cls):
         super(DvrRoutersTest, cls).skip_checks()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('141297aa-3424-455d-aa8d-f2d95731e00a')
     def test_create_distributed_router(self):
         name = data_utils.rand_name('router')
@@ -242,7 +233,6 @@
                         self.admin_client)
         self.assertTrue(create_body['router']['distributed'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('644d7a4a-01a1-4b68-bb8d-0c0042cb1729')
     def test_convert_centralized_router(self):
         router = self._create_router(data_utils.rand_name('router'))
diff --git a/neutron/tests/tempest/api/test_routers_negative.py b/neutron/tests/tempest/api/test_routers_negative.py
index c5617a0..2ccb34a 100644
--- a/neutron/tests/tempest/api/test_routers_negative.py
+++ b/neutron/tests/tempest/api/test_routers_negative.py
@@ -35,7 +35,7 @@
         cls.network = cls.create_network()
         cls.subnet = cls.create_subnet(cls.network)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('4990b055-8fc7-48ab-bba7-aa28beaad0b9')
     def test_router_create_tenant_distributed_returns_forbidden(self):
         with testtools.ExpectedException(lib_exc.Forbidden):
diff --git a/neutron/tests/tempest/api/test_security_groups.py b/neutron/tests/tempest/api/test_security_groups.py
index 49cd1c2..a6009e4 100644
--- a/neutron/tests/tempest/api/test_security_groups.py
+++ b/neutron/tests/tempest/api/test_security_groups.py
@@ -26,7 +26,6 @@
     def resource_setup(cls):
         super(SecGroupTest, cls).resource_setup()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('bfd128e5-3c92-44b6-9d66-7fe29d22c802')
     def test_create_list_update_show_delete_security_group(self):
         group_create_body, name = self._create_security_group()
diff --git a/neutron/tests/tempest/api/test_security_groups_negative.py b/neutron/tests/tempest/api/test_security_groups_negative.py
index b06601d..628dfc6 100644
--- a/neutron/tests/tempest/api/test_security_groups_negative.py
+++ b/neutron/tests/tempest/api/test_security_groups_negative.py
@@ -61,7 +61,7 @@
                 direction='ingress', ethertype=self.ethertype)
             self.assertIn(msg, str(ex))
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('55100aa8-b24f-333c-0bef-64eefd85f15c')
     def test_update_default_security_group_name(self):
         sg_list = self.client.list_security_groups(name='default')
diff --git a/neutron/tests/tempest/api/test_service_type_management.py b/neutron/tests/tempest/api/test_service_type_management.py
index 71c8f5c..81e18ae 100644
--- a/neutron/tests/tempest/api/test_service_type_management.py
+++ b/neutron/tests/tempest/api/test_service_type_management.py
@@ -22,7 +22,6 @@
     def resource_setup(cls):
         super(ServiceTypeManagementTest, cls).resource_setup()
 
-    @test.attr(type='smoke')
     @test.idempotent_id('2cbbeea9-f010-40f6-8df5-4eaa0c918ea6')
     def test_service_provider_list(self):
         body = self.client.list_service_providers()
diff --git a/neutron/tests/tempest/api/test_subnetpools.py b/neutron/tests/tempest/api/test_subnetpools.py
index a6c48b9..d70b785 100644
--- a/neutron/tests/tempest/api/test_subnetpools.py
+++ b/neutron/tests/tempest/api/test_subnetpools.py
@@ -90,7 +90,6 @@
             self.assertEqual(expected_values['prefixes'],
                              updated_pool['prefixes'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('6e1781ec-b45b-4042-aebe-f485c022996e')
     def test_create_list_subnetpool(self):
         created_subnetpool = self._create_subnetpool()
@@ -103,7 +102,6 @@
                       [sp['name'] for sp in subnetpools],
                       "Created subnetpool name should be in the list")
 
-    @test.attr(type='smoke')
     @test.idempotent_id('c72c1c0c-2193-4aca-ddd4-b1442640bbbb')
     @test.requires_ext(extension="standard-attr-description",
                        service="network")
@@ -120,7 +118,6 @@
                       self.client.list_subnetpools()['subnetpools'])[0]
         self.assertEqual('d2', body['description'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('741d08c2-1e3f-42be-99c7-0ea93c5b728c')
     def test_get_subnetpool(self):
         created_subnetpool = self._create_subnetpool()
@@ -133,7 +130,6 @@
         self.assertEqual(prefixlen, subnetpool['default_prefixlen'])
         self.assertFalse(subnetpool['shared'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('764f1b93-1c4a-4513-9e7b-6c2fc5e9270c')
     def test_tenant_update_subnetpool(self):
         created_subnetpool = self._create_subnetpool()
@@ -148,7 +144,6 @@
                                                 subnetpool)
         self.assertFalse(subnetpool['shared'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('4b496082-c992-4319-90be-d4a7ce646290')
     def test_update_subnetpool_prefixes_append(self):
         # We can append new prefixes to subnetpool
@@ -164,7 +159,6 @@
         self.assertIn(self.new_prefix, prefixes)
         self.assertIn(old_prefixes[0], prefixes)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('2cae5d6a-9d32-42d8-8067-f13970ae13bb')
     def test_update_subnetpool_prefixes_extend(self):
         # We can extend current subnetpool prefixes
@@ -178,7 +172,6 @@
         self.assertIn(self.larger_prefix, prefixes)
         self.assertNotIn(old_prefixes[0], prefixes)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('d70c6c35-913b-4f24-909f-14cd0d29b2d2')
     def test_admin_create_shared_subnetpool(self):
         created_subnetpool = self._create_subnetpool(is_admin=True,
@@ -212,7 +205,6 @@
         subnet = body['subnet']
         return pool_id, subnet
 
-    @test.attr(type='smoke')
     @test.idempotent_id('1362ed7d-3089-42eb-b3a5-d6cb8398ee77')
     def test_create_subnet_from_pool_with_prefixlen(self):
         subnet_values = {"prefixlen": self.max_prefixlen}
@@ -222,7 +214,6 @@
         self.assertEqual(pool_id, subnet['subnetpool_id'])
         self.assertTrue(cidr.endswith(str(self.max_prefixlen)))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('86b86189-9789-4582-9c3b-7e2bfe5735ee')
     def test_create_subnet_from_pool_with_subnet_cidr(self):
         subnet_values = {"cidr": self.subnet_cidr}
@@ -232,7 +223,6 @@
         self.assertEqual(pool_id, subnet['subnetpool_id'])
         self.assertEqual(cidr, self.subnet_cidr)
 
-    @test.attr(type='smoke')
     @test.idempotent_id('83f76e3a-9c40-40c2-a015-b7c5242178d8')
     def test_create_subnet_from_pool_with_default_prefixlen(self):
         # If neither cidr nor prefixlen is specified,
@@ -243,7 +233,6 @@
         prefixlen = self._subnetpool_data['min_prefixlen']
         self.assertTrue(cidr.endswith(str(prefixlen)))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('a64af292-ec52-4bde-b654-a6984acaf477')
     def test_create_subnet_from_pool_with_quota(self):
         pool_values = {'default_quota': 4}
@@ -254,7 +243,6 @@
         self.assertEqual(pool_id, subnet['subnetpool_id'])
         self.assertTrue(cidr.endswith(str(self.max_prefixlen)))
 
-    @test.attr(type='smoke')
     @test.idempotent_id('49b44c64-1619-4b29-b527-ffc3c3115dc4')
     @test.requires_ext(extension='address-scope', service='network')
     def test_create_subnetpool_associate_address_scope(self):
@@ -267,7 +255,6 @@
         self.assertEqual(address_scope['id'],
                          body['subnetpool']['address_scope_id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('910b6393-db24-4f6f-87dc-b36892ad6c8c')
     @test.requires_ext(extension='address-scope', service='network')
     def test_update_subnetpool_associate_address_scope(self):
@@ -284,7 +271,6 @@
         self.assertEqual(address_scope['id'],
                          body['subnetpool']['address_scope_id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('18302e80-46a3-4563-82ac-ccd1dd57f652')
     @test.requires_ext(extension='address-scope', service='network')
     def test_update_subnetpool_associate_another_address_scope(self):
@@ -306,7 +292,6 @@
         self.assertEqual(another_address_scope['id'],
                          body['subnetpool']['address_scope_id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f8970048-e41b-42d6-934b-a1297b07706a')
     @test.requires_ext(extension='address-scope', service='network')
     def test_update_subnetpool_disassociate_address_scope(self):
@@ -342,7 +327,6 @@
         cls._subnetpool_data = {'min_prefixlen': min_prefixlen,
                                 'prefixes': prefixes}
 
-    @test.attr(type='smoke')
     @test.idempotent_id('f62d73dc-cf6f-4879-b94b-dab53982bf3b')
     def test_create_dual_stack_subnets_from_subnetpools(self):
         pool_id_v6, subnet_v6 = self._create_subnet_from_pool()
diff --git a/neutron/tests/tempest/api/test_subnetpools_negative.py b/neutron/tests/tempest/api/test_subnetpools_negative.py
index 713ef32..27092c0 100644
--- a/neutron/tests/tempest/api/test_subnetpools_negative.py
+++ b/neutron/tests/tempest/api/test_subnetpools_negative.py
@@ -30,14 +30,14 @@
 
     smaller_prefix = u'10.11.12.0/26'
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('0212a042-603a-4f46-99e0-e37de9374d30')
     def test_get_non_existent_subnetpool(self):
         non_exist_id = data_utils.rand_name('subnetpool')
         self.assertRaises(lib_exc.NotFound, self.client.show_subnetpool,
                           non_exist_id)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('dc9336e5-f28f-4658-a0b0-cc79e607007d')
     def test_tenant_get_not_shared_admin_subnetpool(self):
         created_subnetpool = self._create_subnetpool(is_admin=True)
@@ -45,28 +45,28 @@
         self.assertRaises(lib_exc.NotFound, self.client.show_subnetpool,
                           created_subnetpool['id'])
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('5e1f2f86-d81a-498c-82ed-32a49f4dc4d3')
     def test_delete_non_existent_subnetpool(self):
         non_exist_id = data_utils.rand_name('subnetpool')
         self.assertRaises(lib_exc.NotFound, self.client.delete_subnetpool,
                           non_exist_id)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('d1143fe2-212b-4e23-a308-d18f7d8d78d6')
     def test_tenant_create_shared_subnetpool(self):
         # 'shared' subnetpool can only be created by admin.
         self.assertRaises(lib_exc.Forbidden, self._create_subnetpool,
                           is_admin=False, shared=True)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('4be84d30-60ca-4bd3-8512-db5b36ce1378')
     def test_update_non_existent_subnetpool(self):
         non_exist_id = data_utils.rand_name('subnetpool')
         self.assertRaises(lib_exc.NotFound, self.client.update_subnetpool,
                           non_exist_id, name='foo-name')
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('e6cd6d87-6173-45dd-bf04-c18ea7ec7537')
     def test_update_subnetpool_not_modifiable_shared(self):
         # 'shared' attributes can be specified during creation.
@@ -76,7 +76,7 @@
         self.assertRaises(lib_exc.BadRequest, self.client.update_subnetpool,
                           pool_id, shared=True)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('62f7c43b-bff1-4def-8bb7-4754b840aaad')
     def test_update_subnetpool_prefixes_shrink(self):
         # Shrink current subnetpool prefixes is not supported
@@ -86,7 +86,7 @@
                           created_subnetpool['id'],
                           prefixes=[self.smaller_prefix])
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('fc011824-153e-4469-97ad-9808eb88cae1')
     def test_create_subnet_different_pools_same_network(self):
         network = self.create_network(network_name='smoke-network')
@@ -103,21 +103,21 @@
                           subnetpool_id=created_subnetpool['id'],
                           client=self.admin_client)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('9589e332-638e-476e-81bd-013d964aa3cb')
     @test.requires_ext(extension='address-scope', service='network')
     def test_create_subnetpool_associate_invalid_address_scope(self):
         self.assertRaises(lib_exc.BadRequest, self._create_subnetpool,
                           address_scope_id='foo-addr-scope')
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('3b6c5942-485d-4964-a560-55608af020b5')
     @test.requires_ext(extension='address-scope', service='network')
     def test_create_subnetpool_associate_non_exist_address_scope(self):
         self.assertRaises(lib_exc.NotFound, self._create_subnetpool,
                           address_scope_id=str(uuid.uuid4()))
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('2dfb4269-8657-485a-a053-b022e911456e')
     @test.requires_ext(extension='address-scope', service='network')
     def test_create_subnetpool_associate_address_scope_prefix_intersect(self):
@@ -133,7 +133,7 @@
         self.assertRaises(lib_exc.Conflict, self._create_subnetpool,
                           **subnetpool_data)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('83a19a13-5384-42e2-b579-43fc69c80914')
     @test.requires_ext(extension='address-scope', service='network')
     def test_create_sp_associate_address_scope_multiple_prefix_intersect(self):
@@ -151,7 +151,7 @@
         self.assertRaises(lib_exc.Conflict, self._create_subnetpool,
                           **subnetpool_data)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('f06d8e7b-908b-4e94-b570-8156be6a4bf1')
     @test.requires_ext(extension='address-scope', service='network')
     def test_create_subnetpool_associate_address_scope_of_other_owner(self):
@@ -161,7 +161,7 @@
         self.assertRaises(lib_exc.NotFound, self._create_subnetpool,
                           address_scope_id=address_scope['id'])
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('3396ec6c-cb80-4ebe-b897-84e904580bdf')
     @test.requires_ext(extension='address-scope', service='network')
     def test_tenant_create_subnetpool_associate_shared_address_scope(self):
@@ -171,7 +171,6 @@
         self.assertRaises(lib_exc.BadRequest, self._create_subnetpool,
                           address_scope_id=address_scope['id'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('6d3d9ad5-32d4-4d63-aa00-8c62f73e2881')
     @test.requires_ext(extension='address-scope', service='network')
     def test_update_subnetpool_associate_address_scope_of_other_owner(self):
@@ -204,7 +203,7 @@
         self.assertRaises(lib_exc.Conflict, self.client.update_subnetpool,
                           pool_id_1, prefixes=pool_1_updated_prefixes)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('96006292-7214-40e0-a471-153fb76e6b31')
     @test.requires_ext(extension='address-scope', service='network')
     def test_update_subnetpool_prefix_intersect(self):
@@ -214,7 +213,7 @@
         self._test_update_subnetpool_prefix_intersect_helper(
             pool_1_prefix, pool_2_prefix, pool_1_updated_prefix)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('4d3f8a79-c530-4e59-9acf-6c05968adbfe')
     @test.requires_ext(extension='address-scope', service='network')
     def test_update_subnetpool_multiple_prefix_intersect(self):
@@ -225,7 +224,7 @@
         self._test_update_subnetpool_prefix_intersect_helper(
             pool_1_prefixes, pool_2_prefixes, pool_1_updated_prefixes)
 
-    @test.attr(type=['negative', 'smoke'])
+    @test.attr(type='negative')
     @test.idempotent_id('7438e49e-1351-45d8-937b-892059fb97f5')
     @test.requires_ext(extension='address-scope', service='network')
     def test_tenant_update_sp_prefix_associated_with_shared_addr_scope(self):
@@ -256,7 +255,6 @@
         self.assertEqual(update_prefixes,
                          body['subnetpool']['prefixes'])
 
-    @test.attr(type='smoke')
     @test.idempotent_id('648fee7d-a909-4ced-bad3-3a169444c0a8')
     def test_update_subnetpool_associate_address_scope_wrong_ip_version(self):
         address_scope = self.create_address_scope(