Ben Ford wrote: > What you're looking for is the dig() function. > https://puppet.com/docs/puppet/latest/function.html#dig > > $profiles.dig('vpn', 'openvpn', 'instances', 'client') > > On Wed, Jul 11, 2018 at 8:32 AM Helmut Schneider <[email protected]> > wrote: > > > Hello all, > > > > let's assume the following structure in a yaml: > > > > profiles: > > vpn: > > openvpn: > > instances: > > client: > > myclient: > > remote: 'openvpn_host 1194' > > > > I would now like to check if e.g. "client" exists: > > > > if ($profiles['vpn']['openvpn']['instances']['client']) > > > > This works as long as the structure > > > > profiles: > > vpn: > > openvpn: > > instances: > > > > exists and fails if not (because OpenVPN should not be available for > > that client): > > > > Error: Could not retrieve catalog from remote server: Error 500 on > > SERVER: Server Error: Evaluation Error: Operator '[]' is not > > applicable to an Undef Value. at > > /etc/puppetlabs/code/modules/openvpn/manifests/init.pp:17:7 on node > > my_client > > > > Is there a way to check the existence of a hierarchy without > > creating an empty hierarchy or doing something like > > > > if is_hash($profiles) { > > if has_key($profiles, 'vpn') { > > if has_key($profiles['vpn'], 'openvpn') { > > if has_key($profiles['vpn']['openvpn'], 'instances') { > > ...and so on > > } > > } > > } > > } > > > > Thank you!
Great, thanks a lot! -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/xn0lcc1v3t20grw001%40news.gmane.org. For more options, visit https://groups.google.com/d/optout.
