vagrant-dsc 1.1.2 → 2.0.0
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/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
|