opscode-pushy-client 2.3.0 → 2.4.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -214,6 +214,9 @@ class PushyClient
214
214
  user = @opts['user']
215
215
  dir = @opts['dir']
216
216
  env = @opts['env'] || {}
217
+ unless client.allowed_overwritable_env_vars.nil?
218
+ env = env.map{|k,v| client.allowed_overwritable_env_vars.include?(k) ? [k,v] : ["CHEF_PUSH_ENV_#{k}",v]}.to_h
219
+ end
217
220
  capture = @opts['capture'] || false
218
221
  path = extract_file
219
222
  env.merge!({'CHEF_PUSH_JOB_FILE' => path}) if path
@@ -18,8 +18,13 @@
18
18
  class PushyClient
19
19
  class PeriodicReconfigurer
20
20
  SPLAY = 0.10
21
+ POLL_INTERVAL = 5 # seconds
22
+
21
23
  def initialize(client)
24
+ @prng = Random.new
22
25
  @client = client
26
+ @lock = Mutex.new
27
+ @reconfigure_deadline = nil
23
28
  end
24
29
 
25
30
  attr_reader :client
@@ -29,16 +34,34 @@ class PushyClient
29
34
  client.node_name
30
35
  end
31
36
 
37
+ def reconfigure_deadline
38
+ @lock.synchronize do
39
+ @reconfigure_deadline
40
+ end
41
+ end
42
+
43
+ # set the reconfigure deadline to some future number of seconds (with a splay applied)
44
+ def update_reconfigure_deadline(delay)
45
+ @lock.synchronize do
46
+ @reconfigure_deadline = Time.now + delay * (1 - @prng.rand(SPLAY))
47
+ Chef::Log.info "[#{node_name}] Setting reconfigure deadline to #{@reconfigure_deadline}"
48
+ end
49
+ end
50
+
32
51
  def start
33
52
  @lifetime = client.config['lifetime']
34
- prng = Random.new
53
+
35
54
  @reconfigure_thread = Thread.new do
36
55
  Chef::Log.info "[#{node_name}] Starting reconfigure thread. Will reconfigure / reload keys after #{@lifetime} seconds, less up to splay #{SPLAY}."
37
56
  while true
38
57
  begin
39
- @delay = @lifetime * (1 - prng.rand(SPLAY))
40
- sleep(@delay)
41
- Chef::Log.info "[#{node_name}] Config is now #{@delay} seconds old. Reconfiguring / reloading keys ..."
58
+ update_reconfigure_deadline(@lifetime)
59
+ while Time.now < reconfigure_deadline do
60
+ # could also check the config file for updates here and
61
+ # resolve a long standing wishlist item from customers.
62
+ sleep(POLL_INTERVAL)
63
+ end
64
+ Chef::Log.info "[#{node_name}] Reconfigure deadline of #{reconfigure_deadline} is now past. Reconfiguring / reloading keys ..."
42
65
  client.trigger_reconfigure
43
66
  rescue
44
67
  client.log_exception("Error in reconfigure thread", $!)
@@ -15,8 +15,12 @@
15
15
  # under the License.
16
16
  #
17
17
 
18
- require 'ffi-rzmq'
19
- require 'ffi-rzmq-core'
18
+ if RUBY_PLATFORM =~ /aix/
19
+ require 'rbzmq/zmq'
20
+ else
21
+ require 'ffi-rzmq'
22
+ require 'ffi-rzmq-core'
23
+ end
20
24
  require 'json'
21
25
  require 'time'
22
26
  require 'resolv'
@@ -469,22 +473,40 @@ class PushyClient
469
473
  json[:sequence] = @command_socket_outgoing_seq
470
474
  message = JSON.generate(json)
471
475
  if @command_socket
472
- ProtocolHandler::send_signed_message(@command_socket, method, @client_private_key, @session_key, message)
476
+ ProtocolHandler::send_signed_message(@command_socket, method, @client_private_key, @session_key, message, @client)
473
477
  else
