Merge "Tempest: tempest.test.attr() is deprecated. Moving to new function"

This commit is contained in:
Jenkins 2017-07-13 20:17:28 +00:00 committed by Gerrit Code Review
commit 3486e23a23
48 changed files with 476 additions and 503 deletions

View File

@ -126,7 +126,7 @@ class NetworkTagAddTest(BaseTagsTest):
self.assertIn(tag, network['tags'])
@decorators.idempotent_id('eb52eac3-5e79-4183-803a-a3d97ceb171d')
@test.attr(type='negative')
@decorators.attr(type='negative')
def test_add_tag_one_char_too_long(self):
tag_too_long = 'a' * (MAX_TAG_LEN + 1)
network_id = self.net.get('id')
@ -135,7 +135,7 @@ class NetworkTagAddTest(BaseTagsTest):
network_id, tag_too_long)
@decorators.idempotent_id('d08f3fbe-dc6f-4f3c-b9b2-4d9957884edf')
@test.attr(type='negative')
@decorators.attr(type='negative')
def test_add_tag_empty_one(self):
network_id = self.net.get('id')
self.assertRaises(exceptions.NotFound,
@ -161,7 +161,7 @@ class NetworkTagRemoveTest(BaseTagsTest):
self.network_remove_tag(network_id, tag)
@decorators.idempotent_id('1fe5a8b2-ff5d-4250-b930-21b1a3b48055')
@test.attr(type='negative')
@decorators.attr(type='negative')
def test_remove_all_tags(self):
network_id = self.net.get('id')
self.network_replace_tags(network_id)
@ -172,7 +172,7 @@ class NetworkTagRemoveTest(BaseTagsTest):
self.assertEqual(len(network['tags']), 0)
@decorators.idempotent_id('591337b0-a2e6-4d72-984c-e5b6a6ec12d2')
@test.attr(type='negative')
@decorators.attr(type='negative')
def test_remove_not_exist_tag(self):
"""neutron tag-remove operations."""
network_id = self.net.get('id')
@ -204,7 +204,7 @@ class NetworkTagReplaceTest(BaseTagsTest):
self.network_replace_tags(network_id, empty_tags)
@decorators.idempotent_id('20a05e9e-0b25-4085-b89f-fd5f0c57d2fa')
@test.attr(type='negative')
@decorators.attr(type='negative')
def test_replace_tags_one_char_too_long(self):
tags_too_long = ['aaa', 'z' * (MAX_TAG_LEN + 1)]
network_id = self.net.get('id')

View File

@ -334,7 +334,7 @@ class QosPolicyTest(BaseQosTest):
self._disassociate_network(network['id'], self.primary_mgr)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('9efe63d0-836f-4cc2-b00c-468e63aa614e')
def test_policy_association_with_network_nonexistent_policy(self):
"""Can not attach network to a nonexist policy."""
@ -348,7 +348,7 @@ class QosPolicyTest(BaseQosTest):
self.assertIsNone(retrieved_network['qos_policy_id'],
'Error: Network is attached to non-existent policy')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('1aa55a79-324f-47d9-a076-894a8fc2448b')
def test_policy_association_with_network_non_shared_policy(self):
"""tenant/project can not attach network with not-shared policy."""
@ -398,8 +398,8 @@ class QosPolicyTest(BaseQosTest):
updated_port = self.show_port(port_id, client_mgr=client_mgr)
self.assertIsNone(updated_port['qos_policy_id'])
@test.attr(type='nsxv3')
@test.attr(type='negative')
@decorators.attr(type='nsxv3')
@decorators.attr(type='negative')
@decorators.idempotent_id('98fcd95e-84cf-4746-860e-44692e674f2e')
def test_policy_association_with_port_shared_policy(self):
"""test port can associate shared policy."""
@ -422,8 +422,8 @@ class QosPolicyTest(BaseQosTest):
self._disassociate_port(port['id'], client_mgr=self.primary_mgr)
@test.attr(type='negative')
@test.attr(type='nsxv3')
@decorators.attr(type='negative')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('49e02f5a-e1dd-41d5-9855-cfa37f2d195e')
def test_policy_association_with_port_nonexistent_policy(self):
"""test port cannot be created with nonexist policy."""
@ -436,8 +436,8 @@ class QosPolicyTest(BaseQosTest):
network,
qos_policy_id='49e02f5a-e1dd-41d5-9855-cfa37f2d195e')
@test.attr(type='negative')
@test.attr(type='nsxv3')
@decorators.attr(type='negative')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('f53d961c-9fe5-4422-8b66-7add972c6031')
def test_policy_association_with_port_non_shared_policy(self):
"""project/tenant can not associate port with non-shared policy."""
@ -459,7 +459,7 @@ class QosPolicyTest(BaseQosTest):
self.assertIsNone(retrieved_port['qos_policy_id'],
'Error:Port is attached to qos policy')
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('f8163237-fba9-4db5-9526-bad6d2343c76')
def test_policy_update_association_with_port_shared_policy(self):
"""project/tenant can update port with shared policy."""
@ -487,7 +487,7 @@ class QosPolicyTest(BaseQosTest):
self._disassociate_port(port['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('18163237-8ba9-4db5-9525-bad6d2343c75')
def test_delete_not_allowed_if_policy_in_use_by_network(self):
"""can not delete policy if used by network."""
@ -507,8 +507,8 @@ class QosPolicyTest(BaseQosTest):
self._disassociate_network(network['id'], self.admin_mgr)
self.adm_qos_client.delete_policy(policy['id'])
@test.attr(type='negative')
@test.attr(type='nsxv3')
@decorators.attr(type='negative')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('24153230-84a9-4dd5-9525-bad6d2343c75')
def test_delete_not_allowed_if_policy_in_use_by_port(self):
"""can not delete policy if used by port."""
@ -583,7 +583,7 @@ class QosBandwidthLimitRuleTest(BaseQosTest):
self.assertEqual(base_qos.RULE_TYPE_BANDWIDTH_LIMIT,
policy_rules[0]['type'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8a59b00b-ab01-4787-92f8-93a5cdf5e378')
def test_rule_create_fail_for_the_same_type(self):
"""One bandwidth limit rule per policy."""
@ -648,7 +648,7 @@ class QosBandwidthLimitRuleTest(BaseQosTest):
qos_client.show_bandwidth_limit_rule,
rule['id'], policy['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('f211222c-5808-46cb-a961-983bbab6b852')
def test_rule_create_rule_nonexistent_policy(self):
"""Cannot create rule with nonexist policy."""
@ -657,7 +657,7 @@ class QosBandwidthLimitRuleTest(BaseQosTest):
self.create_qos_bandwidth_limit_rule,
'policy', max_kbps=200, max_burst_kbps=1337)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('eed8e2a6-22da-421b-89b9-935a2c1a1b50')
def test_policy_create_forbidden_for_regular_tenants(self):
"""project/tenant cannot create policy."""
@ -667,7 +667,7 @@ class QosBandwidthLimitRuleTest(BaseQosTest):
'test-policy', 'test policy', False,
qos_client=self.pri_qos_client)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a4a2e7ad-786f-4927-a85a-e545a93bd274')
def test_rule_create_forbidden_for_regular_tenants(self):
"""project/tenant cannot create rule."""
@ -740,7 +740,7 @@ class QosDscpMarkingRuleTest(BaseQosTest):
self.assertEqual(base_qos.RULE_TYPE_DSCP_MARK,
policy_rules[0]['type'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8b59b10b-ab01-4787-92f8-93a5cdf5e378')
def test_rule_create_fail_for_the_same_type(self):
"""One dscp marking rule per policy."""
@ -797,7 +797,7 @@ class QosDscpMarkingRuleTest(BaseQosTest):
qos_client.show_dscp_marking_rule,
rule['id'], policy['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('f215222c-5808-46cb-a961-983bbab6b852')
def test_rule_create_rule_nonexistent_policy(self):
"""can not create dscp marking rule with nonexist policy."""
@ -806,7 +806,7 @@ class QosDscpMarkingRuleTest(BaseQosTest):
self.create_qos_dscp_marking_rule,
'policy', self.VALID_DSCP_MARK1)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a4a2e3ad-786f-4927-a85a-e545a93bd274')
def test_rule_create_forbidden_for_regular_tenants(self):
"""project/tenant can not create dscp marking rule."""
@ -816,7 +816,7 @@ class QosDscpMarkingRuleTest(BaseQosTest):
'policy', self.VALID_DSCP_MARK1,
qos_client=self.pri_qos_client)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('32646b08-4f05-4493-a48a-bde768a18533')
def test_invalid_rule_create(self):
"""Can not create rule with invalid dscp_mark value."""

View File

@ -17,7 +17,6 @@ import base_dvs as base
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest import test
class AdminNetworksTestJSON(base.BaseDvsAdminNetworkTest):
@ -40,7 +39,7 @@ class AdminNetworksTestJSON(base.BaseDvsAdminNetworkTest):
cls.subnet = cls.create_subnet(cls.network)
cls.cidr = cls.subnet['cidr']
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('1dcead1d-d773-4da1-9534-0b984ca684b3')
def test_create_update_delete_flat_network_subnet(self):
# Create an admin network
@ -65,7 +64,7 @@ class AdminNetworksTestJSON(base.BaseDvsAdminNetworkTest):
body = self.delete_network(net_id)
self.networks.pop()
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('15d3d53c-3328-401f-b8f5-3a29aee2ea3a')
def test_create_update_delete_vlan_network_subnet(self):
# Create an admin network
@ -92,7 +91,7 @@ class AdminNetworksTestJSON(base.BaseDvsAdminNetworkTest):
body = self.delete_network(net_id)
self.networks.pop()
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('838aee5f-92f2-47b9-86c6-629a04aa6269')
def test_show_network(self):
# Verify the details of a network
@ -102,7 +101,7 @@ class AdminNetworksTestJSON(base.BaseDvsAdminNetworkTest):
'provider:physical_network']:
self.assertEqual(network[key], self.network[key])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('b86d50ef-39a7-4136-8c89-e5e534fe92aa')
def test_list_networks(self):
# Verify the network exists in the list of all networks
@ -111,7 +110,7 @@ class AdminNetworksTestJSON(base.BaseDvsAdminNetworkTest):
if network['id'] == self.network['id']]
self.assertNotEmpty(networks, "Created network not found in the list")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('ee3f8b79-da3f-4394-9bea-012488202257')
def test_show_subnet(self):
# Verify the details of a subnet

View File

@ -16,7 +16,6 @@
import base_dvs as base
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest import test
class AdminPortsTestJSON(base.BaseDvsAdminNetworkTest):
@ -55,7 +54,7 @@ class AdminPortsTestJSON(base.BaseDvsAdminNetworkTest):
self.assertEqual(updated_port['name'], new_name)
self.assertFalse(updated_port['admin_state_up'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('d3dcd23b-7d5a-4720-8d88-473fb154d609')
def test_show_port(self):
# Verify the details of port
@ -75,7 +74,7 @@ class AdminPortsTestJSON(base.BaseDvsAdminNetworkTest):
port['security_groups'])
self.assertEqual(port['fixed_ips'], [])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('c5f74042-c512-4569-b9b9-bc2bf46e77e1')
def test_list_ports(self):
# Verify the port exists in the list of all ports
@ -85,7 +84,7 @@ class AdminPortsTestJSON(base.BaseDvsAdminNetworkTest):
self.assertNotEmpty(ports, "Created port not found in the list")
@decorators.idempotent_id('2775f96c-a09b-49e1-a5a4-adb83a3e91c7')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
def test_list_ports_fields(self):
# Verify specific fields of ports
fields = ['binding:vif_type', 'id', 'mac_address']

View File

@ -166,7 +166,7 @@ class TestDvsNetworkBasicOps(manager.NetworkScenarioTest):
self._check_server_connectivity(internal_ips,
should_connect)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@test.services('compute', 'network')
@decorators.idempotent_id('b977dce6-6527-4676-9b66-862b22058f0f')
def test_network_basic_ops(self):

View File

@ -16,7 +16,6 @@ from oslo_utils import uuidutils
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -53,7 +52,7 @@ class TestHealthMonitors(base.BaseAdminTestCase):
def resource_cleanup(cls):
super(TestHealthMonitors, cls).resource_cleanup()
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('24cf7da4-b829-4df5-a133-b6cef97ec560')
def test_create_health_monitor_missing_tenant_id_field(self):
"""Test if admin user can
@ -69,7 +68,7 @@ class TestHealthMonitors(base.BaseAdminTestCase):
hm_tenant_id = hm.get('tenant_id')
self.assertEqual(admin_tenant_id, hm_tenant_id)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('acbff982-15d6-43c5-a015-e72b7df30998')
def test_create_health_monitor_empty_tenant_id_field(self):
"""Test with admin user
@ -83,7 +82,7 @@ class TestHealthMonitors(base.BaseAdminTestCase):
pool_id=self.pool.get('id'),
tenant_id="")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('a318d351-a72e-46dc-a094-8a751e4fa7aa')
def test_create_health_monitor_for_another_tenant_id_field(self):
"""Test with admin user

View File

@ -12,7 +12,6 @@
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -62,20 +61,20 @@ class TestHealthMonitors(base.BaseTestCase):
"""
return None
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('3c223a4d-3733-4daa-a6e3-69a31f9e7304')
def test_list_health_monitors_empty(self):
hm_list = self._list_health_monitors()
self.assertEmpty(hm_list)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('76880edd-b01c-4b80-ba4d-1d10f35aaeb7')
def test_list_health_monitors_one(self):
hm = self._create_health_monitor(**self.create_basic_hm_kwargs)
hm_list = self._list_health_monitors()
self.assertIn(hm, hm_list)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('22b984d5-8284-4f7c-90c4-407d0e872ea8')
def test_list_health_monitors_two(self):
hm1 = self._create_health_monitor(**self.create_basic_hm_kwargs)
@ -95,28 +94,28 @@ class TestHealthMonitors(base.BaseTestCase):
self.assertIn(hm1, hm_list)
self.assertIn(hm2, hm_list)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('ca49b640-259c-49ee-be9c-b425a4bbd2cf')
def test_get_health_monitor(self):
hm = self._create_health_monitor(**self.create_basic_hm_kwargs)
hm_test = self._show_health_monitor(hm.get('id'))
self.assertEqual(hm, hm_test)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('80ded4c2-2277-4e19-8280-3519b22a999e')
def test_create_health_monitor(self):
new_hm = self._create_health_monitor(**self.create_basic_hm_kwargs)
hm = self._show_health_monitor(new_hm.get('id'))
self.assertEqual(new_hm, hm)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('387f669b-7a02-4ab3-880d-719dd79ff853')
def test_create_health_monitor_missing_attribute(self):
self.assertRaises(ex.BadRequest, self._create_health_monitor,
type='HTTP', delay=3, max_retries=10,
pool_id=self.pool.get('id'))
@test.attr(type=['smoke', 'negative'])
@decorators.attr(type=['smoke', 'negative'])
@decorators.idempotent_id('bf2ec88e-91d3-48f5-b9f2-be3dab21445c')
def test_create_health_monitor_missing_required_field_type(self):
"""Test if a non_admin user can
@ -127,7 +126,7 @@ class TestHealthMonitors(base.BaseTestCase):
delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type=['smoke', 'negative'])
@decorators.attr(type=['smoke', 'negative'])
@decorators.idempotent_id('85110a81-d905-40f1-92c0-7dafb1617915')
def test_create_health_monitor_missing_required_field_delay(self):
"""Test if a non_admin user can
@ -138,7 +137,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', max_retries=10, timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type=['smoke', 'negative'])
@decorators.attr(type=['smoke', 'negative'])
@decorators.idempotent_id('10ed9396-271a-4edd-948d-93ad44df2713')
def test_create_health_monitor_missing_required_field_timeout(self):
"""Test if a non_admin user can
@ -149,7 +148,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10,
pool_id=self.pool.get('id'))
@test.attr(type=['smoke', 'negative'])
@decorators.attr(type=['smoke', 'negative'])
@decorators.idempotent_id('69614cb5-9078-4b93-8dfa-45d59ac240f8')
def test_create_health_monitor_missing_required_field_max_retries(self):
"""Test if a non_admin user
@ -160,7 +159,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type=['smoke', 'negative'])
@decorators.attr(type=['smoke', 'negative'])
@decorators.idempotent_id('543d1f68-1b3a-49c8-bc6c-3eb8123b6e9a')
def test_create_health_monitor_missing_required_field_pool_id(self):
"""Test if a non_admin user
@ -170,7 +169,7 @@ class TestHealthMonitors(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_health_monitor,
type='HTTP', delay=3, max_retries=10, timeout=5)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('4f8d17d2-3e52-4e34-83c7-4398b328c559')
def test_create_health_monitor_missing_admin_state_up(self):
"""Test if a non_admin user
@ -185,7 +184,7 @@ class TestHealthMonitors(base.BaseTestCase):
self.assertEqual(hm, hm_test)
self.assertEqual(True, hm_test.get('admin_state_up'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('6e1066d3-f358-446e-a574-5d4ceaf0b51d')
def test_create_health_monitor_missing_http_method(self):
"""Test if a non_admin user
@ -200,7 +199,7 @@ class TestHealthMonitors(base.BaseTestCase):
self.assertEqual(hm, hm_test)
self.assertEqual('GET', hm_test.get('http_method'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('9b25196f-7476-4ed7-9542-1f22a76b79f8')
def test_create_health_monitor_missing_url_path(self):
"""Test if a non_admin user
@ -215,7 +214,7 @@ class TestHealthMonitors(base.BaseTestCase):
self.assertEqual(hm, hm_test)
self.assertEqual('/', hm_test.get('url_path'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('c69da922-1c46-4b9b-8b8b-2e700d506a9c')
def test_create_health_monitor_missing_expected_codes(self):
"""Test if a non_admin user
@ -230,7 +229,7 @@ class TestHealthMonitors(base.BaseTestCase):
self.assertEqual(hm, hm_test)
self.assertEqual('200', hm_test.get('expected_codes'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a00cb8e0-cd0b-44d0-85b0-5935a0297e37')
def test_create_health_monitor_invalid_tenant_id(self):
"""Test create health monitor with invalid tenant_id"""
@ -239,7 +238,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('fcd93a6d-1fec-4031-9c18-611f4f3b270e')
def test_create_health_monitor_invalid_type(self):
"""Test create health monitor with invalid type"""
@ -247,7 +246,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='blah', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('3c2829d9-5d51-4bcc-b83e-f28f6e6d0bc3')
def test_create_health_monitor_invalid_delay(self):
"""Test create health monitor with invalid delay"""
@ -255,7 +254,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay='blah', max_retries=10,
timeout=5, pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7155e366-72a2-47a0-9fcf-25e38a3ef7f7')
def test_create_health_monitor_invalid_max_retries(self):
"""Test create health monitor with invalid max_retries"""
@ -263,7 +262,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries='blah',
timeout=5, pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('fb5d0016-5ea6-4697-8049-e80473e67880')
def test_create_health_monitor_invalid_timeout(self):
"""Test create health monitor with invalid timeout"""
@ -271,7 +270,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10,
timeout='blah', pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7f3e6e95-3eac-4a46-983a-ba1fd3b0afdf')
def test_create_health_monitor_invalid_pool_id(self):
"""Test create health monitor with invalid pool id"""
@ -279,7 +278,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('f5aacc27-3573-4749-9cb9-3261fcabf1e9')
def test_create_health_monitor_invalid_admin_state_up(self):
"""Test if a non_admin user
@ -291,7 +290,7 @@ class TestHealthMonitors(base.BaseTestCase):
pool_id=self.pool.get('id'),
admin_state_up='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('0f9f2488-aefb-44c9-a08b-67b715e63091')
def test_create_health_monitor_invalid_expected_codes(self):
"""Test if a non_admin user
@ -303,7 +302,7 @@ class TestHealthMonitors(base.BaseTestCase):
pool_id=self.pool.get('id'),
expected_codes='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('0d637b7f-52ea-429f-8f97-584a5a9118aa')
def test_create_health_monitor_invalid_url_path(self):
"""Test if a non_admin user
@ -315,7 +314,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'), url_path='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7d4061c4-1fbc-43c3-81b5-2d099a120297')
def test_create_health_monitor_invalid_http_method(self):
"""Test if a non_admin user
@ -327,7 +326,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'), http_method='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('b655cee7-df0d-4531-bd98-a4918d2e752a')
def test_create_health_monitor_empty_type(self):
"""Test create health monitor with empty type"""
@ -335,7 +334,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('d843c9f4-507e-462f-8f2b-319af23029db')
def test_create_health_monitor_empty_delay(self):
"""Test create health monitor with empty delay"""
@ -343,7 +342,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay='', max_retries=10, timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('bb9cb2b0-2684-4f4d-b344-6e7b0c58b019')
def test_create_health_monitor_empty_timeout(self):
"""Test create health monitor with empty timeout"""
@ -351,7 +350,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout='',
pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('3b52441d-5e8a-4d17-b772-bd261d0c2656')
def test_create_health_monitor_empty_max_retries(self):
"""Test create health monitor with empty max_retries"""
@ -359,7 +358,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries='', timeout=5,
pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('397aa201-25c1-4828-8c60-9cee5c4d89ab')
# NSX-v does reject empty pool_id
def test_create_health_monitor_empty_max_pool_id(self):
@ -368,7 +367,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('e806c916-877c-41dc-bacb-aabd9684a540')
# NSX-v does reject empty admin_state_up
def test_create_health_monitor_empty_max_admin_state_up(self):
@ -377,7 +376,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'), admin_state_up='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('9c8e8fe8-a3a2-481b-9ac8-eb9ecccd8330')
def test_create_health_monitor_empty_max_http_method(self):
"""Test create health monitor with empty http_method
@ -388,7 +387,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'), http_method='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('9016c846-fc7c-4063-9f01-61fad37c435d')
def test_create_health_monitor_empty_max_url_path(self):
"""Test create health monitor with empty url_path
@ -399,7 +398,7 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'), url_path='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('5df60d27-55ec-42a9-96cd-3affa611c8b1')
# NSX-v does reject empty expected_codes
def test_create_health_monitor_empty_expected_codes(self):
@ -408,21 +407,21 @@ class TestHealthMonitors(base.BaseTestCase):
type='HTTP', delay=3, max_retries=10, timeout=5,
pool_id=self.pool.get('id'), expected_codes='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('da63bd3a-89d5-40dd-b920-420263cbfd93')
def test_create_health_monitor_invalid_attribute(self):
self.assertRaises(ex.BadRequest, self._create_health_monitor,
type='HTTP', delay=3, max_retries='twenty one',
pool_id=self.pool.get('id'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('2005ded4-7d26-4946-8d22-e05bf026bd44')
def test_create_health_monitor_extra_attribute(self):
self.assertRaises(ex.BadRequest, self._create_health_monitor,
type='HTTP', delay=3, max_retries=10,
pool_id=self.pool.get('id'), subnet_id=10)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('79b4a4f9-1d2d-4df0-a11b-dd97f973dff2')
def test_update_health_monitor(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -433,7 +432,7 @@ class TestHealthMonitors(base.BaseTestCase):
hm.get('id'), max_retries=max_retries)
self.assertEqual(max_retries, new_hm.get('max_retries'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('9496ba1f-e917-4972-883b-432e44f3cf19')
def test_update_health_monitor_missing_admin_state_up(self):
"""Test update health monitor with missing admin state field"""
@ -444,7 +443,7 @@ class TestHealthMonitors(base.BaseTestCase):
new_hm = self._update_health_monitor(hm.get('id'))
self.assertEqual(True, new_hm.get('admin_state_up'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('88570f22-cb68-47b4-a020-52b75af818d3')
def test_update_health_monitor_missing_delay(self):
"""Test update health monitor with missing delay field"""
@ -455,7 +454,7 @@ class TestHealthMonitors(base.BaseTestCase):
new_hm = self._update_health_monitor(hm.get('id'))
self.assertEqual(hm.get('delay'), new_hm.get('delay'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('45ace70d-28a5-405d-95cd-b2c92ccaa593')
def test_update_health_monitor_missing_timeout(self):
"""Test update health monitor with missing timeout field"""
@ -466,7 +465,7 @@ class TestHealthMonitors(base.BaseTestCase):
new_hm = self._update_health_monitor(hm.get('id'))
self.assertEqual(hm.get('timeout'), new_hm.get('timeout'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('269af536-2352-4772-bf35-268df9f4542c')
def test_update_health_monitor_missing_max_retries(self):
"""Test update health monitor with missing max retries field"""
@ -477,7 +476,7 @@ class TestHealthMonitors(base.BaseTestCase):
new_hm = self._update_health_monitor(hm.get('id'))
self.assertEqual(hm.get('max_retries'), new_hm.get('max_retries'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('318d972f-9cd1-42ef-9b8b-2f91ba785ac7')
def test_update_health_monitor_missing_http_method(self):
"""Test update health monitor with missing http_method field"""
@ -488,7 +487,7 @@ class TestHealthMonitors(base.BaseTestCase):
new_hm = self._update_health_monitor(hm.get('id'))
self.assertEqual(hm.get('http_method'), new_hm.get('http_method'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('4b97ab67-889d-480c-bedc-f06d86479bb5')
def test_update_health_monitor_missing_url_path(self):
"""Test update health monitor with missing url_path field"""
@ -499,7 +498,7 @@ class TestHealthMonitors(base.BaseTestCase):
new_hm = self._update_health_monitor(hm.get('id'))
self.assertEqual(hm.get('url_path'), new_hm.get('url_path'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('095cdb91-0937-4ae1-8b46-5edd10f00a1e')
def test_update_health_monitor_missing_expected_codes(self):
"""Test update health monitor with missing expected_codes field"""
@ -511,7 +510,7 @@ class TestHealthMonitors(base.BaseTestCase):
self.assertEqual(hm.get('expected_codes'),
new_hm.get('expected_codes'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('646d74ed-9afe-4710-a677-c36f85482731')
def test_update_health_monitor_invalid_attribute(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -521,7 +520,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), max_retries='blue')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('9d717551-82ab-4073-a269-8b05b67d8306')
def test_update_health_monitor_invalid_admin_state_up(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -531,7 +530,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), admin_state_up='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('b865dc8a-695b-4f15-891c-e73b7402ddeb')
def test_update_health_monitor_invalid_delay(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -541,7 +540,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), delay='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('813c8bc1-7ba6-4ae5-96f3-1fdb10ae7be3')
def test_update_health_monitor_invalid_timeout(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -551,7 +550,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), timeout='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('05456473-5014-43ae-97a2-3790e4987526')
def test_update_health_monitor_invalid_max_retries(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -561,7 +560,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), max_retries='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('1e2fb718-de77-46a3-8897-6f5aff6cab5e')
def test_update_health_monitor_invalid_http_method(self):
"""Kilo: @decorators.skip_because(bug="1641643")"""
@ -572,7 +571,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), http_method='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('07d62a55-18b3-4b74-acb2-b73a0b5e4364')
def test_update_health_monitor_invalid_url_path(self):
"""Kilo: @decorators.skip_because(bug="1641652")"""
@ -583,7 +582,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), url_path='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('47c96e10-4863-4635-8bc6-371d460f61bc')
def test_update_health_monitor_invalid_expected_codes(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -593,7 +592,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), expected_codes='blah')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8594b3a3-70e8-4dfa-8928-18bc1cc7ab4a')
def test_update_health_monitor_empty_admin_state_up(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -603,7 +602,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), admin_state_up='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('1e1b761d-5114-4931-935d-1069d66e2bb1')
def test_update_health_monitor_empty_delay(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -613,7 +612,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), empty_delay='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('e6e4a6b7-50b4-465d-be02-44fd5f258bb6')
def test_update_health_monitor_empty_timeout(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -623,7 +622,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), timeout='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('65d05adf-a399-4457-bd83-92c43c1eca01')
def test_update_health_monitor_empty_max_retries(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -633,7 +632,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), max_retries='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('0c464bb3-ff84-4816-9237-4583e4da9881')
def test_update_health_monitor_empty_empty_http_method(self):
"""Kilo: @decorators.skip_because(bug="1639340")"""
@ -644,7 +643,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), http_method='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('3e87c0a8-ef15-457c-a58f-270de8c5c76c')
def test_update_health_monitor_empty_url_path(self):
"""Kilo: @decorators.skip_because(bug="1639340")"""
@ -655,7 +654,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), url_path='')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('d45189e6-db9f-44d1-b5ad-8b7691e781ee')
def test_update_health_monitor_empty_expected_codes(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -665,7 +664,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), expected_codes='')
@test.attr(type=['smoke', 'negative'])
@decorators.attr(type=['smoke', 'negative'])
@decorators.idempotent_id('cf70e44e-8060-494a-b577-d656726ba3d8')
def test_update_health_monitor_extra_attribute(self):
hm = self._create_health_monitor(type='HTTP', delay=3,
@ -675,7 +674,7 @@ class TestHealthMonitors(base.BaseTestCase):
self._update_health_monitor,
hm.get('id'), protocol='UDP')
@test.attr(type=['smoke', 'negative'])
@decorators.attr(type=['smoke', 'negative'])
@decorators.idempotent_id('fe44e0d9-957b-44cf-806b-af7819444864')
def test_delete_health_monitor(self):
"""Kilo: @decorators.skip_because(bug="1639340")"""

View File

@ -15,7 +15,6 @@ from oslo_log import log as logging
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -53,7 +52,7 @@ class ListenersTest(base.BaseAdminTestCase):
def resource_cleanup(cls):
super(ListenersTest, cls).resource_cleanup()
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('f84bfb35-7f73-4576-b2ca-26193850d2bf')
def test_create_listener_empty_tenant_id(self):
"""Test create listener with an empty tenant id should fail
@ -70,7 +69,7 @@ class ListenersTest(base.BaseAdminTestCase):
load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('71ebb8d6-ff2a-410d-a089-b086f195609d')
def test_create_listener_invalid_tenant_id(self):
"""Test create listener with an invalid tenant id"""
@ -87,7 +86,7 @@ class ListenersTest(base.BaseAdminTestCase):
listener = self._show_listener(new_listener_id)
self.assertEqual(new_listener, listener)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('55eaeab9-a21e-470c-8861-5af1ded9d64a')
def test_create_listener_missing_tenant_id(self):
"""Test create listener with an missing tenant id.

View File

@ -15,7 +15,6 @@ from oslo_log import log as logging
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -53,7 +52,7 @@ class ListenersTest(base.BaseTestCase):
cls.listener = cls._create_listener(**cls.create_listener_kwargs)
cls.listener_id = cls.listener['id']
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('32ae6156-d809-49fc-a45b-55269660651c')
def test_get_listener(self):
"""Test get listener"""
@ -62,7 +61,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('4013ab83-924a-4c53-982e-83388d7ad4d9')
def test_list_listeners(self):
"""Test get listeners with one listener"""
@ -72,7 +71,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('04f58729-3f93-4616-bb9d-8baaff3542b2')
def test_list_listeners_two(self):
"""Test get listeners with two listeners"""
@ -91,7 +90,7 @@ class ListenersTest(base.BaseTestCase):
self.assertIn(new_listener, listeners)
self.assertNotEqual(self.listener, new_listener)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('7989096b-95c2-4b26-86b1-5aec0a2d8386')
def test_create_listener(self):
"""Test create listener"""
@ -108,7 +107,7 @@ class ListenersTest(base.BaseTestCase):
self.assertEqual(new_listener, listener)
self.assertNotEqual(self.listener, new_listener)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('f7ef7f56-b791-48e8-9bbe-838a3ed94519')
def test_create_listener_missing_field_loadbalancer(self):
"""Test create listener with a missing required field loadbalancer"""
@ -119,7 +118,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('c392301c-3d9a-4123-85c3-124e4e3253f6')
def test_create_listener_missing_field_protocol(self):
"""Test create listener with a missing required field protocol"""
@ -130,7 +129,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('12c1c5b5-81a9-4384-811e-7131f65f3b1b')
def test_create_listener_missing_field_protocol_port(self):
"""Test create listener with a missing required field protocol_port"""
@ -141,7 +140,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('214a7acc-eacb-4828-ad27-b7f4774947cf')
def test_create_listener_missing_admin_state_up(self):
"""Test create listener with a missing admin_state_up field"""
@ -158,7 +157,7 @@ class ListenersTest(base.BaseTestCase):
self.assertEqual(new_listener, listener)
self.assertTrue(new_listener['admin_state_up'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('86d892dd-9025-4051-a160-8bf1bbb8c64d')
def test_create_listener_invalid_load_balancer_id(self):
"""Test create listener with an invalid load_balancer_id"""
@ -170,7 +169,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('fb430d68-e68d-4bd0-b43d-f1175ad5a819')
def test_create_listener_invalid_protocol(self):
"""Test create listener with an invalid protocol"""
@ -182,7 +181,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8e472e7e-a5c2-4dba-ac5c-993f6e6bb229')
def test_create_listener_invalid_protocol_port(self):
"""Test create listener with an invalid protocol_port"""
@ -194,7 +193,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('57fc90f4-95e4-4f3c-8f53-32c7282b956e')
def test_create_listener_invalid_admin_state_up(self):
"""Test update listener with an invalid admin_state_up"""
@ -206,7 +205,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('556e1ab9-051c-4e9c-aaaa-f11d15de070b')
def test_create_listener_invalid_tenant_id(self):
"""Test create listener with an invalid tenant id"""
@ -219,7 +218,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('59d32fd7-06f6-4466-bdd4-0be23b15970c')
def test_create_listener_invalid_name(self):
"""Test create listener with an invalid name
@ -235,7 +234,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('95457f70-2c1a-4c14-aa80-db8e803d78a9')
def test_create_listener_invalid_description(self):
"""Test create listener with an invalid description
@ -251,7 +250,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('177d337f-fe0c-406c-92f1-a25c0103bd0f')
def test_create_listener_invalid_connection_limit(self):
"""Test create listener_ids
@ -267,7 +266,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8af7b033-8ff7-4bdb-8949-76809745d8a9')
def test_create_listener_empty_load_balancer_id(self):
"""Test create listener with an empty load_balancer_id"""
@ -279,7 +278,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('242af61b-ce50-46e2-926a-6801600dcee4')
def test_create_listener_empty_protocol(self):
"""Test create listener with an empty protocol"""
@ -291,7 +290,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('4866af4c-2b91-4bce-af58-af77f19d9119')
def test_create_listener_empty_protocol_port(self):
"""Test create listener with an empty protocol_port"""
@ -303,7 +302,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('09636ad1-a9d5-4c03-92db-ae5d9847993d')
def test_create_listener_empty_admin_state_up(self):
"""Test update listener with an empty admin_state_up"""
@ -315,7 +314,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('46fc3784-d676-42f7-953b-a23c1d62323d')
def test_create_listener_empty_tenant_id(self):
"""Test create listener with an empty tenant id
@ -331,7 +330,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('b4120626-a47e-4b4e-9b64-017e595c4daf')
def test_create_listener_empty_name(self):
"""Test create listener with an empty name"""
@ -348,7 +347,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(new_listener_id)
self.assertEqual(new_listener, listener)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('af067d00-d496-4f02-87d6-40624c34d492')
def test_create_listener_empty_description(self):
"""Test create listener with an empty description"""
@ -365,7 +364,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(new_listener_id)
self.assertEqual(new_listener, listener)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('dd271757-c447-4579-a417-f9d0871b145c')
def test_create_listener_empty_connection_limit(self):
"""Test create listener with an empty connection _limit field"""
@ -378,7 +377,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a1602217-e1b4-4f85-8a5e-d474477333f3')
def test_create_listener_incorrect_attribute(self):
"""Test create a listener withan extra, incorrect field"""
@ -389,7 +388,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('27c443ff-3aee-4ae6-8b9a-6abf3d5443bf')
def test_update_listener(self):
"""Test update listener"""
@ -400,7 +399,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(self.listener_id)
self.assertEqual(listener.get('name'), 'new_name')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a709e4da-01ef-4dda-a336-f5e37268b5ea')
def test_update_listener_invalid_tenant_id(self):
"""Test update listener with an invalid tenant id"""
@ -411,7 +410,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('d88dd3d5-a52f-4306-ba53-e8f6f4e1b399')
def test_update_listener_invalid_admin_state_up(self):
"""Test update a listener with an invalid admin_state_up"""
@ -422,7 +421,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7c0efb63-90d9-43d0-b959-eb841ef39832')
def test_update_listener_invalid_name(self):
"""Test update a listener with an invalid name
@ -436,7 +435,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('ba9bfad8-dbb0-4cbc-b2e3-52bf72bc1fc5')
def test_update_listener_invalid_description(self):
"""Test update a listener with an invalid description
@ -450,7 +449,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('dcafa50b-cece-4904-bcc9-a0dd1ac99a7e')
def test_update_listener_invalid_connection_limit(self):
"""Test update a listener with an invalid connection_limit"""
@ -461,7 +460,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('27e009c5-3c79-414d-863d-24b731f03123')
def test_update_listener_incorrect_attribute(self):
"""Test update a listener with an extra, incorrect field"""
@ -476,7 +475,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('e8bdd948-7bea-494b-8a4a-e730b70f2882')
def test_update_listener_missing_name(self):
"""Test update listener with a missing name"""
@ -489,7 +488,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(self.listener_id)
self.assertEqual(listener.get('name'), old_name)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('7e0194b8-9315-452d-9de5-d48f227b626f')
def test_update_listener_missing_description(self):
"""Test update listener with a missing description"""
@ -502,7 +501,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(self.listener_id)
self.assertEqual(listener.get('description'), old_description)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('285dd3f2-fcb8-4ccb-b9ce-d6207b29a2f8')
def test_update_listener_missing_admin_state_up(self):
"""Test update listener with a missing admin_state_up"""
@ -515,7 +514,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(self.listener_id)
self.assertEqual(listener.get('admin_state_up'), old_admin_state_up)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('5c510338-0f8a-4d1e-805b-f8458f2e80ee')
def test_update_listener_missing_connection_limit(self):
"""Test update listener with a missing connection_limit"""
@ -529,7 +528,7 @@ class ListenersTest(base.BaseTestCase):
self.assertEqual(listener.get('connection_limit'),
old_connection_limit)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('677205d9-9d97-4232-a8e3-d17ebf42ff05')
def test_update_listener_empty_tenant_id(self):
"""Test update listener with an empty tenant id"""
@ -540,7 +539,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('6e9f8fdb-48b0-4c4e-9b29-460576b125ff')
def test_update_listener_empty_admin_state_up(self):
"""Test update a listener with an empty admin_state_up"""
@ -551,7 +550,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('cf619b8d-1916-4144-85c7-e5a34e0d7a2b')
def test_update_listener_empty_name(self):
"""Test update a listener with an empty name"""
@ -562,7 +561,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(self.listener_id)
self.assertEqual(listener.get('name'), "")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('a9b6f721-c3c1-4d22-a3e5-7e89b58fa3a7')
def test_update_listener_empty_description(self):
"""Test update a listener with an empty description"""
@ -573,7 +572,7 @@ class ListenersTest(base.BaseTestCase):
listener = self._show_listener(self.listener_id)
self.assertEqual(listener.get('description'), "")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7ddcf46b-068b-449c-9dde-ea4021dd76bf')
def test_update_listener_empty_connection_limit(self):
"""Test update a listener with an empty connection_limit"""
@ -584,7 +583,7 @@ class ListenersTest(base.BaseTestCase):
self._check_status_tree(load_balancer_id=self.load_balancer_id,
listener_ids=[self.listener_id])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('c891c857-fa89-4775-92d8-5320321b86cd')
def test_delete_listener(self):
"""Test delete listener"""

View File

@ -16,7 +16,6 @@ import testtools
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -47,7 +46,7 @@ class LoadBalancersTest(base.BaseAdminTestCase):
cls._create_active_load_balancer(**cls.create_lb_kwargs)
cls.load_balancer_id = cls.load_balancer['id']
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@testtools.skipIf('1641902' in CONF.nsxv.bugs_to_resolve,
"skip_because bug=1641902")
@decorators.idempotent_id('0008ae1e-77a2-45d9-b81e-0e3119b5a26d')
@ -67,7 +66,7 @@ class LoadBalancersTest(base.BaseAdminTestCase):
admin_lb.get('tenant_id'))
self._wait_for_load_balancer_status(load_balancer['id'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@testtools.skipIf('1715126' in CONF.nsxv.bugs_to_resolve,
"skip_because bug=1715126")
@decorators.idempotent_id('37620941-47c1-40b2-84d8-db17ff823ebc')
@ -85,7 +84,7 @@ class LoadBalancersTest(base.BaseAdminTestCase):
self.subnet['tenant_id'])
self._wait_for_load_balancer_status(load_balancer['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('5bf483f5-ae28-47f5-8805-642da0ffcb40')
# Empty tenant_id causing ServerFault
def test_create_load_balancer_empty_tenant_id_field(self):
@ -99,7 +98,7 @@ class LoadBalancersTest(base.BaseAdminTestCase):
wait=False,
tenant_id="")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('19fc8a44-1280-49f3-be5b-0d30e6e43363')
# NSX-v: 2nd tenant_id at the same subnet not supported; got serverFault
def test_create_load_balancer_for_another_tenant(self):

View File

@ -18,7 +18,6 @@ import testtools
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -49,7 +48,7 @@ class LoadBalancersTest(base.BaseTestCase):
cls._create_active_load_balancer(**cls.create_lb_kwargs)
cls.load_balancer_id = cls.load_balancer['id']
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('b7ea6c09-e077-4a67-859b-b2cd01e3b46b')
def test_list_load_balancers(self):
"""Test list load balancers with one load balancer"""
@ -57,7 +56,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertEqual(len(load_balancers), 1)
self.assertIn(self.load_balancer, load_balancers)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('8c2302df-ca94-4950-9826-eb996630a392')
def test_list_load_balancers_two(self):
"""Test list load balancers with two load balancers"""
@ -71,7 +70,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertIn(new_load_balancer, load_balancers)
self.assertNotEqual(self.load_balancer, new_load_balancer)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('56345a78-1d53-4c05-9d7b-3e5cf34c22aa')
def test_get_load_balancer(self):
"""Test get load balancer"""
@ -79,7 +78,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.load_balancer_id)
self.assertEqual(self.load_balancer, load_balancer)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('5bf80330-d908-4025-9467-bca1727525c8')
def test_create_load_balancer(self):
"""Test create load balancer"""
@ -92,7 +91,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertEqual(new_load_balancer, load_balancer)
self.assertNotEqual(self.load_balancer, new_load_balancer)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('66bf5390-154f-4627-af61-2c1c30325d6f')
def test_create_load_balancer_missing_vip_subnet_id_field(self):
"""Test create load balancer
@ -104,7 +103,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
tenant_id=self.subnet['tenant_id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8e78a7e6-2da3-4f79-9f66-fd1447277883')
def test_create_load_balancer_empty_provider_field(self):
"""Test create load balancer with an empty provider field"""
@ -113,7 +112,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
provider="")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('def37122-3f9a-47f5-b7b5-b5c0d5e7e5ca')
def test_create_load_balancer_empty_description_field(self):
"""Test create load balancer with an empty description field"""
@ -122,7 +121,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.addCleanup(self._delete_load_balancer, load_balancer['id'])
self.assertEqual(load_balancer.get('description'), "")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('69944c74-3ea1-4c06-8d28-82120721a13e')
def test_create_load_balancer_empty_vip_address_field(self):
"""Test create load balancer with empty vip_address field"""
@ -132,7 +131,7 @@ class LoadBalancersTest(base.BaseTestCase):
vip_subnet_id=self.subnet['id'],
vip_address="")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('63bbe788-f3a6-444f-89b3-8c740425fc39')
def test_create_load_balancer_missing_admin_state_up(self):
"""Test create load balancer with a missing admin_state_up field"""
@ -141,7 +140,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.addCleanup(self._delete_load_balancer, load_balancer['id'])
self.assertEqual(load_balancer.get('admin_state_up'), True)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('499f164a-e926-47a6-808a-14f3c29d04c9')
def test_create_load_balancer_empty_admin_state_up_field(self):
"""Test create load balancer with empty admin_state_up field"""
@ -151,7 +150,7 @@ class LoadBalancersTest(base.BaseTestCase):
vip_subnet_id=self.subnet['id'],
admin_state_up="")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('e4511356-0e78-457c-a310-8515b2dedad4')
def test_create_load_balancer_missing_name(self):
"""Test create load balancer with a missing name field"""
@ -161,7 +160,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertEqual(load_balancer.get('name'), '')
self._wait_for_load_balancer_status(load_balancer['id'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('6bd4a92c-7498-4b92-aeae-bce0b74608e3')
def test_create_load_balancer_empty_name(self):
"""Test create load balancer with an empty name field"""
@ -171,7 +170,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertEqual(load_balancer.get('name'), "")
self._wait_for_load_balancer_status(load_balancer['id'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('e605b1ea-5179-4035-8100-c24d0164a5a5')
def test_create_load_balancer_missing_description(self):
"""Test create load balancer with a missing description field"""
@ -181,7 +180,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertEqual(load_balancer.get('description'), '')
self._wait_for_load_balancer_status(load_balancer['id'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('9f718024-340b-405f-817f-311392353c32')
def test_create_load_balancer_missing_vip_address(self):
"""Test create load balancer
@ -200,7 +199,7 @@ class LoadBalancersTest(base.BaseTestCase):
load_balancer_final = load_balancer['vip_address']
self.assertEqual(load_balancer_ip_initial, load_balancer_final)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('f599ccbd-73e8-4e27-96a5-d9e0e3419a9f')
def test_create_load_balancer_missing_provider_field(self):
"""Test create load balancer with a missing provider field"""
@ -213,7 +212,7 @@ class LoadBalancersTest(base.BaseTestCase):
load_balancer_final = load_balancer['provider']
self.assertEqual(load_balancer_initial, load_balancer_final)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('377166eb-f581-4383-bc2e-54fdeed73e42')
def test_create_load_balancer_invalid_vip_subnet_id(self):
"""Test create load balancer with an invalid vip subnet id"""
@ -222,7 +221,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
vip_subnet_id="abc123")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('512bec06-5259-4e93-b482-7ec3346c794a')
def test_create_load_balancer_empty_vip_subnet_id(self):
"""Test create load balancer with an empty vip subnet id"""
@ -231,7 +230,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
vip_subnet_id="")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('02bd6d0e-820e-46fb-89cb-1d335e7aaa02')
def test_create_load_balancer_invalid_tenant_id(self):
"""Test create load balancer with an invalid tenant id"""
@ -240,7 +239,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
tenant_id="&^%123")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('b8c56e4a-9644-4119-8fc9-130841caf662')
def test_create_load_balancer_invalid_name(self):
"""Test create load balancer with an invalid name
@ -254,7 +253,7 @@ class LoadBalancersTest(base.BaseTestCase):
vip_subnet_id=self.subnet['id'],
name='n' * 256)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('d638ae60-7de5-45da-a7d9-53eca4998980')
def test_create_load_balancer_invalid_description(self):
"""Test create load balancer with an invalid description
@ -268,7 +267,7 @@ class LoadBalancersTest(base.BaseTestCase):
vip_subnet_id=self.subnet['id'],
description='d' * 256)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('56768aa6-b26e-48aa-8118-956c62930d79')
def test_create_load_balancer_incorrect_attribute(self):
"""Test create a load balancer with an extra, incorrect field"""
@ -279,7 +278,7 @@ class LoadBalancersTest(base.BaseTestCase):
vip_subnet_id=self.subnet['id'],
protocol_port=80)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('a130e70f-9d76-4bff-89de-3e564952b244')
def test_create_load_balancer_missing_tenant_id_field(self):
"""Test create load balancer with a missing tenant id field"""
@ -290,7 +289,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.subnet['tenant_id'])
self._wait_for_load_balancer_status(load_balancer['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('25261cca-0c38-4dc8-bb40-f7692035740f')
def test_create_load_balancer_empty_tenant_id_field(self):
"""Test create load balancer with empty tenant_id field"""
@ -300,7 +299,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
tenant_id="")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('10de328d-c754-484b-841f-313307f92935')
def test_create_load_balancer_other_tenant_id_field(self):
"""Test create load balancer for other tenant"""
@ -311,7 +310,7 @@ class LoadBalancersTest(base.BaseTestCase):
vip_subnet_id=self.subnet['id'],
tenant_id=tenant)
@test.attr(type='negative')
@decorators.attr(type='negative')
@testtools.skipIf('1703396' in CONF.nsxv.bugs_to_resolve,
"skip_because bug=1703396")
@decorators.idempotent_id('9963cbf5-97d0-4ab9-96e5-6cbd65c98714')
@ -322,7 +321,7 @@ class LoadBalancersTest(base.BaseTestCase):
vip_subnet_id=self.subnet['id'],
flavor_id="NO_SUCH_FLAVOR")
@test.attr(type='negative')
@decorators.attr(type='negative')
@testtools.skipIf('1703396' in CONF.nsxv.bugs_to_resolve,
"skip_because bug=1703396")
@decorators.idempotent_id('f7319e32-0fad-450e-8f53-7567f56e8223')
@ -334,7 +333,7 @@ class LoadBalancersTest(base.BaseTestCase):
flavor_id="NO_SUCH_FLAVOR",
provider="NO_SUCH_PROVIDER")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('1d92d98f-550f-4f05-a246-cdf4525459a2')
def test_update_load_balancer(self):
"""Test update load balancer"""
@ -344,7 +343,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.load_balancer_id)
self.assertEqual(load_balancer.get('name'), 'new_name')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('474ca200-8dea-4d20-8468-abc0169a445b')
def test_update_load_balancer_empty_name(self):
"""Test update load balancer with empty name"""
@ -354,7 +353,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.load_balancer_id)
self.assertEqual(load_balancer.get('name'), "")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('551be885-215d-4941-8870-651cbc871162')
def test_update_load_balancer_invalid_name(self):
"""Test update load balancer with invalid name
@ -367,7 +366,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
name='a' * 256)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('62eef0ba-3859-4c8f-9e6a-8d6918754597')
def test_update_load_balancer_missing_name(self):
"""Test update load balancer with missing name"""
@ -380,7 +379,7 @@ class LoadBalancersTest(base.BaseTestCase):
load_balancer_new = load_balancer['name']
self.assertEqual(load_balancer_initial, load_balancer_new)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('ab3550c6-8b21-463c-bc5d-e79cbae3432f')
def test_update_load_balancer_invalid_description(self):
"""Test update load balancer with invalid description
@ -393,7 +392,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
description='a' * 256)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('157ebdbf-4ad2-495d-b880-c1b1a8edc46d')
def test_update_load_balancer_empty_description(self):
"""Test update load balancer with empty description"""
@ -403,7 +402,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.load_balancer_id)
self.assertEqual(load_balancer.get('description'), "")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('d13fa2f5-e8df-4d53-86a8-68583941200c')
def test_update_load_balancer_missing_description(self):
"""Test update load balancer with missing description"""
@ -416,7 +415,7 @@ class LoadBalancersTest(base.BaseTestCase):
load_balancer_new = load_balancer['description']
self.assertEqual(load_balancer_initial, load_balancer_new)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('96e46a1a-62e7-47f1-98c5-9983f89e622f')
def test_update_load_balancer_invalid_admin_state_up_field(self):
"""Test update load balancer with an invalid admin_state_up"""
@ -426,7 +425,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
admin_state_up="a&^%$jbc123")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('48f1e227-8b15-4389-a050-7ce76f4b4d46')
def test_update_load_balancer_empty_admin_state_up_field(self):
"""Test update load balancer with an empty admin_state_up"""
@ -436,7 +435,7 @@ class LoadBalancersTest(base.BaseTestCase):
wait=False,
admin_state_up="")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('a9182e53-ddaa-4f41-af54-585d983279ba')
def test_update_load_balancer_missing_admin_state_up(self):
"""Test update load balancer with missing admin state field"""
@ -446,7 +445,7 @@ class LoadBalancersTest(base.BaseTestCase):
self._update_load_balancer(self.load_balancer_id)
self.assertEqual(load_balancer_initial, True)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('bfbe9339-d083-4a88-b6d6-015522809c3a')
def test_update_load_balancer_incorrect_attribute(self):
"""Test update a load balancer with an extra, invalid attribute"""
@ -459,7 +458,7 @@ class LoadBalancersTest(base.BaseTestCase):
admin_state_up=True,
port=80)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('d2258984-6e9a-41d6-bffa-0543c8b1f2b0')
def test_get_load_balancer_status_tree(self):
"""Test get load balancer status tree"""
@ -470,7 +469,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertEqual("ACTIVE", load_balancer['provisioning_status'])
self.assertEmpty(load_balancer['listeners'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('a23677a9-b770-4894-8be9-cd66590c228b')
def test_get_load_balancer_stats(self):
"""Test get load balancer stats"""
@ -481,7 +480,7 @@ class LoadBalancersTest(base.BaseTestCase):
self.assertEqual(0, stats['total_connections'])
self.assertEqual(0, stats['active_connections'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('f289f8df-a867-45cd-bee3-7ff08f5e96e0')
def test_delete_load_balancer(self):
"""Test delete load balancer"""

View File

@ -15,7 +15,6 @@ from oslo_log import log as logging
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -54,7 +53,7 @@ class MemberTest(base.BaseAdminTestCase):
def resource_cleanup(cls):
super(MemberTest, cls).resource_cleanup()
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('03eeec24-78d8-4c2f-8d6c-4a78817f352e')
def test_create_member_invalid_tenant_id(self):
"""Test create member with invalid tenant_id"""
@ -69,7 +68,7 @@ class MemberTest(base.BaseAdminTestCase):
self.assertEqual(member['subnet_id'], self.subnet_id)
self.assertEqual(member['tenant_id'], "$232!$pw")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('01c9ea0c-bdfe-4108-95d1-69ecdc0a1f26')
def test_create_member_empty_tenant_id(self):
"""Test create member with an empty tenant_id should fail

View File

@ -15,7 +15,6 @@ from oslo_log import log as logging
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -58,7 +57,7 @@ class MemberTest(base.BaseTestCase):
def resource_cleanup(cls):
super(MemberTest, cls).resource_cleanup()
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('6dcdc53c-52cf-4b6e-aeec-d13df68ed001')
def test_list_empty_members(self):
"""Test that pool members are empty."""
@ -66,7 +65,7 @@ class MemberTest(base.BaseTestCase):
self.assertEmpty(members,
msg='Initial pool was supposed to be empty')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('346e49ce-0665-4995-a03a-b007052d3619')
def test_list_3_members(self):
"""Test that we can list members. """
@ -85,7 +84,7 @@ class MemberTest(base.BaseTestCase):
found_member_ips = set([m["address"] for m in members])
self.assertEqual(found_member_ips, member_ips_exp)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('3121bbdc-81e4-40e3-bf66-3ceefd72a0f5')
def test_add_member(self):
"""Test that we can add a single member."""
@ -103,7 +102,7 @@ class MemberTest(base.BaseTestCase):
self.assertEqual(True, member["admin_state_up"])
self.assertEqual(1, member["weight"])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('fc513a45-4c24-42ea-8807-a9b86a81ee56')
def test_get_member(self):
"""Test that we can fetch a member by id."""
@ -118,7 +117,7 @@ class MemberTest(base.BaseTestCase):
self.assertEqual(member_opts["protocol_port"], member["protocol_port"])
self.assertEqual(member_opts["subnet_id"], member["subnet_id"])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('2cead036-5a63-43a4-9d9d-03c9b744c101')
def test_create_member_missing_required_field_tenant_id(self):
"""Test if a non_admin user can create a member_opts
@ -132,7 +131,7 @@ class MemberTest(base.BaseTestCase):
member = self._create_member(self.pool_id, **member_opts)
self.addCleanup(self._delete_member, self.pool_id, member['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('d7ed0870-a065-4fbd-8d95-0ea4d12063c2')
def test_create_member_missing_required_field_address(self):
"""Test create a member with missing field address"""
@ -142,7 +141,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8d2b9a53-aac7-4fb9-b068-47647289aa21')
def test_create_member_missing_required_field_protocol_port(self):
"""Test create a member with missing field protocol_port"""
@ -152,7 +151,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('9710cd4c-aac0-4b71-b295-82a88c67b0b8')
def test_create_member_missing_required_field_subnet_id(self):
"""Test create a member with missing field subnet_id """
@ -162,7 +161,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a6814c49-758d-490a-9557-ef03f0d78c44')
def test_raises_BadRequest_when_missing_attrs_during_member_create(self):
"""Test failure on missing attributes on member create."""
@ -170,7 +169,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('840bfa84-1d16-4149-a863-6f7afec1682f')
def test_create_member_invalid_tenant_id(self):
"""Test create member with invalid tenant_id"""
@ -182,7 +181,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a99dbd0a-5f8c-4c96-8900-1a7d297d913b')
def test_create_member_invalid_address(self):
"""Test create member with invalid address"""
@ -193,7 +192,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('736b0771-b98c-4045-97e0-a44e4e18c22e')
def test_create_member_invalid_protocol_port(self):
"""Test create member with invalid protocol_port"""
@ -204,7 +203,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('2cc67f5a-3f66-427e-90b8-59a3da5c1d21')
def test_create_member_invalid_subnet_id(self):
"""Test create member with invalid subnet_id"""
@ -215,7 +214,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('3403c6f5-5a30-4115-ac3a-8a22855fd614')
def test_create_member_invalid_admin_state_up(self):
"""Test create member with invalid admin_state_up"""
@ -227,7 +226,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('b12216ec-3442-4239-ba2c-dd17640449d1')
def test_create_member_invalid_weight(self):
"""Test create member with invalid weight"""
@ -239,7 +238,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('88eb464b-4de6-4ed7-a1e8-bc61581a5c6e')
def test_create_member_empty_tenant_id(self):
"""Test create member with an empty tenant_id"""
@ -251,7 +250,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('238cd859-2b60-4e42-b356-c6b38768c3e4')
def test_create_member_empty_address(self):
"""Test create member with an empty address"""
@ -262,7 +261,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('834905ac-5c95-4dfc-900c-1676b6c28247')
def test_create_member_empty_protocol_port(self):
"""Test create member with an empty protocol_port"""
@ -273,7 +272,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a0f2148e-160e-4b12-8e30-567a0448d179')
def test_create_member_empty_subnet_id(self):
"""Test create member with empty subnet_id"""
@ -284,7 +283,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('63cd5897-b82c-4508-8be7-3b7ccab21798')
def test_create_member_empty_admin_state_up(self):
"""Test create member with an empty admin_state_up"""
@ -296,7 +295,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('55f16682-74a2-4df7-a6b3-2da3623f4a41')
def test_create_member_empty_weight(self):
"""Test create member with an empty weight"""
@ -308,7 +307,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('c99f6146-2c85-4a32-a850-942d6836c175')
def test_delete_member(self):
"""Test that we can delete a member by id."""
@ -321,7 +320,7 @@ class MemberTest(base.BaseTestCase):
members = self._list_members(self.pool_id)
self.assertEmpty(members)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('7d51aa2d-9582-4160-b07b-bf3c3b3e335e')
def test_update_member(self):
"""Test that we can update a member."""
@ -341,7 +340,7 @@ class MemberTest(base.BaseTestCase):
self.assertFalse(member["admin_state_up"])
self.assertEqual(10, member["weight"])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('101555d6-c472-45e4-b302-b2916ab6fad5')
def test_update_member_missing_admin_state_up(self):
"""Test that we can update a member with missing admin_state_up."""
@ -358,7 +357,7 @@ class MemberTest(base.BaseTestCase):
self.assertEqual(True, member["admin_state_up"])
self.assertEqual(10, member["weight"])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('815c037b-7e3b-474d-a4f6-eec26b44d677')
def test_update_member_missing_weight(self):
"""Test that we can update a member with missing weight."""
@ -375,7 +374,7 @@ class MemberTest(base.BaseTestCase):
self.assertFalse(member["admin_state_up"])
self.assertEqual(1, member["weight"])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('3ab3bb11-e287-4693-8ea0-5cfbb4cc2c85')
def test_update_member_invalid_admin_state_up(self):
"""Test that we can update a member with empty admin_state_up."""
@ -390,7 +389,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_member,
self.pool_id, member_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('71979c3b-08d6-449b-8de2-1eefc9d0db0e')
def test_update_member_invalid_weight(self):
"""Test that we can update a member with an empty weight."""
@ -405,7 +404,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_member,
self.pool_id, member_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('e1470212-0a36-4d8c-8e30-1f69a8d31ae1')
def test_update_member_empty_admin_state_up(self):
"""Test that we can update a member with empty admin_state_up."""
@ -420,7 +419,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_member,
self.pool_id, member_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('cd1e276c-b220-439d-a9dc-823a10d11b6a')
def test_update_member_empty_weight(self):
"""Test that we can update a member with an empty weight."""
@ -435,7 +434,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_member,
self.pool_id, member_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('25779006-1e2c-4155-9126-49f45e7646a3')
def test_raises_immutable_when_updating_immutable_attrs_on_member(self):
"""Test failure on immutable attribute on member create."""
@ -449,7 +448,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_member,
self.pool_id, member_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a332ecda-bb18-4cc2-b847-c09a72d90fd1')
def test_raises_exception_on_invalid_attr_on_create(self):
"""Test failure on invalid attribute on member create."""
@ -458,7 +457,7 @@ class MemberTest(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._create_member,
self.pool_id, **member_opts)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('bc4c3eb5-14d5-43dd-93cb-603801fa6f32')
def test_raises_exception_on_invalid_attr_on_update(self):
"""Test failure on invalid attribute on member update."""

View File

@ -12,7 +12,6 @@
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -62,7 +61,7 @@ class TestPools(base.BaseAdminTestCase):
self.addCleanup(self._delete_pool, response['id'])
return response
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('71b9d3e1-3f13-4c84-a905-054c9cd3d4aa')
def test_create_pool_using_empty_tenant_field(self):
"""Test create pool with empty tenant field should fail
@ -74,7 +73,7 @@ class TestPools(base.BaseAdminTestCase):
tenant_id="",
lb_algorithm='ROUND_ROBIN')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('f782967d-8dca-4d7b-b625-bfd811379b42')
def test_create_pool_missing_tenant_id_for_other_tenant(self):
"""Test create pool with a missing tenant id field.
@ -89,7 +88,7 @@ class TestPools(base.BaseAdminTestCase):
pool_tenant = pool['tenant_id']
self.assertNotEqual(pool_tenant, self.subnet['tenant_id'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('140c4c95-3d12-47d7-9b20-cc3c60e24af9')
def test_create_pool_missing_tenant_id_for_admin(self):
"""Test create pool with a missing tenant id field.
@ -103,7 +102,7 @@ class TestPools(base.BaseAdminTestCase):
pool_tenant = pool['tenant_id']
self.assertEqual(pool_tenant, pool.get('tenant_id'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('1cf07f5c-7609-4b64-b5b8-f27050860132')
def test_create_pool_for_another_tenant(self):
"""Test create pool for other tenant field"""

View File

@ -12,7 +12,6 @@
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.tests.nsxv.api.lbaas import base
@ -70,14 +69,14 @@ class TestPools(base.BaseTestCase):
self.addCleanup(self._delete_pool, response['id'])
return response
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('99154002-e598-4277-b6d8-bf0fe10f276f')
def test_list_pools_empty(self):
"""Test get pools when empty"""
pools = self._list_pools()
self.assertEmpty(pools)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('4f09b544-8e82-4313-b452-8fe3ca5ad14e')
def test_list_pools_one(self):
"""Test get pools with one pool"""
@ -87,7 +86,7 @@ class TestPools(base.BaseTestCase):
self.assertEqual(1, len(pools))
self.assertIn(new_pool, pools)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('7562b846-a685-49ea-9d41-afcaff418bae')
def test_list_pools_two(self):
"""Test get pools with two pools"""
@ -98,7 +97,7 @@ class TestPools(base.BaseTestCase):
self.assertIn(new_pool1, pools)
self.assertIn(new_pool2, pools)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('0cf61c6a-efd5-4859-9d92-da204f5ec1ed')
def test_get_pool(self):
"""Test get pool"""
@ -106,7 +105,7 @@ class TestPools(base.BaseTestCase):
pool = self._show_pool(new_pool.get('id'))
self.assertEqual(new_pool, pool)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('7fc310a0-7640-4f7c-8cdb-53b6ae23bd52')
def test_create_pool(self):
"""Test create pool"""
@ -114,7 +113,7 @@ class TestPools(base.BaseTestCase):
pool = self._show_pool(new_pool.get('id'))
self.assertEqual(new_pool, pool)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('5f414612-4f8c-4f48-ac99-286356870fae')
def test_create_pool_missing_required_fields(self):
"""Test create pool with a missing required fields"""
@ -123,7 +122,7 @@ class TestPools(base.BaseTestCase):
tenant_id=tenant_id,
lb_algorithm='ROUND_ROBIN')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('7fe53b0c-d7b8-4283-aeb3-eeeb3219e42f')
def test_create_pool_missing_tenant_field(self):
"""Test create pool with a missing required tenant field"""
@ -135,7 +134,7 @@ class TestPools(base.BaseTestCase):
pool_tenant = pool['tenant_id']
self.assertEqual(tenant_id, pool_tenant)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7d17e507-99c2-4e8f-a403-27b630b403a2')
def test_create_pool_missing_protocol_field(self):
"""Test create pool with a missing required protocol field"""
@ -152,7 +151,7 @@ class TestPools(base.BaseTestCase):
listener_id=listener_id,
lb_algorithm='ROUND_ROBIN')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('99051cc6-bf51-4af0-b530-edbfb7d4b7ab')
def test_create_pool_missing_lb_algorithm_field(self):
"""Test create pool with a missing required lb algorithm field"""
@ -169,7 +168,7 @@ class TestPools(base.BaseTestCase):
listener_id=listener_id,
protocol='HTTP')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('d04b75fe-688b-4713-83d1-f0ac29005391')
def test_create_pool_missing_listener_id_field(self):
"""Test create pool with a missing required listener id field"""
@ -179,7 +178,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
protocol='HTTP')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('378c56b4-cf61-448b-8460-1ffb1a091ea5')
def test_create_pool_missing_description_field(self):
"""Test create pool with missing description field"""
@ -189,7 +188,7 @@ class TestPools(base.BaseTestCase):
desc = pool_initial.get('description')
self.assertEqual(desc, "")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('f73ff259-7fbb-41ac-ab92-c6eef0213e20')
def test_create_pool_missing_name_field(self):
"""Test create pool with a missing name field"""
@ -198,7 +197,7 @@ class TestPools(base.BaseTestCase):
name = pool_initial.get('name')
self.assertEqual(name, "")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('37957c70-6979-4e15-a316-8c29cb7e724e')
def test_create_pool_missing_admin_state_up_field(self):
"""Test create pool with a missing admin_state_up field"""
@ -207,7 +206,7 @@ class TestPools(base.BaseTestCase):
state = pool_initial.get('admin_state_up')
self.assertEqual(state, True)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('d1e41b4b-fe79-4bec-bc94-5934995c6e05')
def test_create_pool_missing_session_pers_field(self):
"""Test create pool with a missing session_pers field"""
@ -216,7 +215,7 @@ class TestPools(base.BaseTestCase):
sess = pool_initial.get('session_persistence')
self.assertIsNone(sess)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('440b3975-b7c8-4cff-85a5-a0a02ad6b8f9')
def test_create_pool_invalid_protocol(self):
"""Test create pool with an invalid protocol"""
@ -225,7 +224,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a0b322b1-629c-483c-9136-397fc9100e48')
def test_create_pool_invalid_session_persistence_field(self):
"""Test create pool with invalid session persistance field"""
@ -235,7 +234,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('53cd9427-29fa-4a55-adb8-9cb6388b9548')
def test_create_pool_invalid_algorithm(self):
"""Test create pool with an invalid algorithm"""
@ -244,7 +243,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='LEAST_CON',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('26e6bb34-4b0f-4650-a5dc-87484fa55038')
def test_create_pool_invalid_admin_state_up(self):
"""Test create pool with an invalid admin state up field"""
@ -254,7 +253,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('8df02129-2b9c-4628-a390-805967107090')
def test_create_pool_invalid_listener_field(self):
"""Test create pool with invalid listener field"""
@ -265,7 +264,7 @@ class TestPools(base.BaseTestCase):
protocol='HTTP',
listener_id="$@5$%$7863")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('94949cd4-ebc1-4af5-a220-9ebb32772fbc')
def test_create_pool_invalid_tenant_id_field(self):
"""Test create pool with invalid tenant_id field"""
@ -282,7 +281,7 @@ class TestPools(base.BaseTestCase):
protocol='HTTP',
listener_id=listener_id)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('e335db64-ad16-4e23-bd60-c72c37c7b188')
def test_create_pool_incorrect_attribute(self):
"""Test create a pool with an extra, incorrect field"""
@ -292,7 +291,7 @@ class TestPools(base.BaseTestCase):
protocol_port=80,
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('390053c1-adc9-4b1a-8eb0-dbdb9085cf0f')
def test_create_pool_empty_listener_field(self):
"""Test create pool with empty listener field"""
@ -303,7 +302,7 @@ class TestPools(base.BaseTestCase):
protocol='HTTP',
listener_id="")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('8b25defa-8efc-47f5-a43d-3d299d7b9752')
def test_create_pool_empty_description_field(self):
"""Test create pool with empty description field"""
@ -312,7 +311,7 @@ class TestPools(base.BaseTestCase):
pool_desc = pool.get('description')
self.assertEqual(pool_desc, '')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('c8cd496c-7698-4c0e-bbed-fe9ef6c910de')
def test_create_pool_empty_name_field(self):
"""Test create pool with empty name field"""
@ -321,7 +320,7 @@ class TestPools(base.BaseTestCase):
pool_name = pool.get('name')
self.assertEqual(pool_name, '')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('b7997d71-84ea-43d2-8ce0-eea4156cc952')
def test_create_pool_empty_protocol(self):
"""Test create pool with an empty protocol"""
@ -330,7 +329,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('bffe50bb-8be5-4ed9-aea6-a15b40342599')
def test_create_pool_empty_session_persistence_field(self):
"""Test create pool with empty session persistence field"""
@ -340,7 +339,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('4cfd301a-baae-462d-8041-84c337e95d16')
def test_create_pool_empty_algorithm(self):
"""Test create pool with an empty algorithm"""
@ -349,7 +348,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm="",
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('814de2e3-a536-4ab1-a80f-9506b11c7bc8')
def test_create_pool_empty_admin_state_up(self):
"""Test create pool with an invalid admin state up field"""
@ -358,7 +357,7 @@ class TestPools(base.BaseTestCase):
admin_state_up="",
lb_algorithm='ROUND_ROBIN')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('0f230e6d-057d-4da8-a42d-f32464ae1c47')
def test_create_pool_empty_tenant_field(self):
"""Test create pool with empty tenant field"""
@ -368,7 +367,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('4a0e711a-b4da-4226-b265-f87b04ee4977')
def test_create_pool_for_other_tenant_field(self):
"""Test create pool for other tenant field"""
@ -379,7 +378,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('cb564af8-89aa-40ca-850e-55418da0f235')
def test_create_pool_invalid_name_field(self):
"""known bug with
@ -393,7 +392,7 @@ class TestPools(base.BaseTestCase):
listener_id=self.listener['id'],
name='n' * 256)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7f4472be-feb7-4ab7-9fb9-97e08f1fa787')
def test_create_pool_invalid_desc_field(self):
"""known bug with
@ -407,7 +406,7 @@ class TestPools(base.BaseTestCase):
listener_id=self.listener['id'],
description='d' * 256)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('b09b14dc-029d-4132-94dd-e713c9bfa0ee')
def test_create_pool_with_session_persistence_unsupported_type(self):
"""Test create a pool
@ -420,7 +419,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('b5af574a-d05f-4db0-aece-58676cdbf440')
def test_create_pool_with_session_persistence_http_cookie(self):
"""Test create a pool with session_persistence type=HTTP_COOKIE"""
@ -429,7 +428,7 @@ class TestPools(base.BaseTestCase):
pool = self._show_pool(new_pool.get('id'))
self.assertEqual(new_pool, pool)
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('2d6b6667-e38b-4e7f-8443-8dc7ee63ea87')
def test_create_pool_with_session_persistence_app_cookie(self):
"""Test create a pool with session_persistence type=APP_COOKIE"""
@ -439,7 +438,7 @@ class TestPools(base.BaseTestCase):
pool = self._show_pool(new_pool.get('id'))
self.assertEqual(new_pool, pool)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('9ac450fc-24c5-4b5c-a781-b23e5713f172')
def test_create_pool_with_session_persistence_redundant_cookie_name(self):
"""Test create a pool
@ -453,7 +452,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('7783ebd0-5bd9-43f0-baf2-a43212ba2617')
def test_create_pool_with_session_persistence_without_cookie_name(self):
"""Test create a pool
@ -466,7 +465,7 @@ class TestPools(base.BaseTestCase):
lb_algorithm='ROUND_ROBIN',
listener_id=self.listener['id'])
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('767ed26e-7114-402a-bdee-443d52009a73')
def test_update_pool(self):
"""Test update pool"""
@ -477,7 +476,7 @@ class TestPools(base.BaseTestCase):
wait=True)
self.assertEqual(desc, pool.get('description'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('5cbc4dac-13fc-44de-b98f-41ca369a6e0f')
def test_update_pool_missing_name(self):
"""Test update pool with missing name"""
@ -488,7 +487,7 @@ class TestPools(base.BaseTestCase):
self._wait_for_load_balancer_status(self.load_balancer.get('id'))
self.assertEqual(name, pool.get('name'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('af9c2f8e-b0e3-455b-83f0-222f8d692185')
def test_update_pool_missing_description(self):
"""Test update pool with missing description"""
@ -499,7 +498,7 @@ class TestPools(base.BaseTestCase):
self._wait_for_load_balancer_status(self.load_balancer.get('id'))
self.assertEqual(desc, pool.get('description'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('3b41e855-edca-42c1-a1c6-07421f87704d')
def test_update_pool_missing_admin_state_up(self):
"""Test update pool with missing admin state up field"""
@ -510,7 +509,7 @@ class TestPools(base.BaseTestCase):
self._wait_for_load_balancer_status(self.load_balancer.get('id'))
self.assertEqual(admin, pool.get('admin_state_up'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('8b49ecc3-4694-4482-9b2d-dc928576e161')
def test_update_pool_missing_session_persistence(self):
"""Test update pool with missing session persistence"""
@ -520,7 +519,7 @@ class TestPools(base.BaseTestCase):
pool = self._update_pool(new_pool.get('id'))
self.assertAlmostEqual(sess_pers, pool.get('session_persistence'))
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('23a9dbaf-105b-450e-95cf-050203b28366')
def test_update_pool_invalid_name(self):
"""Test update pool with invalid name
@ -531,7 +530,7 @@ class TestPools(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_pool,
new_pool.get('id'), name='n' * 256)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('efeeb827-5cb0-4349-8272-b2dbcbf42d22')
def test_update_pool_invalid_desc(self):
"""Test update pool with invalid desc
@ -543,7 +542,7 @@ class TestPools(base.BaseTestCase):
new_pool.get('id'),
description='d' * 256)
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a91c1380-0d36-43a1-bf64-8fe9078e2bbd')
def test_update_pool_invalid_admin_state_up(self):
"""Test update pool with an invalid admin_state_up"""
@ -551,7 +550,7 @@ class TestPools(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_pool,
new_pool.get('id'), admin_state_up='hello')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('5d45b0e3-7d7f-4523-8504-9ccfd6ecec81')
def test_update_pool_invalid_session_persistence(self):
"""Test update pool with an invalid session pers. field"""
@ -560,7 +559,7 @@ class TestPools(base.BaseTestCase):
new_pool.get('id'),
session_persistence={'type': 'Hello'})
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('3ddec9b1-fc7a-4073-9451-e73316237763')
def test_update_pool_empty_name(self):
"""Test update pool with empty name"""
@ -569,7 +568,7 @@ class TestPools(base.BaseTestCase):
self._wait_for_load_balancer_status(self.load_balancer.get('id'))
self.assertEqual(pool.get('name'), "")
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('171e1153-9898-467d-80ed-d6deed430342')
def test_update_pool_empty_description(self):
"""Test update pool with empty description"""
@ -579,7 +578,7 @@ class TestPools(base.BaseTestCase):
self._wait_for_load_balancer_status(self.load_balancer.get('id'))
self.assertEqual(pool.get('description'), "")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('397bd0ec-0e82-4421-a672-b7a2c4e84b56')
def test_update_pool_empty_admin_state_up(self):
"""Test update pool with empty admin state up"""
@ -587,7 +586,7 @@ class TestPools(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_pool,
new_pool.get('id'), admin_state_up="")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('f68a6ed5-4577-44f1-81c8-6dd30d8a874d')
def test_update_pool_empty_session_persistence(self):
"""Test update pool with empty session persistence field"""
@ -596,7 +595,7 @@ class TestPools(base.BaseTestCase):
new_pool.get('id'),
session_persistence="")
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('d8027ea2-6912-41f7-bf5a-f2eb3d0901b1')
def test_update_pool_invalid_attribute(self):
"""Test update pool with an invalid attribute"""
@ -604,7 +603,7 @@ class TestPools(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_pool,
new_pool.get('id'), lb_algorithm='ROUNDED')
@test.attr(type='negative')
@decorators.attr(type='negative')
@decorators.idempotent_id('a58822ee-56fc-4b96-bb28-47cd07ae9cb8')
def test_update_pool_incorrect_attribute(self):
"""Test update a pool with an extra, incorrect field"""
@ -612,7 +611,7 @@ class TestPools(base.BaseTestCase):
self.assertRaises(ex.BadRequest, self._update_pool,
new_pool.get('id'), protocol='HTTPS')
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('4839f03e-2439-4619-8546-411ca883066d')
def test_delete_pool(self):
"""Test delete pool"""
@ -623,7 +622,7 @@ class TestPools(base.BaseTestCase):
self.assertRaises(ex.NotFound, self._show_pool,
new_pool.get('id'))
@test.attr(type='smoke')
@decorators.attr(type='smoke')
@decorators.idempotent_id('cd30962a-12ce-4ae9-89de-db007aebbd9f')
def test_delete_invalid_pool(self):
"""Test delete pool that doesn't exist"""

