Class: Bosh::Deployer::RemoteTunnel
- Inherits:
-
Object
- Object
- Bosh::Deployer::RemoteTunnel
- Defined in:
- lib/bosh/deployer/remote_tunnel.rb
Instance Method Summary collapse
- #create(ip, port) ⇒ Object
-
#initialize(ssh_server, wait, logger) ⇒ RemoteTunnel
constructor
A new instance of RemoteTunnel.
Constructor Details
#initialize(ssh_server, wait, logger) ⇒ RemoteTunnel
Returns a new instance of RemoteTunnel.
5 6 7 8 9 |
# File 'lib/bosh/deployer/remote_tunnel.rb', line 5 def initialize(ssh_server, wait, logger) @ssh_server = ssh_server @wait = wait @logger = logger end |
Instance Method Details
#create(ip, port) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/bosh/deployer/remote_tunnel.rb', line 11 def create(ip, port) return if sessions[port] loop until ssh_server.readable?(ip) # sshd is up, sleep while host keys are generated Kernel.sleep(wait) loop do session = ssh_server.start_session(ip) if session sessions[port] = session break end end sessions[port].forward.remote(port, '127.0.0.1', port) logger.info("SSH forwarding for port #{port} started: OK") monitor_session(port) cleanup_at_exit end |