voxpupuli / puppet-zabbix

Puppet module for creating and maintaining zabbix components with puppet.
https://forge.puppet.com/puppet/zabbix
Apache License 2.0
80 stars 228 forks source link

Drop deprecated hiera_hash() #777

Closed XMol closed 1 year ago

XMol commented 3 years ago

Affected Puppet, Ruby, OS and module versions/distributions

How to reproduce (e.g Puppet code you use)

include zabbix::userparameter

What are you seeing

A warning logged by the Puppet master:

Warning: The function 'hiera_hash' is deprecated in favor of using 'lookup'. See https://puppet.com/docs/puppet/5.5/deprecated_language.html\n (file & line not available)

What behaviour did you expect instead

No warning.

Any additional information you'd like to impart

Since this module already demands Puppet to be of version 5.5+ since release '7.0.0', the hiera_hash() in line 34 of userparameter.pp should be replaced by lookup(). E.g. like this:

$_data = lookup('zabbix::userparameter::data', Hash[String[1], Hash[String[1], Scalar]], undef, {})
create_resources('zabbix::userparameters', $_data)

Whether you want to apply any merge behaviour here might be debatable. But in any case, sysadmins may override that in Hiera if needed.

alexjfisher commented 3 years ago

It looks as if hiera_hash was used specifically to get merge behaviour. Since this can now be set in module hiera data lookup_options, I don't think we need to have an explicit call to lookup.

XMol commented 3 years ago

True, lookup() isn't strictly necessary. Though that would be the easiest fix. So far there is no hiera.yaml yet, thus this would be the first use case for it and pre-defined lookup behaviour for this module.