chef 11.14.6 → 11.16.0.rc.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/lib/chef/exceptions.rb +2 -0
- data/lib/chef/mixin/windows_architecture_helper.rb +16 -0
- data/lib/chef/provider/dsc_script.rb +148 -0
- data/lib/chef/providers.rb +1 -0
- data/lib/chef/resource/dsc_script.rb +123 -0
- data/lib/chef/resources.rb +1 -0
- data/lib/chef/util/dsc/configuration_generator.rb +115 -0
- data/lib/chef/util/dsc/lcm_output_parser.rb +178 -0
- data/lib/chef/util/dsc/local_configuration_manager.rb +137 -0
- data/lib/chef/util/dsc/resource_info.rb +26 -0
- data/lib/chef/util/path_helper.rb +2 -2
- data/lib/chef/util/powershell/cmdlet.rb +136 -0
- data/lib/chef/util/powershell/cmdlet_result.rb +46 -0
- data/lib/chef/version.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +336 -0
- data/spec/functional/resource/group_spec.rb +5 -1
- data/spec/functional/util/powershell/cmdlet_spec.rb +114 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/support/platform_helpers.rb +24 -0
- data/spec/unit/provider/dsc_script_spec.rb +141 -0
- data/spec/unit/resource/dsc_script_spec.rb +94 -0
- data/spec/unit/util/dsc/configuration_generator_spec.rb +173 -0
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +178 -0
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +134 -0
- data/spec/unit/util/powershell/cmdlet_spec.rb +106 -0
- metadata +77 -61
@@ -0,0 +1,178 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Bryan McLellan <btm@loftninjas.org>
|
3
|
+
# Copyright:: Copyright (c) 2014 Chef Software, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'chef/util/dsc/lcm_output_parser'
|
20
|
+
|
21
|
+
describe Chef::Util::DSC::LocalConfigurationManager::Parser do
|
22
|
+
context 'empty input parameter' do
|
23
|
+
it 'returns an empty array for a 0 length string' do
|
24
|
+
Chef::Util::DSC::LocalConfigurationManager::Parser::parse('').should be_empty
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'returns an empty array for a nil input' do
|
28
|
+
Chef::Util::DSC::LocalConfigurationManager::Parser::parse('').should be_empty
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
context 'correctly formatted output from lcm' do
|
33
|
+
it 'returns an empty array for a log with no resources' do
|
34
|
+
str = <<EOF
|
35
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
36
|
+
logtype: [machinename]: LCM: [ End Set ]
|
37
|
+
EOF
|
38
|
+
Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str).should be_empty
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'returns a single resource when only 1 logged with the correct name' do
|
42
|
+
str = <<EOF
|
43
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
44
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
45
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
46
|
+
logtype: [machinename]: LCM: [ End Set ]
|
47
|
+
EOF
|
48
|
+
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
49
|
+
resources.length.should eq(1)
|
50
|
+
resources[0].name.should eq('[name]')
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'identifies when a resource changes the state of the system' do
|
54
|
+
str = <<EOF
|
55
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
56
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
57
|
+
logtype: [machinename]: LCM: [ Start Set ] [name]
|
58
|
+
logtype: [machinename]: LCM: [ End Set ] [name]
|
59
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
60
|
+
logtype: [machinename]: LCM: [ End Set ]
|
61
|
+
EOF
|
62
|
+
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
63
|
+
resources[0].changes_state?.should be_true
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'preserves the log provided for how the system changed the state' do
|
67
|
+
str = <<EOF
|
68
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
69
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
70
|
+
logtype: [machinename]: LCM: [ Start Set ] [name]
|
71
|
+
logtype: [machinename]: [message]
|
72
|
+
logtype: [machinename]: LCM: [ End Set ] [name]
|
73
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
74
|
+
logtype: [machinename]: LCM: [ End Set ]
|
75
|
+
EOF
|
76
|
+
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
77
|
+
resources[0].change_log.should match_array(["[name]","[message]","[name]"])
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should return false for changes_state?' do
|
81
|
+
str = <<EOF
|
82
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
83
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
84
|
+
logtype: [machinename]: LCM: [ Skip Set ] [name]
|
85
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
86
|
+
logtype: [machinename]: LCM: [ End Set ]
|
87
|
+
EOF
|
88
|
+
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
89
|
+
resources[0].changes_state?.should be_false
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should return an empty array for change_log if changes_state? is false' do
|
93
|
+
str = <<EOF
|
94
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
95
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
96
|
+
logtype: [machinename]: LCM: [ Skip Set ] [name]
|
97
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
98
|
+
logtype: [machinename]: LCM: [ End Set ]
|
99
|
+
EOF
|
100
|
+
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
101
|
+
resources[0].change_log.should be_empty
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'Incorrectly formatted output from LCM' do
|
106
|
+
it 'should raise an exception if a set is found inside a test' do
|
107
|
+
str = <<EOF
|
108
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
109
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
110
|
+
logtype: [machinename]: LCM: [ Start Test ]
|
111
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
112
|
+
logtype: [machinename]: LCM: [ End Set ]
|
113
|
+
logtype: [machinename]: LCM: [ End Test ]
|
114
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
115
|
+
logtype: [machinename]: LCM: [ End Set ]
|
116
|
+
EOF
|
117
|
+
expect { Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str) }.to(raise_error(
|
118
|
+
Chef::Util::DSC::LocalConfigurationManager::Parser::ParseException))
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should raise an exception if a test is found inside a test' do
|
122
|
+
str = <<EOF
|
123
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
124
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
125
|
+
logtype: [machinename]: LCM: [ Start Test ]
|
126
|
+
logtype: [machinename]: LCM: [ Start Test ]
|
127
|
+
logtype: [machinename]: LCM: [ End Test ]
|
128
|
+
logtype: [machinename]: LCM: [ End Test ]
|
129
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
130
|
+
logtype: [machinename]: LCM: [ End Set ]
|
131
|
+
EOF
|
132
|
+
expect { Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str) }.to(raise_error(
|
133
|
+
Chef::Util::DSC::LocalConfigurationManager::Parser::ParseException))
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'should allow missing a [End Resource] when its the last one and still find all the resource' do
|
137
|
+
str = <<-EOF
|
138
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
139
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
140
|
+
logtype: [machinename]: LCM: [ Start Test ]
|
141
|
+
logtype: [machinename]: LCM: [ End Test ]
|
142
|
+
logtype: [machinename]: LCM: [ Skip Set ]
|
143
|
+
logtype: [machinename]: LCM: [ End Resource ]
|
144
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name2]
|
145
|
+
logtype: [machinename]: LCM: [ Start Test ]
|
146
|
+
logtype: [machinename]: LCM: [ End Test ]
|
147
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
148
|
+
logtype: [machinename]: LCM: [ End Set ]
|
149
|
+
logtype: [machinename]: LCM: [ End Set ]
|
150
|
+
EOF
|
151
|
+
|
152
|
+
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
153
|
+
resources[0].changes_state?.should be_false
|
154
|
+
resources[1].changes_state?.should be_true
|
155
|
+
end
|
156
|
+
|
157
|
+
it 'should allow missing a [End Resource] when its the first one and still find all the resource' do
|
158
|
+
str = <<-EOF
|
159
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
160
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
161
|
+
logtype: [machinename]: LCM: [ Start Test ]
|
162
|
+
logtype: [machinename]: LCM: [ End Test ]
|
163
|
+
logtype: [machinename]: LCM: [ Skip Set ]
|
164
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name2]
|
165
|
+
logtype: [machinename]: LCM: [ Start Test ]
|
166
|
+
logtype: [machinename]: LCM: [ End Test ]
|
167
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
168
|
+
logtype: [machinename]: LCM: [ End Set ]
|
169
|
+
logtype: [machinename]: LCM: [ End Resource ]
|
170
|
+
logtype: [machinename]: LCM: [ End Set ]
|
171
|
+
EOF
|
172
|
+
|
173
|
+
resources = Chef::Util::DSC::LocalConfigurationManager::Parser::parse(str)
|
174
|
+
resources[0].changes_state?.should be_false
|
175
|
+
resources[1].changes_state?.should be_true
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Adam Edwards <adamed@getchef.com>
|
3
|
+
# Copyright:: Copyright (c) 2014 Chef Software, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'chef'
|
20
|
+
require 'chef/util/dsc/local_configuration_manager'
|
21
|
+
|
22
|
+
describe Chef::Util::DSC::LocalConfigurationManager do
|
23
|
+
|
24
|
+
let(:lcm) { Chef::Util::DSC::LocalConfigurationManager.new(nil, 'tmp') }
|
25
|
+
|
26
|
+
let(:normal_lcm_output) { <<-EOH
|
27
|
+
logtype: [machinename]: LCM: [ Start Set ]
|
28
|
+
logtype: [machinename]: LCM: [ Start Resource ] [name]
|
29
|
+
logtype: [machinename]: LCM: [ End Resource ] [name]
|
30
|
+
logtype: [machinename]: LCM: [ End Set ]
|
31
|
+
EOH
|
32
|
+
}
|
33
|
+
|
34
|
+
let(:no_whatif_lcm_output) { <<-EOH
|
35
|
+
Start-DscConfiguration : A parameter cannot be found that matches parameter name 'whatif'.
|
36
|
+
At line:1 char:123
|
37
|
+
+ run-somecommand -whatif
|
38
|
+
+ ~~~~~~~~
|
39
|
+
+ CategoryInfo : InvalidArgument: (:) [Start-DscConfiguration], ParameterBindingException
|
40
|
+
+ FullyQualifiedErrorId : NamedParameterNotFound,SomeCompany.SomeAssembly.Commands.RunSomeCommand
|
41
|
+
EOH
|
42
|
+
}
|
43
|
+
|
44
|
+
let(:dsc_resource_import_failure_output) { <<-EOH
|
45
|
+
PowerShell provider MSFT_xWebsite failed to execute Test-TargetResource functionality with error message: Please ensure that WebAdministration module is installed. + CategoryInfo : InvalidOperation: (:) [], CimException + FullyQualifiedErrorId : ProviderOperationExecutionFailure + PSComputerName : . PowerShell provider MSFT_xWebsite failed to execute Test-TargetResource functionality with error message: Please ensure that WebAdministration module is installed. + CategoryInfo : InvalidOperation: (:) [], CimException + FullyQualifiedErrorId : ProviderOperationExecutionFailure + PSComputerName : . The SendConfigurationApply function did not succeed. + CategoryInfo : NotSpecified: (root/Microsoft/...gurationManager:String) [], CimException + FullyQualifiedErrorId : MI RESULT 1 + PSComputerName : .
|
46
|
+
EOH
|
47
|
+
}
|
48
|
+
|
49
|
+
let(:lcm_status) {
|
50
|
+
double("LCM cmdlet status", :stderr => lcm_standard_error, :return_value => lcm_standard_output, :succeeded? => lcm_cmdlet_success)
|
51
|
+
}
|
52
|
+
|
53
|
+
describe 'test_configuration method invocation' do
|
54
|
+
context 'when interacting with the LCM using a PowerShell cmdlet' do
|
55
|
+
before(:each) do
|
56
|
+
allow(lcm).to receive(:run_configuration_cmdlet).and_return(lcm_status)
|
57
|
+
end
|
58
|
+
context 'that returns successfully' do
|
59
|
+
before(:each) do
|
60
|
+
allow(lcm).to receive(:run_configuration_cmdlet).and_return(lcm_status)
|
61
|
+
end
|
62
|
+
|
63
|
+
let(:lcm_standard_output) { normal_lcm_output }
|
64
|
+
let(:lcm_standard_error) { nil }
|
65
|
+
let(:lcm_cmdlet_success) { true }
|
66
|
+
|
67
|
+
it 'should successfully return resource information for normally formatted output when cmdlet the cmdlet succeeds' do
|
68
|
+
test_configuration_result = lcm.test_configuration('config')
|
69
|
+
expect(test_configuration_result.class).to be(Array)
|
70
|
+
expect(test_configuration_result.length).to be > 0
|
71
|
+
expect(Chef::Log).not_to receive(:warn)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context 'that fails due to missing what-if switch in DSC resource cmdlet implementation' do
|
76
|
+
let(:lcm_standard_output) { '' }
|
77
|
+
let(:lcm_standard_error) { no_whatif_lcm_output }
|
78
|
+
let(:lcm_cmdlet_success) { false }
|
79
|
+
|
80
|
+
it 'should should return a (possibly empty) array of ResourceInfo instances' do
|
81
|
+
expect(Chef::Log).to receive(:warn)
|
82
|
+
test_configuration_result = nil
|
83
|
+
expect {test_configuration_result = lcm.test_configuration('config')}.not_to raise_error
|
84
|
+
expect(test_configuration_result.class).to be(Array)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context 'that fails due to a DSC resource not being imported before StartDSCConfiguration -whatif is executed' do
|
89
|
+
let(:lcm_standard_output) { '' }
|
90
|
+
let(:lcm_standard_error) { dsc_resource_import_failure_output }
|
91
|
+
let(:lcm_cmdlet_success) { false }
|
92
|
+
|
93
|
+
it 'should log a warning if the message is formatted as expected when a resource import failure occurs' do
|
94
|
+
expect(Chef::Log).to receive(:warn)
|
95
|
+
expect(lcm).to receive(:output_has_dsc_module_failure?).and_call_original
|
96
|
+
test_configuration_result = nil
|
97
|
+
expect {test_configuration_result = lcm.test_configuration('config')}.not_to raise_error
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'should return a (possibly empty) array of ResourceInfo instances' do
|
101
|
+
expect(Chef::Log).to receive(:warn)
|
102
|
+
test_configuration_result = nil
|
103
|
+
expect {test_configuration_result = lcm.test_configuration('config')}.not_to raise_error
|
104
|
+
expect(test_configuration_result.class).to be(Array)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context 'that fails due to an PowerShell cmdlet error that cannot be handled' do
|
109
|
+
let(:lcm_standard_output) { 'some output' }
|
110
|
+
let(:lcm_standard_error) { 'Abort, Retry, Fail?' }
|
111
|
+
let(:lcm_cmdlet_success) { false }
|
112
|
+
|
113
|
+
it 'should raise a Chef::Exceptions::PowershellCmdletException' do
|
114
|
+
expect(Chef::Log).not_to receive(:warn)
|
115
|
+
expect(lcm).to receive(:output_has_dsc_module_failure?).and_call_original
|
116
|
+
expect {lcm.test_configuration('config')}.to raise_error(Chef::Exceptions::PowershellCmdletException)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'should identify a correctly formatted error message as a resource import failure' do
|
122
|
+
expect(lcm.send(:output_has_dsc_module_failure?, dsc_resource_import_failure_output)).to be(true)
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'should not identify an incorrectly formatted error message as a resource import failure' do
|
126
|
+
expect(lcm.send(:output_has_dsc_module_failure?, dsc_resource_import_failure_output.gsub('module', 'gibberish'))).to be(false)
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'should not identify a message without a CimException reference as a resource import failure' do
|
130
|
+
expect(lcm.send(:output_has_dsc_module_failure?, dsc_resource_import_failure_output.gsub('CimException', 'ArgumentException'))).to be(false)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
@@ -0,0 +1,106 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Jay Mundrawala <jdm@getchef.com>
|
3
|
+
# Copyright:: Copyright (c) 2014 Chef Software, Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require 'chef'
|
20
|
+
require 'chef/util/powershell/cmdlet'
|
21
|
+
|
22
|
+
describe Chef::Util::Powershell::Cmdlet do
|
23
|
+
before (:all) do
|
24
|
+
@node = Chef::Node.new
|
25
|
+
@cmdlet = Chef::Util::Powershell::Cmdlet.new(@node, 'Some-Commandlet')
|
26
|
+
end
|
27
|
+
|
28
|
+
describe '#validate_switch_name!' do
|
29
|
+
it 'should not raise an error if a name contains all upper case letters' do
|
30
|
+
@cmdlet.send(:validate_switch_name!, "HELLO")
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should not raise an error if the name contains all lower case letters' do
|
34
|
+
@cmdlet.send(:validate_switch_name!, "hello")
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should not raise an error if no special characters are used except _' do
|
38
|
+
@cmdlet.send(:validate_switch_name!, "hello_world")
|
39
|
+
end
|
40
|
+
|
41
|
+
%w{! @ # $ % ^ & * & * ( ) - = + \{ \} . ? < > \\ /}.each do |sym|
|
42
|
+
it "raises an Argument error if it configuration name contains #{sym}" do
|
43
|
+
expect {
|
44
|
+
@cmdlet.send(:validate_switch_name!, "Hello#{sym}")
|
45
|
+
}.to raise_error(ArgumentError)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#escape_parameter_value' do
|
51
|
+
# Is this list really complete?
|
52
|
+
%w{` " # '}.each do |c|
|
53
|
+
it "escapse #{c}" do
|
54
|
+
@cmdlet.send(:escape_parameter_value, "stuff #{c}").should eql("stuff `#{c}")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'does not do anything to a string without special characters' do
|
59
|
+
@cmdlet.send(:escape_parameter_value, 'stuff').should eql('stuff')
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe '#escape_string_parameter_value' do
|
64
|
+
it "surrounds a string with ''" do
|
65
|
+
@cmdlet.send(:escape_string_parameter_value, 'stuff').should eql("'stuff'")
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe '#command_switches_string' do
|
70
|
+
it 'raises an ArgumentError if the key is not a symbol' do
|
71
|
+
expect {
|
72
|
+
@cmdlet.send(:command_switches_string, {'foo' => 'bar'})
|
73
|
+
}.to raise_error(ArgumentError)
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'does not allow invalid switch names' do
|
77
|
+
expect {
|
78
|
+
@cmdlet.send(:command_switches_string, {:foo! => 'bar'})
|
79
|
+
}.to raise_error(ArgumentError)
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'ignores switches with a false value' do
|
83
|
+
@cmdlet.send(:command_switches_string, {:foo => false}).should eql('')
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'should correctly handle a value type of string' do
|
87
|
+
@cmdlet.send(:command_switches_string, {:foo => 'bar'}).should eql("-foo 'bar'")
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'should correctly handle a value type of string even when it is 0 length' do
|
91
|
+
@cmdlet.send(:command_switches_string, {:foo => ''}).should eql("-foo ''")
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'should not quote integers' do
|
95
|
+
@cmdlet.send(:command_switches_string, {:foo => 1}).should eql("-foo 1")
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should not quote floats' do
|
99
|
+
@cmdlet.send(:command_switches_string, {:foo => 1.0}).should eql("-foo 1.0")
|
100
|
+
end
|
101
|
+
|
102
|
+
it 'has just the switch when the value is true' do
|
103
|
+
@cmdlet.send(:command_switches_string, {:foo => true}).should eql("-foo")
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
metadata
CHANGED
@@ -1,359 +1,359 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 11.
|
4
|
+
version: 11.16.0.rc.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Jacob
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-config
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mixlib-cli
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mixlib-log
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.3'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.3'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: mixlib-authentication
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.3'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: mixlib-shellout
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '1.4'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.4'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: ohai
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 7.4.0.rc.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 7.4.0.rc.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rest-client
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 1.0.4
|
104
|
-
- -
|
104
|
+
- - <=
|
105
105
|
- !ruby/object:Gem::Version
|
106
106
|
version: 1.6.7
|
107
107
|
type: :runtime
|
108
108
|
prerelease: false
|
109
109
|
version_requirements: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- -
|
111
|
+
- - '>='
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: 1.0.4
|
114
|
-
- -
|
114
|
+
- - <=
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: 1.6.7
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
118
|
name: mime-types
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
|
-
- -
|
121
|
+
- - ~>
|
122
122
|
- !ruby/object:Gem::Version
|
123
123
|
version: '1.16'
|
124
124
|
type: :runtime
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
|
-
- -
|
128
|
+
- - ~>
|
129
129
|
- !ruby/object:Gem::Version
|
130
130
|
version: '1.16'
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: ffi-yajl
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
|
-
- -
|
135
|
+
- - ~>
|
136
136
|
- !ruby/object:Gem::Version
|
137
137
|
version: '1.0'
|
138
138
|
type: :runtime
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
- -
|
142
|
+
- - ~>
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '1.0'
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: net-ssh
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- -
|
149
|
+
- - ~>
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '2.6'
|
152
152
|
type: :runtime
|
153
153
|
prerelease: false
|
154
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
|
-
- -
|
156
|
+
- - ~>
|
157
157
|
- !ruby/object:Gem::Version
|
158
158
|
version: '2.6'
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
160
|
name: net-ssh-multi
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
|
-
- -
|
163
|
+
- - ~>
|
164
164
|
- !ruby/object:Gem::Version
|
165
165
|
version: '1.1'
|
166
166
|
type: :runtime
|
167
167
|
prerelease: false
|
168
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
|
-
- -
|
170
|
+
- - ~>
|
171
171
|
- !ruby/object:Gem::Version
|
172
172
|
version: '1.1'
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
174
|
name: highline
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
176
176
|
requirements:
|
177
|
-
- -
|
177
|
+
- - ~>
|
178
178
|
- !ruby/object:Gem::Version
|
179
179
|
version: '1.6'
|
180
|
-
- -
|
180
|
+
- - '>='
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: 1.6.9
|
183
183
|
type: :runtime
|
184
184
|
prerelease: false
|
185
185
|
version_requirements: !ruby/object:Gem::Requirement
|
186
186
|
requirements:
|
187
|
-
- -
|
187
|
+
- - ~>
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '1.6'
|
190
|
-
- -
|
190
|
+
- - '>='
|
191
191
|
- !ruby/object:Gem::Version
|
192
192
|
version: 1.6.9
|
193
193
|
- !ruby/object:Gem::Dependency
|
194
194
|
name: erubis
|
195
195
|
requirement: !ruby/object:Gem::Requirement
|
196
196
|
requirements:
|
197
|
-
- -
|
197
|
+
- - ~>
|
198
198
|
- !ruby/object:Gem::Version
|
199
199
|
version: '2.7'
|
200
200
|
type: :runtime
|
201
201
|
prerelease: false
|
202
202
|
version_requirements: !ruby/object:Gem::Requirement
|
203
203
|
requirements:
|
204
|
-
- -
|
204
|
+
- - ~>
|
205
205
|
- !ruby/object:Gem::Version
|
206
206
|
version: '2.7'
|
207
207
|
- !ruby/object:Gem::Dependency
|
208
208
|
name: diff-lcs
|
209
209
|
requirement: !ruby/object:Gem::Requirement
|
210
210
|
requirements:
|
211
|
-
- -
|
211
|
+
- - ~>
|
212
212
|
- !ruby/object:Gem::Version
|
213
213
|
version: '1.2'
|
214
|
-
- -
|
214
|
+
- - '>='
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: 1.2.4
|
217
217
|
type: :runtime
|
218
218
|
prerelease: false
|
219
219
|
version_requirements: !ruby/object:Gem::Requirement
|
220
220
|
requirements:
|
221
|
-
- -
|
221
|
+
- - ~>
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '1.2'
|
224
|
-
- -
|
224
|
+
- - '>='
|
225
225
|
- !ruby/object:Gem::Version
|
226
226
|
version: 1.2.4
|
227
227
|
- !ruby/object:Gem::Dependency
|
228
228
|
name: chef-zero
|
229
229
|
requirement: !ruby/object:Gem::Requirement
|
230
230
|
requirements:
|
231
|
-
- -
|
231
|
+
- - ~>
|
232
232
|
- !ruby/object:Gem::Version
|
233
233
|
version: '2.1'
|
234
|
-
- -
|
234
|
+
- - '>='
|
235
235
|
- !ruby/object:Gem::Version
|
236
236
|
version: 2.1.4
|
237
237
|
type: :runtime
|
238
238
|
prerelease: false
|
239
239
|
version_requirements: !ruby/object:Gem::Requirement
|
240
240
|
requirements:
|
241
|
-
- -
|
241
|
+
- - ~>
|
242
242
|
- !ruby/object:Gem::Version
|
243
243
|
version: '2.1'
|
244
|
-
- -
|
244
|
+
- - '>='
|
245
245
|
- !ruby/object:Gem::Version
|
246
246
|
version: 2.1.4
|
247
247
|
- !ruby/object:Gem::Dependency
|
248
248
|
name: pry
|
249
249
|
requirement: !ruby/object:Gem::Requirement
|
250
250
|
requirements:
|
251
|
-
- -
|
251
|
+
- - ~>
|
252
252
|
- !ruby/object:Gem::Version
|
253
253
|
version: '0.9'
|
254
254
|
type: :runtime
|
255
255
|
prerelease: false
|
256
256
|
version_requirements: !ruby/object:Gem::Requirement
|
257
257
|
requirements:
|
258
|
-
- -
|
258
|
+
- - ~>
|
259
259
|
- !ruby/object:Gem::Version
|
260
260
|
version: '0.9'
|
261
261
|
- !ruby/object:Gem::Dependency
|
262
262
|
name: plist
|
263
263
|
requirement: !ruby/object:Gem::Requirement
|
264
264
|
requirements:
|
265
|
-
- -
|
265
|
+
- - ~>
|
266
266
|
- !ruby/object:Gem::Version
|
267
267
|
version: 3.1.0
|
268
268
|
type: :runtime
|
269
269
|
prerelease: false
|
270
270
|
version_requirements: !ruby/object:Gem::Requirement
|
271
271
|
requirements:
|
272
|
-
- -
|
272
|
+
- - ~>
|
273
273
|
- !ruby/object:Gem::Version
|
274
274
|
version: 3.1.0
|
275
275
|
- !ruby/object:Gem::Dependency
|
276
276
|
name: rack
|
277
277
|
requirement: !ruby/object:Gem::Requirement
|
278
278
|
requirements:
|
279
|
-
- -
|
279
|
+
- - '>='
|
280
280
|
- !ruby/object:Gem::Version
|
281
281
|
version: '0'
|
282
282
|
type: :development
|
283
283
|
prerelease: false
|
284
284
|
version_requirements: !ruby/object:Gem::Requirement
|
285
285
|
requirements:
|
286
|
-
- -
|
286
|
+
- - '>='
|
287
287
|
- !ruby/object:Gem::Version
|
288
288
|
version: '0'
|
289
289
|
- !ruby/object:Gem::Dependency
|
290
290
|
name: rake
|
291
291
|
requirement: !ruby/object:Gem::Requirement
|
292
292
|
requirements:
|
293
|
-
- -
|
293
|
+
- - ~>
|
294
294
|
- !ruby/object:Gem::Version
|
295
295
|
version: 10.1.0
|
296
296
|
type: :development
|
297
297
|
prerelease: false
|
298
298
|
version_requirements: !ruby/object:Gem::Requirement
|
299
299
|
requirements:
|
300
|
-
- -
|
300
|
+
- - ~>
|
301
301
|
- !ruby/object:Gem::Version
|
302
302
|
version: 10.1.0
|
303
303
|
- !ruby/object:Gem::Dependency
|
304
304
|
name: rspec_junit_formatter
|
305
305
|
requirement: !ruby/object:Gem::Requirement
|
306
306
|
requirements:
|
307
|
-
- -
|
307
|
+
- - ~>
|
308
308
|
- !ruby/object:Gem::Version
|
309
309
|
version: 0.1.0
|
310
310
|
type: :development
|
311
311
|
prerelease: false
|
312
312
|
version_requirements: !ruby/object:Gem::Requirement
|
313
313
|
requirements:
|
314
|
-
- -
|
314
|
+
- - ~>
|
315
315
|
- !ruby/object:Gem::Version
|
316
316
|
version: 0.1.0
|
317
317
|
- !ruby/object:Gem::Dependency
|
318
318
|
name: rspec-core
|
319
319
|
requirement: !ruby/object:Gem::Requirement
|
320
320
|
requirements:
|
321
|
-
- -
|
321
|
+
- - ~>
|
322
322
|
- !ruby/object:Gem::Version
|
323
323
|
version: 2.14.0
|
324
324
|
type: :development
|
325
325
|
prerelease: false
|
326
326
|
version_requirements: !ruby/object:Gem::Requirement
|
327
327
|
requirements:
|
328
|
-
- -
|
328
|
+
- - ~>
|
329
329
|
- !ruby/object:Gem::Version
|
330
330
|
version: 2.14.0
|
331
331
|
- !ruby/object:Gem::Dependency
|
332
332
|
name: rspec-expectations
|
333
333
|
requirement: !ruby/object:Gem::Requirement
|
334
334
|
requirements:
|
335
|
-
- -
|
335
|
+
- - ~>
|
336
336
|
- !ruby/object:Gem::Version
|
337
337
|
version: 2.14.0
|
338
338
|
type: :development
|
339
339
|
prerelease: false
|
340
340
|
version_requirements: !ruby/object:Gem::Requirement
|
341
341
|
requirements:
|
342
|
-
- -
|
342
|
+
- - ~>
|
343
343
|
- !ruby/object:Gem::Version
|
344
344
|
version: 2.14.0
|
345
345
|
- !ruby/object:Gem::Dependency
|
346
346
|
name: rspec-mocks
|
347
347
|
requirement: !ruby/object:Gem::Requirement
|
348
348
|
requirements:
|
349
|
-
- -
|
349
|
+
- - ~>
|
350
350
|
- !ruby/object:Gem::Version
|
351
351
|
version: 2.14.0
|
352
352
|
type: :development
|
353
353
|
prerelease: false
|
354
354
|
version_requirements: !ruby/object:Gem::Requirement
|
355
355
|
requirements:
|
356
|
-
- -
|
356
|
+
- - ~>
|
357
357
|
- !ruby/object:Gem::Version
|
358
358
|
version: 2.14.0
|
359
359
|
description: A systems integration framework, built to bring the benefits of configuration
|
@@ -923,6 +923,7 @@ files:
|
|
923
923
|
- lib/chef/provider/deploy/revision.rb
|
924
924
|
- lib/chef/provider/deploy/timestamped.rb
|
925
925
|
- lib/chef/provider/directory.rb
|
926
|
+
- lib/chef/provider/dsc_script.rb
|
926
927
|
- lib/chef/provider/env.rb
|
927
928
|
- lib/chef/provider/env/windows.rb
|
928
929
|
- lib/chef/provider/erl_call.rb
|
@@ -1039,6 +1040,7 @@ files:
|
|
1039
1040
|
- lib/chef/resource/deploy_revision.rb
|
1040
1041
|
- lib/chef/resource/directory.rb
|
1041
1042
|
- lib/chef/resource/dpkg_package.rb
|
1043
|
+
- lib/chef/resource/dsc_script.rb
|
1042
1044
|
- lib/chef/resource/easy_install_package.rb
|
1043
1045
|
- lib/chef/resource/env.rb
|
1044
1046
|
- lib/chef/resource/erl_call.rb
|
@@ -1119,9 +1121,15 @@ files:
|
|
1119
1121
|
- lib/chef/user.rb
|
1120
1122
|
- lib/chef/util/backup.rb
|
1121
1123
|
- lib/chef/util/diff.rb
|
1124
|
+
- lib/chef/util/dsc/configuration_generator.rb
|
1125
|
+
- lib/chef/util/dsc/lcm_output_parser.rb
|
1126
|
+
- lib/chef/util/dsc/local_configuration_manager.rb
|
1127
|
+
- lib/chef/util/dsc/resource_info.rb
|
1122
1128
|
- lib/chef/util/editor.rb
|
1123
1129
|
- lib/chef/util/file_edit.rb
|
1124
1130
|
- lib/chef/util/path_helper.rb
|
1131
|
+
- lib/chef/util/powershell/cmdlet.rb
|
1132
|
+
- lib/chef/util/powershell/cmdlet_result.rb
|
1125
1133
|
- lib/chef/util/selinux.rb
|
1126
1134
|
- lib/chef/util/threaded_job_queue.rb
|
1127
1135
|
- lib/chef/util/windows.rb
|
@@ -1441,6 +1449,7 @@ files:
|
|
1441
1449
|
- spec/functional/resource/cron_spec.rb
|
1442
1450
|
- spec/functional/resource/deploy_revision_spec.rb
|
1443
1451
|
- spec/functional/resource/directory_spec.rb
|
1452
|
+
- spec/functional/resource/dsc_script_spec.rb
|
1444
1453
|
- spec/functional/resource/env_spec.rb
|
1445
1454
|
- spec/functional/resource/file_spec.rb
|
1446
1455
|
- spec/functional/resource/git_spec.rb
|
@@ -1462,6 +1471,7 @@ files:
|
|
1462
1471
|
- spec/functional/run_lock_spec.rb
|
1463
1472
|
- spec/functional/shell_spec.rb
|
1464
1473
|
- spec/functional/tiny_server_spec.rb
|
1474
|
+
- spec/functional/util/powershell/cmdlet_spec.rb
|
1465
1475
|
- spec/functional/version_spec.rb
|
1466
1476
|
- spec/functional/win32/registry_helper_spec.rb
|
1467
1477
|
- spec/functional/win32/security_spec.rb
|
@@ -1705,6 +1715,7 @@ files:
|
|
1705
1715
|
- spec/unit/provider/deploy/timestamped_spec.rb
|
1706
1716
|
- spec/unit/provider/deploy_spec.rb
|
1707
1717
|
- spec/unit/provider/directory_spec.rb
|
1718
|
+
- spec/unit/provider/dsc_script_spec.rb
|
1708
1719
|
- spec/unit/provider/env/windows_spec.rb
|
1709
1720
|
- spec/unit/provider/env_spec.rb
|
1710
1721
|
- spec/unit/provider/erl_call_spec.rb
|
@@ -1811,6 +1822,7 @@ files:
|
|
1811
1822
|
- spec/unit/resource/deploy_spec.rb
|
1812
1823
|
- spec/unit/resource/directory_spec.rb
|
1813
1824
|
- spec/unit/resource/dpkg_package_spec.rb
|
1825
|
+
- spec/unit/resource/dsc_script_spec.rb
|
1814
1826
|
- spec/unit/resource/easy_install_package_spec.rb
|
1815
1827
|
- spec/unit/resource/env_spec.rb
|
1816
1828
|
- spec/unit/resource/erl_call_spec.rb
|
@@ -1881,9 +1893,13 @@ files:
|
|
1881
1893
|
- spec/unit/user_spec.rb
|
1882
1894
|
- spec/unit/util/backup_spec.rb
|
1883
1895
|
- spec/unit/util/diff_spec.rb
|
1896
|
+
- spec/unit/util/dsc/configuration_generator_spec.rb
|
1897
|
+
- spec/unit/util/dsc/lcm_output_parser_spec.rb
|
1898
|
+
- spec/unit/util/dsc/local_configuration_manager_spec.rb
|
1884
1899
|
- spec/unit/util/editor_spec.rb
|
1885
1900
|
- spec/unit/util/file_edit_spec.rb
|
1886
1901
|
- spec/unit/util/path_helper_spec.rb
|
1902
|
+
- spec/unit/util/powershell/cmdlet_spec.rb
|
1887
1903
|
- spec/unit/util/selinux_spec.rb
|
1888
1904
|
- spec/unit/util/threaded_job_queue_spec.rb
|
1889
1905
|
- spec/unit/version/platform_spec.rb
|
@@ -1901,14 +1917,14 @@ require_paths:
|
|
1901
1917
|
- lib
|
1902
1918
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1903
1919
|
requirements:
|
1904
|
-
- -
|
1920
|
+
- - '>='
|
1905
1921
|
- !ruby/object:Gem::Version
|
1906
1922
|
version: '0'
|
1907
1923
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1908
1924
|
requirements:
|
1909
|
-
- -
|
1925
|
+
- - '>'
|
1910
1926
|
- !ruby/object:Gem::Version
|
1911
|
-
version:
|
1927
|
+
version: 1.3.1
|
1912
1928
|
requirements: []
|
1913
1929
|
rubyforge_project:
|
1914
1930
|
rubygems_version: 2.2.2
|