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 # Defaults to true
# #
class tempest( class tempest(
$package_ensure = 'present', $package_ensure = 'present',
$tempest_workspace = '/var/lib/tempest', Stdlib::Absolutepath $tempest_workspace = '/var/lib/tempest',
$install_from_source = true, Boolean $install_from_source = true,
$git_clone = true, Boolean $git_clone = true,
$tempest_config_file = '/var/lib/tempest/etc/tempest.conf', Stdlib::Absolutepath $tempest_config_file = '/var/lib/tempest/etc/tempest.conf',
# Clone config # Clone config
# #
$tempest_repo_uri = 'https://opendev.org/openstack/tempest', $tempest_repo_uri = 'https://opendev.org/openstack/tempest',
$tempest_repo_revision = undef, $tempest_repo_revision = undef,
$tempest_clone_path = '/var/lib/tempest', Stdlib::Absolutepath $tempest_clone_path = '/var/lib/tempest',
$tempest_clone_owner = 'root', $tempest_clone_owner = 'root',
$setup_venv = false, Boolean $setup_venv = false,
# Glance image config # Glance image config
# #
$configure_images = true, Boolean $configure_images = true,
$image_name = undef, Optional[String[1]] $image_name = undef,
$image_name_alt = undef, Optional[String[1]] $image_name_alt = undef,
# Neutron network config # Neutron network config
# #
$configure_networks = true, Boolean $configure_networks = true,
$public_network_name = undef, Optional[String[1]] $public_network_name = undef,
$neutron_api_extensions = $facts['os_service_default'], $neutron_api_extensions = $facts['os_service_default'],
# Horizon dashboard config # Horizon dashboard config
$login_url = undef, $login_url = undef,
$dashboard_url = undef, $dashboard_url = undef,
$disable_dashboard_ssl_validation = undef, $disable_dashboard_ssl_validation = undef,
# tempest.conf parameters # tempest.conf parameters
# #
$identity_uri = undef, $identity_uri = undef,
$identity_uri_v3 = undef, $identity_uri_v3 = undef,
$cli_dir = undef, $cli_dir = undef,
$lock_path = '/var/lib/tempest', $lock_path = '/var/lib/tempest',
$log_file = $facts['os_service_default'], $log_file = $facts['os_service_default'],
$debug = false, $debug = false,
$use_stderr = true, $use_stderr = true,
$use_syslog = false, $use_syslog = false,
$logging_context_format_string = $facts['os_service_default'], $logging_context_format_string = $facts['os_service_default'],
$http_timeout = $facts['os_service_default'], $http_timeout = $facts['os_service_default'],
$attach_encrypted_volume = false, $attach_encrypted_volume = false,
# non admin user # non admin user
$username = undef, $username = undef,
$password = undef, $password = undef,
$project_name = undef, $project_name = undef,
$user_domain_name = $facts['os_service_default'], $user_domain_name = $facts['os_service_default'],
$project_domain_name = $facts['os_service_default'], $project_domain_name = $facts['os_service_default'],
# another non-admin user # another non-admin user
$alt_username = undef, $alt_username = undef,
$alt_password = undef, $alt_password = undef,
$alt_project_name = undef, $alt_project_name = undef,
$alt_user_domain_name = $facts['os_service_default'], $alt_user_domain_name = $facts['os_service_default'],
$alt_project_domain_name = $facts['os_service_default'], $alt_project_domain_name = $facts['os_service_default'],
# admin user # admin user
$admin_username = undef, $admin_username = undef,
$admin_password = undef, $admin_password = undef,
$admin_project_name = undef, $admin_project_name = undef,
$admin_role = undef, $admin_role = undef,
$admin_domain_name = $facts['os_service_default'], $admin_domain_name = $facts['os_service_default'],
$admin_user_domain_name = $facts['os_service_default'], $admin_user_domain_name = $facts['os_service_default'],
$admin_project_domain_name = $facts['os_service_default'], $admin_project_domain_name = $facts['os_service_default'],
$admin_system = $facts['os_service_default'], $admin_system = $facts['os_service_default'],
$default_credentials_domain_name = $facts['os_service_default'], $default_credentials_domain_name = $facts['os_service_default'],
# roles fo the users created by tempest # roles fo the users created by tempest
$tempest_roles = $facts['os_service_default'], $tempest_roles = $facts['os_service_default'],
# image information # image information
$image_ref = undef, $image_ref = undef,
$image_ref_alt = undef, $image_ref_alt = undef,
$image_ssh_user = undef, $image_ssh_user = undef,
$image_alt_ssh_user = undef, $image_alt_ssh_user = undef,
$flavor_ref = undef, $flavor_ref = undef,
$flavor_ref_alt = undef, $flavor_ref_alt = undef,
$flavor_name = undef, Optional[String[1]] $flavor_name = undef,
$flavor_name_alt = undef, Optional[String[1]] $flavor_name_alt = undef,
$compute_build_interval = undef, $compute_build_interval = undef,
$run_ssh = false, $run_ssh = false,
$ssh_key_type = $facts['os_service_default'], $ssh_key_type = $facts['os_service_default'],
# testing features that are supported # testing features that are supported
$resize_available = false, $resize_available = false,
$use_dynamic_credentials = undef, $use_dynamic_credentials = undef,
$l2gw_switch = undef, $l2gw_switch = undef,
# neutron config # neutron config
$public_network_id = undef, $public_network_id = undef,
$public_router_id = undef, $public_router_id = undef,
# Sahara config # Sahara config
$sahara_plugins = undef, $sahara_plugins = undef,
# Trove config # Trove config
$db_flavor_ref = undef, $db_flavor_ref = undef,
$db_flavor_name = undef, Optional[String[1]] $db_flavor_name = undef,
# Service configuration # Service configuration
$cinder_available = true, Boolean $cinder_available = true,
$cinder_backup_available = false, Boolean $cinder_backup_available = false,
$glance_available = true, Boolean $glance_available = true,
$heat_available = false, Boolean $heat_available = false,
$ceilometer_available = false, Boolean $ceilometer_available = false,
$aodh_available = false, Boolean $aodh_available = false,
$gnocchi_available = false, Boolean $gnocchi_available = false,
$designate_available = false, Boolean $designate_available = false,
$horizon_available = true, Boolean $horizon_available = true,
$neutron_available = false, Boolean $neutron_available = false,
$neutron_bgpvpn_available = false, Boolean $neutron_bgpvpn_available = false,
$neutron_l2gw_available = false, Boolean $neutron_l2gw_available = false,
$neutron_vpnaas_available = false, Boolean $neutron_vpnaas_available = false,
$neutron_dr_available = false, Boolean $neutron_dr_available = false,
$nova_available = true, Boolean $nova_available = true,
$murano_available = false, Boolean $murano_available = false,
$sahara_available = false, Boolean $sahara_available = false,
$swift_available = false, Boolean $swift_available = false,
$trove_available = false, Boolean $trove_available = false,
$ironic_available = false, Boolean $ironic_available = false,
$ironic_inspector_available = false, Boolean $ironic_inspector_available = false,
$watcher_available = false, Boolean $watcher_available = false,
$zaqar_available = false, Boolean $zaqar_available = false,
$ec2api_available = false, Boolean $ec2api_available = false,
$mistral_available = false, Boolean $mistral_available = false,
$vitrage_available = false, Boolean $vitrage_available = false,
$octavia_available = false, Boolean $octavia_available = false,
$barbican_available = false, Boolean $barbican_available = false,
$manila_available = false, Boolean $manila_available = false,
$cinder_enforce_scope = $facts['os_service_default'], $cinder_enforce_scope = $facts['os_service_default'],
$glance_enforce_scope = $facts['os_service_default'], $glance_enforce_scope = $facts['os_service_default'],
$keystone_enforce_scope = $facts['os_service_default'], $keystone_enforce_scope = $facts['os_service_default'],
$neutron_enforce_scope = $facts['os_service_default'], $neutron_enforce_scope = $facts['os_service_default'],
$nova_enforce_scope = $facts['os_service_default'], $nova_enforce_scope = $facts['os_service_default'],
$placement_enforce_scope = $facts['os_service_default'], $placement_enforce_scope = $facts['os_service_default'],
$ironic_enforce_scope = $facts['os_service_default'], $ironic_enforce_scope = $facts['os_service_default'],
$ironic_inspector_enforce_scope = $facts['os_service_default'], $ironic_inspector_enforce_scope = $facts['os_service_default'],
$designate_enforce_scope = $facts['os_service_default'], $designate_enforce_scope = $facts['os_service_default'],
$octavia_enforce_scope = $facts['os_service_default'], $octavia_enforce_scope = $facts['os_service_default'],
$manila_enforce_scope = $facts['os_service_default'], $manila_enforce_scope = $facts['os_service_default'],
$keystone_v3 = true, $keystone_v3 = true,
$auth_version = 'v3', $auth_version = 'v3',
$run_service_broker_tests = false, $run_service_broker_tests = false,
$ca_certificates_file = undef, $ca_certificates_file = undef,
$disable_ssl_validation = undef, $disable_ssl_validation = undef,
$manage_tests_packages = false, Boolean $manage_tests_packages = false,
# scenario options # scenario options
$img_file = '/var/lib/tempest/cirros-0.4.0-x86_64-disk.img', $img_file = '/var/lib/tempest/cirros-0.4.0-x86_64-disk.img',
$img_disk_format = $facts['os_service_default'], $img_disk_format = $facts['os_service_default'],
# designate options # designate options
$designate_nameservers = $facts['os_service_default'], $designate_nameservers = $facts['os_service_default'],
# ec2api options # ec2api options
$ec2api_tester_roles = ['Member'], Array[String[1]] $ec2api_tester_roles = ['Member'],
$aws_ec2_url = $facts['os_service_default'], $aws_ec2_url = $facts['os_service_default'],
$aws_region = $facts['os_service_default'], $aws_region = $facts['os_service_default'],
$aws_image_id = undef, $aws_image_id = undef,
$aws_ebs_image_id = undef, $aws_ebs_image_id = undef,
# heat options # heat options
$heat_image_ref = undef, $heat_image_ref = undef,
$heat_image_name = undef, Optional[String[1]] $heat_image_name = undef,
$heat_flavor_ref = undef, $heat_flavor_ref = undef,
$heat_flavor_name = undef, Optional[String[1]] $heat_flavor_name = undef,
# ironic options # ironic options
$baremetal_driver = 'fake', $baremetal_driver = 'fake',
$baremetal_enabled_hardware_types = 'ipmi', $baremetal_enabled_hardware_types = 'ipmi',
# octavia options # octavia options
$load_balancer_member_role = $facts['os_service_default'], $load_balancer_member_role = $facts['os_service_default'],
$load_balancer_admin_role = $facts['os_service_default'], $load_balancer_admin_role = $facts['os_service_default'],
$load_balancer_observer_role = $facts['os_service_default'], $load_balancer_observer_role = $facts['os_service_default'],
$load_balancer_global_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_test_with_noop = $facts['os_service_default'],
# manila options # manila options
$share_multitenancy_enabled = $facts['os_service_default'], $share_multitenancy_enabled = $facts['os_service_default'],
$share_enable_protocols = $facts['os_service_default'], $share_enable_protocols = $facts['os_service_default'],
$share_multi_backend = $facts['os_service_default'], $share_multi_backend = $facts['os_service_default'],
$share_capability_storage_protocol = $facts['os_service_default'], $share_capability_storage_protocol = $facts['os_service_default'],
# DEPRECATED PARAMETERS # DEPRECATED PARAMETERS
$glance_v1 = undef, $glance_v1 = undef,
$glance_v2 = undef, $glance_v2 = undef,
) { ) {
if $glance_v1 != undef { if $glance_v1 != undef {

View File

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

View File

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