Class: Puppet::Util::TaskHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/util/task_helper.rb

Overview

Sets up the transport for a remote task

Instance Method Summary collapse

Constructor Details

#initialize(transport_name) ⇒ TaskHelper

Returns a new instance of TaskHelper.



6
7
8
9
10
11
12
# File 'lib/puppet/util/task_helper.rb', line 6

def initialize(transport_name)
  @transport_name = transport_name
  @transport = {}

  return unless params.key? '_installdir'
  add_plugin_paths(params['_installdir'])
end

Instance Method Details

#credentialsObject



32
33
34
# File 'lib/puppet/util/task_helper.rb', line 32

def credentials
  @credentials ||= target.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
end

#paramsObject



24
25
26
# File 'lib/puppet/util/task_helper.rb', line 24

def params
  @params ||= JSON.parse(ENV['PARAMS'] || STDIN.read)
end

#targetObject



28
29
30
# File 'lib/puppet/util/task_helper.rb', line 28

def target
  @target ||= params['_target']
end

#transportObject



14
15
16
17
18
19
20
21
22
# File 'lib/puppet/util/task_helper.rb', line 14

def transport
  begin
    require 'puppet/resource_api/transport'
  rescue LoadError
    require 'puppet_x/puppetlabs/panos/transport_shim'
  end

  @transport[@transport_name] ||= Puppet::ResourceApi::Transport.connect(@transport_name, credentials)
end