Method: Netconf::SSH#trans_open

Defined in:
lib/net/netconf/ssh.rb

#trans_open(&block) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/net/netconf/ssh.rb', line 24

def trans_open(&block)
  # open a connection to the NETCONF subsystem
  start_args = {}
  start_args[:password] ||= @args[:password]
  start_args[:passphrase] = @args[:passphrase] || nil
  start_args[:port] = @args[:port] || NETCONF_PORT
  start_args.merge!(@args[:ssh_args]) if @args[:ssh_args]

  begin
    @trans[:conn] = Net::SSH.start(@args[:target], @args[:username], start_args)
    @trans[:chan] = @trans[:conn].open_channel do |ch|
      ch.subsystem(NETCONF_SUBSYSTEM)
    end
  rescue Errno::ECONNREFUSED => e
    if self.respond_to? 'trans_on_connect_refused'
      return trans_on_connect_refused(start_args)
    end
    return nil
  end
  @trans[:chan]
end