Module: Puppet::ResourceApi::Transport

Defined in:
lib/puppet_x/puppetlabs/panos/transport_shim.rb

Overview

Remote target transport API

Class Method Summary collapse

Class Method Details

.connect(name, connection_info) ⇒ Object



226
227
228
229
230
231
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 226

def connect(name, connection_info)
  validate(name, connection_info)
  require "puppet/transport/#{name}"
  class_name = name.split('_').map { |e| e.capitalize }.join
  Puppet::Transport.const_get(class_name).new(get_context(name), wrap_sensitive(name, connection_info))
end

.inject_device(name, transport) ⇒ Object



234
235
236
237
238
239
240
241
242
243
244
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 234

def inject_device(name, transport)
  #:nocov:
  transport_wrapper = Puppet::ResourceApi::Transport::Wrapper.new(name, transport)

  if Puppet::Util::NetworkDevice.respond_to?(:set_device)
    Puppet::Util::NetworkDevice.set_device(name, transport_wrapper)
  else
    Puppet::Util::NetworkDevice.instance_variable_set(:@current, transport_wrapper)
  end
  #:nocov:
end

.listObject

retrieve a Hash of transport schemas, keyed by their name.



220
221
222
223
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 220

def list
  init_transports
  Marshal.load(Marshal.dump(@transports[@environment]))
end

.register(schema) ⇒ Object

Raises:

  • (Puppet::DevError)


199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/puppet_x/puppetlabs/panos/transport_shim.rb', line 199

def register(schema)
  raise Puppet::DevError, 'requires a hash as schema, not `%{other_type}`' % { other_type: schema.class } unless schema.is_a? Hash
  raise Puppet::DevError, 'requires a `:name`' unless schema.key? :name
  raise Puppet::DevError, 'requires `:desc`' unless schema.key? :desc
  raise Puppet::DevError, 'requires `:connection_info`' unless schema.key? :connection_info
  raise Puppet::DevError, '`:connection_info` must be a hash, not `%{other_type}`' % { other_type: schema[:connection_info].class } unless schema[:connection_info].is_a?(Hash)

  init_transports
  unless @transports[@environment][schema[:name]].nil?
    #:nocov:
    raise Puppet::DevError, 'Transport `%{name}` is already registered for `%{environment}`' % {
      name: schema[:name],
      environment: @environment,
    }
    #:nocov:
  end
  @transports[@environment][schema[:name]] = Puppet::ResourceApi::TransportSchemaDef.new(schema)
end