| #    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 | 
 |  | 
 | service_available_group = cfg.OptGroup(name="service_available", | 
 |                                        title="Available OpenStack Services") | 
 |  | 
 | ServiceAvailableGroup = [ | 
 |     cfg.BoolOpt("heat_plugin", | 
 |                 default=True, | 
 |                 help="Whether or not heat is expected to be available"), | 
 | ] | 
 |  | 
 | heat_group = cfg.OptGroup(name="heat_plugin", | 
 |                           title="Heat Service Options") | 
 |  | 
 | HeatGroup = [ | 
 |     cfg.StrOpt("catalog_type", | 
 |                default="orchestration", | 
 |                help="Catalog type of the orchestration service."), | 
 |     cfg.StrOpt('username', | 
 |                help="Username to use for non admin API requests."), | 
 |     cfg.StrOpt('password', | 
 |                help="Non admin API key to use when authenticating.", | 
 |                secret=True), | 
 |     cfg.StrOpt('admin_username', | 
 |                help="Username to use for admin API requests."), | 
 |     cfg.StrOpt('admin_password', | 
 |                help="Admin API key to use when authentication.", | 
 |                secret=True), | 
 |     cfg.StrOpt('project_name', | 
 |                help="Project name to use for API requests.", | 
 |                deprecated_opts=[cfg.DeprecatedOpt( | 
 |                    'tenant_name', group='heat_plugin')]), | 
 |     cfg.StrOpt('admin_project_name', | 
 |                default='admin', | 
 |                help="Admin project name to use for admin API requests.", | 
 |                deprecated_opts=[cfg.DeprecatedOpt( | 
 |                    'admin_tenant_name', group='heat_plugin')]), | 
 |     cfg.StrOpt('auth_url', | 
 |                help="Full URI of the OpenStack Identity API (Keystone)."), | 
 |     cfg.StrOpt('auth_version', | 
 |                help="OpenStack Identity API version."), | 
 |     cfg.StrOpt('user_domain_name', | 
 |                help="User domain name, if keystone v3 auth_url " | 
 |                     "is used"), | 
 |     cfg.StrOpt('project_domain_name', | 
 |                help="Project domain name, if keystone v3 auth_url " | 
 |                     "is used"), | 
 |     cfg.StrOpt('user_domain_id', | 
 |                help="User domain id, if keystone v3 auth_url " | 
 |                     "is used"), | 
 |     cfg.StrOpt('project_domain_id', | 
 |                help="Project domain id, if keystone v3 auth_url " | 
 |                     "is used"), | 
 |     cfg.StrOpt('region', | 
 |                help="The region name to use"), | 
 |     cfg.StrOpt('endpoint_type', | 
 |                default='public', | 
 |                choices=['public', 'admin', 'internal'], | 
 |                help="The endpoint type to use for the orchestration service."), | 
 |     cfg.StrOpt('instance_type', | 
 |                help="Instance type for tests. Needs to be big enough for a " | 
 |                     "full OS plus the test workload"), | 
 |     cfg.StrOpt('minimal_instance_type', | 
 |                help="Instance type enough for simplest cases."), | 
 |     cfg.StrOpt('image_ref', | 
 |                help="Name of image to use for tests which boot servers."), | 
 |     cfg.StrOpt('keypair_name', | 
 |                help="Name of existing keypair to launch servers with."), | 
 |     cfg.StrOpt('minimal_image_ref', | 
 |                help="Name of minimal (e.g cirros) image to use when " | 
 |                     "launching test instances."), | 
 |     cfg.BoolOpt('disable_ssl_certificate_validation', | 
 |                 default=False, | 
 |                 help="Set to True if using self-signed SSL certificates."), | 
 |     cfg.StrOpt('ca_file', | 
 |                help="CA certificate to pass for servers that have " | 
 |                     "https endpoint."), | 
 |     cfg.IntOpt('build_interval', | 
 |                default=4, | 
 |                help="Time in seconds between build status checks."), | 
 |     cfg.IntOpt('build_timeout', | 
 |                default=1200, | 
 |                help="Timeout in seconds to wait for a stack to build."), | 
 |     cfg.StrOpt('network_for_ssh', | 
 |                default='heat-net', | 
 |                help="Network used for SSH connections."), | 
 |     cfg.StrOpt('fixed_network_name', | 
 |                default='heat-net', | 
 |                help="Visible fixed network name "), | 
 |     cfg.StrOpt('floating_network_name', | 
 |                default='public', | 
 |                help="Visible floating network name "), | 
 |     cfg.StrOpt('boot_config_env', | 
 |                default=('heat_tempest_plugin/tests/scenario/templates' | 
 |                         '/boot_config_none_env.yaml'), | 
 |                help="Path to environment file which defines the " | 
 |                     "resource type Heat::InstallConfigAgent. Needs to " | 
 |                     "be appropriate for the image_ref."), | 
 |     cfg.StrOpt('fixed_subnet_name', | 
 |                default='heat-subnet', | 
 |                help="Visible fixed sub-network name "), | 
 |     cfg.IntOpt('ssh_timeout', | 
 |                default=300, | 
 |                help="Timeout in seconds to wait for authentication to " | 
 |                     "succeed."), | 
 |     cfg.IntOpt('ip_version_for_ssh', | 
 |                default=4, | 
 |                help="IP version used for SSH connections."), | 
 |     cfg.IntOpt('ssh_channel_timeout', | 
 |                default=60, | 
 |                help="Timeout in seconds to wait for output from ssh " | 
 |                     "channel."), | 
 |     cfg.BoolOpt('skip_scenario_tests', | 
 |                 default=False, | 
 |                 help="Skip all scenario tests"), | 
 |     cfg.BoolOpt('skip_functional_tests', | 
 |                 default=False, | 
 |                 help="Skip all functional tests"), | 
 |     cfg.ListOpt('skip_functional_test_list', | 
 |                 help="List of functional test class or class.method " | 
 |                      "names to skip ex. AutoscalingGroupTest, " | 
 |                      "InstanceGroupBasicTest.test_size_updates_work"), | 
 |     cfg.ListOpt('skip_scenario_test_list', | 
 |                 help="List of scenario test class or class.method " | 
 |                      "names to skip ex. NeutronLoadBalancerTest, " | 
 |                      "AodhAlarmTest.test_alarm"), | 
 |     cfg.ListOpt('skip_test_stack_action_list', | 
 |                 help="List of stack actions in tests to skip " | 
 |                      "ex. ABANDON, ADOPT, SUSPEND, RESUME"), | 
 |     cfg.BoolOpt('convergence_engine_enabled', | 
 |                 default=True, | 
 |                 help="Test features that are only present for stacks with " | 
 |                      "convergence enabled."), | 
 |     cfg.IntOpt('volume_size', | 
 |                default=1, | 
 |                help='Default size in GB for volumes created by volumes tests'), | 
 |     cfg.IntOpt('connectivity_timeout', | 
 |                default=120, | 
 |                help="Timeout in seconds to wait for connectivity to " | 
 |                     "server."), | 
 |     cfg.StrOpt('heat_config_notify_script', | 
 |                default=('heat-config-notify'), | 
 |                help="Path to the script heat-config-notify"), | 
 |     cfg.StrOpt('hidden_stack_tag', | 
 |                default='data-processing-cluster', | 
 |                help="Tag to be considered as hidden for stack tags tests"), | 
 |     cfg.BoolOpt('vm_to_heat_api_insecure', | 
 |                 default=False, | 
 |                 help="Set this to True if VM images used for tests " | 
 |                      "can not verify a (self-signed) SSL certificate " | 
 |                      "of public Heat endpoint."), | 
 | ] | 
 |  | 
 | heat_features_group = cfg.OptGroup( | 
 |     name='heat_features_enabled', | 
 |     title="Enabled Orchestration Service Features") | 
 |  | 
 | HeatFeaturesGroup = [ | 
 |     cfg.BoolOpt('stack_cancel', | 
 |                 default=False, | 
 |                 help="If false, skip stack cancel tests") | 
 | ] | 
 |  | 
 |  | 
 | def list_opts(): | 
 |     yield heat_group.name, HeatGroup | 
 |     yield heat_features_group.name, HeatFeaturesGroup | 
 |     yield service_available_group.name, ServiceAvailableGroup |