ridley-connectors 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 301f0d55380eefdcc12152a5e943643c67af77aa
4
- data.tar.gz: 5e1f3ac6e959b50a8f62d0ff7e76c0c20ce55c9a
3
+ metadata.gz: 83951fdd4b407da750f1650dda96da6092dc5d87
4
+ data.tar.gz: 6781793e33583fb2a2a0c66803daaa93a3bd6a5b
5
5
  SHA512:
6
- metadata.gz: 4780c2b719f082bc9e4cda5bf8b2154c0f670ce6a78d6c8d27246643e7c8b469642b6e9cdab54f91c8779c6e2073fa84a2fd51705d97a052690259a8a353cd51
7
- data.tar.gz: c732f970be05ea14f0a396e165c5ffad48a81bb6df3914995474064d62e372d639d490e83942fc315efeecfc4130ec220d522efea0ed36eef9e368185ed94214
6
+ metadata.gz: 0e948a143d321f8036a4ca2bdb1c03551082a90f7de15622df2e5cfc70c5937399eb619855a04c43bfbee639ad20f5d62f0781f0479ba7c255e4d97d04e38e85
7
+ data.tar.gz: 80e8ebdc8e53faf8096eb541d291a89813db4914fdb0cfac5b47d12bde0d2ebda245a9d4d9e91a6dcf12facaa81141b62020775f6ddd2e4f1b42078989fb311b
@@ -1,3 +1,7 @@
1
+ ## v.2.1.2
2
+
3
+ * [#25](https://github.com/RiotGames/ridley-connectors/pull/25) Fix an edge case in the connector_for logic from #22
4
+
1
5
  ## v.2.1.1
2
6
 
3
7
  * [#24](https://github.com/RiotGames/ridley-connectors/pull/24) Fix a bug with Timeout.rb unable to interrupt Socket connections (mostly JRuby)
@@ -29,6 +29,8 @@ module Ridley
29
29
  DEFAULT_WINDOWS_CONNECTOR = "winrm"
30
30
  DEFAULT_LINUX_CONNECTOR = "ssh"
31
31
 
32
+ VALID_CONNECTORS = [ DEFAULT_WINDOWS_CONNECTOR, DEFAULT_LINUX_CONNECTOR ]
33
+
32
34
  CONNECTOR_PORT_ERRORS = [
33
35
  Errno::ETIMEDOUT, Timeout::Error, SocketError,
34
36
  Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::EADDRNOTAVAIL,
@@ -216,6 +218,11 @@ module Ridley
216
218
 
217
219
  connector = options[:connector]
218
220
 
221
+ if !VALID_CONNECTORS.include?(connector)
222
+ log.warn { "Received connector '#{connector}' is not one of #{VALID_CONNECTORS}. Checking default connectors..." }
223
+ connector = nil
224
+ end
225
+
219
226
  if (connector == DEFAULT_WINDOWS_CONNECTOR || connector.nil?) && connector_port_open?(host, options[:winrm][:port], options[:winrm][:timeout], options[:retries])
220
227
  options.delete(:ssh)
221
228
  winrm
@@ -1,5 +1,5 @@
1
1
  module Ridley
2
2
  module Connectors
3
- VERSION = "2.1.1"
3
+ VERSION = "2.1.2"
4
4
  end
5
5
  end
@@ -167,6 +167,9 @@ describe Ridley::HostCommander do
167
167
  end
168
168
 
169
169
  describe "#connector_for" do
170
+ let(:options) do
171
+ { ssh: { port: 22, timeout: 3 }, winrm: { port: 5985, timeout: 3 }, retries: 3 }
172
+ end
170
173
 
171
174
  context "when connector_port_open? experiences an error" do
172
175
  let(:socket) { double(close: true) }
@@ -206,40 +209,45 @@ describe Ridley::HostCommander do
206
209
  end
207
210
 
208
211
  context "when a connector of winrm is given" do
209
- let(:options) do
210
- { ssh: { port: 22, timeout: 3 }, winrm: { port: 5985, timeout: 3 }, retries: 3, connector: "winrm" }
211
- end
212
+ let(:connector_options) { options.merge(connector: "winrm") }
212
213
  let(:winrm) { double }
213
214
 
214
215
  it "should return winrm if winrm is open" do
215
216
  subject.stub(:connector_port_open?).with(host, Ridley::HostConnector::WinRM::DEFAULT_PORT, anything, anything).and_return(true)
216
217
  subject.stub(:winrm).and_return(winrm)
217
- expect(subject.connector_for(host, options)).to eql(winrm)
218
+ expect(subject.connector_for(host, connector_options)).to eql(winrm)
218
219
  end
219
220
 
220
221
  it "should return nil if winrm is closed" do
221
222
  subject.stub(:connector_port_open?).with(host, Ridley::HostConnector::WinRM::DEFAULT_PORT, anything, anything).and_return(false)
222
- expect(subject.connector_for(host, options)).to be_nil
223
+ expect(subject.connector_for(host, connector_options)).to be_nil
223
224
  end
224
225
  end
225
226
 
226
227
  context "when a connector of ssh is given" do
227
- let(:options) do
228
- { ssh: { port: 22, timeout: 3 }, winrm: { port: 5985, timeout: 3 }, retries: 3, connector: "ssh" }
229
- end
228
+ let(:connector_options) { options.merge(connector: "ssh") }
230
229
  let(:ssh) { double }
231
230
 
232
231
  it "should return ssh if ssh is open" do
233
232
  subject.stub(:connector_port_open?).with(host, Ridley::HostConnector::SSH::DEFAULT_PORT, anything, anything).and_return(true)
234
233
  subject.stub(:ssh).and_return(ssh)
235
234
  subject.should_not_receive(:connector_port_open?).with(host, Ridley::HostConnector::WinRM::DEFAULT_PORT, anything, anything)
236
- expect(subject.connector_for(host, options)).to eql(ssh)
235
+ expect(subject.connector_for(host, connector_options)).to eql(ssh)
237
236
  end
238
237
 
239
238
  it "should return nil if ssh is closed" do
240
239
  subject.stub(:connector_port_open?).with(host, Ridley::HostConnector::SSH::DEFAULT_PORT, anything, anything).and_return(false)
241
240
  subject.should_not_receive(:connector_port_open?).with(host, Ridley::HostConnector::WinRM::DEFAULT_PORT, anything, anything)
242
- expect(subject.connector_for(host, options)).to be_nil
241
+ expect(subject.connector_for(host, connector_options)).to be_nil
242
+ end
243
+ end
244
+
245
+ context "when an unknown connector is given" do
246
+ let(:connector_options) { options.merge(connector: "foo") }
247
+
248
+ it "should try both connectors" do
249
+ subject.should_receive(:connector_port_open?).twice
250
+ subject.connector_for(host, connector_options)
243
251
  end
244
252
  end
245
253
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ridley-connectors
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Winsor
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-29 00:00:00.000000000 Z
12
+ date: 2014-05-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: celluloid