net-ssh-multi 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
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