class Net::SSH::Multi::Subsession

  1. lib/net/ssh/multi/subsession.rb
Parent: Multi

A trivial class for representing a subset of servers. It is used internally for restricting operations to a subset of all defined servers.

subsession = session.with(:app)
subsession.exec("hostname")

Methods

Public Class

  1. new

Public Instance

  1. first
  2. master
  3. servers
  4. slice

Included modules

  1. SessionActions

Attributes

master [R]

The master session that spawned this subsession.

servers [R]

The list of servers that this subsession can operate on.

Public Class methods

new (master, server_list)

Create a new subsession of the given master session, that operates on the given server_list.

[show source]
# File lib/net/ssh/multi/subsession.rb, line 22
def initialize(master, server_list)
  @master  = master
  @servers = server_list.uniq
end

Public Instance methods

first ()

Returns a new subsession that consists of only the first server in the server list of the current subsession. This is just convenience for slice(0):

s1 = subsession.first
[show source]
# File lib/net/ssh/multi/subsession.rb, line 43
def first
  slice(0)
end
slice (*args)

Works as Array#slice, but returns a new subsession consisting of the given slice of servers in this subsession. The new subsession will have the same master session as this subsession does.

s1 = subsession.slice(0)
s2 = subsession.slice(3, -1)
s3 = subsession.slice(1..4)
[show source]
# File lib/net/ssh/multi/subsession.rb, line 34
def slice(*args)
  Subsession.new(master, Array(servers.slice(*args)))
end