View File

@ -198,7 +198,7 @@ class AdminPolicyTest(base.BaseAdminNetworkTest):
sg = self.create_security_group(sg_client, sg_name)
self.assertEqual(sg.get('name'), sg_name)
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@decorators.idempotent_id('5099604c-637a-4b25-8756-c6fc0929f963')
def test_add_rules_to_policy_disallowed(self):
tenant_id = self.cmgr_pri.networks_client.tenant_id
@ -208,14 +208,14 @@ class AdminPolicyTest(base.BaseAdminNetworkTest):
self.create_security_group_rule, sg.get('id'),
cmgr=self.cmgr_adm, tenant_id=tenant_id)
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@decorators.idempotent_id('9a604036-ace6-4ced-92b8-be732eee310f')
def test_cannot_create_policy_with_invalid_policy_id(self):
self.assertRaises(exceptions.BadRequest,
self.create_security_group_policy,
self.cmgr_adm, "invalid-policy-id")
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@decorators.idempotent_id('4d383d3c-f1e6-47e3-906e-3c171146965a')
def test_tenant_cannot_delete_its_policy(self):
tenant_cmgr = self.cmgr_alt
@ -228,7 +228,7 @@ class AdminPolicyTest(base.BaseAdminNetworkTest):
self.delete_security_group,
tenant_sg_client, sg_id)
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@decorators.idempotent_id('154985cd-26b2-468d-af6d-b6144ef2d378')
def test_tenant_cannot_update_its_policy(self):
tenant_cmgr = self.cmgr_alt
@ -240,14 +240,14 @@ class AdminPolicyTest(base.BaseAdminNetworkTest):
self.update_security_group_policy,
sg_id, self.alt_policy_id, self.cmgr_alt)
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@decorators.idempotent_id('d6d8c918-d488-40c4-83dc-8ce1a565e54f')
def test_tenant_cannot_create_policy(self):
self.assertRaises(exceptions.Forbidden,
self.create_security_group_policy,
self.cmgr_pri)
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@testtools.skipIf(CONF.nsxv.allow_tenant_rules_with_policy,
"skip because tenant is allowed to create SG.")
@decorators.idempotent_id('82aa02ee-8008-47a9-90ea-ba7840bfb932')

