vagrant-adam 0.3.0a → 0.4.0a
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.
- checksums.yaml +4 -4
- data/features/vagrant-adam/basic_local_file.feature +5 -0
- data/features/vagrant-adam/validations.feature +7 -1
- data/lib/vagrant-adam/action/pre_provision_script.rb +11 -3
- data/lib/vagrant-adam/config.rb +12 -4
- data/lib/vagrant-adam/version.rb +1 -1
- data/spec/unit/vagrant-puppet-install/action/pre_provision_script_spec.rb +18 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05938e38f2d43c0e8c7dc8f65023b43933c2a6f3
|
4
|
+
data.tar.gz: 08a2a3e40f847c6ecbb61a3ea79dfdc243920eb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0141523a6c04ef07a10b88c1628d21f3678660ec4580e5c91d3300f4781b7b2588b129d5f15e85288e41651e1be6de4a366963aee5b5c7f8a3b10f76a219b83
|
7
|
+
data.tar.gz: a322a1a794a4c602a0e981243b0db423bfb7c785c394bd1bc95bb80ea375ec4165586f770929dc288696a12aa24e5d3c7c6d6f2036d25eb83b866089c63f72db
|
@@ -23,3 +23,8 @@ Feature: vagrant-adam local file
|
|
23
23
|
And a shell file 'hello_world_local_file.sh' with content of "echo 'Hello World!'"
|
24
24
|
And the Vagrant box is already running
|
25
25
|
Then the provision output should contain "Hello World"
|
26
|
+
|
27
|
+
Scenario:
|
28
|
+
Given a Vagrantfile with no adam.provision_url
|
29
|
+
When I run `bundle exec vagrant up`
|
30
|
+
Then the exit status should not be 1
|
@@ -10,11 +10,17 @@ Feature: vagrant-adam validations
|
|
10
10
|
Then the exit status should not be 0
|
11
11
|
And the output should contain "The requested URL returned error: 404 Not Found"
|
12
12
|
|
13
|
+
Scenario: raises error if url of file doesnt exist
|
14
|
+
Given a Vagrantfile with a adam.provision_url of "https://@@@@@fakeurl...."
|
15
|
+
When I run `bundle exec vagrant up`
|
16
|
+
Then the exit status should not be 0
|
17
|
+
And the output should contain "'https://@@@@@fakeurl....' is not a valid URL"
|
18
|
+
|
13
19
|
Scenario: raises error if path of file doesnt exist
|
14
20
|
Given a Vagrantfile with a adam.provision_url of "/tmp/foo_bar_baz.sh"
|
15
21
|
When I run `bundle exec vagrant up`
|
16
22
|
Then the exit status should not be 0
|
17
|
-
And the output should contain "
|
23
|
+
And the output should contain "File '/tmp/foo_bar_baz.sh' could not be found."
|
18
24
|
|
19
25
|
Scenario:
|
20
26
|
Given a Vagrantfile with no adam.provision_url
|
@@ -20,9 +20,17 @@ module VagrantPlugins
|
|
20
20
|
|
21
21
|
def call(env)
|
22
22
|
@app.call(env)
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
|
24
|
+
return unless @machine.communicate.ready? && provision_enabled?(env)
|
25
|
+
|
26
|
+
# Perform delayed validation
|
27
|
+
@machine.config.adam.validate!(@machine)
|
28
|
+
|
29
|
+
unless @provision_script.nil?
|
30
|
+
fetch_or_create_pre_provision_script(env)
|
31
|
+
run_provision_script(env)
|
32
|
+
recover(env)
|
33
|
+
end
|
26
34
|
end
|
27
35
|
|
28
36
|
private
|
data/lib/vagrant-adam/config.rb
CHANGED
@@ -21,10 +21,18 @@ module VagrantPlugins
|
|
21
21
|
|
22
22
|
unless @provision_url.nil?
|
23
23
|
unless (valid_uri? @provision_url) || (valid_file? @provision_url)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
unless (valid_uri? @provision_url)
|
25
|
+
msg = <<-EOH
|
26
|
+
'#{ @provision_url }' is not a valid URL
|
27
|
+
EOH
|
28
|
+
errors << msg
|
29
|
+
end
|
30
|
+
unless (valid_file? @provision_url)
|
31
|
+
msg = <<-EOH
|
32
|
+
File '#{ @provision_url }' could not be found.
|
33
|
+
EOH
|
34
|
+
errors << msg
|
35
|
+
end
|
28
36
|
end
|
29
37
|
end
|
30
38
|
|
data/lib/vagrant-adam/version.rb
CHANGED
@@ -13,7 +13,10 @@ describe VagrantPlugins::Adam::Action::PreProvisionScript do
|
|
13
13
|
double('machine').tap { |machine| machine.stub(config: config, communicate: communicate) }
|
14
14
|
end
|
15
15
|
let(:communicate) do
|
16
|
-
double('communicate').tap { |
|
16
|
+
double('communicate').tap { |communicate| communicate.stub(upload: upload, ready?: ready?) }
|
17
|
+
end
|
18
|
+
let(:ready?) do
|
19
|
+
double('ready?')
|
17
20
|
end
|
18
21
|
let(:upload) do
|
19
22
|
double('upload')
|
@@ -25,7 +28,7 @@ describe VagrantPlugins::Adam::Action::PreProvisionScript do
|
|
25
28
|
double('vm').tap { |config| config.stub(guest: 'guest') }
|
26
29
|
end
|
27
30
|
let(:adam) do
|
28
|
-
double('adam').tap { |config| config.stub(:finalize! => true, :provision_url => '/tmp/config.sh') }
|
31
|
+
double('adam').tap { |config| config.stub(:finalize! => true, :provision_url => '/tmp/config.sh', :validate! => true,) }
|
29
32
|
end
|
30
33
|
|
31
34
|
describe '#initialize' do
|
@@ -34,7 +37,7 @@ describe VagrantPlugins::Adam::Action::PreProvisionScript do
|
|
34
37
|
end
|
35
38
|
|
36
39
|
describe '#call' do
|
37
|
-
context 'when called' do
|
40
|
+
context 'when called with config set' do
|
38
41
|
subject(:pre_provision_script) { described_class.new(app, env) }
|
39
42
|
it 'should fetch the script, then run it' do
|
40
43
|
pre_provision_script.should_receive(:fetch_or_create_pre_provision_script).with(env)
|
@@ -42,6 +45,18 @@ describe VagrantPlugins::Adam::Action::PreProvisionScript do
|
|
42
45
|
pre_provision_script.call(env)
|
43
46
|
end
|
44
47
|
end
|
48
|
+
|
49
|
+
context 'when called without config set' do
|
50
|
+
subject(:pre_provision_script) { described_class.new(app, env) }
|
51
|
+
let(:adam) do
|
52
|
+
double('adam').tap { |config| config.stub(:finalize! => true, :provision_url => nil, :validate! => true) }
|
53
|
+
end
|
54
|
+
it 'exit early' do
|
55
|
+
pre_provision_script.should_not_receive(:fetch_or_create_pre_provision_script).with(env)
|
56
|
+
pre_provision_script.should_not_receive(:run_provision_script).with(env)
|
57
|
+
pre_provision_script.call(env)
|
58
|
+
end
|
59
|
+
end
|
45
60
|
end
|
46
61
|
|
47
62
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-adam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0a
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Souter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|