Fix share server migration with replica test
Old stable branches before 2025.1 still expect migration to fail with
replica set.
This reverts the old behavior for stable branches until all our
stable branches are above stable/2025.1
Resume the negative test but add enable flag so it wouldn't affect
branches >= stable/2025.1
This reverts commit 55c075de689a220c316ef02719a47de66822c2a6.
Change-Id: Ia09b64e4b4afd4bb480a18e80bae46922a2210c7
Signed-off-by: ricolin <rlin@vexxhost.com>
diff --git a/manila_tempest_tests/config.py b/manila_tempest_tests/config.py
index 4afa4e7..60d4164 100644
--- a/manila_tempest_tests/config.py
+++ b/manila_tempest_tests/config.py
@@ -287,6 +287,14 @@
cfg.BoolOpt("run_mount_snapshot_tests",
default=False,
help="Enable or disable mountable snapshot tests."),
+ cfg.BoolOpt("run_negative_migration_replica_tests",
+ default=False,
+ help="Enable or disable negative migration with replica "
+ "tests."),
+ cfg.BoolOpt("run_positive_migration_replica_tests",
+ default=True,
+ help="Enable or disable positive migration with replica tests."
+ ),
cfg.BoolOpt("run_create_share_from_snapshot_in_another_pool_or_az_tests",
default=False,
help="Defines whether to run tests that create share from "
diff --git a/manila_tempest_tests/tests/api/admin/test_share_servers_migration.py b/manila_tempest_tests/tests/api/admin/test_share_servers_migration.py
index 3864e57..bc88200 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_servers_migration.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_servers_migration.py
@@ -17,6 +17,7 @@
from tempest import config
from tempest.lib import decorators
from tempest.lib import exceptions
+import testtools
from testtools import testcase as tc
from manila_tempest_tests.common import constants
@@ -330,11 +331,31 @@
@ddt.data(
(False, False),
(True, False),
+ )
+ @ddt.unpack
+ def test_share_server_migration_complete(
+ self, new_share_network, check_with_replica
+ ):
+ self._test_share_server_migration_complete(
+ new_share_network, check_with_replica)
+
+ @decorators.idempotent_id('ae0e9e6c-3a77-4c4b-907b-8a793f88c734')
+ @testtools.skipUnless(CONF.share.run_positive_migration_replica_tests,
+ 'Share server migration with replica test '
+ 'is disabled.')
+ @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)
+ @ddt.data(
(True, True)
)
@ddt.unpack
- def test_share_server_migration_complete(self, new_share_network,
- check_with_replica):
+ def test_share_server_migration_complete_allow_replica(
+ self, new_share_network, check_with_replica
+ ):
+ self._test_share_server_migration_complete(
+ new_share_network, check_with_replica)
+
+ def _test_share_server_migration_complete(self, new_share_network,
+ check_with_replica):
"""Test the share server migration complete."""
share_network_id = self.provide_share_network(
self.shares_v2_client, self.networks_client)
diff --git a/manila_tempest_tests/tests/api/admin/test_share_servers_migration_negative.py b/manila_tempest_tests/tests/api/admin/test_share_servers_migration_negative.py
index c6f3549..fc2a8db 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_servers_migration_negative.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_servers_migration_negative.py
@@ -17,6 +17,7 @@
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest.lib import exceptions as lib_exc
+import testtools
from testtools import testcase as tc
@@ -342,6 +343,43 @@
dest_host
)
+ @decorators.idempotent_id('ebe8da5b-ee9c-48c7-a7e4-9e71839f813f')
+ @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)
+ @testtools.skipUnless(
+ CONF.share.run_negative_migration_replica_tests,
+ 'Share server negative migration with replica test is disabled.'
+ )
+ def test_share_server_migration_start_with_share_replica(self):
+ """Try server migration start with share replica."""
+ if not CONF.share.backend_replication_type or (
+ not CONF.share.run_replication_tests):
+ raise self.skipException(
+ 'Share replica tests are disabled or unsupported.')
+ extra_specs = {
+ 'driver_handles_share_servers': CONF.share.multitenancy_enabled,
+ 'replication_type': CONF.share.backend_replication_type
+ }
+ share_type = self.shares_v2_client.create_share_type(
+ name=data_utils.rand_name("tempest-share-type"),
+ extra_specs=extra_specs,
+ cleanup_in_class=False)
+ share = self.create_share(share_type_id=share_type['share_type']['id'],
+ share_protocol=self.protocol,
+ cleanup_in_class=False)
+ share = self.shares_v2_client.get_share(share['id'])['share']
+ share_server_id = share['share_server_id']
+ dest_host, _ = self._choose_compatible_backend_for_share_server(
+ share_server_id)
+ self.create_share_replica(
+ share['id'],
+ cleanup_in_class=False)
+ self.assertRaises(
+ lib_exc.Conflict,
+ self.shares_v2_client.share_server_migration_start,
+ share_server_id,
+ dest_host
+ )
+
class ShareServerMigrationInvalidParametersCIFS(
ShareServerMigrationInvalidParametersNFS):