474
478
  Chef::Log.warn("[#{node_name}] Dropping packet because client was stopped: #{message}")
475
479
  end
476
480
  end
477
481
  end
478
482
 
479
- def self.send_signed_message(socket, method, client_private_key, session_key, message)
483
+ def self.send_signed_message(socket, method, client_private_key, session_key, message, client)
480
484
  auth = case method
481
485
  when :rsa2048_sha1
482
486
  make_header_rsa(message, client_private_key)
483
487
  when :hmac_sha256
484
488
  make_header_hmac(message, session_key)
485
489
  end
486
- socket.send_string(auth, ZMQ::SNDMORE)
487
- socket.send_string(message)
490
+ # https://github.com/chuckremes/ffi-rzmq/blob/master/lib/ffi-rzmq/socket.rb
491
+ # send_string
492
+ #
493
+ # +flags+ may be ZMQ::DONTWAIT and ZMQ::SNDMORE.
494
+ #
495
+ # Returns 0 when the message was successfully enqueued.
496
+ # Returns -1 under two conditions.
497
+ # 1. The message could not be enqueued
498
+ # 2. When +flags+ is set with ZMQ::DONTWAIT and the socket returned EAGAIN.
499
+ #
500
+ # With a -1 return code, the user must check ZMQ::Util.errno to determine the
501
+ # cause.
502
+
503
+ socket.send_string(auth, ZMQ::SNDMORE | ZMQ::DONTWAIT)
504
+ rc = socket.send_string(message, ZMQ::DONTWAIT)
505
+ if rc == -1
506
+ Chef::Log.info("[#{client.node_name}] ZMQ socket enqueue error #{ZMQ::Util.errno}. Triggering reconfigure")
507
+ # we don't immediately reconfigure because this is likely to amplify any stampedes.
508
+ client.update_reconfigure_deadline(60)
509
+ end
488
510
  end
489
511
 
490
512
  def self.load_key(key_path)
@@ -18,6 +18,6 @@
18
18
  # Note: the version must also be updated in
19
19
  # omnibus/config/projects/push-jobs-client.rb
20
20
  class PushyClient
21
- VERSION = "2.3.0"
21
+ VERSION = "2.4.11"
22
22
  PROTOCOL_VERSION = "2.0"
23
23
  end
@@ -19,7 +19,6 @@
19
19
  require 'chef/application'
20
20
  require 'chef/config'
21
21
  require 'chef/log'
22
- require 'chef/rest'
23
22
  require 'mixlib/cli'
24
23
  require 'win32/daemon'
25
24
  require_relative '../pushy_client'
@@ -217,14 +216,7 @@ class PushyClient
217
216
  begin
218
217
  case config[:config_file]
219
218
  when /^(http|https):\/\//
220
- begin
221
- # First we will try Chef::HTTP::SimpleJSON as preference to Chef::REST
222
- require 'chef/http/simple_json'
223
- Chef::HTTP::SimpleJSON.new("").streaming_request(config[:config_file]) { |f| apply_config(f.path) }
224
- rescue LoadError
225
- require 'chef/rest'
226
- Chef::REST.new("", nil, nil).fetch(config[:config_file]) { |f| apply_config(f.path) }
227
- end
219
+ load_remote_config(config[:config_file])
228
220
  else
229
221
  ::File::open(config[:config_file]) { |f| apply_config(f.path) }
230
222
  end
@@ -243,6 +235,16 @@ class PushyClient
243
235
  end
244
236
  end
245
237
 
238
+ def load_remote_config(url)
239
+ # Prefer chef/http which works in Chef 13 + Chef 12
240
+ require 'chef/http/simple_json'
241
+ Chef::HTTP::SimpleJSON.new("").streaming_request(url) { |f| apply_config(f.path) }
242
+ rescue LoadError
243
+ # Try chef/rest which exists on older chef versions
244
+ require 'chef/rest'
245
+ Chef::REST.new("", nil, nil).fetch(url) { |f| apply_config(f.path) }
246
+ end
247
+
246
248
  end
