knife-windows 1.2.1 → 1.3.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.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -5
  3. data/.travis.yml +26 -23
  4. data/CHANGELOG.md +108 -104
  5. data/DOC_CHANGES.md +14 -14
  6. data/Gemfile +12 -12
  7. data/LICENSE +201 -201
  8. data/README.md +385 -376
  9. data/RELEASE_NOTES.md +34 -34
  10. data/Rakefile +21 -21
  11. data/appveyor.yml +42 -42
  12. data/ci.gemfile +15 -15
  13. data/features/knife_help.feature +20 -20
  14. data/features/support/env.rb +5 -5
  15. data/knife-windows.gemspec +25 -25
  16. data/lib/chef/knife/bootstrap/windows-chef-client-msi.erb +247 -247
  17. data/lib/chef/knife/bootstrap_windows_base.rb +415 -415
  18. data/lib/chef/knife/bootstrap_windows_ssh.rb +115 -115
  19. data/lib/chef/knife/bootstrap_windows_winrm.rb +95 -95
  20. data/lib/chef/knife/core/windows_bootstrap_context.rb +366 -366
  21. data/lib/chef/knife/knife_windows_base.rb +33 -33
  22. data/lib/chef/knife/windows_cert_generate.rb +155 -155
  23. data/lib/chef/knife/windows_cert_install.rb +68 -68
  24. data/lib/chef/knife/windows_helper.rb +36 -36
  25. data/lib/chef/knife/windows_listener_create.rb +107 -107
  26. data/lib/chef/knife/winrm.rb +122 -122
  27. data/lib/chef/knife/winrm_base.rb +117 -113
  28. data/lib/chef/knife/winrm_knife_base.rb +303 -298
  29. data/lib/chef/knife/winrm_session.rb +86 -86
  30. data/lib/chef/knife/winrm_shared_options.rb +47 -47
  31. data/lib/chef/knife/wsman_endpoint.rb +44 -44
  32. data/lib/chef/knife/wsman_test.rb +117 -117
  33. data/lib/knife-windows/path_helper.rb +234 -234
  34. data/lib/knife-windows/version.rb +6 -6
  35. data/spec/assets/win_template_rendered_with_bootstrap_install_command.txt +217 -217
  36. data/spec/assets/win_template_rendered_with_bootstrap_install_command_on_12_5_client.txt +217 -217
  37. data/spec/assets/win_template_rendered_without_bootstrap_install_command.txt +329 -329
  38. data/spec/assets/win_template_rendered_without_bootstrap_install_command_on_12_5_client.txt +329 -329
  39. data/spec/assets/win_template_unrendered.txt +246 -246
  40. data/spec/functional/bootstrap_download_spec.rb +234 -234
  41. data/spec/spec_helper.rb +93 -93
  42. data/spec/unit/knife/bootstrap_options_spec.rb +155 -154
  43. data/spec/unit/knife/bootstrap_template_spec.rb +92 -92
  44. data/spec/unit/knife/bootstrap_windows_winrm_spec.rb +295 -295
  45. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +177 -177
  46. data/spec/unit/knife/windows_cert_generate_spec.rb +90 -90
  47. data/spec/unit/knife/windows_cert_install_spec.rb +51 -51
  48. data/spec/unit/knife/windows_listener_create_spec.rb +76 -76
  49. data/spec/unit/knife/winrm_session_spec.rb +64 -64
  50. data/spec/unit/knife/winrm_spec.rb +516 -516
  51. data/spec/unit/knife/wsman_test_spec.rb +201 -201
  52. metadata +4 -4
