Hi all, PE server version : PE 2019.8.5 Puppet agent version : 6.21.1
Actually i have added profile class which calls hosts class and pass parameters to it .Then its been assigned to individual nodegroup on console . we were facing below 500 error while puppet agent run and that looks like validation of parameter as string . I suspect this could be of Undef parameter validation but not sure what could be rectify this issue . Can someone help me on what could be the error ? Profile class : -------------------- class profile::ldap_hosts () { class { '::hosts': host_entries => { "ldaps1-dev.com.net" => { ensure => 'absent' }, "ldaps2-dev.com.net " => { ensure => 'absent' }, " ldaps3-dev.com.net " => { ensure => 'absent' }, " ldaps4-dev.com.net " => { ensure => 'absent' }, } } } hosts class : # == Class: hosts # # Manage /etc/hosts # class hosts ( $collect_all = false, $enable_ipv4_localhost = true, $enable_ipv6_localhost = false, $enable_fqdn_entry = false, $use_fqdn = true, $fqdn_host_aliases = $::hostname, $localhost_aliases = ['localhost', 'localhost4', 'localhost4.localdomain4'], $localhost6_aliases = ['localhost6', 'localhost6.localdomain6'], $purge_hosts = false, $target = '/etc/hosts', $host_entries = undef, ) { # validate type and convert string to boolean if necessary if is_string($collect_all) { $collect_all_real = str2bool($collect_all) } else { $collect_all_real = $collect_all } # validate type and convert string to boolean if necessary if is_string($enable_ipv4_localhost) { $ipv4_localhost_enabled = str2bool($enable_ipv4_localhost) } else { $ipv4_localhost_enabled = $enable_ipv4_localhost } # validate type and convert string to boolean if necessary if is_string($enable_ipv6_localhost) { $ipv6_localhost_enabled = str2bool($enable_ipv6_localhost) } else { $ipv6_localhost_enabled = $enable_ipv6_localhost } # validate type and convert string to boolean if necessary if is_string($enable_fqdn_entry) { $fqdn_entry_enabled = str2bool($enable_fqdn_entry) } else { $fqdn_entry_enabled = $enable_fqdn_entry } # validate type and convert string to boolean if necessary if is_string($use_fqdn) { $use_fqdn_real = str2bool($use_fqdn) } else { $use_fqdn_real = $use_fqdn } # validate type and convert string to boolean if necessary if is_string($purge_hosts) { $purge_hosts_enabled = str2bool($purge_hosts) } else { $purge_hosts_enabled = $purge_hosts } if $ipv4_localhost_enabled == true { $localhost_ensure = 'present' $localhost_ip = '127.0.0.1' $my_localhost_aliases = $localhost_aliases } else { $localhost_ensure = 'absent' $localhost_ip = '127.0.0.1' $my_localhost_aliases = undef } if $ipv6_localhost_enabled == true { $localhost6_ensure = 'present' $localhost6_ip = '::1' $my_localhost6_aliases = $localhost6_aliases } else { $localhost6_ensure = 'absent' $localhost6_ip = '::1' $my_localhost6_aliases = undef } if !is_string($my_localhost_aliases) and !is_array($my_localhost_aliases) { fail('hosts::localhost_aliases must be a string or an array.') } if !is_string($my_localhost6_aliases) and !is_array($my_localhost6_aliases) { fail('hosts::localhost6_aliases must be a string or an array.') } if $fqdn_entry_enabled == true { $fqdn_ensure = 'present' $my_fqdn_host_aliases = $fqdn_host_aliases $fqdn_ip = $::ipaddress } else { $fqdn_ensure = 'absent' $my_fqdn_host_aliases = [] $fqdn_ip = $::ipaddress } Host { target => $target, } host { 'localhost': ensure => 'absent', } host { 'localhost.localdomain': ensure => $localhost_ensure, host_aliases => $my_localhost_aliases, ip => $localhost_ip, } host { 'localhost6.localdomain6': ensure => $localhost6_ensure, host_aliases => $my_localhost6_aliases, ip => $localhost6_ip, } if $use_fqdn_real == true { @@host { $::fqdn: ensure => $fqdn_ensure, host_aliases => $my_fqdn_host_aliases, ip => $fqdn_ip, } case $collect_all_real { # collect all the exported Host resources true: { Host <<| |>> } # only collect the exported entry above default: { Host <<| title == $::fqdn |>> } } } resources { 'host': purge => $purge_hosts, } if $host_entries != undef { $host_entries_real = delete($host_entries,$::fqdn) validate_hash($host_entries_real) create_resources(host,$host_entries_real) } } Agent error : May 14 08:59:48 dev-server puppet-agent[15635]: Could not retrieve catalog from remote server: Error 500 on SERVER: Server Error: Evaluation Error: Error while evaluating a Resource Statement, Evaluation Error: Error while evaluating a Function Call, hosts::localhost6_aliases must be a string or an array. (file: /etc/puppetlabs/code/environments/production7/modules/hosts/manifests/init.pp, line: 90, column: 5) on node cagmp-sup19b3.cag.dyn.nsroot.net Regards, navenk -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/943fcab1-fb16-48f1-a9ba-97c3cd202402n%40googlegroups.com.