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.
@@ -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.14.6
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-08-18 00:00:00.000000000 Z
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: '7.2'
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: '7.2'
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: '0'
1927
+ version: 1.3.1
1912
1928
  requirements: []
1913
1929
  rubyforge_project:
1914
1930
  rubygems_version: 2.2.2