Sha256: de1b4e8fac76ec41bd99fc1af110f2840d9a8261347a3c764de4cf72898c6e20

Contents?: true

Size: 1.78 KB

Versions: 44

Compression:

Stored size: 1.78 KB

Contents

# frozen_string_literal: true

Puppet::DataTypes.create_type('Target') do
  begin
    inventory = Puppet.lookup(:bolt_inventory)
    target_implementation_class = inventory.target_implementation_class
  rescue Puppet::Context::UndefinedBindingError
    target_implementation_class = Bolt::Target
  end

  interface <<-PUPPET
    attributes => {
      uri => { type => Optional[String[1]], kind => given_or_derived },
      name => { type => Optional[String[1]] , kind => given_or_derived },
      safe_name => { type =>  Optional[String[1]], kind => given_or_derived },
      target_alias => { type => Optional[Variant[String[1], Array[String[1]]]], kind => given_or_derived },
      config => { type => Optional[Hash[String[1], Data]], kind => given_or_derived },
      vars => { type => Optional[Hash[String[1], Data]], kind => given_or_derived },
      facts => { type => Optional[Hash[String[1], Data]], kind => given_or_derived },
      features => { type => Optional[Array[String[1]]], kind => given_or_derived },
      plugin_hooks => { type => Optional[Hash[String[1], Data]], kind => given_or_derived },
      resources => { type => Optional[Hash[String[1], ResourceInstance]], kind => given_or_derived }
    },
    functions => {
      host => Callable[[], Optional[String]],
      password => Callable[[], Optional[String[1]]],
      port => Callable[[], Optional[Integer]],
      protocol => Callable[[], Optional[String[1]]],
      transport => Callable[[], String[1]],
      transport_config => Callable[[], Hash[String[1], Data]],
      user => Callable[[], Optional[String[1]]]
    }
  PUPPET

  # Needed for Puppet to recognize targets as Puppet objects when deserializing
  target_implementation_class.include(Puppet::Pops::Types::PuppetObject)
  implementation_class target_implementation_class
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
bolt-3.7.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.6.1 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.6.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.5.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.4.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.3.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.1.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.0.1 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-3.0.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.44.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.42.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.40.2 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.40.1 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.38.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.37.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.36.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.35.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.34.0 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.33.2 bolt-modules/boltlib/lib/puppet/datatypes/target.rb
bolt-2.33.1 bolt-modules/boltlib/lib/puppet/datatypes/target.rb