[Tempest] Fix tests for pre-existing share network

Currently tempest tests do not support creating and
adding Security Service to newly created share networks.
This causes CIFS multitenancy tests to fail on some
of the backends.
Therefore, having pre-existing share network helps
testing such scenarios.

When using a pre-existing share network,
we can still test the share network API and
create share networks, however, we shouldn't
create shares on such networks.
So, any tests that create new share networks
and use them to create shares need to be skipped.

- This patch makes sure that the pre-existing
share_network is not cleaned up.
- One share_server related test is skipped
to avoid deleting share network as part of test.
- One share network negative test is skipped
to avoid creating a share with new share network.

Change-Id: I272806b05c8b4d30451d0cf4b9dd3f366b8bf728
Closes-Bug: #1698429
(cherry picked from commit 29a52269aa)
This commit is contained in:
yogesh 2017-06-26 13:16:12 -04:00 committed by Tom Barron
parent b1d73fdb86
commit ed62a751c5
3 changed files with 13 additions and 4 deletions

View File

@ -195,6 +195,9 @@ class ShareServersAdminTest(base.BaseSharesAdminTest):
@tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND) @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)
@ddt.data(True, False) @ddt.data(True, False)
@testtools.skipIf(CONF.share.share_network_id != "",
"This test is not suitable for pre-existing "
"share_network.")
def test_delete_share_server(self, delete_share_network): def test_delete_share_server(self, delete_share_network):
# Get network and subnet from existing share_network and reuse it # Get network and subnet from existing share_network and reuse it
# to be able to delete share_server after test ends. # to be able to delete share_server after test ends.

View File

@ -406,7 +406,9 @@ class BaseSharesTest(test.BaseTestCase):
cleanup_in_class=True, is_public=False, **kwargs): cleanup_in_class=True, is_public=False, **kwargs):
client = client or cls.shares_v2_client client = client or cls.shares_v2_client
description = description or "Tempest's share" description = description or "Tempest's share"
share_network_id = share_network_id or client.share_network_id or None share_network_id = (share_network_id or
CONF.share.share_network_id or
client.share_network_id or None)
metadata = metadata or {} metadata = metadata or {}
size = size or CONF.share.share_size size = size or CONF.share.share_size
kwargs.update({ kwargs.update({
@ -885,9 +887,10 @@ class BaseSharesTest(test.BaseTestCase):
elif res["type"] is "snapshot": elif res["type"] is "snapshot":
client.delete_snapshot(res_id) client.delete_snapshot(res_id)
client.wait_for_resource_deletion(snapshot_id=res_id) client.wait_for_resource_deletion(snapshot_id=res_id)
elif res["type"] is "share_network": elif (res["type"] is "share_network" and
client.delete_share_network(res_id) res_id != CONF.share.share_network_id):
client.wait_for_resource_deletion(sn_id=res_id) client.delete_share_network(res_id)
client.wait_for_resource_deletion(sn_id=res_id)
elif res["type"] is "security_service": elif res["type"] is "security_service":
client.delete_security_service(res_id) client.delete_security_service(res_id)
client.wait_for_resource_deletion(ss_id=res_id) client.wait_for_resource_deletion(ss_id=res_id)

View File

@ -111,6 +111,9 @@ class ShareNetworksNegativeTest(base.BaseSharesTest):
@testtools.skipIf(not CONF.share.multitenancy_enabled, @testtools.skipIf(not CONF.share.multitenancy_enabled,
'Can run only with drivers that do handle share servers ' 'Can run only with drivers that do handle share servers '
'creation. Skipping.') 'creation. Skipping.')
@testtools.skipIf(CONF.share.share_network_id != "",
"This test is not suitable for pre-existing "
"share_network.")
def test_try_delete_share_network_with_existing_shares(self): def test_try_delete_share_network_with_existing_shares(self):
# Get valid network data for successful share creation # Get valid network data for successful share creation
share_network = self.shares_client.get_share_network( share_network = self.shares_client.get_share_network(