View File

@ -19,7 +19,6 @@ from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest.lib import exceptions
from tempest import test
CONF = config.CONF
@ -50,7 +49,7 @@ class DnsSearchDoaminsNegativeTest(base.BaseAdminNetworkTest):
subnet = resp.get('subnet', resp)
return (network, subnet)
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@decorators.idempotent_id('11bdc214-10d7-4926-8f49-2da3d8719143')
def test_create_dns_search_domain_negative(self):
self.assertRaises(exceptions.BadRequest,

View File

@ -21,7 +21,6 @@ from tempest.lib import exceptions as lib_exc
from tempest.api.network import base
from tempest import config
from tempest import test
CONF = config.CONF
@ -49,7 +48,7 @@ class MultipleTransportZonesNegativeTest(base.BaseAdminNetworkTest):
network['id'])
return network
@test.attr(type=['negative'])
@decorators.attr(type=['negative'])
@decorators.idempotent_id('8aff7abc-eacd-409c-8278-4cb7bde6da84')
def test_create_mtz_networks(self):
# Multiple Transport Zone use provier network to implement

View File

@ -19,7 +19,6 @@ from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from oslo_log import log as logging
@ -83,7 +82,7 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.delete_port, dir_port['id'])
return dir_port
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('ebb15f36-79bd-4461-91b5-84a57616730c')
def test_create_direct_port(self):
"""
@ -95,7 +94,7 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.assertEqual(dir_port['binding:vnic_type'], 'direct',
"Created port type is not DIRECT")
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('2eaa0014-3265-479c-9012-c110df566ef1')
def test_enable_port_direct(self):
"""
@ -120,7 +119,7 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.assertEqual(updated_port['port']['binding:vnic_type'], 'direct',
"Port vnic-type was not updated to DIRECT")
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('d77125af-7e8f-4dcf-a3a4-7956b3eaa2d2')
def test_delete_direct_port(self):
"""
@ -134,7 +133,7 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.assertFalse(self.delete_port(dir_port['id']),
"Delete of Direct port was not successful")
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('b69f5ff1-7e86-4790-9392-434cd9ab808f')
def test_list_direct_ports(self):
"""
@ -164,7 +163,7 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.assertEmpty(ports_not_listed, "These ports not listed: %s"
% ports_not_listed)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('9b7ec966-f4e4-4087-9789-96a3aa669fa2')
def test_create_update_delete_direct_port(self):
"""
@ -184,8 +183,8 @@ class PortTypeTest(base.BaseAdminNetworkTest):
"Port name should be updated to %s"
% updated_port_name)
@test.attr(type='nsxv')
@test.attr(type='negative')
@decorators.attr(type='nsxv')
@decorators.attr(type='negative')
@decorators.idempotent_id('e661ba70-0ab4-4f91-8d84-c5c102ec5793')
def test_create_direct_port_without_flat_network_negative(self):
"""
@ -200,8 +199,8 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.assertRaises(ex.BadRequest, self._create_direct_port,
network_id=test_net['id'])
@test.attr(type='nsxv')
@test.attr(type='negative')
@decorators.attr(type='nsxv')
@decorators.attr(type='negative')
@decorators.idempotent_id('ee87287f-4ec6-4502-9bc1-855fa7c93e90')
def test_create_direct_port_w_flat_net_wout_port_settings_negative(self):
"""
@ -216,8 +215,8 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.create_port, network_id=test_flat_net['id'],
**orig_post)
@test.attr(type='nsxv')
@test.attr(type='negative')
@decorators.attr(type='nsxv')
@decorators.attr(type='negative')
@decorators.idempotent_id('03e0065e-6d76-45d5-9192-ce89853dfa9e')
def test_update_direct_port_w_flat_net_wout_port_configs_negative(self):
"""
@ -240,8 +239,8 @@ class PortTypeTest(base.BaseAdminNetworkTest):
self.assertRaises(ex.BadRequest, self.update_port,
test_port['port']['id'], **post_body)
@test.attr(type='nsxv')
@test.attr(type='negative')
@decorators.attr(type='nsxv')
@decorators.attr(type='negative')
@decorators.idempotent_id('d3e75ed7-f3e5-4395-9ab0-063e7a8c141c')
def test_update_direct_port_wout_flat_net_with_port_configs_negative(self):
"""

View File

@ -116,7 +116,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
sg_list = sg_list.get('security_groups', sg_list)
return sg_list[0]
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('5480d96e-287b-4e59-9ee3-d1bcf451dfc9')
def test_provider_security_group_crud(self):
sg_desc = "crud provider-security-group"
@ -132,7 +132,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
sg_list = sg_list.get('security_groups', sg_list)
self.assertEqual(len(sg_list), 0)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('6e48a2ed-8035-4986-a5c6-903c49ae26a2')
def test_admin_can_create_provider_security_group_for_tenant(self):
project_id = self.cmgr_alt.networks_client.tenant_id
@ -141,14 +141,14 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
provider=True)
self.assertEqual(True, sg.get('provider'))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('95ce76a4-a125-411b-95d7-7a66addf0efc')
def test_tenant_provider_sec_group_with_no_rules(self):
sg = self.create_security_provider_group(self.cmgr_adm,
provider=True)
self.assertEmpty(sg.get('security_group_rules'))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('5e6237ca-033a-4bee-b5fb-8f225ed00b0c')
def test_admin_can_create_security_group_rule(self):
sg_client = self.cmgr_adm.security_groups_client
@ -167,7 +167,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
['security_group_rules']
[0]['protocol'])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('18737e13-4bca-4f62-b993-f021795a7dbf')
def test_provider_security_group_rule_at_beckend(self):
sg = self.create_security_provider_group(self.cmgr_adm, provider=True)
@ -187,7 +187,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
self.assertIn('deny', rule['action'], "Provider "
"security Group applied")
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('b179a32b-e012-43ec-9d2d-f9e5801c97c6')
def test_provider_security_group_predence_at_beckend(self):
sg = self.create_security_provider_group(self.cmgr_adm, provider=True)
@ -206,7 +206,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
count += count
self.assertEqual(0, count)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('38b21ea8-7822-4b1a-b923-cd00fa57ca4d')
def test_provider_security_group_at_port_level(self):
sg = self.create_security_provider_group(self.cmgr_adm,
@ -231,7 +231,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
port_client.delete_port(port_id['port']['id'])
net_client.delete_network(network['network']['id'])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('b1e904fb-a70a-400e-a757-d772aab152eb')
def test_provider_sec_group_with_multiple_rules(self):
project_id = self.cmgr_adm.networks_client.tenant_id
@ -249,7 +249,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
sg_rule2_id = sg_rule2.get('id')
self.assertNotEqual(sg_rule1_id, sg_rule2_id)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('edd94f8c-53b7-4286-9350-0ddc0af3213b')
def test_clear_provider_sec_group_from_port(self):
project_id = self.cmgr_adm.networks_client.tenant_id
@ -274,7 +274,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
port_client.delete_port(port_id['port']['id'])
net_client.delete_network(network['network']['id'])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('6c1e6728-b84a-47f9-9021-ff3e3f88a933')
def test_tenant_cannot_delete_admin_provider_security_group(self):
project_id = self.cmgr_adm.networks_client.tenant_id
@ -290,7 +290,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
"provider security group")
pass
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('94e06ee2-82ed-4203-ac9b-421a298bdba4')
def test_tenant_cannot_create_provider_sec_group(self):
project_id = self.cmgr_alt.networks_client.tenant_id
@ -300,7 +300,7 @@ class ProviderSecGroup(base.BaseAdminNetworkTest):
provider=True)
LOG.debug("Non-Admin Tenant cannot create provider sec group")
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('01f00a36-7576-40e0-a397-b43860a9c122')
def test_update_port_with_psg(self):
net_client = self.cmgr_adm.networks_client

View File

@ -165,28 +165,28 @@ class RouterSizeBaseTest(base.BaseAdminNetworkTest):
class CompactRouterTest(RouterSizeBaseTest):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('d75fbcd5-c8cb-49ea-a868-ada12fd8c87f')
def test_create_update_delete_compact_router(self):
self.do_create_update_delete_router_with_size('compact')
class LargeRouterTest(RouterSizeBaseTest):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('da00c74f-81e6-4ef9-8aca-8e0345b376e9')
def test_create_update_delete_large_router(self):
self.do_create_update_delete_router_with_size('large', 20.0)
class XlargeRouterTest(RouterSizeBaseTest):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('091dad07-6044-4ca3-b16c-54a3ef92254b')
def test_create_update_delete_xlarge_router(self):
self.do_create_update_delete_router_with_size('xlarge', 20.0)
class QuadlargeRouterTest(RouterSizeBaseTest):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('0f69bf8a-4b06-47ac-a3f7-eedba95fd395')
def test_create_update_delete_quadlarge_router(self):
self.do_create_update_delete_router_with_size('quadlarge', 30.0)

View File

@ -64,7 +64,7 @@ class ExcRouterTest(base.BaseAdminNetworkTest):
subnet_id=interface['fixed_ips'][0]['subnet_id'])
self.routers_client.delete_router(router['id'])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('ac1639a0-2a8d-4c68-bccd-54849fd45f86')
def test_create_exc_router(self):
"""
@ -84,7 +84,7 @@ class ExcRouterTest(base.BaseAdminNetworkTest):
self.assertTrue(exc_edge is not None)
self.assertEqual(exc_edge['edgeType'], 'gatewayServices')
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('c4b94988-0bc7-11e5-9203-0050568833db')
def test_update_exc_router(self):
"""
@ -102,7 +102,7 @@ class ExcRouterTest(base.BaseAdminNetworkTest):
router['router']['id'], name=updated_name)
self.assertEqual(update_body['router']['name'], updated_name)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('a0ff5afa-0bcc-11e5-9203-0050568833db')
def test_list_show_exc_router(self):
"""
@ -124,7 +124,7 @@ class ExcRouterTest(base.BaseAdminNetworkTest):
routers_list = [r['id'] for r in list_body['routers']]
self.assertIn(router['router']['id'], routers_list)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('adef8d1e-0bce-11e5-9203-0050568833db')
def test_delete_exc_router(self):
"""

View File

@ -311,7 +311,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
self.assertEqual(router['name'], router_name)
return router
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('c72197f1-b5c6-453f-952e-007acea6df86')
def test_list_firewall_rules(self):
# List firewall rules
@ -328,7 +328,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
self.assertEqual(self.fw_rule['firewall_rule']['enabled'],
fw_rules[0]['enabled'])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('ef92ba0d-f7c2-46cb-ad4b-21c62cfa85a0')
def test_create_update_delete_firewall_rule(self):
# Create firewall rule
@ -351,7 +351,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
self.assertNotIn(fw_rule_id,
[m['id'] for m in fw_rules['firewall_rules']])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('264e8b67-a1ef-4ba1-8757-808b249a5320')
def test_show_firewall_rule(self):
# show a created firewall rule
@ -360,7 +360,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
for key, value in six.iteritems(fw_rule['firewall_rule']):
self.assertEqual(self.fw_rule['firewall_rule'][key], value)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('029cd998-9dd4-4a0a-b79d-8bafd8223bda')
def test_list_firewall_policies(self):
fw_policies = self.fwaasv1_client.list_firewall_policies()
@ -372,7 +372,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
self.assertEqual(self.fw_policy['firewall_policy']['firewall_rules'],
fw_policies[0]['firewall_rules'])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('28c261c8-4fb3-4630-8a9b-707c93536a54')
def test_create_update_delete_firewall_policy(self):
# Create firewall policy
@ -395,7 +395,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
fw_policies = fw_policies['firewall_policies']
self.assertNotIn(fw_policy_id, [m['id'] for m in fw_policies])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('8bc7ad6d-4163-4def-9e1d-b9d24d9e8bf8')
def test_show_firewall_policy(self):
# show a created firewall policy
@ -405,7 +405,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
for key, value in six.iteritems(fw_policy):
self.assertEqual(self.fw_policy['firewall_policy'][key], value)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('0c320840-f3e4-4960-987d-a6f06d327fe1')
def test_create_show_delete_firewall(self):
# Create tenant network resources required for an ACTIVE firewall
@ -442,7 +442,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
firewalls = self.fwaasv1_client.list_firewalls()['firewalls']
self.assertNotIn(firewall_id, [m['id'] for m in firewalls])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('d9b23b3a-66ea-4591-9f8f-fa5a71fe0645')
def test_firewall_insertion_mode_add_remove_mix_router(self):
# Create legacy routers
@ -483,7 +483,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
self.assertNotIn(router1['id'], updated_firewall['router_ids'])
self.assertEqual(1, len(updated_firewall['router_ids']))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('964e0254-e7f2-4bbe-a4c8-db09da8d79ee')
def test_firewall_insertion_mode_add_remove_router(self):
# Create legacy routers
@ -529,7 +529,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
self.assertNotIn(router1['id'], updated_firewall['router_ids'])
self.assertEqual(1, len(updated_firewall['router_ids']))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('662b252f-fa1b-49fe-8599-a37feab9fae8')
def test_firewall_insertion_one_policy_two_router_backend(self):
# Create router required for an ACTIVE firewall
@ -557,7 +557,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
True, self._check_firewall_rule_exists_at_backend(
rules, firewall_topo1['firewall_name']))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('00330ef3-0a2e-4556-84d1-448d09c5ca2e')
def test_firewall_insertion_two_policy_two_router_backend(self):
# Create router required for an ACTIVE firewall
@ -586,7 +586,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
True, self._check_firewall_rule_exists_at_backend(
rules, firewall_topo2['firewall_name']))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('8092bd48-e4c1-4709-8a3b-70e7bf6a78c9')
def test_firewall_insertion_mode_two_firewall_rules_check_backend(self):
rule_no = 1
@ -628,7 +628,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
"Rule exists at position 2")
break
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('da65de07-a60f-404d-ad1d-2d2c71a3b6a5')
def test_firewall_add_delete_between_routers(self):
firewall_topo = self._create_firewall_basic_topo('exclusive')
@ -666,7 +666,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
True, self._check_firewall_rule_exists_at_backend(
rules, firewall_topo['firewall_name']))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('c60ceff5-d51f-451d-b6e6-cb983d16ab6b')
def test_firewall_insertion_with_multiple_rules_check_backend(self):
# Create router required for an ACTIVE firewall
@ -715,7 +715,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
True, self._check_firewall_rule_exists_at_backend(
rules, firewall_name_3))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('a1734149-9c4b-46d3-86c8-d61f57458095')
def test_firewall_add_remove_rule_check_backend(self):
# Create router required for an ACTIVE firewall
@ -738,7 +738,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
False, self._check_firewall_rule_exists_at_backend(
rules, firewall_topo['firewall_name']))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('e1111959-c36a-41d6-86ee-ea6c0b927eb3')
def test_firewall_insertion_mode_one_firewall_rule_check_backend(self):
# Create router required for an ACTIVE firewall
@ -753,7 +753,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
True, self._check_firewall_rule_exists_at_backend(
rules, firewall_topo['firewall_name']))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('e434b3c9-1148-499a-bb52-b094cdb0a186')
def test_firewall_insertion_mode_one_firewall_per_router(self):
# Create router required for an ACTIVE firewall
@ -767,7 +767,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
firewall_policy_id=self.fw_policy['firewall_policy']['id'],
router_ids=[firewall_topo['router']['id']])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('d162abb2-9c14-45d6-bed1-06646a66803a')
def test_firewall_insertion_mode_one_firewall_per_dist_router(self):
# Create router required for an ACTIVE firewall
@ -781,7 +781,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
firewall_policy_id=self.fw_policy['firewall_policy']['id'],
router_ids=[firewall_topo['router']['id']])
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('d5531558-9b18-40bc-9388-3eded0894a85')
def test_firewall_rule_insertion_position_removal_rule_from_policy(self):
# Create firewall rule
@ -836,7 +836,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
# Verify removal of rule from firewall policy
self.assertNotIn(fw_rule_id1, self._get_list_fw_rule_ids(fw_policy_id))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('901dae30-b148-43d9-ac86-09777aeaba20')
def test_update_firewall_name_at_backend_excl_edge(self):
firewall_topo = self._create_firewall_basic_topo('exclusive')
@ -857,7 +857,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
True, self._check_firewall_rule_exists_at_backend(
rules, "Fwaas-updated_rule"))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('471ebc13-8e3b-4aca-85b8-747935bf0559')
def test_update_firewall_name_at_backend_dist_edge(self):
firewall_topo = self._create_firewall_basic_topo('distributed')
@ -879,7 +879,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
True, self._check_firewall_rule_exists_at_backend(
rules, "Fwaas-updated_rule"))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('0bdc9670-17b8-4dd5-80c8-dc6e956fc6ef')
def test_create_multiple_firewall_rules_check_at_backend(self):
firewall_topo = self._create_firewall_advanced_topo('exclusive')
@ -894,7 +894,7 @@ class FWaaSTestJSON(base.BaseNetworkTest):
"Firewall Rules are greater than %s" %
constants.NO_OF_ENTRIES)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('0249db39-6284-456a-9449-2adacdca4d3b')
def test_update_firewall_policy_audited_attribute(self):
# Create firewall rule

View File

@ -26,7 +26,6 @@ from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest.lib import exceptions
from tempest import test
from vmware_nsx_tempest.services import nsxv_client
from vmware_nsx_tempest.tests.nsxv.scenario import (
@ -293,7 +292,7 @@ class TestDHCP121BasicOps(dmgr.TopoDeployScenarioManager):
class TestDhcpMetadata(TestDHCP121BasicOps):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('95d06aba-895f-47f8-b47d-ae48c6853a85')
def test_dhcp_121_metadata_check_on_vm_nsxv(self):
LOG.info("Testcase DHCP-121 option metadata check on vm and "
@ -306,7 +305,7 @@ class TestDhcpMetadata(TestDHCP121BasicOps):
class TestDhcpHostroutesClear(TestDHCP121BasicOps):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('6bec6eb4-8632-493d-a895-a3ee87cb3002')
def test_dhcp_121_hostroutes_clear(self):
LOG.info("Testcase DHCP-121 option host routes clear deploying")
@ -316,7 +315,7 @@ class TestDhcpHostroutesClear(TestDHCP121BasicOps):
class TestDhcpNegative(TestDHCP121BasicOps):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('a58dc6c5-9f28-4184-baf7-37ded52593c4')
def test_dhcp121_negative_test(self):
LOG.info("Testcase DHCP-121 option negative test deploying")
@ -384,7 +383,7 @@ class TestDhcpNegative(TestDHCP121BasicOps):
class TestDhcpMultiHostRoute(TestDHCP121BasicOps):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('c3ca96d7-b704-4d94-b42d-e7bae94b82cd')
def test_dhcp121_multi_host_route(self):
LOG.info("Testcase DHCP-121 option multi host routes deploying")
@ -452,7 +451,7 @@ class TestDhcpMultiHostRoute(TestDHCP121BasicOps):
class TestDhcpHostRoutesBetweenVms(TestDHCP121BasicOps):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('34e6d23f-db00-446e-8299-57ff2c0911b2')
def test_host_routes_between_vms(self):
client_mgr = self.manager

View File

@ -22,7 +22,6 @@ from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest import test
from vmware_nsx_tempest.common import constants
from vmware_nsx_tempest.services import nsxv_client
@ -175,7 +174,7 @@ class TestSpoofGuardBasicOps(dmgr.TopoDeployScenarioManager):
class TestSpoofGuardFeature(TestSpoofGuardBasicOps):
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('2804f55d-3221-440a-9fa8-ab16a8932634')
def test_exclude_list_with_new_attach_port(self):
port_client = self.manager.ports_client
@ -210,7 +209,7 @@ class TestSpoofGuardFeature(TestSpoofGuardBasicOps):
# Detach interface from vm
self.interface_client.delete_interface(vm_id, port_id)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('a5420350-2658-47e4-9e2b-490b200e9f41')
def test_spoofguard_with_ping_between_servers_on_same_network(self):
username, password = self.get_image_userpass()
@ -287,7 +286,7 @@ class TestSpoofGuardFeature(TestSpoofGuardBasicOps):
cidr=cidr, cidr_offset=cidr_offset, name=net_network['name'])
return net_network, net_subnet
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('38c213df-bfc2-4681-9c9c-3a31c05b0e6f')
def test_exclude_with_multiple_vm(self):
image = self.get_server_image()
@ -357,7 +356,7 @@ class TestSpoofGuardFeature(TestSpoofGuardBasicOps):
if vm_id not in exclude_vm:
LOG.info("Vm1 not in exclude list")
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('f034d3e9-d717-4bcd-8e6e-18e9ada7b81a')
def test_exclude_list_with_single_vm_port(self):
port_client = self.manager.ports_client
@ -385,7 +384,7 @@ class TestSpoofGuardFeature(TestSpoofGuardBasicOps):
LOG.info("Vm not in exclude list")
self.interface_client.delete_interface(vm_id, port_id)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('3ad04e37-2a9f-4465-86e7-94993eecdfa1')
def test_disabled_network_port_security(self):
network_client = self.manager.networks_client
@ -415,7 +414,7 @@ class TestSpoofGuardFeature(TestSpoofGuardBasicOps):
if (port_details['port']['port_security_enabled'] == 'true'):
LOG.info("Port security of port is enabled")
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('c8683cb7-4be5-4670-95c6-344a0aea3667')
def test_exclude_list_with_multiple_ports(self):
port_client = self.manager.ports_client

View File

@ -398,7 +398,7 @@ class FWaaSTestBasicOps(dmgr.TopoDeployScenarioManager):
self.assertEqual(router['name'], router_name)
return router
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('e2ab2d1a-4dc0-4efd-b03d-8c2322b427f0')
def test_firewall_icmp_rule_with_exclusive_router(self):
# Create router required for an ACTIVE firewall
@ -411,7 +411,7 @@ class FWaaSTestBasicOps(dmgr.TopoDeployScenarioManager):
out = self._test_ping_from_external_network(fip_ip)
self.assertIn("0 received", str(out))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('fd39455a-232e-4f7f-b102-2853688335dc')
def test_firewall_tcp_rule_with_exclusive_router(self):
# Create router required for an ACTIVE firewall
@ -424,7 +424,7 @@ class FWaaSTestBasicOps(dmgr.TopoDeployScenarioManager):
out = self._test_ssh_connectivity_from_external_network(fip_ip)
self.assertIn("Servname not supported", out)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('3628448a-5977-44e3-b34a-690e4e2ba847')
def test_firewall_icmp_rule_with_distributed_router(self):
# Create router required for an ACTIVE firewall
@ -437,7 +437,7 @@ class FWaaSTestBasicOps(dmgr.TopoDeployScenarioManager):
out = self._test_ping_from_external_network(fip_ip)
self.assertIn("0 received", str(out))
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('0aeb2acc-0b68-4cca-889d-078f61bbe5b2')
def test_firewall_tcp_rule_with_distributed_router(self):
# Create router required for an ACTIVE firewall
@ -450,7 +450,7 @@ class FWaaSTestBasicOps(dmgr.TopoDeployScenarioManager):
out = self._test_ssh_connectivity_from_external_network(fip_ip)
self.assertIn("Servname not supported", out)
@test.attr(type='nsxv')
@decorators.attr(type='nsxv')
@decorators.idempotent_id('4a0306e5-663c-4981-8177-e8a255a8859c')
def test_firewall_update_delete_ops_on_exclusive_router(self):
# Create router required for an ACTIVE firewall

View File

@ -18,7 +18,6 @@
from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest import test
from vmware_nsx_tempest.common import constants
from vmware_nsx_tempest.services import base_l2gw
@ -33,7 +32,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
Test l2 gateway operations.
"""
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("e5e3a089-602c-496e-8c17-4ef613266924")
def test_l2_gateway_create_without_vlan(self):
"""
@ -58,7 +57,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
"Device name is not the same as expected")
self.resource_cleanup()
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("9968a529-e785-472f-8705-9b394a912e43")
def test_l2_gateway_with_single_vlan(self):
"""
@ -95,7 +94,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
self.assertIn(id, response_vlans)
self.resource_cleanup()
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("3861aab0-4f76-4472-ad0e-a255e6e42193")
def test_l2_gateway_with_multiple_vlans(self):
"""
@ -132,7 +131,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
self.assertIn(id, response_vlans)
self.resource_cleanup()
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("670cbcb5-134e-467d-ba41-0d7cdbcf3903")
def test_l2_gateway_delete(self):
"""
@ -163,7 +162,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
self.l2gw_created.pop(l2gw_id)
self.resource_cleanup()
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("fa76f6e6-8aa7-46d8-9af4-2206d0773dc3")
def test_l2_gateway_update_l2gw_name(self):
"""
@ -205,7 +204,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
"name": l2gw_new_name})
self.resource_cleanup()
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("c4977df8-8e3a-4b7e-a8d2-5aa757117658")
def test_l2_gateway_update_interface(self):
"""
@ -251,7 +250,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
"L2GW segmentation id update failed!!!")
self.resource_cleanup()
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("5a3cef97-c91c-4e03-92c8-d180f9269f27")
def test_l2_gateway_show(self):
"""
@ -294,7 +293,7 @@ class L2GatewayTest(base_l2gw.BaseL2GatewayTest):
self.assertIn(id, response_vlans)
self.resource_cleanup()
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("d4a7d3af-e637-45c5-a967-d179153a6e58")
def test_l2_gateway_list(self):
"""

