net-ssh-multi 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data.tar.gz.sig CHANGED
Binary file
@@ -1,4 +1,10 @@
1
1
 
2
+ === 1.2.1 / 11 Apr 2015
3
+
4
+ * Fix two problems with :concurrent_connections option (#4) [sersut]
5
+ * Replaced test-unit with minitest [juliandunn]
6
+
7
+
2
8
  === 1.2.0 / 06 Feb 2013
3
9
 
4
10
  * Added public cert. All gem releases are now signed. See INSTALL in readme.
data/Rakefile CHANGED
@@ -26,7 +26,7 @@ begin
26
26
  s.add_dependency 'net-ssh', ">=2.6.5"
27
27
  s.add_dependency 'net-ssh-gateway', ">=1.2.0"
28
28
 
29
- s.add_development_dependency 'test-unit'
29
+ s.add_development_dependency 'minitest'
30
30
  s.add_development_dependency 'mocha'
31
31
 
32
32
  s.license = "MIT"
@@ -140,8 +140,9 @@ module Net; module SSH; module Multi
140
140
 
141
141
  # Returns +true+ if the session has been opened, and the session is currently
142
142
  # busy (as defined by Net::SSH::Connection::Session#busy?).
143
+ # Also returns false if the server has failed to connect.
143
144
  def busy?(include_invisible=false)
144
- session && session.busy?(include_invisible)
145
+ !failed? && session && session.busy?(include_invisible)
145
146
  end
146
147
 
147
148
  # Closes this server's session. If the session has not yet been opened,
@@ -228,4 +229,4 @@ module Net; module SSH; module Multi
228
229
  session.postprocess(listeners & readers, listeners & writers)
229
230
  end
230
231
  end
231
- end; end; end
232
+ end; end; end
@@ -476,7 +476,12 @@ module Net; module SSH; module Multi
476
476
  return connection
477
477
  end
478
478
 
479
- @open_connections += 1
479
+ # Only increment the open_connections count if the connection
480
+ # is not being forced. Incase of a force, it will already be
481
+ # incremented.
482
+ if !force
483
+ @open_connections += 1
484
+ end
480
485
  end
481
486
 
482
487
  begin
@@ -542,6 +547,10 @@ module Net; module SSH; module Multi
542
547
  count = concurrent_connections ? (concurrent_connections - open_connections) : @pending_sessions.length
543
548
  count.times do
544
549
  session = @pending_sessions.pop or break
550
+ # Increment the open_connections count here to prevent
551
+ # creation of connection thread again before that is
552
+ # incremented by the thread.
553
+ @session_mutex.synchronize { @open_connections += 1 }
545
554
  @connect_threads << Thread.new do
546
555
  session.replace_with(next_session(session.server, true))
547
556
  end
@@ -10,7 +10,7 @@ module Net; module SSH; module Multi
10
10
  MINOR = 2
11
11
 
12
12
  # The tiny component of the library's version
13
- TINY = 0
13
+ TINY = 1
14
14
 
15
15
  # The library's version as a Version instance
16
16
  CURRENT = new(MAJOR, MINOR, TINY)
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "net-ssh-multi"
8
- s.version = "1.2.0"
8
+ s.version = "1.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jamis Buck", "Delano Mandelbaum"]
12
12
  s.cert_chain = ["gem-public_cert.pem"]
13
- s.date = "2013-02-06"
13
+ s.date = "2015-04-11"
14
14
  s.description = "Control multiple Net::SSH connections via a single interface."
15
15
  s.email = "net-ssh@solutious.com"
