From ee78e9d6e7c0f0b697a65b63b880caa262d1336d Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Wed, 5 Jul 2023 12:04:47 +0900 Subject: [PATCH] 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 --- manifests/init.pp | 280 ++++++++++++++-------------- manifests/magnum.pp | 28 +-- spec/classes/tempest_magnum_spec.rb | 2 +- 3 files changed, 155 insertions(+), 155 deletions(-) diff --git a/manifests/init.pp b/manifests/init.pp index 8f3825db..d4423787 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -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 { diff --git a/manifests/magnum.pp b/manifests/magnum.pp index 2a3a06af..386a1015 100644 --- a/manifests/magnum.pp +++ b/manifests/magnum.pp @@ -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 diff --git a/spec/classes/tempest_magnum_spec.rb b/spec/classes/tempest_magnum_spec.rb index cbb9056c..66ffe80d 100644 --- a/spec/classes/tempest_magnum_spec.rb +++ b/spec/classes/tempest_magnum_spec.rb @@ -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',