View File

@ -20,7 +20,6 @@ from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest import test
from vmware_nsx_tempest.common import constants
from vmware_nsx_tempest.services import base_l2gw
@ -75,7 +74,7 @@ class L2GatewayConnectionTest(base_l2gw.BaseL2GatewayTest):
cls.l2gw_client.delete_l2_gateway(l2gw_id)
cls.l2gw_created.pop(l2gw_id)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("81edfb9e-4722-4565-939c-6593b8405ff4")
def test_l2_gateway_connection_create(self):
"""
@ -108,7 +107,7 @@ class L2GatewayConnectionTest(base_l2gw.BaseL2GatewayTest):
"create l2gw connection response")
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("7db4f6c9-18c5-4a99-93c1-68bc2ecb48a7")
def test_l2_gateway_connection_create_with_multiple_vlans(self):
"""
@ -141,7 +140,7 @@ class L2GatewayConnectionTest(base_l2gw.BaseL2GatewayTest):
"create l2gw connection response")
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("de70d6a2-d454-4a09-b06b-8f39be67b635")
def test_l2_gateway_connection_with_seg_id_create(self):
"""
@ -178,7 +177,7 @@ class L2GatewayConnectionTest(base_l2gw.BaseL2GatewayTest):
"create l2gw connection response")
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("819d9b50-9159-48d0-be2a-493ec686534c")
def test_l2_gateway_connection_show(self):
"""
@ -223,7 +222,7 @@ class L2GatewayConnectionTest(base_l2gw.BaseL2GatewayTest):
"show l2gw connection response")
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("4188f8e7-cd65-427e-92b8-2a9e0492ab21")
def test_l2_gateway_connection_list(self):
"""
@ -277,7 +276,7 @@ class L2GatewayConnectionTest(base_l2gw.BaseL2GatewayTest):
"segmentation_id")
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("4d71111f-3d2b-4557-97c7-2e149a6f41fb")
def test_l2_gateway_connection_recreate(self):
"""
@ -345,7 +344,7 @@ class L2GatewayConnectionTest(base_l2gw.BaseL2GatewayTest):
"l2gwc id")
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("671cacb5-134e-467d-ba41-0d7cdbcf3903")
def test_l2_gateway_connection_delete(self):
"""

View File

@ -17,7 +17,6 @@
import netaddr
from tempest import config
from tempest import test
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
@ -78,7 +77,7 @@ class L2GatewayConnectionNegative(base_l2gw.BaseL2GatewayTest):
cls.l2gw_client.delete_l2_gateway(l2gw_id)
cls.l2gw_created.pop(l2gw_id)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("e86bd8e9-b32b-425d-86fa-cd866138d028")
def test_active_l2_gateway_delete(self):
"""
@ -105,7 +104,7 @@ class L2GatewayConnectionNegative(base_l2gw.BaseL2GatewayTest):
self.assertRaises(lib_exc.Conflict, self.delete_l2gw, l2gw_id)
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("488faaae-180a-4c48-8b7a-44c3a243369f")
def test_recreate_l2_gateway_connection(self):
"""
@ -131,7 +130,7 @@ class L2GatewayConnectionNegative(base_l2gw.BaseL2GatewayTest):
l2gwc_param)
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("14606e74-4f65-402e-ae50-a0adcd877a83")
def test_create_l2gwc_with_nonexist_l2gw(self):
"""
@ -153,7 +152,7 @@ class L2GatewayConnectionNegative(base_l2gw.BaseL2GatewayTest):
l2gwc_param)
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("e6cb8973-fcbc-443e-a3cb-c6a82ae58b63")
def test_create_l2gwc_with_nonexist_network(self):
"""
@ -175,7 +174,7 @@ class L2GatewayConnectionNegative(base_l2gw.BaseL2GatewayTest):
l2gwc_param)
self.addCleanup(self.l2gw_cleanup)
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("27c7c64f-511f-421e-8b62-dfed143fc00b")
def test_create_l2gw_with_invalid_seg_id(self):
"""
@ -194,7 +193,7 @@ class L2GatewayConnectionNegative(base_l2gw.BaseL2GatewayTest):
self.addCleanup(self.l2gw_cleanup)
@decorators.skip_because(bug="1640033")
@test.attr(type="nsxv3")
@decorators.attr(type="nsxv3")
@decorators.idempotent_id("000cc597-bcea-4539-af07-bd70357e8d82")
def test_create_l2gw_with_non_int_seg_id(self):
"""

View File

@ -18,7 +18,6 @@ from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest import test
from vmware_nsx_tempest.services import nsxv3_client
@ -97,7 +96,7 @@ class NSXv3NativeDHCPTest(base.BaseNetworkTest):
self._subnet_data['host_routes'][0]['destination']}
self.assertIn(route, host_routes)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('698f5503-a17a-43c2-b83b-353d3e28588b')
def test_create_dhcp_enabled_subnet(self):
name = data_utils.rand_name("network-")
@ -114,7 +113,7 @@ class NSXv3NativeDHCPTest(base.BaseNetworkTest):
network['id'])
self.assertIsNotNone(dhcp_server)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('cc970d9b-786a-49c3-8bfb-2f8bc5580ead')
def test_overlapping_dhcp_enabled_subnet(self):
"""Create two overlapping subnets"""
@ -138,25 +137,25 @@ class NSXv3NativeDHCPTest(base.BaseNetworkTest):
self.assertEqual(dhcp_server['gateway_ip'],
self._subnet_data['gateway'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('acee6ccb-92bb-48d8-ae6b-b10783b3791a')
def test_create_subnet_with_allocation_pool(self):
self._test_create_subnet_with_kwargs(
allocation_pools=self._subnet_data['allocation_pools'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('1b7d38c1-0674-43a7-8df1-0b9da531ad77')
def test_create_subnet_with_dns_nameservers(self):
self._test_create_subnet_with_kwargs(
dns_nameservers=self._subnet_data['dns_nameservers'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('3159111b-e332-4a41-a713-164a0ccfc2ad')
def test_create_subnet_with_host_routes(self):
self._test_create_subnet_with_kwargs(
host_routes=self._subnet_data['host_routes'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('addb0f46-3fa7-421b-aae7-820e798c096e')
def test_create_subnet_with_gateway_ip(self):
self._test_create_subnet_with_kwargs(

View File

@ -18,7 +18,6 @@ from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest import test
from vmware_nsx_tempest.services import nsxv3_client
@ -48,8 +47,8 @@ class NSXv3NativeDHCPNegative(base.BaseNetworkTest):
CONF.nsxv3.nsx_user,
CONF.nsxv3.nsx_password)
@test.attr(type='nsxv3')
@test.attr(type=['negative'])
@decorators.attr(type='nsxv3')
@decorators.attr(type=['negative'])
@decorators.idempotent_id('d1fb24b9-6ee8-4fb3-b6fe-169fed3cfa7e')
def test_create_network_without_subnet(self):
name = data_utils.rand_name('network-')
@ -65,8 +64,8 @@ class NSXv3NativeDHCPNegative(base.BaseNetworkTest):
self.assertIsNotNone(nsx_switch)
self.assertIsNone(dhcp_server)
@test.attr(type='nsxv3')
@test.attr(type=['negative'])
@decorators.attr(type='nsxv3')
@decorators.attr(type=['negative'])
@decorators.idempotent_id('caab60b9-b78c-4127-983f-cfb515b555fe')
def test_create_dhcp_disabled_subnet(self):
name = data_utils.rand_name('network-')
@ -83,8 +82,8 @@ class NSXv3NativeDHCPNegative(base.BaseNetworkTest):
self.assertIsNotNone(nsx_switch)
self.assertIsNone(dhcp_server)
@test.attr(type='nsxv3')
@test.attr(type=['negative'])
@decorators.attr(type='nsxv3')
@decorators.attr(type=['negative'])
@decorators.idempotent_id('bcfd9e1c-456f-43cc-a22a-baceb2188b53')
def test_update_dhcp_disabled_subnet(self):
name = data_utils.rand_name('network-')

View File

@ -56,7 +56,7 @@ class NSXv3FloatingIPTest(base.BaseNetworkTest):
CONF.nsxv3.nsx_user,
CONF.nsxv3.nsx_password)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('593e4e51-9ea2-445b-b789-eff2b0b7a503')
def test_create_floating_ip(self):
# Create a floating ip
@ -87,7 +87,7 @@ class NSXv3FloatingIPTest(base.BaseNetworkTest):
self.assertIn((fip['floating_ip_address'], port_ip), snat_rules)
self.assertIn((port_ip, fip['floating_ip_address']), dnat_rules)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('48d8cda8-dfc3-4d84-8f91-4bad6cc7d452')
def test_update_floating_ip(self):
# Create a floating ip
@ -128,7 +128,7 @@ class NSXv3FloatingIPTest(base.BaseNetworkTest):
self.assertIn((port2_ip, updated_fip['floating_ip_address']),
dnat_rules)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('6e5a87fe-b40e-4c62-94b8-07431493cc3d')
def test_delete_floating_ip(self):
# Create a floating ip

View File

@ -17,7 +17,6 @@ from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest.lib import exceptions as ex
from tempest import test
from vmware_nsx_tempest.common import constants
from vmware_nsx_tempest.services import nsxv3_client
@ -137,7 +136,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
port['mac_learning_enabled'],
"OS and NSX mac learn states don't match")
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('d4c533d4-194e-4d72-931d-a120cd3dd3b2')
def test_create_mac_learning_port(self):
"""
@ -148,7 +147,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
self._delete_port, port)
self._check_mac_learning(port, mac_learn_state=True)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('d5067c7e-127b-4676-8b33-c421dcc8d6ae')
def test_list_mac_learning_port(self):
"""
@ -177,7 +176,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
self.assertEqual(len(test_ports_in_body), 2,
'List ports does not match num of created ports')
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('d2eaadb2-52e3-42c1-8225-7380cd70a82c')
def test_show_mac_learning_port(self):
"""
@ -205,7 +204,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
'created_at',
'updated_at']))
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('4d5844bb-88d4-4cdc-b545-6cd9160ae351')
def test_update_mac_learning_port(self):
"""
@ -231,7 +230,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
"MAC learning states do not match for %s"
% updated_nsx_port['display_name'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('e2295017-b3c4-4cdd-b8e2-daa51aaf7590')
def test_delete_mac_learning_port(self):
"""
@ -251,7 +250,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
self.assertIsNone(self.nsx.get_logical_port(test_port['name']),
"Port %s is not None" % test_port['name'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('5105d8b5-5136-4789-9991-7e419d980169')
def test_create_enable_mac_learning_port_delete(self):
"""
@ -272,7 +271,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
self.assertIsNone(self.nsx.get_logical_port(updated_os_port['name']),
"Port %s is not None" % updated_os_port['name'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('b7ecc93d-6c9b-4958-9a08-bc85d2946c03')
def test_create_toggle_mac_learning_port_delete(self):
"""
@ -295,7 +294,7 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
self.assertIsNone(self.nsx.get_logical_port(ml_on_port['name']),
"Port %s is not None" % ml_on_port['name'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('262e844f-a033-4fcd-b5d0-4641d9efeccd')
def test_create_update_delete_mac_learning_port(self):
"""
@ -317,8 +316,8 @@ class NSXv3MacLearningTest(base.BaseNetworkTest):
self.assertIsNone(self.nsx.get_logical_port(updated_port['name']),
"Logical port %s is not None" % updated_port['name'])
@test.attr(type='nsxv3')
@test.attr(type='negative')
@decorators.attr(type='nsxv3')
@decorators.attr(type='negative')
@decorators.idempotent_id('e3465ea8-50fc-4070-88de-f4bd5df8ab86')
def test_create_mac_learning_port_enable_port_security_negative(self):
"""

View File

@ -14,7 +14,6 @@ from tempest.api.network import base
from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest import test
from vmware_nsx_tempest.services import nsxv3_client
@ -37,7 +36,7 @@ class NSXv3NetworksTest(base.BaseNetworkTest):
CONF.nsxv3.nsx_user,
CONF.nsxv3.nsx_password)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('63085723-23ae-4109-ac86-69f895097957')
def test_create_update_delete_nsx_network(self):
# Create a network

View File

@ -136,7 +136,7 @@ class NSXv3PortSecurity(base.BaseAdminNetworkTest):
secgroup_id = secgroup['id']
return secgroup_id
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('50203701-1cda-4f31-806d-7a51514b9664')
def test_create_port_with_security_enabled_check_in_neutron_database(self):
secgroup_id = self._create_security_group_and_return_id(self.cmgr_adm)
@ -153,7 +153,7 @@ class NSXv3PortSecurity(base.BaseAdminNetworkTest):
port_detail = port_client.show_port(port_id)
self.assertEqual(True, port_detail['port']["port_security_enabled"])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('4b765fa2-345f-4d2c-928f-ad4b347936fd')
def test_create_port_with_security_enabled_check_at_beckend(self):
net_client = self.cmgr_adm.networks_client
@ -191,7 +191,7 @@ class NSXv3PortSecurity(base.BaseAdminNetworkTest):
corresponding_port_id)
self.assertEqual(True, status)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('bcafeb10-fbf1-4c97-9e4f-50e56d32bdcf')
def test_non_admin_cannot_update_admin_port_with_security(self):
network_topo = self._create_network_topo(self.cmgr_adm)
@ -202,7 +202,7 @@ class NSXv3PortSecurity(base.BaseAdminNetworkTest):
network_topo['port']['port']['id'],
**kwargs)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('cf4b8d28-13c4-4339-993f-66070708e914')
def test_non_admin_cannot_delete_tenant_port_with_port_security(self):
network_topo = self._create_network_topo(self.cmgr_pri)
@ -211,7 +211,7 @@ class NSXv3PortSecurity(base.BaseAdminNetworkTest):
tenant_port_client.delete_port,
network_topo['port']['port']['id'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('ee6213ac-dfcd-401b-bbc6-03afd26f203a')
def test_tenant_port_security_at_beckend_after_enable_disable(self):
secgroup_id = self._create_security_group_and_return_id(self.cmgr_alt)
@ -243,7 +243,7 @@ class NSXv3PortSecurity(base.BaseAdminNetworkTest):
corresponding_port_id)
self.assertEqual(False, status)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('c6f4c2f2-3fc9-4983-a05a-bb3a3dc35ad8')
def test_admin_port_security_at_beckend_after_enable_disable(self):
secgroup_id = self._create_security_group_and_return_id(self.cmgr_adm)

View File

@ -48,7 +48,7 @@ class NSXv3RoutersTest(base.BaseAdminNetworkTest):
CONF.nsxv3.nsx_user,
CONF.nsxv3.nsx_password)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('0e9938bc-d2a3-4a9a-a4f9-7a93ee8bb344')
def test_create_update_nsx_router(self):
# Create a router
@ -71,7 +71,7 @@ class NSXv3RoutersTest(base.BaseAdminNetworkTest):
self.assertEqual(updated_router['name'], updated_name)
self.assertIsNotNone(nsx_router)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('6f49b69c-0800-4c83-b1f8-595ae5bfeea7')
def test_delete_nsx_router(self):
# Create a router