247
249
  end
248
250
 
@@ -1,24 +1,24 @@
1
1
  GIT
2
2
  remote: https://github.com/chef/omnibus-software.git
3
- revision: 69e7fd212b293795c9a1abf7e2aed3be89ac6d06
3
+ revision: 768e24c53c0af3f3e8e9ca4a551166dd9b286e5e
4
4
  specs:
5
5
  omnibus-software (4.0.0)
6
6
  chef-sugar (>= 3.4.0)
7
- omnibus (>= 5.5.0)
7
+ omnibus (>= 5.6.1)
8
8
 
9
9
  GIT
10
10
  remote: https://github.com/chef/omnibus.git
11
- revision: 433220e0b7c434dbc4a36daaa1fecbdb1bf7231d
11
+ revision: 7e9c9a6a71c1ada2d7f42484f13074e1ec6b7cd3
12
12
  specs:
13
- omnibus (5.5.0)
13
+ omnibus (5.6.12)
14
14
  aws-sdk (~> 2)
15
15
  chef-sugar (~> 3.3)
16
16
  cleanroom (~> 1.0)
17
17
  ffi-yajl (~> 2.2)
18
- license_scout
18
+ license_scout (~> 1.0)
19
19
  mixlib-shellout (~> 2.0)
20
20
  mixlib-versioning
21
- ohai (~> 8.0)
21
+ ohai (>= 8.6.0.alpha.1, < 15)
22
22
  pedump
23
23
  ruby-progressbar (~> 1.7)
24
24
  thor (~> 0.18)
@@ -26,38 +26,33 @@ GIT
26
26
  GEM
27
27
  remote: https://rubygems.org/
28
28
  specs:
29
- addressable (2.5.0)
30
- public_suffix (~> 2.0, >= 2.0.2)
31
- artifactory (2.8.1)
32
- awesome_print (1.7.0)
33
- aws-sdk (2.8.14)
34
- aws-sdk-resources (= 2.8.14)
35
- aws-sdk-core (2.8.14)
29
+ addressable (2.5.2)
30
+ public_suffix (>= 2.0.2, < 4.0)
31
+ awesome_print (1.8.0)
32
+ aws-sdk (2.11.33)
33
+ aws-sdk-resources (= 2.11.33)
34
+ aws-sdk-core (2.11.33)
36
35
  aws-sigv4 (~> 1.0)
37
36
  jmespath (~> 1.0)
38
- aws-sdk-resources (2.8.14)
39
- aws-sdk-core (= 2.8.14)
40
- aws-sigv4 (1.0.0)
41
- berkshelf (5.6.4)
42
- addressable (~> 2.3, >= 2.3.4)
43
- berkshelf-api-client (>= 2.0.2, < 4.0)
37
+ aws-sdk-resources (2.11.33)
38
+ aws-sdk-core (= 2.11.33)
39
+ aws-sigv4 (1.0.2)
40
+ berkshelf (6.3.2)
44
41
  buff-config (~> 2.0)
45
42
  buff-extensions (~> 2.0)
46
- buff-shell_out (~> 1.0)
43
+ chef (>= 12.7.2, < 14.0)
47
44
  cleanroom (~> 1.0)
45
+ concurrent-ruby (~> 1.0)
48
46
  faraday (~> 0.9)
49
47
  httpclient (~> 2.7)
50
48
  minitar (~> 0.5, >= 0.5.4)
51
49
  mixlib-archive (~> 0.4)
50
+ mixlib-shellout (~> 2.0)
52
51
  octokit (~> 4.0)
53
52
  retryable (~> 2.0)
54
53
  ridley (~> 5.0)
55
- solve (> 2.0, < 4.0)
54
+ solve (~> 4.0)
56
55
  thor (~> 0.19, < 0.19.2)
57
- berkshelf-api-client (3.0.0)
58
- faraday (~> 0.9)
59
- httpclient (~> 2.7)
60
- ridley (>= 4.5, < 6.0)
61
56
  buff-config (2.0.0)
