vagrant-openstack-cloud-provider 1.1.9 → 1.1.10

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: 757087dec480ba560e7fcd2d238842934b5c5084
4
- data.tar.gz: 5a2516fb166f82f322f54f5abbefc8b38adc39c5
3
+ metadata.gz: a0485390c70b7dfaeb04bfd416fecafb72e5d7d1
4
+ data.tar.gz: 0c9f67996fdcfb1ca5b13def83560b9d142b3a70
5
5
  SHA512:
6
- metadata.gz: 65b8aa57e0fb0df88abef0b65f9949b0a9e4e8cf8de267946a3205e250d36b9841ce025e6ed56b292467aa2c35ac168eb67a4ce4a13fcec24e4345e13cfb9517
7
- data.tar.gz: c3f159790ba459a74093074590bd7a31ae22c244f2dfc388aeba6d8f905fb8c4601926c17b4596882f597d8d488bd4cabcfe899ac05232d89897fe64930012d2
6
+ metadata.gz: 15ebcaa621e8b1b07a955d3287e5bcb52844ac18110521a5c65c6ceac91b607d6738a4a4998bfde9f905173717daeae76fad1c16f6c5626256715f6e49020f25
7
+ data.tar.gz: 83f140f1a941a0547ba18c1f5c3bce7581ec6ab51e21e9f8294c5ccd25c92d5a0035d8e5bbf8cffee62601b1852656afa132793aee0dc0133c9f6ed3314240cd
@@ -26,8 +26,11 @@ module VagrantPlugins
26
26
  :openstack_tenant => config.tenant
27
27
  }
28
28
 
29
- env[:openstack_compute] = get_fog_promise('Compute', openstack_options)
30
- env[:openstack_network] = get_fog_promise('Network', openstack_options)
29
+ $openstack_compute ||= get_fog_promise('Compute', openstack_options)
30
+ $openstack_network ||= get_fog_promise('Network', openstack_options)
31
+
32
+ env[:openstack_compute] = $openstack_compute
33
+ env[:openstack_network] = $openstack_network
31
34
 
32
35
  @app.call(env)
33
36
  end
@@ -35,7 +38,7 @@ module VagrantPlugins
35
38
  private
36
39
 
37
40
  def get_fog_promise(service_name, openstack_options)
38
- promise {
41
+ Kernel.promise {
39
42
  @logger.info("Initializing OpenStack #{service_name}...")
40
43
  Fog.const_get(service_name).new(openstack_options)
41
44
  }
@@ -122,10 +122,11 @@ module VagrantPlugins
122
122
 
123
123
  env[:ui].info(I18n.t("vagrant_openstack.active",
124
124
  :elapsed => (Time.now - launch_start_time).floor))
125
-
126
125
  env[:machine].data_dir.join("cached_metadata").open("w+") do |f|
127
126
  f.write(server.to_json)
128
127
  end
128
+ public_ip_address = server.addresses[config.public_network_name].last['addr'] rescue nil
129
+ env[:ui].info("Instance IP address: #{public_ip_address}")
129
130
 
130
131
  unless env[:interrupted]
131
132
  # Clear the line one more time so the progress is removed
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module OpenStack
3
- VERSION = "1.1.9"
3
+ VERSION = "1.1.10"
4
4
  end
5
5
  end
@@ -21,6 +21,11 @@ RSpec.describe VagrantPlugins::OpenStack::Action::ConnectOpenStack do
21
21
  described_class.new(app, nil)
22
22
  }
23
23
 
24
+ after(:each) {
25
+ $openstack_compute = nil
26
+ $openstack_network = nil
27
+ }
28
+
24
29
  it "should new members in env" do
25
30
  expect(app).to receive(:call)
26
31
  expect(machine).to receive(:provider_config).and_return(config)
@@ -47,6 +52,14 @@ RSpec.describe VagrantPlugins::OpenStack::Action::ConnectOpenStack do
47
52
  end
48
53
  end
49
54
 
55
+ it "should memoize the fog call" do
56
+ expect(app).to receive(:call).at_least(:once)
57
+ expect(machine).to receive(:provider_config).at_least(:once).and_return(config)
58
+ env = { :machine => machine }
59
+
60
+ expect(Kernel).to receive(:promise).twice.and_return('TEST') # 1x compute, 1x network
61
+ 10.times { subject.call(env) }
62
+ end
50
63
  end
51
64
  end
52
65
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-openstack-cloud-provider
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.9
4
+ version: 1.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mathieu Mitchell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-24 00:00:00.000000000 Z
11
+ date: 2017-01-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fog