diff --git a/functions/fw_builder_public_ips.pp b/functions/fw_builder_public_ips.pp index 4dc000d9ee4bbb3b1925e7d9047dd796706db659..9b4cc7ec5757c5ac4ea7c2ff94d489cc842306c6 100644 --- a/functions/fw_builder_public_ips.pp +++ b/functions/fw_builder_public_ips.pp @@ -28,29 +28,25 @@ function fw_builder::fw_builder_public_ips( if $facts_fw_conf =~ Undef or $facts_ipsets =~ Undef { $public_ipsets = [] # if public is empty it's seen as empty string - } elsif $facts_fw_conf['public'] =~ String { + } elsif $facts_fw_conf['public'] =~ String or $facts_fw_conf['public'] =~ Undef { + warning('fw_builder public key exists but it\'s empty') $public_ipsets = [] } else { # if public is present and contains some value if 'public' in $facts_fw_conf { - if $facts_fw_conf['public'] =~ Undef { - warning('fw_builder public key exists but it\'s empty') - $public_ipsets = [] - } else { - $facts_fw_conf_public = $facts_fw_conf['public'] + $facts_fw_conf_public = $facts_fw_conf['public'] - # create a list of lists with all the ipsets in public - $unflattened_public_ipsets = $facts_fw_conf_public.map |$app_key, $app_value| { - if 'ipset' in keys($facts_fw_conf_public[$app_key]) { - $facts_fw_conf_public[$app_key]['ipset'] - } + # create a list of lists with all the ipsets in public + $unflattened_public_ipsets = $facts_fw_conf_public.map |$app_key, $app_value| { + if 'ipset' in keys($facts_fw_conf_public[$app_key]) { + $facts_fw_conf_public[$app_key]['ipset'] } - - # flatten the list of list into a list with unique elements, and remove any Undef - $public_ipsets_with_undef = unique(flatten($unflattened_public_ipsets)) - $public_ipsets = $public_ipsets_with_undef.filter |$item| { $item !~ Undef } } + + # flatten the list of list into a list with unique elements, and remove any Undef + $public_ipsets_with_undef = unique(flatten($unflattened_public_ipsets)) + $public_ipsets = $public_ipsets_with_undef.filter |$item| { $item !~ Undef } } else { $public_ipsets = [] }