make Patrole to run for shared network env

Devstack added to create the shared network for tempest testing
which makes sure tempest and other testing part works fine when
testing env has shared network.

- 683454f319/lib/tempest (L259)

Now patrole started failing because of the above shared network.
Details: {u'message': u'Multiple possible networks found, use a
Network ID to be more specific.', u'code': 409}

http://logs.openstack.org/55/648255/1/check/patrole-admin/63b6639/testr_results.html.gz

When patrol tests call create_tesrt_server, network id is not passed
as kwargs which means it reply on tempest to add the network id for
creating the server[1]. Tempest fail to add the network id because it
relies on used credential to have the network created for them[2].

We should create the network for requested credential using
set_network_resources() method.

Following tests are skipped due to their failure due to bad request error:
- test_update_network_provider_network_type[id-d064ef96-662b-47b6-94b7-9106dcd7ba8c]
- test_update_network_provider_physical_network[id-e3a55660-f75c-494e-a1b1-a8b36cc789ef]
- test_update_network_provider_segmentation_id[id-f6164228-b670-45fd-9ff9-b101930318c7]

[1] 75ea3dbaf9/tempest/api/compute/base.py (L234)
[2] 3639f91c36/tempest/lib/common/fixed_network.py (L95)

Story: 2005369
Task: 30345

Change-Id: I1281aa090c167c1e3e401a1707d196a69e7b5cd2
This commit is contained in:
ghanshyam 2019-04-04 15:57:22 +00:00 committed by Ghanshyam Mann
parent 27fdf563f0
commit b3ee7cbc15
9 changed files with 68 additions and 1 deletions

View File

@ -41,6 +41,11 @@ class ServerActionsRbacTest(rbac_base.BaseV2ComputeRbacTest):
super(ServerActionsRbacTest, cls).setup_clients()
cls.admin_servers_client = cls.os_admin.servers_client
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerActionsRbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerActionsRbacTest, cls).resource_setup()
@ -357,6 +362,11 @@ class ServerActionsV214RbacTest(rbac_base.BaseV2ComputeRbacTest):
min_microversion = '2.14'
max_microversion = 'latest'
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerActionsV214RbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerActionsV214RbacTest, cls).resource_setup()
@ -389,6 +399,11 @@ class ServerActionsV216RbacTest(rbac_base.BaseV2ComputeRbacTest):
min_microversion = '2.16'
max_microversion = 'latest'
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerActionsV216RbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerActionsV216RbacTest, cls).resource_setup()

View File

@ -30,6 +30,11 @@ class ServerConsolesRbacTest(rbac_base.BaseV2ComputeRbacTest):
if not CONF.compute_feature_enabled.console_output:
raise cls.skipException('Console output not available.')
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerConsolesRbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerConsolesRbacTest, cls).resource_setup()
@ -54,6 +59,11 @@ class ServerConsolesMaxV25RbacTest(rbac_base.BaseV2ComputeRbacTest):
if not CONF.compute_feature_enabled.console_output:
raise cls.skipException('Console output not available.')
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerConsolesMaxV25RbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerConsolesMaxV25RbacTest, cls).resource_setup()
@ -79,6 +89,11 @@ class ServerConsolesV26RbacTest(rbac_base.BaseV2ComputeRbacTest):
if not CONF.compute_feature_enabled.console_output:
raise cls.skipException('Console output not available.')
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerConsolesV26RbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerConsolesV26RbacTest, cls).resource_setup()

View File

@ -21,6 +21,11 @@ from patrole_tempest_plugin.tests.api.compute import rbac_base
class ServerMetadataRbacTest(rbac_base.BaseV2ComputeRbacTest):
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerMetadataRbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerMetadataRbacTest, cls).resource_setup()

View File

@ -50,6 +50,11 @@ class MiscPolicyActionsRbacTest(rbac_base.BaseV2ComputeRbacTest):
credentials = ['primary', 'admin']
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(MiscPolicyActionsRbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(MiscPolicyActionsRbacTest, cls).resource_setup()

View File

@ -32,6 +32,11 @@ LOG = log.getLogger(__name__)
class ComputeServersRbacTest(base.BaseV2ComputeRbacTest):
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ComputeServersRbacTest, cls).setup_credentials()
@classmethod
def setup_clients(cls):
super(ComputeServersRbacTest, cls).setup_clients()

View File

@ -33,6 +33,11 @@ class ServerTagsRbacTest(rbac_base.BaseV2ComputeRbacTest):
msg = "os-server-tags extension is not enabled."
raise cls.skipException(msg)
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerTagsRbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(ServerTagsRbacTest, cls).resource_setup()

View File

@ -36,6 +36,11 @@ LOG = logging.getLogger(__name__)
# revisited at a later date.
class ServerVolumeAttachmentRbacTest(rbac_base.BaseV2ComputeRbacTest):
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(ServerVolumeAttachmentRbacTest, cls).setup_credentials()
@classmethod
def setup_clients(cls):
super(ServerVolumeAttachmentRbacTest, cls).setup_clients()

View File

@ -256,6 +256,7 @@ class NetworksRbacTest(base.BaseNetworkRbacTest):
with self.override_role():
self._update_network(net_id=network['id'], router_external=True)
@decorators.skip_because(bug='2005489', bug_type='storyboard')
@utils.requires_ext(extension='provider', service='network')
@rbac_rule_validation.action(
service="neutron",
@ -281,6 +282,7 @@ class NetworksRbacTest(base.BaseNetworkRbacTest):
"Plugin does not support updating provider attributes",
str(exc))
@decorators.skip_because(bug='2005489', bug_type='storyboard')
@utils.requires_ext(extension='provider', service='network')
@rbac_rule_validation.action(
service="neutron",
@ -306,6 +308,7 @@ class NetworksRbacTest(base.BaseNetworkRbacTest):
"Plugin does not support updating provider attributes",
str(exc))
@decorators.skip_because(bug='2005489', bug_type='storyboard')
@utils.requires_ext(extension='provider', service='network')
@rbac_rule_validation.action(
service="neutron",

View File

@ -36,14 +36,23 @@ class VolumesActionsV3RbacTest(rbac_base.BaseVolumeRbacTest):
super(VolumesActionsV3RbacTest, cls).setup_clients()
cls.image_client = cls.os_primary.image_client_v2
@classmethod
def setup_credentials(cls):
cls.set_network_resources(network=True, subnet=True, router=True)
super(VolumesActionsV3RbacTest, cls).setup_credentials()
@classmethod
def resource_setup(cls):
super(VolumesActionsV3RbacTest, cls).resource_setup()
cls.volume = cls.create_volume()
def _create_server(self):
tenant_network = self.get_tenant_network()
server, _ = compute.create_test_server(
self.os_primary, wait_until='ACTIVE')
self.os_primary, tenant_network=tenant_network,
wait_until='ACTIVE')
self.addCleanup(waiters.wait_for_server_termination,
self.servers_client, server['id'])
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
self.servers_client.delete_server, server['id'])
return server