diff options
Diffstat (limited to 'lib/net/ssh/multi/session.rb')
-rw-r--r-- | lib/net/ssh/multi/session.rb | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/lib/net/ssh/multi/session.rb b/lib/net/ssh/multi/session.rb index 4c6e1a0..c7462d6 100644 --- a/lib/net/ssh/multi/session.rb +++ b/lib/net/ssh/multi/session.rb @@ -20,13 +20,13 @@ module Net; module SSH; module Multi # session.via 'gateway', 'gateway-user' # # # define the servers we want to use - # session.use 'host1', 'user1' - # session.use 'host2', 'user2' + # session.use 'user1@host1' + # session.use 'user2@host2' # # # define servers in groups for more granular access # session.group :app do - # session.use 'app1', 'user' - # session.use 'app2', 'user' + # session.use 'user@app1' + # session.use 'user@app2' # end # # # execute commands on all servers @@ -65,6 +65,12 @@ module Net; module SSH; module Multi # :warn if connection errors should cause a warning. attr_accessor :on_error + # The default user name to use when connecting to a server. If a user name + # is not given for a particular server, this value will be used. It defaults + # to ENV['USER'] || ENV['USERNAME'], or "unknown" if neither of those are + # set. + attr_accessor :default_user + # The number of connections that are currently open. attr_reader :open_connections #:nodoc: @@ -92,6 +98,7 @@ module Net; module SSH; module Multi @open_groups = [] @connect_threads = [] @on_error = :fail + @default_user = ENV['USER'] || ENV['USERNAME'] || "unknown" @open_connections = 0 @pending_sessions = [] @@ -171,11 +178,11 @@ module Net; module SSH; module Multi # a different Net::SSH::Gateway instance (or +nil+) with the :via key in # the +options+. # - # session.use 'host', 'user' - # session.use 'host2', 'user2', :via => nil - # session.use 'host3', 'user3', :via => Net::SSH::Gateway.new('gateway.host', 'user') - def use(host, user, options={}) - server = Server.new(self, host, user, {:via => default_gateway}.merge(options)) + # session.use 'host' + # session.use 'user@host2', :via => nil + # session.use 'host3', :user => "user3", :via => Net::SSH::Gateway.new('gateway.host', 'user') + def use(host, options={}) + server = Server.new(self, host, {:via => default_gateway}.merge(options)) exists = servers.index(server) if exists server = servers[exists] |