View File

@ -101,7 +101,7 @@ class NSXv3SecGroupTest(base.BaseSecGroupTest):
self.assertIsNotNone(nsx_dfw_section, dfw_error_msg)
return nsx_nsgroup, nsx_dfw_section
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('904ca2c1-a14d-448b-b723-a7366e613bf1')
def test_create_update_nsx_security_group(self):
# Create a security group
@ -128,7 +128,7 @@ class NSXv3SecGroupTest(base.BaseSecGroupTest):
updated_secgroup['name']
self._wait_till_firewall_gets_realize(updated_secgroup, dfw_error_msg)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('e637cc59-c5e6-49b5-a539-e517e780656e')
def test_delete_nsx_security_group(self):
# Create a security group
@ -147,7 +147,7 @@ class NSXv3SecGroupTest(base.BaseSecGroupTest):
self.assertIsNone(nsx_nsgroup)
self.assertIsNone(nsx_dfw_section)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('91c298c0-fbbd-4597-b4c6-1a7ecfb8a2de')
def test_create_nsx_security_group_rule(self):
# Create a security group
@ -205,7 +205,7 @@ class NSXv3SecGroupTest(base.BaseSecGroupTest):
self.assertEqual(value, nsx_dfw_rule[key],
"%s does not match." % key)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('b6c424e5-3553-4b7d-bd95-8b1f0a860fb4')
def test_delete_nsx_security_group_rule(self):
# Create a security group

