| # Copyright 2014 Mirantis Inc. |
| # All Rights Reserved. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may |
| # not use this file except in compliance with the License. You may obtain |
| # a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations |
| # under the License. |
| |
| from oslo_config import cfg |
| from oslo_config import types |
| |
| service_option = cfg.BoolOpt("manila", |
| default=True, |
| help="Whether or not manila is expected to be " |
| "available") |
| |
| manila_scope_enforcement = cfg.BoolOpt('manila', |
| default=False, |
| help="Does the Share service API " |
| "policies enforce scope? " |
| "This configuration value should " |
| "be same as manila.conf: " |
| "[oslo_policy].enforce_scope " |
| "option.") |
| |
| share_group = cfg.OptGroup(name="share", title="Share Service Options") |
| |
| ShareGroup = [ |
| cfg.StrOpt("min_api_microversion", |
| default="2.0", |
| help="The minimum api microversion is configured to be the " |
| "value of the minimum microversion supported by Manila. " |
| "This value is only used to validate the versions " |
| "response from Manila."), |
| cfg.StrOpt("max_api_microversion", |
| default="2.85", |
| help="The maximum api microversion is configured to be the " |
| "value of the latest microversion supported by Manila."), |
| cfg.StrOpt("region", |
| default="", |
| help="The share region name to use. If empty, the value " |
| "of identity.region is used instead. If no such region " |
| "is found in the service catalog, the first found one is " |
| "used."), |
| cfg.StrOpt("catalog_type", |
| default="share", |
| help="Catalog type of the Share service."), |
| cfg.StrOpt('endpoint_type', |
| default='publicURL', |
| choices=['public', 'admin', 'internal', |
| 'publicURL', 'adminURL', 'internalURL'], |
| help="The endpoint type to use for the share service."), |
| cfg.BoolOpt("multitenancy_enabled", |
| default=True, |
| help="This option used to determine backend driver type, " |
| "multitenant driver uses share-networks, but " |
| "single-tenant doesn't."), |
| cfg.BoolOpt("create_networks_when_multitenancy_enabled", |
| default=True, |
| help="This option is used only when other " |
| "'multitenancy_enabled' option is set to 'True'. " |
| "If this one is set to True, then tempest will create " |
| "neutron networks for each new manila share-network " |
| "it creates. Else it will use manila share-networks with " |
| "empty values (case of StandAloneNetworkPlugin and " |
| "NeutronSingleNetworkPlugin)."), |
| cfg.ListOpt("enable_protocols", |
| default=["nfs", "cifs"], |
| help="First value of list is protocol by default, " |
| "items of list show enabled protocols at all."), |
| cfg.ListOpt("enable_ip_rules_for_protocols", |
| default=["nfs", "cifs", ], |
| help="Selection of protocols, that should " |
| "be covered with ip rule tests"), |
| cfg.ListOpt("enable_user_rules_for_protocols", |
| default=[], |
| help="Selection of protocols, that should " |
| "be covered with user rule tests"), |
| cfg.ListOpt("enable_cert_rules_for_protocols", |
| default=["glusterfs", ], |
| help="Protocols that should be covered with cert rule tests."), |
| cfg.ListOpt("enable_cephx_rules_for_protocols", |
| default=["cephfs", ], |
| help="Protocols to be covered with cephx rule tests."), |
| cfg.StrOpt("username_for_user_rules", |
| default="Administrator", |
| help="Username, that will be used in user tests."), |
| cfg.StrOpt("override_ip_for_nfs_access", |
| help="Forces access rules to be as specified on NFS scenario" |
| " tests. This can used for working around multiple " |
| "NATs between the VMs and the storage controller."), |
| cfg.StrOpt("storage_network", |
| help="Name or UUID of a neutron network that is used to access " |
| "shared file systems over. If specified, test virtual " |
| "machines are created with two NICs, the primary NIC is " |
| "attached to the private project network and the " |
| "secondary NIC is attached to the specified storage " |
| "network. If using NFS, access control is done with the " |
| "help of the IP address assigned to the virtual machine's " |
| "storage network NIC."), |
| cfg.ListOpt("enable_ro_access_level_for_protocols", |
| default=["nfs", ], |
| help="List of protocols to run tests with ro access level."), |
| |
| # 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.BoolOpt("capability_create_share_from_snapshot_support", |
| help="Defines extra spec that satisfies specific back end " |
| "capability called 'create_share_from_snapshot_support' " |
| "and will be used for setting up a custom share type. " |
| "Defaults to the value of run_snapshot_tests. Set it to " |
| "False if the driver being tested does not support " |
| "creating shares from snapshots."), |
| cfg.BoolOpt("capability_revert_to_snapshot_support", |
| deprecated_for_removal=True, |
| deprecated_reason="Redundant configuration option. Please use " |
| "'run_revert_to_snapshot_tests' config " |
| "option instead.", |
| help="Defines extra spec that satisfies specific back end " |
| "capability called 'revert_to_snapshot_support' " |
| "and will be used for setting up custom share type. " |
| "Defaults to the value of run_revert_to_snapshot_tests."), |
| cfg.StrOpt("capability_sg_consistent_snapshot_support", |
| choices=["host", "pool", None], |
| help="Backend capability to create consistent snapshots of " |
| "share group members. Will be used with creation " |
| "of new share group types as group spec."), |
| cfg.BoolOpt("capability_thin_provisioned", |
| default=False, |
| help="Defines whether to create shares as thin provisioned, " |
| "adding the extra spec 'thin_provisioning' as 'True' for " |
| "setting up the custom share types. It may be useful to " |
| "run tempest with back end storage systems without much " |
| "space. Take care enabling it, the manila scheduler " |
| "capability filter will request this capability in all " |
| "share types and the the capacity filter will allow " |
| "oversubscription."), |
| cfg.StrOpt("share_network_id", |
| default="", |
| help="Some backend drivers requires share network " |
| "for share creation. Share network id, that will be " |
| "used for shares. If not set, it won't be used. Setting " |
| "this option to a valid share network ID will mean that " |
| "the value of create_networks_when_multitenancy_enabled " |
| "should be False."), |
| cfg.StrOpt("alt_share_network_id", |
| default="", |
| help="Share network id, that will be used for shares" |
| " in alt tenant. If not set, it won't be used. Setting " |
| "this option to a valid share network ID will mean that " |
| "the value of create_networks_when_multitenancy_enabled " |
| "should be False."), |
| cfg.StrOpt("admin_share_network_id", |
| default="", |
| help="Share network id, that will be used for shares" |
| " in admin tenant. If not set, it won't be used. Setting " |
| "this option to a valid share network ID will mean that " |
| "the value of create_networks_when_multitenancy_enabled " |
| "should be False."), |
| cfg.BoolOpt("multi_backend", |
| default=False, |
| help="Runs Manila multi-backend tests."), |
| cfg.ListOpt("backend_names", |
| default=[], |
| help="Names of share backends, that will be used with " |
| "multibackend tests. Tempest will use first two values."), |
| cfg.IntOpt("share_creation_retry_number", |
| default=0, |
| help="Defines number of retries for share creation. " |
| "It is useful to avoid failures caused by unstable " |
| "environment."), |
| cfg.IntOpt("build_interval", |
| default=3, |
| help="Time in seconds between share availability checks."), |
| cfg.IntOpt("build_timeout", |
| default=500, |
| help="Timeout in seconds to wait for a share to become" |
| "available."), |
| cfg.BoolOpt("suppress_errors_in_cleanup", |
| default=False, |
| help="Whether to suppress errors with clean up operation " |
| "or not. There are cases when we may want to skip " |
| "such errors and catch only test errors."), |
| cfg.MultiOpt("security_service", |
| item_type=types.Dict(), |
| secret=True, |
| help="This option enables specifying security service " |
| "parameters needed to create security services " |
| "dynamically in order to run the tempest tests. " |
| "The configured security service must be reachable by " |
| "the project share networks created by the tests. So, " |
| "ideally project networks must be able to route to the " |
| "network where the pre-existing security services has " |
| "been deployed. The set of parameters that can be " |
| "configured is the same used in the security service " |
| "creation. You can repeat this option many times, and " |
| "each entry takes the standard dict config parameters: " |
| "security_service = " |
| "ss_type:<ldap, kerberos or active_directory>, " |
| "ss_dns_ip:value, ss_user:value, ss_password=value, " |
| "ss_domain:value, ss_server:value"), |
| |
| # Switching ON/OFF test suites filtered by features |
| cfg.BoolOpt("run_quota_tests", |
| default=True, |
| help="Defines whether to run quota tests or not."), |
| cfg.BoolOpt("run_extend_tests", |
| default=True, |
| help="Defines whether to run share extend tests or not. " |
| "Disable this feature if used driver doesn't " |
| "support it."), |
| cfg.BoolOpt("run_shrink_tests", |
| default=True, |
| help="Defines whether to run share shrink tests or not. " |
| "Disable this feature if used driver doesn't " |
| "support it."), |
| cfg.BoolOpt("run_snapshot_tests", |
| default=True, |
| help="Defines whether to run tests that use share snapshots " |
| "or not. Disable this feature if used driver doesn't " |
| "support it."), |
| cfg.BoolOpt("run_revert_to_snapshot_tests", |
| default=False, |
| help="Defines whether to run tests that revert shares " |
| "to snapshots or not. Enable this feature if used " |
| "driver supports it."), |
| cfg.BoolOpt("run_share_group_tests", |
| default=True, |
| deprecated_name="run_consistency_group_tests", |
| help="Defines whether to run share group tests or not."), |
| cfg.BoolOpt("run_replication_tests", |
| default=False, |
| help="Defines whether to run replication tests or not. " |
| "Enable this feature if the driver is configured " |
| "for replication."), |
| cfg.BoolOpt("run_multiple_share_replicas_tests", |
| default=True, |
| help="Defines whether to run multiple replicas creation test " |
| "or not. Enable this if the driver can create more than " |
| "one replica for a share."), |
| cfg.BoolOpt("run_host_assisted_migration_tests", |
| deprecated_name="run_migration_tests", |
| default=False, |
| help="Enable or disable host-assisted migration tests."), |
| cfg.BoolOpt("run_driver_assisted_migration_tests", |
| deprecated_name="run_migration_tests", |
| default=False, |
| help="Enable or disable driver-assisted migration tests."), |
| cfg.BoolOpt("run_migration_with_preserve_snapshots_tests", |
| default=False, |
| help="Enable or disable migration with " |
| "preserve_snapshots tests set to True."), |
| cfg.BoolOpt("run_driver_assisted_backup_tests", |
| default=False, |
| help="Enable or disable share backup tests."), |
| cfg.BoolOpt("run_manage_unmanage_tests", |
| default=False, |
| help="Defines whether to run manage/unmanage tests or not. " |
| "These test may leave orphaned resources, so be careful " |
| "enabling this opt."), |
| cfg.BoolOpt("run_manage_unmanage_snapshot_tests", |
| default=False, |
| help="Defines whether to run manage/unmanage snapshot tests " |
| "or not. These tests may leave orphaned resources, so be " |
| "careful enabling this opt."), |
| cfg.BoolOpt("run_mount_snapshot_tests", |
| default=False, |
| help="Enable or disable mountable snapshot 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 " |
| "snapshots in another pool or az. Enable this " |
| "option if the used driver supports it."), |
| cfg.BoolOpt("run_share_server_migration_tests", |
| default=False, |
| help="Defines whether to run share servers migration tests. " |
| "Enable this option if the used driver supports it."), |
| cfg.BoolOpt("run_share_server_multiple_subnet_tests", |
| default=False, |
| help="Defines whether to run the share server multiple " |
| "subnets tests. Enable this option if the used driver " |
| "supports it."), |
| cfg.BoolOpt("run_network_allocation_update_tests", |
| default=False, |
| help="Defines whether to run the network allocation update " |
| "tests. Enable this option if the used driver " |
| "supports it."), |
| |
| cfg.StrOpt("image_with_share_tools", |
| default="manila-service-image-master", |
| help="Image name for vm booting with nfs/smb clients tool."), |
| cfg.StrOpt("image_username", |
| default="manila", |
| help="Image username."), |
| cfg.StrOpt("image_password", |
| help="Image password. Should be used for " |
| "'image_with_share_tools' without Nova Metadata support."), |
| cfg.StrOpt("client_vm_flavor_ref", |
| default="100", |
| help="Flavor used for client vm in scenario tests."), |
| cfg.IntOpt("migration_timeout", |
| default=1500, |
| help="Time to wait for share migration before " |
| "timing out (seconds)."), |
| cfg.IntOpt("share_backup_timeout", |
| default=1500, |
| help="Time to wait for share backup before " |
| "timing out (seconds)."), |
| cfg.IntOpt("share_server_migration_timeout", |
| default="1500", |
| help="Time to wait for share server migration before " |
| "timing out (seconds)."), |
| cfg.StrOpt("default_share_type_name", |
| help="Default share type name to use in tempest tests."), |
| cfg.StrOpt("backend_replication_type", |
| default='none', |
| choices=['none', 'writable', 'readable', 'dr'], |
| help="Specify the replication type supported by the backend."), |
| cfg.IntOpt("share_size", |
| default=1, |
| help="Default size in GB for shares created by share tests."), |
| cfg.BoolOpt("run_ipv6_tests", |
| default=False, |
| help="Enable or disable running IPv6 NFS scenario tests. " |
| "These tests validate that IPv6 export locations work, " |
| "and that access can be provided to IPv6 clients. When " |
| "you do not specify a storage_network, the tests will " |
| "attempt to create an IPv6 subnet on the project network " |
| "they create for ping and SSH to the client test VM " |
| "where data path testing is performed."), |
| cfg.StrOpt("dd_input_file", |
| default="/dev/zero", |
| help="The input file (if) in the dd command specifies the " |
| "source of data that dd will read and process, which can " |
| "be a device, a regular file, or even standard input " |
| "(stdin). dd copies, transforms, or performs actions on " |
| "this data based on provided options and then writes it " |
| "to an output file or device (of). When using /dev/zero " |
| "in storage systems with default compression, although " |
| "it generates highly compressible null bytes (zeros), " |
| "writing data from /dev/zero might not yield significant " |
| "space savings as these systems are already optimized for " |
| "efficient compression."), |
| cfg.DictOpt("driver_assisted_backup_test_driver_options", |
| default={'dummy': True}, |
| help="Share backup driver options specified as dict."), |
| ] |