kitchen-fog 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ # 0.7.2 / 2013-12-20
2
+
3
+ ### New Features
4
+
5
+ * PR [#4][] - Handle get_ip case when no plural address methods on Fog Server class; AWS support (thanks svanderbleek)
6
+
7
+ # 0.7.1 / 2013-10-02
8
+
9
+ ### New Features
10
+
11
+ * PR [#3][] - Back port of server name issue (thanks bkw)
12
+
1
13
  # 0.7.0 / 2013-10-02
2
14
 
3
15
  ### New Features
@@ -147,14 +147,23 @@ module Kitchen
147
147
  pub, priv = server.public_ip_addresses, server.private_ip_addresses
148
148
  rescue Exception => e
149
149
  # See Fog issue: https://github.com/fog/fog/issues/2160
150
- addrs = server.addresses
151
- addrs['public'] and pub = addrs['public'].map { |i| i['addr'] }
152
- addrs['private'] and priv = addrs['private'].map { |i| i['addr'] }
150
+ pub, priv = extract_ips(server)
153
151
  end
154
152
  pub, priv = parse_ips(pub, priv)
155
153
  pub.first || priv.first || raise(ActionFailed, 'Could not find an IP')
156
154
  end
157
155
 
156
+ def extract_ips(server)
157
+ addrs = server.addresses
158
+ if addrs.any?
159
+ addrs['public'] and pub = addrs['public'].map { |i| i['addr'] }
160
+ addrs['private'] and priv = addrs['private'].map { |i| i['addr'] }
161
+ else
162
+ pub, priv = server.public_ip_address, server.private_ip_address
163
+ end
164
+ [pub, priv]
165
+ end
166
+
158
167
  def parse_ips(pub, priv)
159
168
  pub, priv = Array(pub), Array(priv)
160
169
  if config[:use_ipv6]
@@ -19,7 +19,7 @@
19
19
  module Kitchen
20
20
  module Driver
21
21
  # Version string for Fog Kitchen driver
22
- FOG_VERSION = '0.7.1'
22
+ FOG_VERSION = '0.7.2'
23
23
  end
24
24
  end
25
25
 
@@ -387,6 +387,8 @@ describe Kitchen::Driver::Fog do
387
387
  let(:addresses) { nil }
388
388
  let(:public_ip_addresses) { nil }
389
389
  let(:private_ip_addresses) { nil }
390
+ let(:public_ip_address) { nil }
391
+ let(:private_ip_address) { nil }
390
392
  let(:parsed_ips) { [[], []] }
391
393
  let(:driver) do
392
394
  d = Kitchen::Driver::Fog.new(config)
@@ -397,7 +399,10 @@ describe Kitchen::Driver::Fog do
397
399
  let(:server) do
398
400
  double(:addresses => addresses,
399
401
  :public_ip_addresses => public_ip_addresses,
400
- :private_ip_addresses => private_ip_addresses)
402
+ :private_ip_addresses => private_ip_addresses,
403
+ :public_ip_address => public_ip_address,
404
+ :private_ip_address => private_ip_address
405
+ )
401
406
  end
402
407
 
403
408
  context 'both public and private IPs' do
@@ -428,6 +433,32 @@ describe Kitchen::Driver::Fog do
428
433
  end
429
434
  end
430
435
 
436
+ context 'no method for plural addresses' do
437
+ let(:addresses) { [] }
438
+ let(:public_ip_address) { '5.5.5.5' }
439
+ let(:private_ip_address) { '4.4.4.4' }
440
+ let(:parsed_ips) { [[public_ip_address], [private_ip_address]] }
441
+ let(:no_method) { Proc.new { raise NoMethodError } }
442
+
443
+ before do
444
+ allow(server).to receive(:public_ip_addresses).and_return(no_method)
445
+ allow(server).to receive(:private_ip_addresses).and_return(no_method)
446
+ end
447
+
448
+ it 'returns a public IPv4 address' do
449
+ driver.send(:get_ip, server).should eq(public_ip_address)
450
+ end
451
+
452
+ context 'no public IP address' do
453
+ let(:public_ip_address) { nil }
454
+ let(:parsed_ips) { [[], [private_ip_address]] }
455
+
456
+ it 'returns a private IPv4 address' do
457
+ driver.send(:get_ip, server).should eq(private_ip_address)
458
+ end
459
+ end
460
+ end
461
+
431
462
  context 'IPs in user-defined network group' do
432
463
  let(:config) { { :network_name => 'mynetwork' } }
433
464
  let(:addresses) do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-fog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-12-09 00:00:00.000000000 Z
12
+ date: 2013-12-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-kitchen