View File

@ -125,7 +125,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
self.assertIsNotNone(nsx_dfw_section, dfw_error_msg)
return nsx_nsgroup, nsx_dfw_section
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('4fc39f02-4fb1-4e5c-bf64-b98dd7f514f7')
def test_provider_security_group_at_beckend(self):
sg = self.create_security_provider_group(self.cmgr_adm, provider=True)
@ -137,7 +137,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
time.sleep(constants.NSX_BACKEND_TIME_INTERVAL)
self.assertNotEmpty(self.nsx.get_firewall_section(sg_name, sg_id))
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('2c8d013d-4c0b-4d2b-b77c-779351a789ce')
def test_provider_security_group_crud(self):
sg_desc = "crud provider-security-group"
@ -154,7 +154,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
sg_list = sg_list.get('security_groups', sg_list)
self.assertEqual(len(sg_list), 0)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('2bc5452f-5673-4dbe-afb3-fb40bf0916a5')
def test_admin_can_create_provider_security_group_for_tenant(self):
project_id = self.cmgr_alt.networks_client.tenant_id
@ -163,14 +163,14 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
provider=True)
self.assertEqual(True, sg.get('provider'))
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('6ff79516-1e94-4463-9b8c-a524aa806040')
def test_tenant_provider_sec_group_with_no_rules(self):
sg = self.create_security_provider_group(self.cmgr_adm,
provider=True)
self.assertEmpty(sg.get('security_group_rules'))
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('a92c8e1e-ce2c-40be-8449-d326690e078e')
def test_admin_can_create_security_group_rule(self):
sg_client = self.cmgr_adm.security_groups_client
@ -189,7 +189,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
['security_group_rules']
[0]['protocol'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('8e43bd57-e478-490c-8064-4211f2c3eb6c')
def test_provider_security_group_rule_at_beckend(self):
sg = self.create_security_provider_group(self.cmgr_adm, provider=True)
@ -204,7 +204,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
output = self.nsx.get_firewall_section_rules(firewall_section)
self.assertEqual('DROP', output[0]['action'])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('cf754eba-304f-441c-8402-0dba706fcf62')
def test_provider_security_group_at_port_level(self):
sg = self.create_security_provider_group(self.cmgr_adm,
@ -234,7 +234,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
kwargs = {"provider_security_groups": []}
port_client.update_port(port_id['port']['id'], **kwargs)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('2c44a134-f013-46b7-a2ec-14c7c38a4d8c')
def test_multiple_provider_security_group_only_on_newton(self):
sg = self.create_security_provider_group(self.cmgr_adm, provider=True)
@ -245,7 +245,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
self.create_security_provider_group,
self.cmgr_adm, provider=True)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('f45fc910-db83-4e0c-8ab6-178783626ad3')
def test_multiple_provider_security_group_on_ocata_plus(self):
# Ocata plus allows more than 1 provider security group
@ -259,7 +259,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
self.assertNotEqual(sg1.get('id'), sg2.get('id'))
self.assertNotEqual(sg2.get('id'), sg3.get('id'))
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('275abe9f-4f01-46e5-bde0-0b6840290d3b')
def test_provider_sec_group_with_multiple_rules(self):
project_id = self.cmgr_adm.networks_client.tenant_id
@ -277,7 +277,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
sg_rule2_id = sg_rule2.get('id')
self.assertNotEqual(sg_rule1_id, sg_rule2_id)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('5d25370e-da6a-44a7-8565-7b1c2fc39fdc')
def test_clear_provider_sec_group_from_port(self):
project_id = self.cmgr_adm.networks_client.tenant_id
@ -308,7 +308,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
kwargs = {"provider_security_groups": []}
port_client.update_port(port_id['port']['id'], **kwargs)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('dfc6bb8e-ba7b-4ce5-b6ee-0d0830d7e152')
def test_check_security_group_precedence_at_beckend(self):
project_id = self.cmgr_adm.networks_client.tenant_id
@ -346,7 +346,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
"over default security group"
self.assertIn(provider_sg_name, section['display_name'], msg)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('37d8fbfc-eb3f-40c8-a146-70f5df937a2e')
def test_tenant_cannot_delete_admin_provider_security_group(self):
project_id = self.cmgr_adm.networks_client.tenant_id
@ -362,7 +362,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
"provider security group")
pass
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('1bbebba3-780c-4e95-a95a-e52f577a6c1d')
def test_tenant_cannot_create_provider_sec_group(self):
project_id = self.cmgr_alt.networks_client.tenant_id
@ -372,7 +372,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
provider=True)
LOG.info("Non-Admin Tenant cannot create provider sec group")
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('0d021bb2-9e21-422c-a509-6ac27803b2a2')
def test_update_port_with_psg(self):
net_client = self.cmgr_adm.networks_client
@ -410,7 +410,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
kwargs = {"provider_security_groups": []}
port_client.update_port(port_id['port']['id'], **kwargs)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('2922a7fb-75fb-4d9f-9fdb-4b017c191aba')
def test_update_port_with_psg_using_different_tenant(self):
net_client = self.cmgr_alt.networks_client
@ -447,7 +447,7 @@ class ProviderSecurityGroupTest(base.BaseAdminNetworkTest):
kwargs = {"provider_security_groups": []}
port_client.update_port(port_id['port']['id'], **kwargs)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('cef8d816-e5fa-45a5-a5a5-f1f2ed8fb49f')
def test_tenant_cannot_create_provider_sec_group_for_other_tenant(self):
tenant_cmgr = self.cmgr_alt