16
16
  s.extra_rdoc_files = [
@@ -47,7 +47,7 @@ Gem::Specification.new do |s|
47
47
  s.licenses = ["MIT"]
48
48
  s.require_paths = ["lib"]
49
49
  s.rubyforge_project = "net-ssh-multi"
50
- s.rubygems_version = "1.8.25"
50
+ s.rubygems_version = "1.8.23"
51
51
  s.signing_key = "/mnt/gem/gem-private_key.pem"
52
52
  s.summary = "Control multiple Net::SSH connections via a single interface."
53
53
 
@@ -57,18 +57,18 @@ Gem::Specification.new do |s|
57
57
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
58
58
  s.add_runtime_dependency(%q<net-ssh>, [">= 2.6.5"])
59
59
  s.add_runtime_dependency(%q<net-ssh-gateway>, [">= 1.2.0"])
60
- s.add_development_dependency(%q<test-unit>, [">= 0"])
60
+ s.add_development_dependency(%q<minitest>, [">= 0"])
61
61
  s.add_development_dependency(%q<mocha>, [">= 0"])
62
62
  else
63
63
  s.add_dependency(%q<net-ssh>, [">= 2.6.5"])
64
64
  s.add_dependency(%q<net-ssh-gateway>, [">= 1.2.0"])
65
- s.add_dependency(%q<test-unit>, [">= 0"])
65
+ s.add_dependency(%q<minitest>, [">= 0"])
66
66
  s.add_dependency(%q<mocha>, [">= 0"])
67
67
  end
68
68
  else
69
69
  s.add_dependency(%q<net-ssh>, [">= 2.6.5"])
70
70
  s.add_dependency(%q<net-ssh-gateway>, [">= 1.2.0"])
71
- s.add_dependency(%q<test-unit>, [">= 0"])
71
+ s.add_dependency(%q<minitest>, [">= 0"])
72
72
  s.add_dependency(%q<mocha>, [">= 0"])
73
73
  end
74
74
  end
@@ -1,7 +1,7 @@
1
1
  require 'common'
2
2
  require 'net/ssh/multi/channel'
3
3
 
4
- class ChannelTest < Test::Unit::TestCase
4
+ class ChannelTest < Minitest::Test
5
5
  def test_each_should_iterate_over_each_component_channel
6
6
  channels = [c1 = mock('channel'), c2 = mock('channel'), c3 = mock('channel')]
7
7
  channel = Net::SSH::Multi::Channel.new(mock('session'), channels)
@@ -149,4 +149,4 @@ class ChannelTest < Test::Unit::TestCase
149
149
  end
150
150
  end
151
151
  end
152
- end
152
+ end
@@ -1,2 +1,9 @@
1
- require 'test/unit'
2
- require 'mocha'
1
+ require 'minitest/autorun'
2
+ require 'mocha/setup'
3
+
4
+ if Minitest.const_defined?('Test')
5
+ # We're on Minitest 5+. Nothing to do here.
6
+ else
7
+ # Minitest 4 doesn't have Minitest::Test yet.
8
+ Minitest::Test = MiniTest::Unit::TestCase
9
+ end
@@ -1,7 +1,7 @@
1
1
  require 'common'
2
2
  require 'net/ssh/multi'
3
3
 
4
- class MultiTest < Test::Unit::TestCase
4
+ class MultiTest < Minitest::Test
5
5
  def test_start_with_block_should_yield_session_and_then_close
6
6
  Net::SSH::Multi::Session.any_instance.expects(:loop)
7
7
  Net::SSH::Multi::Session.any_instance.expects(:close)
@@ -17,4 +17,4 @@ class MultiTest < Test::Unit::TestCase
17
17
  Net::SSH::Multi::Session.any_instance.expects(:close).never
18
18
  assert_instance_of Net::SSH::Multi::Session, Net::SSH::Multi.start
19
19
  end
20
- end
20
+ end
@@ -1,7 +1,7 @@
1
1
  require 'common'
2
2
  require 'net/ssh/multi/server'
3
3
 
4
- class ServerTest < Test::Unit::TestCase
4
+ class ServerTest < Minitest::Test
5
5
  def setup
6
6
  @master = stub('multi-session', :default_user => "bob")
7
7
  end
@@ -50,7 +50,7 @@ class ServerTest < Test::Unit::TestCase
50
50
  s1 = server('user@host1:1234')
51
51
  s2 = server('user@host2:1234')
52
52
  assert !s1.eql?(s2)
53
- assert_not_equal s1.hash, s2.hash
53
+ refute_equal s1.hash, s2.hash
54
54
  assert s1 != s2
55
55
  end
56
56
 
@@ -58,7 +58,7 @@ class ServerTest < Test::Unit::TestCase
58
58
  s1 = server('user@host:1234')
59
59
  s2 = server('user@host:1235')
60
60
  assert !s1.eql?(s2)
61
- assert_not_equal s1.hash, s2.hash
61
+ refute_equal s1.hash, s2.hash
62
62
  assert s1 != s2
63
63
  end
64
64
 
@@ -66,7 +66,7 @@ class ServerTest < Test::Unit::TestCase
66
66
  s1 = server('user1@host:1234')
67
67
  s2 = server('user2@host:1234')
68
68
  assert !s1.eql?(s2)
69
- assert_not_equal s1.hash, s2.hash
69
+ refute_equal s1.hash, s2.hash
70
70
  assert s1 != s2
71
71
  end
72
72
 
@@ -112,7 +112,7 @@ class ServerTest < Test::Unit::TestCase
112
112
  end
113
113
 
114
114
  def test_close_channels_when_session_is_not_open_should_not_do_anything
115
- assert_nothing_raised { server('host').close_channels }
115
+ server('host').close_channels
116
116
  end
117
117
 
118
118
  def test_close_channels_when_session_is_open_should_iterate_over_open_channels_and_close_them
@@ -127,7 +127,7 @@ class ServerTest < Test::Unit::TestCase
127
127
  end
128
128
 
129
129
  def test_close_when_session_is_not_open_should_not_do_anything
130
- assert_nothing_raised { server('host').close }
130
+ server('host').close
131
131
  end
132
132
 
133
133
  def test_close_when_session_is_open_should_close_session
@@ -253,4 +253,4 @@ class ServerTest < Test::Unit::TestCase
253
253
  @master.expects(:next_session).with(server).returns(session)
254
254
  return session
255
255
  end
256
- end
256
+ end
@@ -2,7 +2,7 @@ require 'common'
2
2
  require 'net/ssh/multi/server'
3
3
  require 'net/ssh/multi/session_actions'
4
4
 
5
- class SessionActionsTest < Test::Unit::TestCase
5
+ class SessionActionsTest < Minitest::Test
6
6
  class SessionActionsContainer
7
7
  include Net::SSH::Multi::SessionActions
8
8
 
@@ -125,4 +125,4 @@ class SessionActionsTest < Test::Unit::TestCase
125
125
  assert_equal 127, c[:exit_status]
126
126
  end
127
127
 
128
- end
128
+ end
@@ -1,7 +1,7 @@
1
1
  require 'common'
2
2
  require 'net/ssh/multi/session'
3
3
 
4
- class SessionTest < Test::Unit::TestCase
4
+ class SessionTest < Minitest::Test
5
5
  def setup
6
6
  @session = Net::SSH::Multi::Session.new
7
7
  end
@@ -198,4 +198,4 @@ class SessionTest < Test::Unit::TestCase
198
198
  IO.expects(:select).with([:a, :b, :c], [:a, :c], nil, 5).returns([[:b, :c], [:a, :c]])
199
199
  @session.process(5)
200
200
  end
201
- end
201
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-ssh-multi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -38,7 +38,7 @@ cert_chain:
38
38
  MVhNUThCTTJKejBYb1BhblBlMzU0K2xXd2pwa1JLYkZvdy9aYlFIY0NMQ3Ey
39
39
  NCtONmI2ZwpkZ0tmTkR6d2lEcHFDQT09Ci0tLS0tRU5EIENFUlRJRklDQVRF
40
40
  LS0tLS0K
41
- date: 2013-02-06 00:00:00.000000000 Z
41
+ date: 2015-04-11 00:00:00.000000000 Z
42
42
  dependencies:
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: net-ssh
@@ -73,7 +73,7 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: 1.2.0
75
75
  - !ruby/object:Gem::Dependency
76
- name: test-unit
76
+ name: minitest
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  none: false
79
79
  requirements:
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  version: '0'
158
158
  requirements: []
159
159
  rubyforge_project: net-ssh-multi
160
- rubygems_version: 1.8.25
160
+ rubygems_version: 1.8.23
161
161
  signing_key:
162
162
  specification_version: 3
163
163
  summary: Control multiple Net::SSH connections via a single interface.
metadata.gz.sig CHANGED
Binary file