diff --git a/manila_tempest_tests/config.py b/manila_tempest_tests/config.py index 616cb19ecf..8873ef6add 100644 --- a/manila_tempest_tests/config.py +++ b/manila_tempest_tests/config.py @@ -79,9 +79,18 @@ ShareGroup = [ cfg.ListOpt("enable_ro_access_level_for_protocols", default=["nfs", ], help="List of protocols to run tests with ro access level."), - cfg.StrOpt("storage_protocol", + + # Capabilities + cfg.StrOpt("capability_storage_protocol", + deprecated_name="storage_protocol", default="NFS_CIFS", help="Backend protocol to target when creating volume types."), + cfg.BoolOpt("capability_snapshot_support", + help="Defines extra spec that satisfies specific back end " + "capability called 'snapshot_support' and will be used " + "for setting up custom share type. Defaults to value of " + "other config option 'run_snapshot_tests'."), + cfg.StrOpt("share_network_id", default="", help="Some backend drivers requires share network " @@ -124,6 +133,8 @@ ShareGroup = [ help="Defines whether to run manage/unmanage tests or not. " "These test may leave orphaned resources, so be careful " "enabling this opt."), + + # Switching ON/OFF test suites filtered by features cfg.BoolOpt("run_extend_tests", default=True, help="Defines whether to run share extend tests or not. " @@ -147,6 +158,7 @@ ShareGroup = [ cfg.BoolOpt("run_migration_tests", default=False, help="Enable or disable migration tests."), + cfg.StrOpt("image_with_share_tools", default="manila-service-image", help="Image name for vm booting with nfs/smb clients tool."), diff --git a/manila_tempest_tests/plugin.py b/manila_tempest_tests/plugin.py index 3a8550b6de..4880940b40 100644 --- a/manila_tempest_tests/plugin.py +++ b/manila_tempest_tests/plugin.py @@ -37,5 +37,14 @@ class ManilaTempestPlugin(plugins.TempestPlugin): config.register_opt_group(conf, config_share.share_group, config_share.ShareGroup) + # NOTE(vponomaryov): set opt 'capability_snapshot_support' by + # default equal to opt 'run_snapshot_tests'. + if conf.share.capability_snapshot_support is None: + conf.set_default( + "capability_snapshot_support", + conf.share.run_snapshot_tests, + group="share", + ) + def get_opt_lists(self): return [(config_share.share_group.name, config_share.ShareGroup)] diff --git a/manila_tempest_tests/tests/api/admin/test_share_manage.py b/manila_tempest_tests/tests/api/admin/test_share_manage.py index 4100b2e486..bb04dc7cfc 100644 --- a/manila_tempest_tests/tests/api/admin/test_share_manage.py +++ b/manila_tempest_tests/tests/api/admin/test_share_manage.py @@ -13,6 +13,7 @@ # License for the specific language governing permissions and limitations # under the License. +import six from tempest import config # noqa from tempest import test # noqa from tempest_lib.common.utils import data_utils # noqa @@ -48,12 +49,16 @@ class ManageNFSShareTest(base.BaseSharesAdminTest): cls.st_name = data_utils.rand_name("manage-st-name") cls.st_name_invalid = data_utils.rand_name("manage-st-name-invalid") cls.extra_specs = { - 'storage_protocol': CONF.share.storage_protocol, - 'driver_handles_share_servers': False + 'storage_protocol': CONF.share.capability_storage_protocol, + 'driver_handles_share_servers': False, + 'snapshot_support': six.text_type( + CONF.share.capability_snapshot_support), } cls.extra_specs_invalid = { - 'storage_protocol': CONF.share.storage_protocol, - 'driver_handles_share_servers': True + 'storage_protocol': CONF.share.capability_storage_protocol, + 'driver_handles_share_servers': True, + 'snapshot_support': six.text_type( + CONF.share.capability_snapshot_support), } cls.st = cls.create_share_type( diff --git a/manila_tempest_tests/tests/api/admin/test_share_types.py b/manila_tempest_tests/tests/api/admin/test_share_types.py index 1f4d6a089d..ceed68b501 100644 --- a/manila_tempest_tests/tests/api/admin/test_share_types.py +++ b/manila_tempest_tests/tests/api/admin/test_share_types.py @@ -93,7 +93,7 @@ class ShareTypesAdminTest(base.BaseSharesAdminTest): share_name = data_utils.rand_name("share") shr_type_name = data_utils.rand_name("share-type") extra_specs = self.add_required_extra_specs_to_dict({ - "storage_protocol": CONF.share.storage_protocol, + "storage_protocol": CONF.share.capability_storage_protocol, }) # Create share type diff --git a/manila_tempest_tests/tests/api/admin/test_shares_actions.py b/manila_tempest_tests/tests/api/admin/test_shares_actions.py index 0ce3d68432..5cc41f5c35 100644 --- a/manila_tempest_tests/tests/api/admin/test_shares_actions.py +++ b/manila_tempest_tests/tests/api/admin/test_shares_actions.py @@ -35,7 +35,7 @@ class SharesActionsAdminTest(base.BaseSharesAdminTest): # create share type for share filtering purposes cls.st_name = data_utils.rand_name("tempest-st-name") cls.extra_specs = cls.add_required_extra_specs_to_dict( - {'storage_protocol': CONF.share.storage_protocol}) + {'storage_protocol': CONF.share.capability_storage_protocol}) cls.st = cls.create_share_type( name=cls.st_name, cleanup_in_class=True, @@ -163,7 +163,9 @@ class SharesActionsAdminTest(base.BaseSharesAdminTest): @test.attr(type=["gate", ]) def test_list_shares_with_detail_filter_by_extra_specs(self): filters = { - "extra_specs": {'storage_protocol': CONF.share.storage_protocol} + "extra_specs": { + "storage_protocol": CONF.share.capability_storage_protocol, + } } share_type_list = self.shares_client.list_share_types()["share_types"] diff --git a/manila_tempest_tests/tests/api/base.py b/manila_tempest_tests/tests/api/base.py index 825b6e0fa3..3c422b81b2 100644 --- a/manila_tempest_tests/tests/api/base.py +++ b/manila_tempest_tests/tests/api/base.py @@ -520,10 +520,12 @@ class BaseSharesTest(test.BaseTestCase): @staticmethod def add_required_extra_specs_to_dict(extra_specs=None): - value = six.text_type(CONF.share.multitenancy_enabled) + dhss = six.text_type(CONF.share.multitenancy_enabled) + snapshot_support = six.text_type( + CONF.share.capability_snapshot_support) required = { - "driver_handles_share_servers": value, - "snapshot_support": 'True', + "driver_handles_share_servers": dhss, + "snapshot_support": snapshot_support, } if extra_specs: required.update(extra_specs)