62
57
  buff-extensions (~> 2.0)
63
58
  varia_model (~> 0.6)
@@ -72,70 +67,168 @@ GEM
72
67
  celluloid-io (0.16.2)
73
68
  celluloid (>= 0.16.0)
74
69
  nio4r (>= 1.1.0)
75
- chef-config (12.19.36)
70
+ chef (13.8.5)
71
+ addressable
72
+ bundler (>= 1.10)
73
+ chef-config (= 13.8.5)
74
+ chef-zero (>= 13.0)
75
+ diff-lcs (~> 1.2, >= 1.2.4)
76
+ erubis (~> 2.7)
77
+ ffi-yajl (~> 2.2)
78
+ highline (~> 1.6, >= 1.6.9)
79
+ iniparse (~> 1.4)
80
+ iso8601 (~> 0.9.1)
81
+ mixlib-archive (~> 0.4)
82
+ mixlib-authentication (~> 1.4)
83
+ mixlib-cli (~> 1.7)
84
+ mixlib-log (~> 1.3)
85
+ mixlib-shellout (~> 2.0)
86
+ net-sftp (~> 2.1, >= 2.1.2)
87
+ net-ssh (>= 2.9, < 5.0)
88
+ net-ssh-multi (~> 1.2, >= 1.2.1)
89
+ ohai (~> 13.0)
90
+ plist (~> 3.2)
91
+ proxifier (~> 1.0)
92
+ rspec-core (~> 3.5)
93
+ rspec-expectations (~> 3.5)
94
+ rspec-mocks (~> 3.5)
95
+ rspec_junit_formatter (~> 0.2.0)
96
+ serverspec (~> 2.7)
97
+ specinfra (~> 2.10)
98
+ syslog-logger (~> 1.6)
99
+ uuidtools (~> 2.1.5)
100
+ chef (13.8.5-universal-mingw32)
101
+ addressable
102
+ bundler (>= 1.10)
103
+ chef-config (= 13.8.5)
104
+ chef-zero (>= 13.0)
105
+ diff-lcs (~> 1.2, >= 1.2.4)
106
+ erubis (~> 2.7)
107
+ ffi (~> 1.9)
108
+ ffi-yajl (~> 2.2)
109
+ highline (~> 1.6, >= 1.6.9)
110
+ iniparse (~> 1.4)
111
+ iso8601 (~> 0.9.1)
112
+ mixlib-archive (~> 0.4)
113
+ mixlib-authentication (~> 1.4)
114
+ mixlib-cli (~> 1.7)
115
+ mixlib-log (~> 1.3)
116
+ mixlib-shellout (~> 2.0)
117
+ net-sftp (~> 2.1, >= 2.1.2)
118
+ net-ssh (>= 2.9, < 5.0)
119
+ net-ssh-multi (~> 1.2, >= 1.2.1)
120
+ ohai (~> 13.0)
121
+ plist (~> 3.2)
122
+ proxifier (~> 1.0)
123
+ rspec-core (~> 3.5)
124
+ rspec-expectations (~> 3.5)
125
+ rspec-mocks (~> 3.5)
126
+ rspec_junit_formatter (~> 0.2.0)
127
+ serverspec (~> 2.7)
128
+ specinfra (~> 2.10)
129
+ syslog-logger (~> 1.6)
130
+ uuidtools (~> 2.1.5)
131
+ win32-api (~> 1.5.3)
132
+ win32-dir (~> 0.5.0)
133
+ win32-event (~> 0.6.1)
134
+ win32-eventlog (= 0.6.3)
135
+ win32-mmap (~> 0.4.1)
136
+ win32-mutex (~> 0.4.2)
137
+ win32-process (~> 0.8.2)
138
+ win32-service (~> 0.8.7)
139
+ windows-api (~> 0.4.4)
140
+ wmi-lite (~> 1.0)
141
+ chef-config (13.8.5)
76
142
  addressable
