f50ee3c94d
This was overlooked when the other catalog_type option was added. Because the change which added the other catalog_type options is not yet released, a release note file is not additionally created. Change-Id: Ifa55e949232c1d6fd35a210344f3dff57835af33
1074 lines
49 KiB
Puppet
1074 lines
49 KiB
Puppet
# class for installing and configuring tempest
|
|
#
|
|
# The class checks out the tempest repo and sets the basic config.
|
|
#
|
|
# Note that only parameters for which values are provided will be
|
|
# managed in tempest.conf.
|
|
#
|
|
# [*package_ensure*]
|
|
# (optional) The state of tempest packages
|
|
# Defaults to 'present'
|
|
# [*tempest_workspace*]
|
|
# Deafults to '/var/lib/tempest'
|
|
# [*install_from_source*]
|
|
# Defaults to true
|
|
# [*git_clone*]
|
|
# Defaults to true
|
|
# [*tempest_repo_uri*]
|
|
# Defaults to 'https://opendev.org/openstack/tempest'
|
|
# [*tempest_repo_revision*]
|
|
# Defaults to undef
|
|
# [*tempest_clone_path*]
|
|
# Defaults to '/var/lib/tempest'
|
|
# [*tempest_clone_owner*]
|
|
# Defaults to 'root'
|
|
# [*setup_venv*]
|
|
# Defaults to false
|
|
# [*configure_images*]
|
|
# Defaults to true
|
|
# [*image_name*]
|
|
# Defaults to undef
|
|
# [*image_name_alt*]
|
|
# Defaults to undef
|
|
# [*configure_networks*]
|
|
# Defaults to true
|
|
# [*public_network_name*]
|
|
# Defaults to undef
|
|
# [*neutron_api_extensions*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*identity_uri_v3*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*lock_path*]
|
|
# Defaults to '/var/lib/tempest'
|
|
# [*log_file*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*debug*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*use_stderr*]
|
|
# Defaults to true
|
|
# [*use_syslog*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*logging_context_format_string*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*http_timeout*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*username*]
|
|
# Defaults to undef
|
|
# [*password*]
|
|
# Defaults to undef
|
|
# [*project_name*]
|
|
# Defaults to undef
|
|
# [*user_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*project_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*alt_username*]
|
|
# Defaults to undef
|
|
# [*alt_password*]
|
|
# Defaults to undef
|
|
# [*alt_project_name*]
|
|
# Defaults to undef
|
|
# [*alt_user_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*alt_project_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*admin_username*]
|
|
# Defaults to undef
|
|
# [*admin_password*]
|
|
# Defaults to undef
|
|
# [*admin_project_name*]
|
|
# Defaults to undef
|
|
# [*admin_role*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*admin_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*admin_user_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*admin_project_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*admin_system*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*default_credentials_domain_name*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*image_ref*]
|
|
# Defaults to undef
|
|
# [*image_ref_alt*]
|
|
# Defaults to undef
|
|
# [*image_ssh_user*]
|
|
# Defaults to undef
|
|
# [*image_alt_ssh_user*]
|
|
# Defaults to undef
|
|
# [*run_ssh*]
|
|
# Defaults to false
|
|
# [*ssh_key_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*configure_flavors*]
|
|
# Defaults to true
|
|
# [*flavor_ref*]
|
|
# Defaults to undef
|
|
# [*flavor_ref_alt*]
|
|
# Defaults to undef
|
|
# [*flavor_name*]
|
|
# Defaults to undef
|
|
# [*flavor_name_alt*]
|
|
# Defaults to undef
|
|
# [*resize_available*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*use_dynamic_credentials*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*l2gw_switch*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*public_network_id*]
|
|
# Defaults to undef
|
|
# [*public_router_id*]
|
|
# Defaults to undef
|
|
# [*cinder_available*]
|
|
# Defaults to true
|
|
# [*cinder_backup_available*]
|
|
# Defaults to false
|
|
# [*glance_available*]
|
|
# Defaults to true
|
|
# [*heat_available*]
|
|
# Defaults to false
|
|
# [*ceilometer_available*]
|
|
# Defaults to false
|
|
# [*aodh_available*]
|
|
# Defaults to false
|
|
# [*gnocchi_available*]
|
|
# Defaults to false
|
|
# [*sg_core_available*]
|
|
# Defaults to false
|
|
# [*designate_available*]
|
|
# Defaults to false
|
|
# [*horizon_available*]
|
|
# Defaults to true
|
|
# [*neutron_available*]
|
|
# Defaults to true
|
|
# [*neutron_bgpvpn_available*]
|
|
# Defaults to false
|
|
# [*neutron_l2gw_available*]
|
|
# Defaults to true
|
|
# [*neutron_vpnaas_available*]
|
|
# Defaults to false
|
|
# [*neutron_dr_available*]
|
|
# Defaults to false
|
|
# [*nova_available*]
|
|
# Defaults to true
|
|
# [*watcher_available*]
|
|
# Defaults to false
|
|
# [*zaqar_available*]
|
|
# Defaults to false
|
|
# [*mistral_available*]
|
|
# Defaults to false
|
|
# [*vitrage_available*]
|
|
# Defaults to false
|
|
# [*run_service_broker_tests*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*swift_available*]
|
|
# Defaults to false
|
|
# [*trove_available*]
|
|
# Defaults to false
|
|
# [*ironic_available*]
|
|
# Defaults to false
|
|
# [*ironic_inspector_available*]
|
|
# Defaults to false
|
|
# [*octavia_available*]
|
|
# Defaults to false
|
|
# [*barbican_available*]
|
|
# Defaults to false
|
|
# [*manila_available*]
|
|
# Defaults to false
|
|
# [*barbican_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*cinder_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*glance_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*keystone_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*neutron_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*nova_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*placement_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*ironic_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*ironic_inspector_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*designate_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*octavia_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*manila_enforce_scope*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*compute_min_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*compute_max_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*placement_min_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*placement_max_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*volume_min_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*volume_max_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*key_manager_min_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*key_manager_max_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*baremetal_min_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*baremetal_max_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*share_min_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*share_max_microversion*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*compute_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*identity_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*image_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*network_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*object_store_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*placement_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*volume_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*orchestration_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*alarming_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*metric_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*baremetal_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*baremetal_introspection_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*dns_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*load_balancer_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*share_catalog_type*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*img_file*]
|
|
# Defaults to '/var/lib/tempest/cirros-0.4.0-x86_64-disk.img'
|
|
# [*img_disk_format*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*dashboard_url*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*disable_dashboard_ssl_validation*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*compute_build_interval*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*compute_build_timeout*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*image_build_interval*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*image_build_timeout*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*network_build_interval*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*network_build_timeout*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*volume_build_interval*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*volume_build_timeout*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*object_storage_build_timeout*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*ca_certificates_file*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*disable_ssl_validation*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*manage_tests_packages*]
|
|
# Defaults to false
|
|
# [*attach_encrypted_volume*]
|
|
# Defaults to false
|
|
# [*tempest_roles*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*reseller_admin_role*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*db_flavor_ref*]
|
|
# Valid primary flavor to use in Trove tests.
|
|
# Defaults to undef
|
|
# [*db_flavor_name*]
|
|
# Defaults to undef
|
|
# [*designate_nameservers*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*heat_image_ref*]
|
|
# Defaults to undef
|
|
# [*heat_image_name*]
|
|
# Defaults to undef
|
|
# [*heat_flavor_ref*]
|
|
# Defaults to undef
|
|
# [*heat_flavor_name*]
|
|
# Defaults to undef
|
|
# [*baremetal_driver*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*baremetal_enabled_hardware_types*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*load_balancer_member_role*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*load_balancer_admin_role*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*load_balancer_observer_role*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*load_balancer_global_observer_role*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*load_balancer_test_with_noop*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*share_multitenancy_enabled*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*share_enable_protocols*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*share_multi_backend*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*share_capability_storage_protocol*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*metric_backends*]
|
|
# Defaults to $facts['os_service_default']
|
|
# [*alarm_backend*]
|
|
# Defaults to $facts['os_service_default']
|
|
#
|
|
# DEPREACTED PARAMETERS
|
|
# [*glance_v2*]
|
|
# Defaults to true
|
|
# [*identity_uri*]
|
|
# Defaults to undef
|
|
# [*keystone_v3*]
|
|
# Defaults to undef
|
|
# [*auth_version*]
|
|
# Defaults to undef
|
|
#
|
|
class tempest(
|
|
$package_ensure = 'present',
|
|
Stdlib::Absolutepath $tempest_workspace = '/var/lib/tempest',
|
|
Boolean $install_from_source = true,
|
|
Boolean $git_clone = true,
|
|
|
|
# Clone config
|
|
#
|
|
$tempest_repo_uri = 'https://opendev.org/openstack/tempest',
|
|
$tempest_repo_revision = undef,
|
|
Stdlib::Absolutepath $tempest_clone_path = '/var/lib/tempest',
|
|
$tempest_clone_owner = 'root',
|
|
|
|
Boolean $setup_venv = false,
|
|
|
|
# Glance image config
|
|
#
|
|
Boolean $configure_images = true,
|
|
Optional[String[1]] $image_name = undef,
|
|
Optional[String[1]] $image_name_alt = undef,
|
|
|
|
# Neutron network config
|
|
#
|
|
Boolean $configure_networks = true,
|
|
Optional[String[1]] $public_network_name = undef,
|
|
$neutron_api_extensions = $facts['os_service_default'],
|
|
|
|
# Horizon dashboard config
|
|
$dashboard_url = $facts['os_service_default'],
|
|
$disable_dashboard_ssl_validation = $facts['os_service_default'],
|
|
|
|
# tempest.conf parameters
|
|
#
|
|
$identity_uri_v3 = $facts['os_service_default'],
|
|
$lock_path = '/var/lib/tempest',
|
|
$log_file = $facts['os_service_default'],
|
|
$debug = $facts['os_service_default'],
|
|
$use_stderr = true,
|
|
$use_syslog = $facts['os_service_default'],
|
|
$logging_context_format_string = $facts['os_service_default'],
|
|
$http_timeout = $facts['os_service_default'],
|
|
$attach_encrypted_volume = false,
|
|
# non admin user
|
|
$username = undef,
|
|
$password = undef,
|
|
$project_name = undef,
|
|
$user_domain_name = $facts['os_service_default'],
|
|
$project_domain_name = $facts['os_service_default'],
|
|
# another non-admin user
|
|
$alt_username = undef,
|
|
$alt_password = undef,
|
|
$alt_project_name = undef,
|
|
$alt_user_domain_name = $facts['os_service_default'],
|
|
$alt_project_domain_name = $facts['os_service_default'],
|
|
# admin user
|
|
$admin_username = undef,
|
|
$admin_password = undef,
|
|
$admin_project_name = undef,
|
|
$admin_role = $facts['os_service_default'],
|
|
$admin_domain_name = $facts['os_service_default'],
|
|
$admin_user_domain_name = $facts['os_service_default'],
|
|
$admin_project_domain_name = $facts['os_service_default'],
|
|
$admin_system = $facts['os_service_default'],
|
|
$default_credentials_domain_name = $facts['os_service_default'],
|
|
# roles fo the users created by tempest
|
|
$tempest_roles = $facts['os_service_default'],
|
|
$reseller_admin_role = $facts['os_service_default'],
|
|
# image information
|
|
$image_ref = undef,
|
|
$image_ref_alt = undef,
|
|
$image_ssh_user = undef,
|
|
$image_alt_ssh_user = undef,
|
|
$run_ssh = false,
|
|
$ssh_key_type = $facts['os_service_default'],
|
|
Boolean $configure_flavors = true,
|
|
$flavor_ref = undef,
|
|
$flavor_ref_alt = undef,
|
|
Optional[String[1]] $flavor_name = undef,
|
|
Optional[String[1]] $flavor_name_alt = undef,
|
|
$compute_build_interval = $facts['os_service_default'],
|
|
$compute_build_timeout = $facts['os_service_default'],
|
|
$image_build_interval = $facts['os_service_default'],
|
|
$image_build_timeout = $facts['os_service_default'],
|
|
$network_build_interval = $facts['os_service_default'],
|
|
$network_build_timeout = $facts['os_service_default'],
|
|
$volume_build_interval = $facts['os_service_default'],
|
|
$volume_build_timeout = $facts['os_service_default'],
|
|
$object_storage_build_timeout = $facts['os_service_default'],
|
|
# testing features that are supported
|
|
$resize_available = $facts['os_service_default'],
|
|
$use_dynamic_credentials = $facts['os_service_default'],
|
|
$l2gw_switch = $facts['os_service_default'],
|
|
# neutron config
|
|
$public_network_id = undef,
|
|
$public_router_id = undef,
|
|
# Trove config
|
|
$db_flavor_ref = undef,
|
|
Optional[String[1]] $db_flavor_name = undef,
|
|
# Service configuration
|
|
Boolean $cinder_available = true,
|
|
Boolean $cinder_backup_available = false,
|
|
Boolean $glance_available = true,
|
|
Boolean $heat_available = false,
|
|
Boolean $ceilometer_available = false,
|
|
Boolean $aodh_available = false,
|
|
Boolean $gnocchi_available = false,
|
|
Boolean $sg_core_available = false,
|
|
Boolean $designate_available = false,
|
|
Boolean $horizon_available = true,
|
|
Boolean $neutron_available = true,
|
|
Boolean $neutron_bgpvpn_available = false,
|
|
Boolean $neutron_l2gw_available = false,
|
|
Boolean $neutron_vpnaas_available = false,
|
|
Boolean $neutron_dr_available = false,
|
|
Boolean $nova_available = true,
|
|
Boolean $swift_available = false,
|
|
Boolean $trove_available = false,
|
|
Boolean $ironic_available = false,
|
|
Boolean $ironic_inspector_available = false,
|
|
Boolean $watcher_available = false,
|
|
Boolean $zaqar_available = false,
|
|
Boolean $mistral_available = false,
|
|
Boolean $vitrage_available = false,
|
|
Boolean $octavia_available = false,
|
|
Boolean $barbican_available = false,
|
|
Boolean $manila_available = false,
|
|
# scope enforcements
|
|
$barbican_enforce_scope = $facts['os_service_default'],
|
|
$cinder_enforce_scope = $facts['os_service_default'],
|
|
$glance_enforce_scope = $facts['os_service_default'],
|
|
$keystone_enforce_scope = $facts['os_service_default'],
|
|
$neutron_enforce_scope = $facts['os_service_default'],
|
|
$nova_enforce_scope = $facts['os_service_default'],
|
|
$placement_enforce_scope = $facts['os_service_default'],
|
|
$ironic_enforce_scope = $facts['os_service_default'],
|
|
$ironic_inspector_enforce_scope = $facts['os_service_default'],
|
|
$designate_enforce_scope = $facts['os_service_default'],
|
|
$octavia_enforce_scope = $facts['os_service_default'],
|
|
$manila_enforce_scope = $facts['os_service_default'],
|
|
# microversions
|
|
$compute_min_microversion = $facts['os_service_default'],
|
|
$compute_max_microversion = $facts['os_service_default'],
|
|
$placement_min_microversion = $facts['os_service_default'],
|
|
$placement_max_microversion = $facts['os_service_default'],
|
|
$volume_min_microversion = $facts['os_service_default'],
|
|
$volume_max_microversion = $facts['os_service_default'],
|
|
$key_manager_min_microversion = $facts['os_service_default'],
|
|
$key_manager_max_microversion = $facts['os_service_default'],
|
|
$baremetal_min_microversion = $facts['os_service_default'],
|
|
$baremetal_max_microversion = $facts['os_service_default'],
|
|
$share_min_microversion = $facts['os_service_default'],
|
|
$share_max_microversion = $facts['os_service_default'],
|
|
# catalog type
|
|
$compute_catalog_type = $facts['os_service_default'],
|
|
$identity_catalog_type = $facts['os_service_default'],
|
|
$image_catalog_type = $facts['os_service_default'],
|
|
$network_catalog_type = $facts['os_service_default'],
|
|
$object_store_catalog_type = $facts['os_service_default'],
|
|
$placement_catalog_type = $facts['os_service_default'],
|
|
$volume_catalog_type = $facts['os_service_default'],
|
|
$orchestration_catalog_type = $facts['os_service_default'],
|
|
$alarming_catalog_type = $facts['os_service_default'],
|
|
$metric_catalog_type = $facts['os_service_default'],
|
|
$baremetal_catalog_type = $facts['os_service_default'],
|
|
$baremetal_introspection_catalog_type = $facts['os_service_default'],
|
|
$dns_catalog_type = $facts['os_service_default'],
|
|
$load_balancer_catalog_type = $facts['os_service_default'],
|
|
$share_catalog_type = $facts['os_service_default'],
|
|
$run_service_broker_tests = $facts['os_service_default'],
|
|
$ca_certificates_file = $facts['os_service_default'],
|
|
$disable_ssl_validation = $facts['os_service_default'],
|
|
Boolean $manage_tests_packages = false,
|
|
# scenario options
|
|
$img_file = '/var/lib/tempest/cirros-0.4.0-x86_64-disk.img',
|
|
$img_disk_format = $facts['os_service_default'],
|
|
# designate options
|
|
$designate_nameservers = $facts['os_service_default'],
|
|
# heat options
|
|
$heat_image_ref = undef,
|
|
Optional[String[1]] $heat_image_name = undef,
|
|
$heat_flavor_ref = undef,
|
|
Optional[String[1]] $heat_flavor_name = undef,
|
|
# ironic options
|
|
$baremetal_driver = $facts['os_service_default'],
|
|
$baremetal_enabled_hardware_types = $facts['os_service_default'],
|
|
# octavia options
|
|
$load_balancer_member_role = $facts['os_service_default'],
|
|
$load_balancer_admin_role = $facts['os_service_default'],
|
|
$load_balancer_observer_role = $facts['os_service_default'],
|
|
$load_balancer_global_observer_role = $facts['os_service_default'],
|
|
$load_balancer_test_with_noop = $facts['os_service_default'],
|
|
# manila options
|
|
$share_multitenancy_enabled = $facts['os_service_default'],
|
|
$share_enable_protocols = $facts['os_service_default'],
|
|
$share_multi_backend = $facts['os_service_default'],
|
|
$share_capability_storage_protocol = $facts['os_service_default'],
|
|
# telemetry options
|
|
$metric_backends = $facts['os_service_default'],
|
|
$alarm_backend = $facts['os_service_default'],
|
|
# DEPRECATED PARAMETERS
|
|
$glance_v2 = undef,
|
|
$identity_uri = undef,
|
|
$keystone_v3 = undef,
|
|
$auth_version = undef,
|
|
) {
|
|
|
|
[
|
|
'glance_v2',
|
|
'identity_uri',
|
|
'keystone_v3',
|
|
'auth_version'
|
|
].each |String $deprecated_opt| {
|
|
if getvar($deprecated_opt) != undef {
|
|
warning("The ${deprecated_opt} parameter has been deprecated and will be removed in a future release")
|
|
}
|
|
}
|
|
$auth_version_real = pick($auth_version, $facts['os_service_default'])
|
|
|
|
[ 'neutron_bgpvpn_available', 'neutron_vpnaas_available', 'neutron_dr_available' ].each |$opt| {
|
|
if getvar($opt) != undef {
|
|
warning("The ${opt} parameter has no effect now. Use the neutron_api_extensions parameter instead.")
|
|
}
|
|
}
|
|
|
|
include tempest::params
|
|
|
|
include openstacklib::openstackclient
|
|
|
|
if $install_from_source {
|
|
ensure_packages(['git'])
|
|
ensure_packages($tempest::params::dev_packages)
|
|
|
|
if $::tempest::params::pip_package_name {
|
|
ensure_packages('pip', {
|
|
name => $::tempest::params::pip_package_name,
|
|
})
|
|
Package['pip'] -> Package['tox']
|
|
} else {
|
|
warning('pip package is not available in this distribution.')
|
|
}
|
|
|
|
package { 'tox':
|
|
ensure => present,
|
|
provider => 'pip',
|
|
}
|
|
|
|
if $git_clone {
|
|
vcsrepo { $tempest_clone_path:
|
|
ensure => 'present',
|
|
source => $tempest_repo_uri,
|
|
revision => $tempest_repo_revision,
|
|
provider => 'git',
|
|
require => Package['git'],
|
|
user => $tempest_clone_owner,
|
|
}
|
|
Vcsrepo<||> -> Tempest_config<||>
|
|
}
|
|
|
|
if $setup_venv {
|
|
# virtualenv will be installed along with tox
|
|
exec { 'create-venv':
|
|
command => ['virtualenv', '-p', 'python3', "${tempest_clone_path}/.venv"],
|
|
creates => "${tempest_clone_path}/.venv",
|
|
path => ['/bin', '/usr/bin', '/usr/local/bin'],
|
|
require => [
|
|
Package['tox'],
|
|
Package[$tempest::params::dev_packages],
|
|
],
|
|
}
|
|
exec { 'install-tempest':
|
|
command => ["${tempest_clone_path}/.venv/bin/${tempest::params::pip_command}", 'install', '-U', '-r', 'requirements.txt'],
|
|
cwd => $tempest_clone_path,
|
|
refreshonly => true,
|
|
subscribe => Exec['create-venv'],
|
|
}
|
|
|
|
if $git_clone {
|
|
Vcsrepo<||> -> Exec['create-venv']
|
|
}
|
|
}
|
|
|
|
$tempest_conf = "${tempest_clone_path}/etc/tempest.conf"
|
|
} else {
|
|
|
|
package { 'tempest':
|
|
ensure => $package_ensure,
|
|
name => $::tempest::params::package_name,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
|
|
# Create tempest workspace by running tempest init.
|
|
# It will generate etc/tempest.conf, logs and tempest_lock folder
|
|
# in tempest workspace
|
|
exec {'tempest-workspace':
|
|
command => ['tempest', 'init', $tempest_workspace],
|
|
path => ['/bin', '/usr/bin'],
|
|
refreshonly => true,
|
|
subscribe => Package['tempest'],
|
|
}
|
|
Package<| tag == 'tempest-package' |> -> Exec['tempest-workspace']
|
|
Exec['tempest-workspace'] -> Tempest_config<||>
|
|
|
|
$tempest_conf = "${tempest_workspace}/etc/tempest.conf"
|
|
}
|
|
|
|
Tempest_config {
|
|
path => $tempest_conf,
|
|
}
|
|
|
|
tempest_config {
|
|
'service-clients/http_timeout': value => $http_timeout;
|
|
'auth/admin_domain_name': value => $admin_domain_name;
|
|
'auth/admin_project_domain_name': value => $admin_project_domain_name;
|
|
'auth/admin_user_domain_name': value => $admin_user_domain_name;
|
|
'auth/default_credentials_domain_name': value => $default_credentials_domain_name;
|
|
'auth/admin_password': value => $admin_password, secret => true;
|
|
'auth/admin_project_name': value => $admin_project_name;
|
|
'auth/admin_username': value => $admin_username;
|
|
'auth/admin_system': value => $admin_system;
|
|
'auth/tempest_roles': value => join(any2array($tempest_roles), ',');
|
|
'auth/use_dynamic_credentials': value => $use_dynamic_credentials;
|
|
'object-storage/reseller_admin_role': value => $reseller_admin_role;
|
|
'compute/flavor_ref': value => $flavor_ref;
|
|
'compute/flavor_ref_alt': value => $flavor_ref_alt;
|
|
'compute/image_ref': value => $image_ref;
|
|
'compute/image_ref_alt': value => $image_ref_alt;
|
|
'compute/build_interval': value => $compute_build_interval;
|
|
'compute/build_timeout': value => $compute_build_timeout;
|
|
'image/build_interval': value => $image_build_interval;
|
|
'image/build_timeout': value => $image_build_timeout;
|
|
'network/build_interval': value => $network_build_interval;
|
|
'network/build_timeout': value => $network_build_timeout;
|
|
'volume/build_interval': value => $volume_build_interval;
|
|
'volume/build_timeout': value => $volume_build_timeout;
|
|
'object-storage/build_timeout': value => $object_storage_build_timeout;
|
|
'validation/image_ssh_user': value => $image_ssh_user;
|
|
'validation/image_alt_ssh_user': value => $image_alt_ssh_user;
|
|
'validation/run_validation': value => $run_ssh;
|
|
'validation/ssh_key_type': value => $ssh_key_type;
|
|
'identity/admin_role': value => $admin_role;
|
|
'identity/alt_password': value => $alt_password, secret => true;
|
|
'identity/alt_project_name': value => $alt_project_name;
|
|
'identity/alt_username': value => $alt_username;
|
|
'identity/alt_project_domain_name': value => $project_domain_name;
|
|
'identity/alt_user_domain_name': value => $user_domain_name;
|
|
'identity/password': value => $password, secret => true;
|
|
'identity/project_name': value => $project_name;
|
|
'identity/username': value => $username;
|
|
'identity/project_domain_name': value => $project_domain_name;
|
|
'identity/user_domain_name': value => $user_domain_name;
|
|
'identity/uri': value => pick($identity_uri, $facts['os_service_default']);
|
|
'identity/uri_v3': value => $identity_uri_v3;
|
|
'identity/auth_version': value => $auth_version_real;
|
|
'identity/ca_certificates_file': value => $ca_certificates_file;
|
|
'identity/disable_ssl_certificate_validation': value => $disable_ssl_validation;
|
|
'identity-feature-enabled/api_v3': value => pick($keystone_v3, $facts['os_service_default']);
|
|
'image-feature-enabled/api_v2': value => pick($glance_v2, $facts['os_service_default']);
|
|
'l2gw/l2gw_switch': value => $l2gw_switch;
|
|
'network-feature-enabled/api_extensions': value => join(any2array($neutron_api_extensions), ',');
|
|
'network/public_network_id': value => $public_network_id;
|
|
'network/public_router_id': value => $public_router_id;
|
|
'dashboard/dashboard_url': value => $dashboard_url;
|
|
'dashboard/disable_ssl_certificate_validation': value => $disable_dashboard_ssl_validation;
|
|
'database/db_flavor_ref': value => $db_flavor_ref;
|
|
'service_available/cinder': value => $cinder_available;
|
|
'volume-feature-enabled/backup': value => $cinder_backup_available;
|
|
'service_available/glance': value => $glance_available;
|
|
'service_available/heat': value => $heat_available;
|
|
'service_available/ceilometer': value => $ceilometer_available;
|
|
'service_available/aodh': value => $aodh_available;
|
|
'service_available/gnocchi': value => $gnocchi_available;
|
|
'service_available/sg_core': value => $sg_core_available;
|
|
'service_available/barbican': value => $barbican_available;
|
|
'service_available/manila': value => $manila_available;
|
|
'service_available/designate': value => $designate_available;
|
|
'service_available/horizon': value => $horizon_available;
|
|
'service_available/neutron': value => $neutron_available;
|
|
'service_available/mistral': value => $mistral_available;
|
|
'service_available/vitrage': value => $vitrage_available;
|
|
'service_available/nova': value => $nova_available;
|
|
'service_available/swift': value => $swift_available;
|
|
'service_available/trove': value => $trove_available;
|
|
'service_available/ironic': value => $ironic_available;
|
|
'service_available/ironic_inspector': value => $ironic_inspector_available;
|
|
'service_available/watcher': value => $watcher_available;
|
|
'service_available/zaqar': value => $zaqar_available;
|
|
'service_available/octavia': value => $octavia_available;
|
|
'enforce_scope/barbican': value => $barbican_enforce_scope;
|
|
'enforce_scope/cinder': value => $cinder_enforce_scope;
|
|
'enforce_scope/designate': value => $designate_enforce_scope;
|
|
'enforce_scope/glance': value => $glance_enforce_scope;
|
|
'enforce_scope/ironic': value => $ironic_enforce_scope;
|
|
'enforce_scope/ironic_inspector': value => $ironic_inspector_enforce_scope;
|
|
'enforce_scope/keystone': value => $keystone_enforce_scope;
|
|
'identity-feature-enabled/enforce_scope': value => $keystone_enforce_scope;
|
|
'enforce_scope/manila': value => $manila_enforce_scope;
|
|
'enforce_scope/neutron': value => $neutron_enforce_scope;
|
|
'enforce_scope/nova': value => $nova_enforce_scope;
|
|
'enforce_scope/octavia': value => $octavia_enforce_scope;
|
|
'enforce_scope/placement': value => $placement_enforce_scope;
|
|
'compute/min_microversion': value => $compute_min_microversion;
|
|
'compute/max_microversion': value => $compute_max_microversion;
|
|
'placement/min_microversion': value => $placement_min_microversion;
|
|
'placement/max_microversion': value => $placement_max_microversion;
|
|
'volume/min_microversion': value => $volume_min_microversion;
|
|
'volume/max_microversion': value => $volume_max_microversion;
|
|
'key_manager/min_microversion': value => $key_manager_min_microversion;
|
|
'key_manager/max_microversion': value => $key_manager_max_microversion;
|
|
'baremetal/min_microversion': value => $baremetal_min_microversion;
|
|
'baremetal/max_microversion': value => $baremetal_max_microversion;
|
|
'share/min_api_microversion': value => $share_min_microversion;
|
|
'share/max_api_microversion': value => $share_max_microversion;
|
|
'compute/catalog_type': value => $compute_catalog_type;
|
|
'identity/catalog_type': value => $identity_catalog_type;
|
|
'image/catalog_type': value => $image_catalog_type;
|
|
'network/catalog_type': value => $network_catalog_type;
|
|
'object_store/catalog_type': value => $object_store_catalog_type;
|
|
'placement/catalog_type': value => $placement_catalog_type;
|
|
'volume/catalog_type': value => $volume_catalog_type;
|
|
'heat_plugin/catalog_type': value => $orchestration_catalog_type;
|
|
'alarming/catalog_type': value => $alarming_catalog_type;
|
|
'metric/catalog_type': value => $metric_catalog_type;
|
|
'baremetal/catalog_type': value => $baremetal_catalog_type;
|
|
'baremetal_introspection/catalog_type': value => $baremetal_introspection_catalog_type;
|
|
'dns/catalog_type': value => $dns_catalog_type;
|
|
'load_balancer/catalog_type': value => $load_balancer_catalog_type;
|
|
'share/catalog_type': value => $share_catalog_type;
|
|
'scenario/img_file': value => $img_file;
|
|
'scenario/img_disk_format': value => $img_disk_format;
|
|
'service_broker/run_service_broker_tests': value => $run_service_broker_tests;
|
|
'compute-feature-enabled/attach_encrypted_volume': value => $attach_encrypted_volume;
|
|
'compute-feature-enabled/resize': value => $resize_available;
|
|
# designate-tempest-plugin
|
|
'dns/nameservers': value => join(any2array($designate_nameservers), ',');
|
|
# heat-tempest-plugin
|
|
'heat_plugin/auth_url': value => $identity_uri_v3;
|
|
# TODO(tkajinam): auth_version does not affect vN format (eg v3) and
|
|
# the heading v should be removed.
|
|
'heat_plugin/auth_version': value => regsubst($auth_version_real, '^v(\\d+)$', '\\1');
|
|
'heat_plugin/admin_username': value => $admin_username;
|
|
'heat_plugin/admin_password': value => $admin_password, secret => true;
|
|
'heat_plugin/admin_project_name': value => $admin_project_name;
|
|
'heat_plugin/admin_user_domain_name': value => $admin_user_domain_name;
|
|
'heat_plugin/admin_project_domain_name': value => $admin_project_domain_name;
|
|
'heat_plugin/username': value => $username;
|
|
'heat_plugin/password': value => $password, secret => true;
|
|
'heat_plugin/project_name': value => $project_name;
|
|
'heat_plugin/user_domain_name': value => $user_domain_name;
|
|
'heat_plugin/project_domain_name': value => $project_domain_name;
|
|
'heat_plugin/image_ref': value => $heat_image_ref;
|
|
'heat_plugin/instance_type': value => $heat_flavor_ref;
|
|
'heat_plugin/minimal_image_ref': value => $image_ref;
|
|
'heat_plugin/minimal_instance_type': value => $flavor_ref;
|
|
# ironic-tempest-plugin
|
|
'baremetal/driver': value => $baremetal_driver;
|
|
'baremetal/enabled_hardware_types': value => $baremetal_enabled_hardware_types;
|
|
# octavia-tempest-plugin
|
|
'load_balancer/member_role': value => $load_balancer_member_role;
|
|
'load_balancer/admin_role': value => $load_balancer_admin_role;
|
|
'load_balancer/observer_role': value => $load_balancer_observer_role;
|
|
'load_balancer/global_observer_role': value => $load_balancer_global_observer_role;
|
|
'load_balancer/test_with_noop': value => $load_balancer_test_with_noop;
|
|
# manila-tempest-plugin
|
|
'share/multitenancy_enabled': value => $share_multitenancy_enabled;
|
|
'share/enable_protocols': value => join(any2array($share_enable_protocols), ',');
|
|
'share/multi_backend': value => $share_multi_backend;
|
|
'share/capability_storage_protocol': value => $share_capability_storage_protocol;
|
|
# telemetry-tempest-plugin
|
|
'telemetry_services/metric_backends': value => join(any2array($metric_backends), ',');
|
|
'telemetry_services/alarm_backend': value => $alarm_backend;
|
|
}
|
|
|
|
oslo::concurrency { 'tempest_config': lock_path => $lock_path }
|
|
|
|
oslo::log { 'tempest_config':
|
|
debug => $debug,
|
|
log_file => $log_file,
|
|
use_stderr => $use_stderr,
|
|
use_syslog => $use_syslog,
|
|
logging_context_format_string => $logging_context_format_string
|
|
}
|
|
|
|
if $manage_tests_packages {
|
|
if ($aodh_available or $ceilometer_available or $gnocchi_available) and $::tempest::params::python_telemetry_tests {
|
|
package { 'python-telemetry-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_telemetry_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $cinder_available and $::tempest::params::python_cinder_tests {
|
|
package { 'python-cinder-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_cinder_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $glance_available and $::tempest::params::python_glance_tests {
|
|
package { 'python-glance-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_glance_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $heat_available and $::tempest::params::python_heat_tests {
|
|
package { 'python-heat-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_heat_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if ($ironic_available or $ironic_inspector_available) and $::tempest::params::python_ironic_tests {
|
|
package { 'python-ironic-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_ironic_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $::tempest::params::python_keystone_tests {
|
|
package { 'python-keystone-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_keystone_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $neutron_available and $::tempest::params::python_neutron_tests {
|
|
package { 'python-neutron-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_neutron_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
if $neutron_l2gw_available and $::tempest::params::python_l2gw_tests {
|
|
package { 'python-networking-l2gw-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_l2gw_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
}
|
|
if $trove_available and $::tempest::params::python_trove_tests {
|
|
package { 'python-trove-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_trove_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $watcher_available and $::tempest::params::python_watcher_tests {
|
|
package { 'python-watcher-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_watcher_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $zaqar_available and $::tempest::params::python_zaqar_tests {
|
|
package { 'python-zaqar-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_zaqar_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $mistral_available and $::tempest::params::python_mistral_tests {
|
|
package { 'python-mistral-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_mistral_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $vitrage_available and $::tempest::params::python_vitrage_tests {
|
|
package { 'python-vitrage-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_vitrage_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $designate_available and $::tempest::params::python_designate_tests {
|
|
package { 'python-designate-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_designate_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $octavia_available and $::tempest::params::python_octavia_tests {
|
|
package { 'python-octavia-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_octavia_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $barbican_available and $::tempest::params::python_barbican_tests {
|
|
package { 'python-barbican-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_barbican_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
if $manila_available and $::tempest::params::python_manila_tests {
|
|
package { 'python-manila-tests-tempest':
|
|
ensure => present,
|
|
name => $::tempest::params::python_manila_tests,
|
|
tag => ['openstack', 'tempest-package'],
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if $nova_available and $configure_flavors {
|
|
if ! $flavor_ref and $flavor_name {
|
|
tempest_flavor_id_setter { 'compute/flavor_ref':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
flavor_name => $flavor_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_flavor_id_setter['compute/flavor_ref']
|
|
Keystone_user_role<||> -> Tempest_flavor_id_setter['compute/flavor_ref']
|
|
|
|
tempest_flavor_id_setter { 'heat_plugin/minimal_instance_type':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
flavor_name => $flavor_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_flavor_id_setter['heat_plugin/minimal_instance_type']
|
|
Keystone_user_role<||> -> Tempest_flavor_id_setter['heat_plugin/minimal_instance_type']
|
|
} elsif ($flavor_name and $flavor_ref) {
|
|
fail('flavor_ref and flavor_name are both set: please set only one of them')
|
|
}
|
|
|
|
if ! $flavor_ref_alt and $flavor_name_alt {
|
|
tempest_flavor_id_setter { 'compute/flavor_ref_alt':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
flavor_name => $flavor_name_alt,
|
|
}
|
|
Tempest_config<||> -> Tempest_flavor_id_setter['compute/flavor_ref_alt']
|
|
Keystone_user_role<||> -> Tempest_flavor_id_setter['compute/flavor_ref_alt']
|
|
} elsif ($flavor_name_alt and $flavor_ref_alt) {
|
|
fail('flavor_ref_alt and flavor_name_alt are both set: please set only one of them')
|
|
}
|
|
|
|
if ! $db_flavor_ref and $db_flavor_name {
|
|
tempest_flavor_id_setter { 'database/db_flavor_ref':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
flavor_name => $db_flavor_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_flavor_id_setter['database/db_flavor_ref']
|
|
Keystone_user_role<||> -> Tempest_flavor_id_setter['database/db_flavor_ref']
|
|
} elsif ($db_flavor_name and $db_flavor_ref) {
|
|
fail('db_flavor_ref and db_flavor_name are both set: please set only one of them')
|
|
}
|
|
|
|
if !$heat_flavor_ref and $heat_flavor_name {
|
|
tempest_flavor_id_setter { 'heat_plugin/instance_type':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
flavor_name => $heat_flavor_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_flavor_id_setter['heat_plugin/instance_type']
|
|
Keystone_user_role<||> -> Tempest_flavor_id_setter['heat_plugin/instance_type']
|
|
} elsif ($heat_flavor_name and $heat_flavor_ref) {
|
|
fail('heat_flavor_ref and heat_flavor_name are both set: please set only one of them')
|
|
}
|
|
}
|
|
|
|
if $glance_available and $configure_images {
|
|
if ! $image_ref and $image_name {
|
|
# If the image id was not provided, look it up via the image name
|
|
# and set the value in the conf file.
|
|
tempest_glance_id_setter { 'compute/image_ref':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
image_name => $image_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_glance_id_setter['compute/image_ref']
|
|
Keystone_user_role<||> -> Tempest_glance_id_setter['compute/image_ref']
|
|
tempest_glance_id_setter { 'heat_plugin/minimal_image_ref':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
image_name => $image_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_glance_id_setter['heat_plugin/minimal_image_ref']
|
|
Keystone_user_role<||> -> Tempest_glance_id_setter['heat_plugin/minimal_image_ref']
|
|
} elsif ($image_name and $image_ref) or (! $image_name and ! $image_ref) {
|
|
fail('A value for either image_name or image_ref must be provided.')
|
|
}
|
|
|
|
if ! $image_ref_alt and $image_name_alt {
|
|
tempest_glance_id_setter { 'compute/image_ref_alt':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
image_name => $image_name_alt,
|
|
}
|
|
Tempest_config<||> -> Tempest_glance_id_setter['compute/image_ref_alt']
|
|
Keystone_user_role<||> -> Tempest_glance_id_setter['compute/image_ref_alt']
|
|
} elsif ($image_name_alt and $image_ref_alt) or (! $image_name_alt and ! $image_ref_alt) {
|
|
fail('A value for either image_name_alt or image_ref_alt must be provided.')
|
|
}
|
|
|
|
if ! $heat_image_ref and $heat_image_name {
|
|
tempest_glance_id_setter { 'heat_plugin/image_ref':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
image_name => $heat_image_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_glance_id_setter['heat_plugin/image_ref']
|
|
Keystone_user_role<||> -> Tempest_glance_id_setter['heat_plugin/image_ref']
|
|
} elsif ($heat_image_name and $heat_image_ref) {
|
|
fail('heat_image_ref and heat_image_name are both set: please set only one of them')
|
|
}
|
|
}
|
|
|
|
if $neutron_available and $configure_networks {
|
|
if ! $public_network_id and $public_network_name {
|
|
tempest_neutron_net_id_setter { 'network/public_network_id':
|
|
ensure => present,
|
|
tempest_conf_path => $tempest_conf,
|
|
network_name => $public_network_name,
|
|
}
|
|
Tempest_config<||> -> Tempest_neutron_net_id_setter['network/public_network_id']
|
|
Keystone_user_role<||> -> Tempest_neutron_net_id_setter['network/public_network_id']
|
|
} elsif ($public_network_name and $public_network_id) or (! $public_network_name and ! $public_network_id) {
|
|
fail('A value for either public_network_id or public_network_name \
|
|
must be provided.')
|
|
}
|
|
}
|
|
}
|