Sha256: ebb39507b536876f364975c9fefc5a037d5d9cd29027ec15e18db0b4938d4bab

Contents?: true

Size: 1.35 KB

Versions: 16

Compression:

Stored size: 1.35 KB

Contents

require 'net/ssh/multi'
require 'pp'
module Mccloud
  module Command
    def server(selection=nil,options=nil)

      puts "Starting server mode"
      trap("INT") { puts "You've hit CTRL-C . Stopping server now"; exit }
      threads = []
      on_selected_machines(selection) do |id,vm|
        threads << Thread.new(id,vm) do |id,vm|
          public_ip_address=vm.instance.public_ip_address
          private_ip_address=vm.instance.private_ip_address
          unless public_ip_address.nil? || private_ip_address.nil?
            ssh_options={ :keys => [ vm.private_key ], :paranoid => false, :keys_only => true}
            Net::SSH.start(public_ip_address, vm.user, ssh_options) do |ssh|
              vm.forwardings.each do |forwarding|
                begin
                  puts "Forwarding remote port #{forwarding.remote} from #{vm.name} to local port #{forwarding.local}"
                  ssh.forward.local(forwarding.local, private_ip_address,forwarding.remote)
                rescue Errno::EACCES
                  puts "  Error - Access denied to forward remote port #{forwarding.remote} from #{vm.name} to local port #{forwarding.local}"
                end
              end
              ssh.loop { true }
            end
          end
        end
      end
      threads.each {|thr| thr.join}
      #puts "and we continue here"
      #sleep 30
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
mccloud-0.1.1 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.28 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.27 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.26 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.25 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.24 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.23 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.22 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.21 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.20 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.19 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.18 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.17 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.16 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.15 lib/mccloud/provider/core/vm/old_server.rb
mccloud-0.0.14 lib/mccloud/provider/core/vm/old_server.rb