77
143
  fuzzyurl
78
144
  mixlib-config (~> 2.0)
79
145
  mixlib-shellout (~> 2.0)
80
- chef-sugar (3.4.0)
146
+ tomlrb (~> 1.2)
147
+ chef-sugar (3.6.0)
148
+ chef-zero (13.1.0)
149
+ ffi-yajl (~> 2.2)
150
+ hashie (>= 2.0, < 4.0)
151
+ mixlib-log (~> 1.3)
152
+ rack (~> 2.0)
153
+ uuidtools (~> 2.1)
154
+ citrus (3.0.2)
81
155
  cleanroom (1.0.0)
156
+ concurrent-ruby (1.0.5)
157
+ diff-lcs (1.3)
82
158
  erubis (2.7.0)
83
- faraday (0.9.2)
159
+ faraday (0.14.0)
84
160
  multipart-post (>= 1.2, < 3)
85
- ffi (1.9.18)
86
- ffi-yajl (2.3.0)
161
+ ffi (1.9.23)
162
+ ffi (1.9.23-x64-mingw32)
163
+ ffi (1.9.23-x86-mingw32)
164
+ ffi-win32-extensions (1.0.3)
165
+ ffi
166
+ ffi-yajl (2.3.1)
87
167
  libyajl2 (~> 1.2)
88
168
  fuzzyurl (0.9.0)
89
169
  gssapi (1.2.0)
90
170
  ffi (>= 1.0.1)
91
171
  gyoku (1.3.1)
92
172
  builder (>= 2.1.2)
93
- hashie (3.5.5)
94
- hitimes (1.2.4)
173
+ hashie (3.5.7)
174
+ highline (1.7.10)
175
+ hitimes (1.2.6)
176
+ hitimes (1.2.6-x86-mingw32)
95
177
  httpclient (2.8.3)
178
+ iniparse (1.4.4)
96
179
  iostruct (0.0.4)
97
180
  ipaddress (0.8.3)
98
- jmespath (1.3.1)
99
- json (2.0.3)
100
- kitchen-vagrant (1.0.2)
181
+ iso8601 (0.9.1)
182
+ jmespath (1.4.0)
183
+ json (2.1.0)
184
+ kitchen-vagrant (1.3.1)
101
185
  test-kitchen (~> 1.4)
102
186
  libyajl2 (1.2.0)
103
- license_scout (0.1.3)
187
+ license_scout (1.0.2)
104
188
  ffi-yajl (~> 2.2)
105
189
  mixlib-shellout (~> 2.2)
190
+ toml-rb (~> 1.0)
106
191
  little-plugger (1.1.4)
107
- logging (2.2.0)
192
+ logging (2.2.2)
108
193
  little-plugger (~> 1.1)
109
194
  multi_json (~> 1.10)
110
195
  minitar (0.6.1)
111
196
  mixlib-archive (0.4.1)
112
197
  mixlib-log
113
- mixlib-authentication (1.4.1)
114
- mixlib-log
198
+ mixlib-authentication (1.4.2)
115
199
  mixlib-cli (1.7.0)
116
- mixlib-config (2.2.4)
117
- mixlib-install (2.1.12)
118
- artifactory
200
+ mixlib-config (2.2.6)
201
+ tomlrb
202
+ mixlib-install (3.9.3)
119
203
  mixlib-shellout
120
204
  mixlib-versioning
121
205
  thor
122
206
  mixlib-log (1.7.1)
123
- mixlib-shellout (2.2.7)
124
- mixlib-versioning (1.1.0)
125
- molinillo (0.5.7)
126
- multi_json (1.12.1)
207
+ mixlib-shellout (2.3.2)
208
+ mixlib-shellout (2.3.2-universal-mingw32)
209
+ win32-process (~> 0.8.2)
210
+ wmi-lite (~> 1.0)
211
+ mixlib-versioning (1.2.2)
212
+ molinillo (0.6.5)
213
+ multi_json (1.13.1)
127
214
  multipart-post (2.0.0)
