vagrant-dsc 1.1.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -0
- data/lib/vagrant-dsc/config.rb +23 -19
- data/lib/vagrant-dsc/locales/en.yml +2 -0
- data/lib/vagrant-dsc/provisioner.rb +9 -0
- data/lib/vagrant-dsc/version.rb +1 -1
- data/spec/provisioner/config_spec.rb +12 -11
- data/spec/provisioner/provisioner_spec.rb +14 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 257e8495b08c9b7b2a68472e1645fcc27e2d7b53
|
4
|
+
data.tar.gz: 55e75494825b1d264efa388af9983bbb42967c13
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3e3b4d479b4a3f3c30355fbfbc4faabf0872bc0c21b00f2b1ed95527091b9abdea5d70449cd2d0694875950cec8aa179d127b5a14fd5cbf619bb5bfcf7e5e72
|
7
|
+
data.tar.gz: 1a0a3f4280c3d6d7bddd2d3d615d88b35b74d30712f6ad90672cd20ea1f0f05a2f98fa06a1719eb56fdf4440862bab1a1ed95be0395b0ef7876b5e71814abc17
|
data/README.md
CHANGED
@@ -85,6 +85,11 @@ In your Vagrantfile, add the following plugin and configure to your needs:
|
|
85
85
|
# For example, you can set this to "nfs" to use NFS synced folders.
|
86
86
|
dsc.synced_folder_type = "nfs"
|
87
87
|
|
88
|
+
# Whether to abort the vagrant run if DSC fails.
|
89
|
+
#
|
90
|
+
# By default, this is false.
|
91
|
+
dsc.abort_on_dsc_failure = true
|
92
|
+
|
88
93
|
# Temporary working directory on the guest machine.
|
89
94
|
dsc.temp_dir = "/tmp/vagrant-dsc"
|
90
95
|
end
|
data/lib/vagrant-dsc/config.rb
CHANGED
@@ -74,19 +74,22 @@ module VagrantPlugins
|
|
74
74
|
# Do not override this.
|
75
75
|
attr_accessor :expanded_configuration_data_file
|
76
76
|
|
77
|
+
attr_accessor :abort_on_dsc_failure
|
78
|
+
|
77
79
|
def initialize
|
78
80
|
super
|
79
81
|
|
80
|
-
@configuration_file
|
81
|
-
@configuration_data_file
|
82
|
-
@manifests_path
|
83
|
-
@configuration_name
|
84
|
-
@mof_path
|
85
|
-
@module_path
|
86
|
-
@configuration_params
|
87
|
-
@synced_folder_type
|
88
|
-
@temp_dir
|
89
|
-
@module_install
|
82
|
+
@configuration_file = UNSET_VALUE
|
83
|
+
@configuration_data_file = UNSET_VALUE
|
84
|
+
@manifests_path = UNSET_VALUE
|
85
|
+
@configuration_name = UNSET_VALUE
|
86
|
+
@mof_path = UNSET_VALUE
|
87
|
+
@module_path = UNSET_VALUE
|
88
|
+
@configuration_params = {}
|
89
|
+
@synced_folder_type = UNSET_VALUE
|
90
|
+
@temp_dir = UNSET_VALUE
|
91
|
+
@module_install = UNSET_VALUE
|
92
|
+
@abort_on_dsc_failure = UNSET_VALUE
|
90
93
|
@logger = Log4r::Logger.new("vagrant::vagrant_dsc")
|
91
94
|
end
|
92
95
|
|
@@ -98,15 +101,16 @@ module VagrantPlugins
|
|
98
101
|
super
|
99
102
|
|
100
103
|
# Null checks
|
101
|
-
@configuration_file
|
102
|
-
@configuration_data_file
|
103
|
-
@module_path
|
104
|
-
@synced_folder_type
|
105
|
-
@temp_dir
|
106
|
-
@module_install
|
107
|
-
@mof_path
|
108
|
-
@configuration_name
|
109
|
-
@manifests_path
|
104
|
+
@configuration_file = "default.ps1" if @configuration_file == UNSET_VALUE
|
105
|
+
@configuration_data_file = nil if @configuration_data_file == UNSET_VALUE
|
106
|
+
@module_path = nil if @module_path == UNSET_VALUE
|
107
|
+
@synced_folder_type = nil if @synced_folder_type == UNSET_VALUE
|
108
|
+
@temp_dir = nil if @temp_dir == UNSET_VALUE
|
109
|
+
@module_install = nil if @module_install == UNSET_VALUE
|
110
|
+
@mof_path = nil if @mof_path == UNSET_VALUE
|
111
|
+
@configuration_name = File.basename(@configuration_file, File.extname(@configuration_file)) if @configuration_name == UNSET_VALUE
|
112
|
+
@manifests_path = File.dirname(@configuration_file) if @manifests_path == UNSET_VALUE
|
113
|
+
@abort_on_dsc_failure = false if @abort_on_dsc_failure == UNSET_VALUE
|
110
114
|
|
111
115
|
# Can't supply them both!
|
112
116
|
if (@configuration_file != nil && @mof_path != nil)
|
@@ -42,3 +42,5 @@ en:
|
|
42
42
|
"DSC Status is \"Failure\"."
|
43
43
|
winrm_authorization_error_recover: |-
|
44
44
|
The host terminated the active connection. Try to wait for the completion of DSC.
|
45
|
+
dsc_configuration_failed: |-
|
46
|
+
Executing the DSC failed. Set 'abort_on_dsc_failure' to false to ignore DSC errors.
|
@@ -132,6 +132,7 @@ module VagrantPlugins
|
|
132
132
|
if (get_configuration_status == "Failure")
|
133
133
|
@machine.ui.error(I18n.t("failure_status"))
|
134
134
|
show_dsc_failure_message
|
135
|
+
fail_vagrant_run_if_requested
|
135
136
|
end
|
136
137
|
end
|
137
138
|
|
@@ -157,6 +158,14 @@ module VagrantPlugins
|
|
157
158
|
end
|
158
159
|
end
|
159
160
|
|
161
|
+
def fail_vagrant_run_if_requested
|
162
|
+
if (@config.abort_on_dsc_failure)
|
163
|
+
raise DSCError, :dsc_configuration_failed
|
164
|
+
else
|
165
|
+
@machine.ui.info("DSC execution failed. Set 'abort_on_dsc_failure' to true to make this fail the build.")
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
160
169
|
# Cleanup after a destroy action.
|
161
170
|
#
|
162
171
|
# This is the method called when destroying a machine that allows
|
data/lib/vagrant-dsc/version.rb
CHANGED
@@ -29,17 +29,18 @@ describe VagrantPlugins::DSC::Config do
|
|
29
29
|
|
30
30
|
before { subject.finalize! }
|
31
31
|
|
32
|
-
its("configuration_file")
|
33
|
-
its("configuration_data_file")
|
34
|
-
its("manifests_path")
|
35
|
-
its("configuration_name")
|
36
|
-
its("mof_path")
|
37
|
-
its("module_path")
|
38
|
-
its("options")
|
39
|
-
its("configuration_params")
|
40
|
-
its("synced_folder_type")
|
41
|
-
its("temp_dir")
|
42
|
-
its("working_directory")
|
32
|
+
its("configuration_file") { expect = "default.ps1" }
|
33
|
+
its("configuration_data_file") { expect be_nil }
|
34
|
+
its("manifests_path") { expect = "." }
|
35
|
+
its("configuration_name") { expect = "default" }
|
36
|
+
its("mof_path") { expect be_nil }
|
37
|
+
its("module_path") { expect be_nil }
|
38
|
+
its("options") { expect = [] }
|
39
|
+
its("configuration_params") { expect = {} }
|
40
|
+
its("synced_folder_type") { expect be_nil }
|
41
|
+
its("temp_dir") { expect match /^\/tmp\/vagrant-dsc-*/ }
|
42
|
+
its("working_directory") { expect be_nil }
|
43
|
+
its("abort_on_dsc_failure") { expect be_false }
|
43
44
|
end
|
44
45
|
|
45
46
|
describe "derived settings" do
|
@@ -283,6 +283,20 @@ describe VagrantPlugins::DSC::Provisioner do
|
|
283
283
|
subject.wait_for_dsc_completion
|
284
284
|
end
|
285
285
|
|
286
|
+
it "should throw on failure if requested" do
|
287
|
+
allow_any_instance_of(Object).to receive(:sleep)
|
288
|
+
allow(guest).to receive(:capability?).with(:wait_for_reboot).and_return(true)
|
289
|
+
allow(communicator).to receive(:shell).and_return(shell)
|
290
|
+
allow(guest).to receive(:capability).with(:wait_for_reboot)
|
291
|
+
allow(subject).to receive(:get_lcm_state).and_return("PendingConfiguration")
|
292
|
+
allow(subject).to receive(:get_configuration_status).and_return("Failure")
|
293
|
+
allow(subject).to receive(:get_guest_powershell_version).and_return("5")
|
294
|
+
expect(subject).to receive(:show_dsc_failure_message)
|
295
|
+
allow(root_config).to receive(:abort_on_dsc_failure).and_return(true)
|
296
|
+
|
297
|
+
expect{ subject.wait_for_dsc_completion }.to raise_error(VagrantPlugins::DSC::DSCError)
|
298
|
+
end
|
299
|
+
|
286
300
|
it "should not get the lcm state if powershell version is 4" do
|
287
301
|
allow(guest).to receive(:capability?).with(:wait_for_reboot).and_return(true)
|
288
302
|
allow(communicator).to receive(:shell).and_return(shell)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-dsc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Fellows
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -153,7 +153,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
153
|
version: '0'
|
154
154
|
requirements: []
|
155
155
|
rubyforge_project:
|
156
|
-
rubygems_version: 2.
|
156
|
+
rubygems_version: 2.5.1
|
157
157
|
signing_key:
|
158
158
|
specification_version: 4
|
159
159
|
summary: DSC Provisioner for Vagrant
|