@@ -1,202 +1,202 @@
1
- #
2
- # Author:: Steven Murawski (<smurawski@chef.io>)
3
- # Copyright:: Copyright (c) 2015 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 'spec_helper'
20
-
21
- describe Chef::Knife::WsmanTest do
22
- let(:http_client_mock) { HTTPClient.new }
23
-
24
- before(:all) do
25
- Chef::Config.reset
26
- end
27
-
28
- before(:each) do
29
- allow(HTTPClient).to receive(:new).and_return(http_client_mock)
30
- subject.config[:verbosity] = 0
31
- allow(subject.ui).to receive(:ask).and_return('prompted_password')
32
- end
33
-
34
- subject { Chef::Knife::WsmanTest.new(['-m', 'localhost']) }
35
-
36
- context 'when testing the WSMAN endpoint' do
37
- context 'and the service does not respond' do
38
- error_message = 'A connection attempt failed because the connected party did not properly respond after a period of time.'
39
-
40
- before(:each) do
41
- allow(http_client_mock).to receive(:post).and_raise(Exception.new(error_message))
42
- end
43
-
44
- it 'exits with a status code of 1' do
45
- expect(subject).to receive(:exit).with(1)
46
- subject.run
47
- end
48
-
49
- it 'writes a warning message for each node it fails to connect to' do
50
- expect(subject.ui).to receive(:warn)
51
- expect(subject).to receive(:exit).with(1)
52
- subject.run
53
- end
54
-
55
- it 'writes an error message if it fails to connect to any nodes' do
56
- expect(subject.ui).to receive(:error)
57
- expect(subject).to receive(:exit).with(1)
58
- subject.run
59
- end
60
- end
61
-
62
- context 'and the service responds' do
63
- context 'successfully' do
64
- it 'writes a message about a successful connection' do
65
- response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 2.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
66
- http_response_mock = HTTP::Message.new_response(response_body)
67
- allow(http_client_mock).to receive(:post).and_return(http_response_mock)
68
- expect(subject.ui).to receive(:msg)
69
- subject.run
70
- end
71
- end
72
-
73
- context 'with an invalid body' do
74
- it 'warns for a failed connection and exit with a status of 1' do
75
- response_body = 'I am invalid'
76
- http_response_mock = HTTP::Message.new_response(response_body)
77
- allow(http_client_mock).to receive(:post).and_return(http_response_mock)
78
- expect(subject.ui).to receive(:warn)
79
- expect(subject.ui).to receive(:error)
80
- expect(subject).to receive(:exit).with(1)
81
- subject.run
82
- end
83
- end
84
-
85
- context 'with a non-200 code' do
86
- it 'warns for a failed connection and exits with a status of 1' do
87
- http_response_mock = HTTP::Message.new_response('<resp></resp>')
88
- http_response_mock.status = 404
89
- allow(http_client_mock).to receive(:post).and_return(http_response_mock)
90
- expect(subject.ui).to receive(:warn)
91
- expect(subject.ui).to receive(:error)
92
- expect(subject).to receive(:exit).with(1)
93
- subject.run
94
- end
95
- end
96
- end
97
- end
98
-
99
- context 'when not validating ssl cert' do
100
- before(:each) do
101
- response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 2.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
102
- allow(http_client_mock).to receive(:post).and_return(HTTP::Message.new_response(response_body))
103
- expect(subject.ui).to receive(:msg)
104
- subject.config[:winrm_ssl_verify_mode] = :verify_none
105
- subject.config[:winrm_transport] = :ssl
106
- end
107
-
108
- it 'sets verify_mode to verify_none' do
109
- subject.run
110
- expect(http_client_mock.ssl_config.verify_mode).to eq(OpenSSL::SSL::VERIFY_NONE)
111
- end
112
- end
113
-
114
- context 'when testing the WSMAN endpoint with verbose output' do
115
- before(:each) do
116
- subject.config[:verbosity] = 1
117
- end
118
-
119
- context 'and the service does not respond' do
120
- it 'returns an object with an error message' do
121
- error_message = 'A connection attempt failed because the connected party did not properly respond after a period of time.'
122
- allow(http_client_mock).to receive(:post).and_raise(Exception.new(error_message))
123
- expect(subject).to receive(:exit).with(1)
124
- expect(subject).to receive(:output) do |output|
125
- expect(output.error_message).to match(/#{error_message}/)
126
- end
127
- subject.run
128
- end
129
- end
130
-
131
- context 'with an invalid body' do
132
- it 'includes invalid body in error message' do
133
- response_body = 'I am invalid'
134
- http_response_mock = HTTP::Message.new_response(response_body)
135
- allow(http_client_mock).to receive(:post).and_return(http_response_mock)
136
- expect(subject).to receive(:exit).with(1)
137
- expect(subject).to receive(:output) do |output|
138
- expect(output.error_message).to match(/#{response_body}/)
139
- end
140
- subject.run
141
- end
142
- end
143
-
144
- context 'and the target node is Windows Server 2008 R2' do
145
- before(:each) do
146
- ws2008r2_response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 2.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
147
- http_response_mock = HTTP::Message.new_response(ws2008r2_response_body)
148
- allow(http_client_mock).to receive(:post).and_return(http_response_mock)
149
- end
150
-
151
- it 'identifies the stack of the product version as 2.0 ' do
152
- expect(subject).to receive(:output) do |output|
153
- expect(output.product_version).to eq 'OS: 0.0.0 SP: 0.0 Stack: 2.0'
154
- end
155
- subject.run
156
- end
157
-
158
- it 'identifies the protocol version as the current DMTF standard' do
159
- expect(subject).to receive(:output) do |output|
160
- expect(output.protocol_version).to eq 'http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'
161
- end
162
- subject.run
163
- end
164
-
165
- it 'identifies the vendor as the Microsoft Corporation' do
166
- expect(subject).to receive(:output) do |output|
167
- expect(output.product_vendor).to eq 'Microsoft Corporation'
168
- end
169
- subject.run
170
- end
171
- end
172
-
173
- context 'and the target node is Windows Server 2012 R2' do
174
- before(:each) do
175
- ws2012_response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 3.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
176
- http_response_mock = HTTP::Message.new_response(ws2012_response_body)
177
- allow(http_client_mock).to receive(:post).and_return(http_response_mock)
178
- end
179
-
180
- it 'identifies the stack of the product version as 3.0 ' do
181
- expect(subject).to receive(:output) do |output|
182
- expect(output.product_version).to eq 'OS: 0.0.0 SP: 0.0 Stack: 3.0'
183
- end
184
- subject.run
185
- end
186
-
187
- it 'identifies the protocol version as the current DMTF standard' do
188
- expect(subject).to receive(:output) do |output|
189
- expect(output.protocol_version).to eq 'http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'
190
- end
191
- subject.run
192
- end
193
-
194
- it 'identifies the vendor as the Microsoft Corporation' do
195
- expect(subject).to receive(:output) do |output|
196
- expect(output.product_vendor).to eq 'Microsoft Corporation'
197
- end
198
- subject.run
199
- end
200
- end
201
- end
1
+ #
2
+ # Author:: Steven Murawski (<smurawski@chef.io>)
3
+ # Copyright:: Copyright (c) 2015 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 'spec_helper'
20
+
21
+ describe Chef::Knife::WsmanTest do
22
+ let(:http_client_mock) { HTTPClient.new }
23
+
24
+ before(:all) do
25
+ Chef::Config.reset
26
+ end
27
+
28
+ before(:each) do
29
+ allow(HTTPClient).to receive(:new).and_return(http_client_mock)
30
+ subject.config[:verbosity] = 0
31
+ allow(subject.ui).to receive(:ask).and_return('prompted_password')
32
+ end
33
+
34
+ subject { Chef::Knife::WsmanTest.new(['-m', 'localhost']) }
35
+
36
+ context 'when testing the WSMAN endpoint' do
37
+ context 'and the service does not respond' do
38
+ error_message = 'A connection attempt failed because the connected party did not properly respond after a period of time.'
39
+
40
+ before(:each) do
41
+ allow(http_client_mock).to receive(:post).and_raise(Exception.new(error_message))
42
+ end
43
+
44
+ it 'exits with a status code of 1' do
45
+ expect(subject).to receive(:exit).with(1)
46
+ subject.run
47
+ end
48
+
49
+ it 'writes a warning message for each node it fails to connect to' do
50
+ expect(subject.ui).to receive(:warn)
51
+ expect(subject).to receive(:exit).with(1)
52
+ subject.run
53
+ end
54
+
55
+ it 'writes an error message if it fails to connect to any nodes' do
56
+ expect(subject.ui).to receive(:error)
57
+ expect(subject).to receive(:exit).with(1)
58
+ subject.run
59
+ end
60
+ end
61
+
62
+ context 'and the service responds' do
63
+ context 'successfully' do
64
+ it 'writes a message about a successful connection' do
65
+ response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 2.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
66
+ http_response_mock = HTTP::Message.new_response(response_body)
67
+ allow(http_client_mock).to receive(:post).and_return(http_response_mock)
68
+ expect(subject.ui).to receive(:msg)
69
+ subject.run
70
+ end
71
+ end
72
+
73
+ context 'with an invalid body' do
74
+ it 'warns for a failed connection and exit with a status of 1' do
75
+ response_body = 'I am invalid'
76
+ http_response_mock = HTTP::Message.new_response(response_body)
77
+ allow(http_client_mock).to receive(:post).and_return(http_response_mock)
78
+ expect(subject.ui).to receive(:warn)
79
+ expect(subject.ui).to receive(:error)
80
+ expect(subject).to receive(:exit).with(1)
81
+ subject.run
82
+ end
83
+ end
84
+
85
+ context 'with a non-200 code' do
86
+ it 'warns for a failed connection and exits with a status of 1' do
87
+ http_response_mock = HTTP::Message.new_response('<resp></resp>')
88
+ http_response_mock.status = 404
89
+ allow(http_client_mock).to receive(:post).and_return(http_response_mock)
90
+ expect(subject.ui).to receive(:warn)
91
+ expect(subject.ui).to receive(:error)
92
+ expect(subject).to receive(:exit).with(1)
93
+ subject.run
94
+ end
95
+ end
96
+ end
97
+ end
98
+
99
+ context 'when not validating ssl cert' do
100
+ before(:each) do
101
+ response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 2.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
102
+ allow(http_client_mock).to receive(:post).and_return(HTTP::Message.new_response(response_body))
103
+ expect(subject.ui).to receive(:msg)
104
+ subject.config[:winrm_ssl_verify_mode] = :verify_none
105
+ subject.config[:winrm_transport] = :ssl
106
+ end
107
+
108
+ it 'sets verify_mode to verify_none' do
109
+ subject.run
110
+ expect(http_client_mock.ssl_config.verify_mode).to eq(OpenSSL::SSL::VERIFY_NONE)
111
+ end
112
+ end
113
+
114
+ context 'when testing the WSMAN endpoint with verbose output' do
115
+ before(:each) do
116
+ subject.config[:verbosity] = 1
117
+ end
118
+
119
+ context 'and the service does not respond' do
120
+ it 'returns an object with an error message' do
121
+ error_message = 'A connection attempt failed because the connected party did not properly respond after a period of time.'
122
+ allow(http_client_mock).to receive(:post).and_raise(Exception.new(error_message))
123
+ expect(subject).to receive(:exit).with(1)
124
+ expect(subject).to receive(:output) do |output|
125
+ expect(output.error_message).to match(/#{error_message}/)
126
+ end
127
+ subject.run
128
+ end
129
+ end
130
+
131
+ context 'with an invalid body' do
132
+ it 'includes invalid body in error message' do
133
+ response_body = 'I am invalid'
134
+ http_response_mock = HTTP::Message.new_response(response_body)
135
+ allow(http_client_mock).to receive(:post).and_return(http_response_mock)
136
+ expect(subject).to receive(:exit).with(1)
137
+ expect(subject).to receive(:output) do |output|
138
+ expect(output.error_message).to match(/#{response_body}/)
139
+ end
140
+ subject.run
141
+ end
142
+ end
143
+
144
+ context 'and the target node is Windows Server 2008 R2' do
145
+ before(:each) do
146
+ ws2008r2_response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 2.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
147
+ http_response_mock = HTTP::Message.new_response(ws2008r2_response_body)
148
+ allow(http_client_mock).to receive(:post).and_return(http_response_mock)
149
+ end
150
+
151
+ it 'identifies the stack of the product version as 2.0 ' do
152
+ expect(subject).to receive(:output) do |output|
153
+ expect(output.product_version).to eq 'OS: 0.0.0 SP: 0.0 Stack: 2.0'
154
+ end
155
+ subject.run
156
+ end
157
+
158
+ it 'identifies the protocol version as the current DMTF standard' do
159
+ expect(subject).to receive(:output) do |output|
160
+ expect(output.protocol_version).to eq 'http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'
161
+ end
162
+ subject.run
163
+ end
164
+
165
+ it 'identifies the vendor as the Microsoft Corporation' do
166
+ expect(subject).to receive(:output) do |output|
167
+ expect(output.product_vendor).to eq 'Microsoft Corporation'
168
+ end
169
+ subject.run
170
+ end
171
+ end
172
+
173
+ context 'and the target node is Windows Server 2012 R2' do
174
+ before(:each) do
175
+ ws2012_response_body = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"><s:Header/><s:Body><wsmid:IdentifyResponse xmlns:wsmid="http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd"><wsmid:ProtocolVersion>http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd</wsmid:ProtocolVersion><wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor><wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack: 3.0</wsmid:ProductVersion></wsmid:IdentifyResponse></s:Body></s:Envelope>'
176
+ http_response_mock = HTTP::Message.new_response(ws2012_response_body)
177
+ allow(http_client_mock).to receive(:post).and_return(http_response_mock)
178
+ end
179
+
180
+ it 'identifies the stack of the product version as 3.0 ' do
181
+ expect(subject).to receive(:output) do |output|
182
+ expect(output.product_version).to eq 'OS: 0.0.0 SP: 0.0 Stack: 3.0'
183
+ end
184
+ subject.run
185
+ end
186
+
187
+ it 'identifies the protocol version as the current DMTF standard' do
188
+ expect(subject).to receive(:output) do |output|
189
+ expect(output.protocol_version).to eq 'http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd'
190
+ end
191
+ subject.run
192
+ end
193
+
194
+ it 'identifies the vendor as the Microsoft Corporation' do
195
+ expect(subject).to receive(:output) do |output|
196
+ expect(output.product_vendor).to eq 'Microsoft Corporation'
197
+ end
198
+ subject.run
199
+ end
200
+ end
201
+ end
202
202
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-windows
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Chisamore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-09 00:00:00.000000000 Z
11
+ date: 2016-02-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: winrm
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '1.7'
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
- version: '1.6'
26
+ version: '1.7'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry
29
29
  requirement: !ruby/object:Gem::Requirement