128
215
  net-scp (1.2.1)
129
216
  net-ssh (>= 2.6.5)
130
- net-ssh (4.1.0)
217
+ net-sftp (2.1.2)
218
+ net-ssh (>= 2.6.5)
219
+ net-ssh (4.2.0)
131
220
  net-ssh-gateway (1.3.0)
132
221
  net-ssh (>= 2.6.5)
133
- nio4r (2.0.0)
222
+ net-ssh-multi (1.2.1)
223
+ net-ssh (>= 2.6.5)
224
+ net-ssh-gateway (>= 1.2.0)
225
+ net-telnet (0.1.1)
226
+ nio4r (2.3.0)
134
227
  nori (2.6.0)
135
- octokit (4.6.2)
228
+ octokit (4.8.0)
136
229
  sawyer (~> 0.8.0, >= 0.5.3)
137
- ohai (8.23.0)
138
- chef-config (>= 12.5.0.alpha.1, < 13)
230
+ ohai (13.9.0)
231
+ chef-config (>= 12.5.0.alpha.1, < 14)
139
232
  ffi (~> 1.9)
140
233
  ffi-yajl (~> 2.2)
141
234
  ipaddress
@@ -152,11 +245,13 @@ GEM
152
245
  multipart-post (~> 2.0.0)
153
246
  progressbar
154
247
  zhexdump (>= 0.0.2)
155
- plist (3.2.0)
156
- progressbar (1.8.2)
157
- public_suffix (2.0.5)
248
+ plist (3.4.0)
249
+ progressbar (1.9.0)
250
+ proxifier (1.0.3)
251
+ public_suffix (3.0.2)
252
+ rack (2.0.4)
158
253
  retryable (2.0.4)
159
- ridley (5.1.0)
254
+ ridley (5.1.1)
160
255
  addressable
161
256
  buff-config (~> 2.0)
162
257
  buff-extensions (~> 2.0)
@@ -166,7 +261,7 @@ GEM
166
261
  celluloid-io (~> 0.16.1)
167
262
  chef-config (>= 12.5.0)
168
263
  erubis
169
- faraday (~> 0.9.0)
264
+ faraday (~> 0.9)
170
265
  hashie (>= 2.0.2, < 4.0.0)
171
266
  httpclient (~> 2.7)
172
267
  json (>= 1.7.7)
@@ -174,33 +269,89 @@ GEM
174
269
  retryable (~> 2.0)
175
270
  semverse (~> 2.0)
176
271
  varia_model (~> 0.6)
177
- ruby-progressbar (1.8.1)
178
- rubyntlm (0.6.1)
272
+ rspec (3.7.0)
273
+ rspec-core (~> 3.7.0)
274
+ rspec-expectations (~> 3.7.0)
275
+ rspec-mocks (~> 3.7.0)
276
+ rspec-core (3.7.1)
277
+ rspec-support (~> 3.7.0)
278
+ rspec-expectations (3.7.0)
279
+ diff-lcs (>= 1.2.0, < 2.0)
280
+ rspec-support (~> 3.7.0)
281
+ rspec-its (1.2.0)
282
+ rspec-core (>= 3.0.0)
283
+ rspec-expectations (>= 3.0.0)
284
+ rspec-mocks (3.7.0)
285
+ diff-lcs (>= 1.2.0, < 2.0)
286
+ rspec-support (~> 3.7.0)
287
+ rspec-support (3.7.1)
288
+ rspec_junit_formatter (0.2.3)
289
+ builder (< 4)
290
+ rspec-core (>= 2, < 4, != 2.12.0)
291
+ ruby-progressbar (1.9.0)
292
+ rubyntlm (0.6.2)
179
293
  rubyzip (1.2.1)
180
- safe_yaml (1.0.4)
181
294
  sawyer (0.8.1)
182
295
  addressable (>= 2.3.5, < 2.6)