View File

@ -19,7 +19,6 @@ from tempest.api.network import base
from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest import test
from vmware_nsx_tempest.services import nsxv3_client
@ -120,42 +119,42 @@ class NSXv3DHCPUniScaleTest(base.BaseNetworkTest):
dhcp_server['id'])
self.assertEqual(len(dhcp_bindings), scale)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('c5fa8d5d-3973-4d77-a0d4-f28b2ae92a2c')
def test_create_100_logical_dhcp_server(self):
self._create_scale_logical_dhcp_server(100)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('c2b264a2-daab-451f-ad3b-f0713a390f47')
def test_create_500_logical_dhcp_server(self):
self._create_scale_logical_dhcp_server(500)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('5ba22b0f-4593-4509-8998-a3002ce63406')
def test_create_1k_logical_dhcp_server(self):
self._create_scale_logical_dhcp_server(1000)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('ddf3d789-838a-428a-b4fe-8fe214f0e956')
def test_create_2k_logical_dhcp_server(self):
self._create_scale_logical_dhcp_server(2000)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('ed5441be-a700-45fa-bec1-b1d100acbb73')
def test_create_4k_logical_dhcp_server(self):
self._create_scale_logical_dhcp_server(4000)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('4a5484e3-f9b8-4562-8a4c-d8974a703767')
def test_create_100_dhcp_bindings(self):
self._create_scale_dhcp_bindings(100)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('cbb8af8c-db3a-4ad2-8954-c41670956c52')
def test_create_256_dhcp_bindings(self):
self._create_scale_dhcp_bindings(256)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('ffa5db0b-5922-494d-bcd3-9d5b0b10b684')
def test_create_512_dhcp_bindings(self):
self._create_scale_dhcp_bindings(512)

