Sha256: 6a4c91ba167f0c24fbcbe59c7acd90adcfbc0d8cbe229ce25b7b968d244ff3a4

Contents?: true

Size: 1.21 KB

Versions: 9

Compression:

Stored size: 1.21 KB

Contents

# Test whether a given class or definition is defined
require 'puppet/parser/functions'

Puppet::Parser::Functions.newfunction(:ensure_resource,
                                      :type => :statement,
                                      :doc => <<-'ENDOFDOC'
Takes a resource type, title, and a list of attributes that describe a
resource.

    user { 'dan':
      ensure => present,
    }

This example only creates the resource if it does not already exist:

    ensure_resource('user, 'dan', {'ensure' => 'present' })

If the resource already exists but does not match the specified parameters,
this function will attempt to recreate the resource leading to a duplicate
resource definition error.

ENDOFDOC
) do |vals|
  type, title, params = vals
  raise(ArgumentError, 'Must specify a type') unless type
  raise(ArgumentError, 'Must specify a title') unless title
  params ||= {}
  Puppet::Parser::Functions.function(:defined_with_params)
  if function_defined_with_params(["#{type}[#{title}]", params])
    Puppet.debug("Resource #{type}[#{title}] not created b/c it already exists")
  else
    Puppet::Parser::Functions.function(:create_resources)
    function_create_resources([type.capitalize, { title => params }])
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
service_kiosk-0.5.6 provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb
service_kiosk-0.5.5 provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb
service_kiosk-0.5.4 provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb
service_kiosk-0.5.3 provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb
service_kiosk-0.5.2 provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb
service_kiosk-0.5.1 provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb
service_kiosk-0.5.0 provision/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb
puppetmodule-stdlib-4.0.2 lib/puppet/parser/functions/ensure_resource.rb
puppetmodule-stdlib-4.0.1 lib/puppet/parser/functions/ensure_resource.rb