Validate some parameter types

This introduces type validations to the parameter which accepts only
specific type/format, like;
 - boolean
 - a string used for resource name
 - absolute path used to create a file/directory

Change-Id: I977f9679879d1ae8b52214cd3a143f0ca523c547
This commit is contained in:
Takashi Kajinami 2023-07-05 12:04:47 +09:00
parent 0700e5af17
commit ee78e9d6e7
3 changed files with 155 additions and 155 deletions

View File

@ -293,179 +293,179 @@
# Defaults to true
#
class tempest(
$package_ensure = 'present',
$tempest_workspace = '/var/lib/tempest',
$install_from_source = true,
$git_clone = true,
$tempest_config_file = '/var/lib/tempest/etc/tempest.conf',
$package_ensure = 'present',
Stdlib::Absolutepath $tempest_workspace = '/var/lib/tempest',
Boolean $install_from_source = true,
Boolean $git_clone = true,
Stdlib::Absolutepath $tempest_config_file = '/var/lib/tempest/etc/tempest.conf',
# Clone config
#
$tempest_repo_uri = 'https://opendev.org/openstack/tempest',
$tempest_repo_revision = undef,
$tempest_clone_path = '/var/lib/tempest',
$tempest_clone_owner = 'root',
$tempest_repo_uri = 'https://opendev.org/openstack/tempest',
$tempest_repo_revision = undef,
Stdlib::Absolutepath $tempest_clone_path = '/var/lib/tempest',
$tempest_clone_owner = 'root',
$setup_venv = false,
Boolean $setup_venv = false,
# Glance image config
#
$configure_images = true,
$image_name = undef,
$image_name_alt = undef,
Boolean $configure_images = true,
Optional[String[1]] $image_name = undef,
Optional[String[1]] $image_name_alt = undef,
# Neutron network config
#
$configure_networks = true,
$public_network_name = undef,
$neutron_api_extensions = $facts['os_service_default'],
Boolean $configure_networks = true,
Optional[String[1]] $public_network_name = undef,
$neutron_api_extensions = $facts['os_service_default'],
# Horizon dashboard config
$login_url = undef,
$dashboard_url = undef,
$disable_dashboard_ssl_validation = undef,
$login_url = undef,
$dashboard_url = undef,
$disable_dashboard_ssl_validation = undef,
# tempest.conf parameters
#
$identity_uri = undef,
$identity_uri_v3 = undef,
$cli_dir = undef,
$lock_path = '/var/lib/tempest',
$log_file = $facts['os_service_default'],
$debug = false,
$use_stderr = true,
$use_syslog = false,
$logging_context_format_string = $facts['os_service_default'],
$http_timeout = $facts['os_service_default'],
$attach_encrypted_volume = false,
$identity_uri = undef,
$identity_uri_v3 = undef,
$cli_dir = undef,
$lock_path = '/var/lib/tempest',
$log_file = $facts['os_service_default'],
$debug = false,
$use_stderr = true,
$use_syslog = false,
$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'],
$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'],
$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 = undef,
$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'],
$admin_username = undef,
$admin_password = undef,
$admin_project_name = undef,
$admin_role = undef,
$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'],
$tempest_roles = $facts['os_service_default'],
# image information
$image_ref = undef,
$image_ref_alt = undef,
$image_ssh_user = undef,
$image_alt_ssh_user = undef,
$flavor_ref = undef,
$flavor_ref_alt = undef,
$flavor_name = undef,
$flavor_name_alt = undef,
$compute_build_interval = undef,
$run_ssh = false,
$ssh_key_type = $facts['os_service_default'],
$image_ref = undef,
$image_ref_alt = undef,
$image_ssh_user = undef,
$image_alt_ssh_user = undef,
$flavor_ref = undef,
$flavor_ref_alt = undef,
Optional[String[1]] $flavor_name = undef,
Optional[String[1]] $flavor_name_alt = undef,
$compute_build_interval = undef,
$run_ssh = false,
$ssh_key_type = $facts['os_service_default'],
# testing features that are supported
$resize_available = false,
$use_dynamic_credentials = undef,
$l2gw_switch = undef,
$resize_available = false,
$use_dynamic_credentials = undef,
$l2gw_switch = undef,
# neutron config
$public_network_id = undef,
$public_router_id = undef,
$public_network_id = undef,
$public_router_id = undef,
# Sahara config
$sahara_plugins = undef,
$sahara_plugins = undef,
# Trove config
$db_flavor_ref = undef,
$db_flavor_name = undef,
$db_flavor_ref = undef,
Optional[String[1]] $db_flavor_name = undef,
# Service configuration
$cinder_available = true,
$cinder_backup_available = false,
$glance_available = true,
$heat_available = false,
$ceilometer_available = false,
$aodh_available = false,
$gnocchi_available = false,
$designate_available = false,
$horizon_available = true,
$neutron_available = false,
$neutron_bgpvpn_available = false,
$neutron_l2gw_available = false,
$neutron_vpnaas_available = false,
$neutron_dr_available = false,
$nova_available = true,
$murano_available = false,
$sahara_available = false,
$swift_available = false,
$trove_available = false,
$ironic_available = false,
$ironic_inspector_available = false,
$watcher_available = false,
$zaqar_available = false,
$ec2api_available = false,
$mistral_available = false,
$vitrage_available = false,
$octavia_available = false,
$barbican_available = false,
$manila_available = false,
$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'],
$keystone_v3 = true,
$auth_version = 'v3',
$run_service_broker_tests = false,
$ca_certificates_file = undef,
$disable_ssl_validation = undef,
$manage_tests_packages = false,
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 $designate_available = false,
Boolean $horizon_available = true,
Boolean $neutron_available = false,
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 $murano_available = false,
Boolean $sahara_available = false,
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 $ec2api_available = false,
Boolean $mistral_available = false,
Boolean $vitrage_available = false,
Boolean $octavia_available = false,
Boolean $barbican_available = false,
Boolean $manila_available = false,
$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'],
$keystone_v3 = true,
$auth_version = 'v3',
$run_service_broker_tests = false,
$ca_certificates_file = undef,
$disable_ssl_validation = undef,
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'],
$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'],
$designate_nameservers = $facts['os_service_default'],
# ec2api options
$ec2api_tester_roles = ['Member'],
$aws_ec2_url = $facts['os_service_default'],
$aws_region = $facts['os_service_default'],
$aws_image_id = undef,
$aws_ebs_image_id = undef,
Array[String[1]] $ec2api_tester_roles = ['Member'],
$aws_ec2_url = $facts['os_service_default'],
$aws_region = $facts['os_service_default'],
$aws_image_id = undef,
$aws_ebs_image_id = undef,
# heat options
$heat_image_ref = undef,
$heat_image_name = undef,
$heat_flavor_ref = undef,
$heat_flavor_name = undef,
$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 = 'fake',
$baremetal_enabled_hardware_types = 'ipmi',
$baremetal_driver = 'fake',
$baremetal_enabled_hardware_types = 'ipmi',
# 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'],
$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'],
$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'],
# DEPRECATED PARAMETERS
$glance_v1 = undef,
$glance_v2 = undef,
$glance_v1 = undef,
$glance_v2 = undef,
) {
if $glance_v1 != undef {

View File

@ -62,20 +62,20 @@
# Defaults to '8.8.8.8'
#
class tempest::magnum (
$tempest_config_file = '/var/lib/tempest/etc/tempest.conf',
$provision_image = true,
$image_source = 'https://fedorapeople.org/groups/magnum/fedora-atomic-latest.qcow2',
$image_name = 'fedora-atomic-latest',
$image_os_distro = 'fedora-atomic',
$provision_flavors = true,
$flavor_id = 's1.magnum',
$master_flavor_id = 'm1.magnum',
$provision_keypair = false,
$keypair_id = 'default',
$nic_id = 'public',
$magnum_url = undef,
$copy_logs = true,
$dns_nameserver = '8.8.8.8',
Stdlib::Absolutepath $tempest_config_file = '/var/lib/tempest/etc/tempest.conf',
Boolean $provision_image = true,
String[1] $image_source = 'https://fedorapeople.org/groups/magnum/fedora-atomic-latest.qcow2',
String[1] $image_name = 'fedora-atomic-latest',
String[1] $image_os_distro = 'fedora-atomic',
Boolean $provision_flavors = true,
String[1] $flavor_id = 's1.magnum',
String[1] $master_flavor_id = 'm1.magnum',
Boolean $provision_keypair = false,
$keypair_id = 'default',
$nic_id = 'public',
$magnum_url = undef,
$copy_logs = true,
$dns_nameserver = '8.8.8.8',
) {
include tempest::params

View File

@ -31,7 +31,7 @@ describe 'tempest::magnum' do
params.merge!({
:provision_image => false,
:image_name => 'coreos',
:provision_flavors => 'false',
:provision_flavors => false,
:flavor_id => 's1.tempest',
:master_flavor_id => 'm1.tempest',
:keypair_id => 'magnum',