View File

@ -22,7 +22,6 @@ from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest.scenario import manager
from tempest import test
from vmware_nsx_tempest.services import nsxv3_client
@ -485,35 +484,35 @@ class TestAllowedAddressPair(manager.NetworkScenarioTest):
cmd_out = ssh_source.exec_command("sudo ifconfig eth0:1")
self.assertIn(ip_address_vm1, cmd_out)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('c0f0f446-65f5-40fa-8b05-b5798e8dd676')
def test_allowed_adddress_pair_on_vms_with_single_ip(self):
self.network_topo = self.create_network_topo()
self._test_connectivity_between_allowed_adddress_pair_ports(
self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('92bba9d2-c7d1-42f8-a8a2-63b1c842112d')
def test_allowed_adddress_pair_ports_attach_as_interface_on_vms(self):
self.network_topo = self.create_network_topo()
self._test_allowed_adddress_pair_ports_attach_as_interface_on_vms(
self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('ceb8a0db-8b5a-46de-a328-bf6093ea2102')
def test_allowed_adddress_with_ip_mac_attach_as_interface_on_vms(self):
self.network_topo = self.create_network_topo()
self._test_allowed_adddress_with_ip_mac_attach_as_interface_on_vms(
self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('735b9afb-2cb8-4e37-9603-2b918906a4df')
def test_allowed_address_pair_on_vms_with_multiple_ips(self):
self.network_topo = self.create_network_topo()
self._test_allowed_address_pair_on_vms_with_multiple_ips(
self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('4a0fb0e0-c801-4aed-94fe-6c57ff41c6f6')
def test_vm_accessible_using_allowed_adddress_pair_port_fip(self):
self.network_topo = self.create_network_topo()

View File

@ -145,7 +145,7 @@ class TestCertificateMgmt(manager.NetworkScenarioTest):
class TestCertificateMgmtOps(TestCertificateMgmt):
openstack_tag = 'com.vmware.nsx.openstack'
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('6cb32a2b-048a-47a3-b0ed-f6337b81377f')
def test_certificate_backend(self):
"""
@ -154,7 +154,7 @@ class TestCertificateMgmtOps(TestCertificateMgmt):
msg = 'Error: Openstack client certificate not registered with backend'
self.assertIsNotNone(self.nsx.get_openstack_client_certificate(), msg)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('25bb1af7-6190-42d5-a590-4df9fb5592f0')
def test_prevention_modification_openstack_network(self):
"""
@ -183,7 +183,7 @@ class TestCertificateMgmtOps(TestCertificateMgmt):
comp_id=data['id'], body=data)
self.parse_response(response)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('3e9a4d5b-5a14-44a5-bf9f-8999148b9329')
def test_prevention_modification_openstack_router(self):
"""
@ -229,7 +229,7 @@ class TestCertificateMgmtOps(TestCertificateMgmt):
comp_id=rtr_ports[0]['id'])
self.parse_response(response)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('141af4cb-52f0-4764-b817-5b0529dbbc73')
def test_prevention_modification_qos_policy(self):
"""
@ -268,7 +268,7 @@ class TestCertificateMgmtOps(TestCertificateMgmt):
comp_id=data['id'])
self.parse_response(response)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('2b232060-dc42-4b2d-8185-64bd12e46e55')
def test_prevention_modification_security_group(self):
"""
@ -304,7 +304,7 @@ class TestCertificateMgmtOps(TestCertificateMgmt):
comp_id=fw_rules[0]['id'])
self.parse_response(response)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('b10d5ede-d1c7-47a0-9d55-b9aabc8f0af1')
def test_prevention_modification_port(self):
"""
@ -328,7 +328,7 @@ class TestCertificateMgmtOps(TestCertificateMgmt):
comp_id=data['id'])
self.parse_response(response)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('280cdcc6-5bd0-472c-a8a9-954dd612a0a6')
def test_port_modification_super_admin(self):
"""
@ -345,7 +345,7 @@ class TestCertificateMgmtOps(TestCertificateMgmt):
self.assertEqual(response.status_code, 200,
"Superadmin unable to delete the logical port")
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('a874d78b-eb7a-4df6-a01b-dc0a22422dc2')
def test_cert_removed_post_unstack(self):
"""

View File

@ -271,7 +271,7 @@ class TestMDProxy(manager.NetworkScenarioTest):
self.verify_md_proxy_logical_ports_on_backend()
@decorators.idempotent_id("cc8d2ab8-0bea-4e32-bf80-c9c46a7612b7")
@test.attr(type=["negative"])
@decorators.attr(type=["negative"])
@test.services("compute", "network")
def test_mdproxy_delete_when_ls_bounded(self):
(network_id, _) = self._create_net_subnet_router_interface()
@ -324,7 +324,7 @@ class TestMDProxy(manager.NetworkScenarioTest):
self.verify_metadata_in_detail(instance=instance2)
@decorators.idempotent_id("29d44d7c-6ea1-4b30-a6c3-a2695c2486fe")
@test.attr(type=["negative"])
@decorators.attr(type=["negative"])
@test.services("compute", "network")
def test_mdproxy_with_incorrect_password(self):
router = self._create_router(

View File

@ -158,7 +158,7 @@ class TestMultiHVNetworkOps(manager.NetworkScenarioTest):
{'dest': remote_ip, 'src': floating_ip})
raise
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('42373fef-cb05-47c9-bb67-32b7a3b48168')
def test_multi_hv_network_l2_ops(self):
"""Test connectivity between ESX VM and KVM VM on same network

View File

@ -199,7 +199,7 @@ class TestMultiNetworksOps(manager.NetworkScenarioTest):
{'dest': remote_ip, 'src': floating_ip})
raise
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('d35d1301-bfa4-49ea-acdf-f67ba97b1937')
def test_multi_networks_ops(self):
"""Test connectivity between VMs on same and cross network

View File

@ -22,7 +22,6 @@ from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest.scenario import manager
from tempest import test
from vmware_nsx_tempest.common import constants
from vmware_nsx_tempest.services import nsxv3_client
@ -467,7 +466,7 @@ class TestNSXv3PortSecurityScenario(manager.NetworkScenarioTest):
private_address_server_1,
private_key_server_2)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('f1c1d9b8-2fbd-4e7c-9ba7-a1d85d8d77d3')
def test_create_server_with_port_security_and_check_backend(self):
self.network_topo = self.create_network_topo()
@ -476,14 +475,14 @@ class TestNSXv3PortSecurityScenario(manager.NetworkScenarioTest):
self.assertEqual('True', status[0])
self.assertEqual('False', status[1])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('6853b492-8acd-4e2b-b3a0-75112cef7066')
def test_create_servers_with_port_security_and_check_traffic(self):
self.network_topo = self.create_network_topo()
self._test_create_servers_with_port_security_and_check_traffic(
self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('f5be118c-d9cd-4401-b559-de9ee6d0fdad')
def test_server_at_beckend_with_port_security(self):
self.network_topo = self.create_network_topo()
@ -492,20 +491,20 @@ class TestNSXv3PortSecurityScenario(manager.NetworkScenarioTest):
self.assertEqual('True', status[0])
self.assertEqual('False', status[1])
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('a64da313-e5d7-4f57-98b6-9906c35332e7')
def test_connectivity_bw_port_sec_enable_port_sec_disable_server(self):
self.network_topo = self.create_network_topo()
self._test_connectivity_bw_port_sec_enable_port_sec_disable_server(
self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('520e7847-8103-41d0-90c8-6ba52306921d')
def test_connectivity_between_servers_with_router_on_same_network(self):
self.network_topo = self.create_multi_network_topo()
self._test_connectivity_between_servers_with_router(self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('f621bbd9-c889-4c78-9ca1-7217e0df4e95')
def test_connectivity_between_servers_with_router_on_diff_networks(self):
self.network_topo = self.create_network_topo()

View File

@ -406,13 +406,13 @@ class TestProviderSecurityGroup(manager.NetworkScenarioTest):
private_ip_address_default_vm_2,
private_key_default_vm_1)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('9d4192e9-b1b7-48c9-af04-67a82637c715')
def test_connectivity_between_default_psg_server(self):
self.network_topo = self.create_network_topo()
self._test_connectivity_between_default_psg_server(self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('a14b5c25-39ce-4641-bd51-f28c25e69440')
def test_vm_connectivity_port_update_with_psg(self):
self.network_topo = self.create_network_topo()
@ -420,19 +420,19 @@ class TestProviderSecurityGroup(manager.NetworkScenarioTest):
self._test_connectivity_between_vms_after_port_update(
self.network_topo, self.servers)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('4a8eac6a-68ff-4392-bab9-70ea08132acb')
def test_connectivity_between_default_psg_servers(self):
self.network_topo = self.create_network_topo()
self._test_build_up_topology_and_check_connectivity(self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('8bae2101-4f74-4d61-a7a5-42420611cf86')
def test_connectivity_between_default_psg_server_with_multi_networks(self):
self.network_topo = self.create_multi_network_topo()
self._test_build_up_topology_and_check_connectivity(self.network_topo)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('998789ce-8db7-4295-bce0-390fbbf0e489')
def test_ping_when_psg_enabled_disbaled_on_port(self):
self.network_topo = self.create_multi_network_topo()

View File

@ -341,13 +341,13 @@ class TestRouterNoNATOps(manager.NetworkScenarioTest):
self._check_network_internal_connectivity(network=self.network)
self._check_network_vm_connectivity(network=self.network)
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('5e5bfdd4-0962-47d3-a89b-7ce64322b53e')
def test_router_nat_to_nonat_ops(self):
"""Test update router from NATed to NoNAT scenario"""
self._test_router_nat_update_when_snat()
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('b951f7fb-f2b2-40eb-8bbd-b54bd76ffbe8')
def test_disable_nat_when_floating_ips_active_on_network(self):
"""Expect raise condition when floating ips are active on
@ -355,13 +355,13 @@ class TestRouterNoNATOps(manager.NetworkScenarioTest):
"""
self._test_router_nat_when_floating_ips_active_on_network()
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('a0274738-d3e7-49db-bf10-a5563610940d')
def test_router_nonat_to_nat_ops(self):
"""Test update router from NoNAT to NATed scenario"""
self._test_router_nat_update_when_no_snat()
@test.attr(type='nsxv3')
@decorators.attr(type='nsxv3')
@decorators.idempotent_id('971e8e8b-3cf2-47a9-ac24-5b19f586731c')
def test_only_admin_can_configure_snat(self):
"""Only admin can configure the SNAT"""

View File

@ -270,7 +270,7 @@ class TestMicroSegmentationOps(manager.NetworkScenarioTest):
remote_ips,
should_connect)
@test.attr(type='common')
@decorators.attr(type='common')
@decorators.idempotent_id('91e1ee1f-10d9-4b19-8350-804aea7e57b4')
def test_micro_segmentation_ops(self):
"""Test micro-segmentation use case