227 lines
10 KiB
Python
227 lines
10 KiB
Python
# Copyright 2015 NEC Corporation
|
|
# 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 tempest import config # noqa
|
|
|
|
|
|
ironic_service_option = cfg.BoolOpt('ironic',
|
|
default=False,
|
|
help='Whether or not ironic is expected '
|
|
'to be available')
|
|
|
|
inspector_service_option = cfg.BoolOpt("ironic_inspector",
|
|
default=False,
|
|
help="Whether or not ironic-inspector "
|
|
"is expected to be available")
|
|
|
|
baremetal_group = cfg.OptGroup(name='baremetal',
|
|
title='Baremetal provisioning service options',
|
|
help='When enabling baremetal tests, Nova '
|
|
'must be configured to use the Ironic '
|
|
'driver. The following parameters for the '
|
|
'[compute] section must be disabled: '
|
|
'console_output, interface_attach, '
|
|
'live_migration, pause, rescue, resize, '
|
|
'shelve, snapshot, and suspend')
|
|
|
|
baremetal_introspection_group = cfg.OptGroup(
|
|
name="baremetal_introspection",
|
|
title="Baremetal introspection service options",
|
|
help="When enabling baremetal introspection tests,"
|
|
"Ironic must be configured.")
|
|
|
|
baremetal_features_group = cfg.OptGroup(
|
|
name='baremetal_feature_enabled',
|
|
title="Enabled Baremetal Service Features")
|
|
|
|
BaremetalGroup = [
|
|
cfg.StrOpt('catalog_type',
|
|
default='baremetal',
|
|
help="Catalog type of the baremetal provisioning service"),
|
|
# TODO(dtantsur): change to fake-hardware when Ocata is no longer supported
|
|
cfg.StrOpt('driver',
|
|
default='fake',
|
|
help="Driver name to use for API tests"),
|
|
cfg.StrOpt('endpoint_type',
|
|
default='publicURL',
|
|
choices=['public', 'admin', 'internal',
|
|
'publicURL', 'adminURL', 'internalURL'],
|
|
help="The endpoint type to use for the baremetal provisioning"
|
|
" service"),
|
|
cfg.IntOpt('deploywait_timeout',
|
|
default=15,
|
|
help="Timeout for Ironic node to reach the "
|
|
"wait-callback state after powering on."),
|
|
cfg.IntOpt('active_timeout',
|
|
default=300,
|
|
help="Timeout for Ironic node to completely provision"),
|
|
cfg.IntOpt('association_timeout',
|
|
default=30,
|
|
help="Timeout for association of Nova instance and Ironic "
|
|
"node"),
|
|
cfg.IntOpt('power_timeout',
|
|
default=60,
|
|
help="Timeout for Ironic power transitions."),
|
|
cfg.IntOpt('unprovision_timeout',
|
|
default=300,
|
|
help="Timeout for unprovisioning an Ironic node. "
|
|
"Takes longer since Kilo as Ironic performs an extra "
|
|
"step in Node cleaning."),
|
|
cfg.IntOpt('rescue_timeout',
|
|
default=300,
|
|
help="Timeout for rescuing an Ironic node."),
|
|
cfg.IntOpt('unrescue_timeout',
|
|
default=300,
|
|
help="Timeout for unrescuing an Ironic node."),
|
|
cfg.StrOpt('min_microversion',
|
|
help="Lower version of the test target microversion range. "
|
|
"The format is 'X.Y', where 'X' and 'Y' are int values. "
|
|
"Tempest selects tests based on the range between "
|
|
"min_microversion and max_microversion. "
|
|
"If both values are None, Tempest avoids tests which "
|
|
"require a microversion."),
|
|
cfg.StrOpt('max_microversion',
|
|
default='latest',
|
|
help="Upper version of the test target microversion range. "
|
|
"The format is 'X.Y', where 'X' and 'Y' are int values. "
|
|
"Tempest selects tests based on the range between "
|
|
"min_microversion and max_microversion. "
|
|
"If both values are None, Tempest avoids tests which "
|
|
"require a microversion."),
|
|
cfg.BoolOpt('use_provision_network',
|
|
default=False,
|
|
help="Whether the Ironic/Neutron tenant isolation is enabled"),
|
|
cfg.StrOpt('whole_disk_image_ref',
|
|
help="UUID of the wholedisk image to use in the tests."),
|
|
cfg.StrOpt('whole_disk_image_url',
|
|
help="An http link to the wholedisk image to use in the "
|
|
"tests."),
|
|
cfg.StrOpt('whole_disk_image_checksum',
|
|
help="An MD5 checksum of the image."),
|
|
cfg.StrOpt('partition_image_ref',
|
|
help="UUID of the partitioned image to use in the tests."),
|
|
cfg.ListOpt('enabled_drivers',
|
|
default=['fake', 'pxe_ipmitool', 'agent_ipmitool'],
|
|
help="List of Ironic enabled drivers."),
|
|
cfg.ListOpt('enabled_hardware_types',
|
|
default=['ipmi'],
|
|
help="List of Ironic enabled hardware types."),
|
|
cfg.ListOpt('enabled_bios_interfaces',
|
|
default=['fake'],
|
|
help="List of Ironic enabled bios interfaces."),
|
|
cfg.ListOpt('enabled_deploy_interfaces',
|
|
default=['iscsi', 'direct'],
|
|
help="List of Ironic enabled deploy interfaces."),
|
|
cfg.ListOpt('enabled_rescue_interfaces',
|
|
default=['no-rescue'],
|
|
help="List of Ironic enabled rescue interfaces."),
|
|
cfg.ListOpt('enabled_boot_interfaces',
|
|
default=['fake', 'pxe'],
|
|
help="List of Ironic enabled boot interfaces."),
|
|
cfg.ListOpt('enabled_raid_interfaces',
|
|
default=['no-raid', 'agent'],
|
|
help="List of Ironic enabled RAID interfaces."),
|
|
cfg.StrOpt('default_rescue_interface',
|
|
help="Ironic default rescue interface."),
|
|
cfg.IntOpt('adjusted_root_disk_size_gb',
|
|
min=0,
|
|
help="Ironic adjusted disk size to use in the standalone tests "
|
|
"as instance_info/root_gb value."),
|
|
cfg.IntOpt('available_nodes', min=0, default=None,
|
|
help="The number of baremetal hosts available to use for "
|
|
"the tests."),
|
|
cfg.BoolOpt('partition_netboot',
|
|
default=True,
|
|
help="Treat partition images as netbooted as opposed to "
|
|
"attempting to populate a boot loader. IF cirros is "
|
|
"being used, this option should be set to True as "
|
|
"it lacks the needed components to make it locally "
|
|
"from a partition image."),
|
|
]
|
|
|
|
BaremetalFeaturesGroup = [
|
|
cfg.BoolOpt('ipxe_enabled',
|
|
default=True,
|
|
help="Defines if IPXE is enabled"),
|
|
cfg.BoolOpt('adoption',
|
|
# Defaults to False since it's a destructive operation AND it
|
|
# requires the plugin to be able to read ipmi_password.
|
|
default=False,
|
|
help="Defines if adoption is enabled"),
|
|
cfg.BoolOpt('software_raid',
|
|
default=False,
|
|
help="Defines if software RAID is enabled (available "
|
|
"starting with Train). Requires at least two disks "
|
|
"on testing nodes."),
|
|
]
|
|
|
|
BaremetalIntrospectionGroup = [
|
|
cfg.StrOpt('catalog_type',
|
|
default='baremetal-introspection',
|
|
help="Catalog type of the baremetal provisioning service"),
|
|
cfg.StrOpt('endpoint_type',
|
|
default='publicURL',
|
|
choices=['public', 'admin', 'internal',
|
|
'publicURL', 'adminURL', 'internalURL'],
|
|
help="The endpoint type to use for the baremetal introspection"
|
|
" service"),
|
|
cfg.IntOpt('introspection_sleep',
|
|
default=30,
|
|
help="Introspection sleep before check status"),
|
|
cfg.IntOpt('introspection_timeout',
|
|
default=600,
|
|
help="Introspection time out"),
|
|
cfg.IntOpt('introspection_start_timeout',
|
|
default=90,
|
|
help="Timeout to start introspection"),
|
|
cfg.IntOpt('hypervisor_update_sleep',
|
|
default=60,
|
|
help="Time to wait until nova becomes aware of "
|
|
"bare metal instances"),
|
|
cfg.IntOpt('hypervisor_update_timeout',
|
|
default=300,
|
|
help="Time out for wait until nova becomes aware of "
|
|
"bare metal instances"),
|
|
# NOTE(aarefiev): status_check_period default is 60s, but checking
|
|
# node state takes some time(API call), so races appear here,
|
|
# 80s would be enough to make one more check.
|
|
cfg.IntOpt('ironic_sync_timeout',
|
|
default=80,
|
|
help="Time it might take for Ironic--Inspector "
|
|
"sync to happen"),
|
|
cfg.IntOpt('discovery_timeout',
|
|
default=300,
|
|
help="Time to wait until new node would enrolled in "
|
|
"ironic"),
|
|
cfg.BoolOpt('auto_discovery_feature',
|
|
default=False,
|
|
help="Is the auto-discovery feature enabled. Enroll hook "
|
|
"should be specified in node_not_found_hook - processing "
|
|
"section of inspector.conf"),
|
|
cfg.StrOpt('auto_discovery_default_driver',
|
|
# TODO(dtantsur): change to fake-hardware when Queens is no
|
|
# longer supported.
|
|
default='fake',
|
|
help="The driver expected to be set on newly discovered nodes. "
|
|
"Only has effect with auto_discovery_feature is True."),
|
|
cfg.StrOpt('auto_discovery_target_driver',
|
|
help="The driver to set on the newly discovered nodes. "
|
|
"Only has effect with auto_discovery_feature is True."),
|
|
cfg.StrOpt('data_store',
|
|
help="The storage backend for storing introspection data."),
|
|
]
|