| Index: modules/adblockplus/manifests/puppet.pp | 
| =================================================================== | 
| --- a/modules/adblockplus/manifests/puppet.pp | 
| +++ b/modules/adblockplus/manifests/puppet.pp | 
| @@ -1,49 +1,51 @@ | 
| # == Class: adblockplus::puppet | 
| # | 
| -# Manage Puppet (https://github.com/puppetlabs/puppet) agent configuration. | 
| +# Manage Puppet (https://github.com/puppetlabs/puppet) resources. | 
| # | 
| # === Parameters: | 
| # | 
| -# [*package*] | 
| -#   Custom parameters for the implicit Package['puppet'] resource. | 
| -# | 
| -# [*service*] | 
| -#   Custom parameters for the Service['puppet'] resource implicitly defined | 
| -#   if Package['puppet'] is ensured to be neither "absent" nor "purged". | 
| +# [*ensure*] | 
| +#   General target policy for Puppet resources, supported values include | 
| +#   "present", "latest", "absent" and "purged". | 
| # | 
| # === Examples: | 
| # | 
| #   class {'adblockplus::puppet': | 
| -#     package => { | 
| -#       'ensure' => 'present', | 
| -#       'name' => 'puppet', | 
| -#     }, | 
| -#     service => { | 
| -#       'ensure' => 'stopped', | 
| -#       'name' => 'puppet', | 
| -#     }, | 
| +#     ensure => 'latest', | 
| #   } | 
| # | 
| class adblockplus::puppet ( | 
| -  $package = hiera('adblockplus::puppet::package', {}), | 
| -  $service = hiera('adblockplus::puppet::service', {}), | 
| +  $ensure = 'present', | 
| ) { | 
|  | 
| # https://forge.puppet.com/puppetlabs/stdlib | 
| include stdlib | 
|  | 
| -  # https://forge.puppet.com/puppetlabs/stdlib#ensure_resource | 
| -  ensure_resource('package', 'puppet', $package) | 
| - | 
| -  # https://forge.puppet.com/puppetlabs/stdlib#getparam | 
| -  if getparam(Package['puppet'], 'ensure') !~ /^(absent|purged)$/ { | 
| +  if $ensure !~ /^(absent|purged)$/ { | 
| +    $ensure_directory = 'directory' | 
| +    $ensure_file = 'file' | 
| +  } | 
| +  else { | 
| +    $ensure_directory = 'absent' | 
| +    $ensure_file = 'absent' | 
| +  } | 
|  | 
| -    ensure_resource('service', 'puppet', merge({ | 
| -      'ensure' => 'stopped', | 
| -      'hasrestart' => true, | 
| -      'hasstatus' => true, | 
| -    }, $service)) | 
| +  # https://tickets.puppetlabs.com/browse/PUP-3655 | 
| +  ensure_resource('file', '/var/lib/puppet/facts.d', { | 
| +    ensure => $ensure_directory, | 
| +    group => 'root', | 
| +    mode => 0755, | 
| +    owner => 'root', | 
| +  }) | 
|  | 
| -    Service['puppet'] <- Package['puppet'] | 
| -  } | 
| +  # http://stackoverflow.com/questions/22816946/ | 
| +  ensure_resource('file', '/var/lib/puppet/facts.d/pup3665', { | 
| +    'content' => "#!/bin/sh\necho 'pup3665=workaround'\n", | 
| +    'ensure' => $ensure_file, | 
| +    'group' => 'root', | 
| +    'mode' => 0755, | 
| +    'owner' => 'root', | 
| +  }) | 
| + | 
| +  File['/var/lib/puppet/facts.d'] -> File['/var/lib/puppet/facts.d/pup3665'] | 
| } | 
|  |