183
296
  faraday (~> 0.8, < 1.0)
184
297
  semverse (2.0.0)
185
- solve (3.1.0)
186
- molinillo (>= 0.5)
298
+ serverspec (2.41.3)
299
+ multi_json
300
+ rspec (~> 3.0)
301
+ rspec-its
302
+ specinfra (~> 2.72)
303
+ sfl (2.3)
304
+ solve (4.0.0)
305
+ molinillo (~> 0.6)
187
306
  semverse (>= 1.1, < 3.0)
307
+ specinfra (2.73.3)
308
+ net-scp
309
+ net-ssh (>= 2.7, < 5.0)
310
+ net-telnet
311
+ sfl
312
+ syslog-logger (1.6.8)
188
313
  systemu (2.6.5)
189
- test-kitchen (1.16.0)
190
- mixlib-install (>= 1.2, < 3.0)
314
+ test-kitchen (1.21.1)
315
+ mixlib-install (~> 3.6)
191
316
  mixlib-shellout (>= 1.2, < 3.0)
192
317
  net-scp (~> 1.1)
193
318
  net-ssh (>= 2.9, < 5.0)
194
319
  net-ssh-gateway (~> 1.2)
195
- safe_yaml (~> 1.0)
196
320
  thor (~> 0.19, < 0.19.2)
321
+ winrm (~> 2.0)
322
+ winrm-elevated (~> 1.0)
323
+ winrm-fs (~> 1.1)
197
324
  thor (0.19.1)
198
325
  timers (4.0.4)
199
326
  hitimes
327
+ toml-rb (1.1.1)
328
+ citrus (~> 3.0, > 3.0)
329
+ tomlrb (1.2.6)
330
+ uuidtools (2.1.5)
200
331
  varia_model (0.6.0)
201
332
  buff-extensions (~> 2.0)
202
333
  hashie (>= 2.0.2, < 4.0.0)
203
- winrm (2.1.3)
334
+ win32-api (1.5.3-universal-mingw32)
335
+ win32-dir (0.5.1)
336
+ ffi (>= 1.0.0)
337
+ win32-event (0.6.3)
338
+ win32-ipc (>= 0.6.0)
339
+ win32-eventlog (0.6.3)
340
+ ffi
341
+ win32-ipc (0.7.0)
342
+ ffi
343
+ win32-mmap (0.4.2)
344
+ ffi
345
+ win32-mutex (0.4.3)
346
+ win32-ipc (>= 0.6.0)
347
+ win32-process (0.8.3)
348
+ ffi (>= 1.0.0)
349
+ win32-service (0.8.10)
350
+ ffi
351
+ ffi-win32-extensions
352
+ windows-api (0.4.4)
353
+ win32-api (>= 1.4.5)
354
+ winrm (2.2.3)
204
355
  builder (>= 2.1.2)
205
356
  erubis (~> 2.7)
206
357
  gssapi (~> 1.2)
@@ -209,7 +360,10 @@ GEM
209
360
  logging (>= 1.6.1, < 3.0)
210
361
  nori (~> 2.0)
211
362
  rubyntlm (~> 0.6.0, >= 0.6.1)
212
- winrm-fs (1.0.1)
363
+ winrm-elevated (1.1.0)
364
+ winrm (~> 2.0)
365
+ winrm-fs (~> 1.0)
366
+ winrm-fs (1.2.0)
213
367
  erubis (~> 2.7)
214
368
  logging (>= 1.6.1, < 3.0)
215
369
  rubyzip (~> 1.1)
@@ -219,6 +373,8 @@ GEM
219
373
 
220
374
  PLATFORMS
221
375
  ruby
376
+ x64-mingw32
377
+ x86-mingw32
222
378
 
223
379
  DEPENDENCIES
224
380
  berkshelf
@@ -229,4 +385,4 @@ DEPENDENCIES
229
385
  winrm-fs
230
386
 
231
387
  BUNDLED WITH
232
- 1.14.6
388
+ 1.16.1