chef-zero 2.1.2 → 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7ed5dd8948e759d7ff44ccbc8eb4c99d55272f1
4
- data.tar.gz: f9bb0c1e71bd100f1df405c251da8fcf92908879
3
+ metadata.gz: 0ef26a6b89b99ff0da1e88ca6fe0296b712150e2
4
+ data.tar.gz: ec22088976a53a4a0b2aca77921cc74506eb71ab
5
5
  SHA512:
6
- metadata.gz: af1b4f1e43fa810539c2541fbe5eea52966dcbfb014804672e4075329eb1201f9b89b6d4cd27b48fb68ade9d7e4d19c012af3ca1684de0cd722ab8a57cbf2b4f
7
- data.tar.gz: 265e2a81198d21af35f3c5372e8cd3c847913211d9145abb14e060ff62e158847543902df616c80208f4327911a4ba6da2555dea9a25b03780d9252979c6bf2b
6
+ metadata.gz: ff404f88bed23405ec7f3c06a52a636e3f59fb64ac1e0a493d5fa84a9c874029c2c7bd425b6f72e578ea740cd40b0973bab27da1b3739ac30a46d067941dc81e
7
+ data.tar.gz: 971fa3de8cb41875d2eb4c724d5b4cae4bfbdcf993cc3504d7eb718b0e439b71bb22d38168a052d2aaf2fbda0aa264b64e3453ce9b4c342889563e0eebe05742
@@ -6,8 +6,8 @@ module ChefZero
6
6
  def initialize(real_store, single_org, options = {})
7
7
  @real_store = real_store
8
8
  @single_org = single_org
9
- org_defaults = options[:org_defaults] || {}
10
- @defaults = { 'organizations' => { single_org => org_defaults }}
9
+ @options = options
10
+ clear
11
11
  end
12
12
 
13
13
  ORG_DEFAULTS = {
@@ -27,7 +27,12 @@ module ChefZero
27
27
  attr_reader :single_org
28
28
 
29
29
  def clear
30
- real_store.clear
30
+ if @options[:org_defaults]
31
+ @defaults = { 'organizations' => { @single_org => @options[:org_defaults] }}
32
+ else
33
+ @defaults = {}
34
+ end
35
+ real_store.clear if real_store.respond_to?(:clear)
31
36
  end
32
37
 
33
38
  def create_dir(path, name, *options)
@@ -27,14 +27,19 @@ module ChefZero
27
27
  context "When the Chef server #{description}", *tags do
28
28
  before :each do
29
29
 
30
- unless ChefZero::RSpec.server
31
- default_opts = {:port => 8889, :signals => false, :log_requests => true}
32
- server_opts = if self.respond_to?(:chef_zero_opts)
33
- default_opts.merge(chef_zero_opts)
34
- else
35
- default_opts
36
- end
30
+ default_opts = {:port => 8900, :signals => false, :log_requests => true}
31
+ server_opts = if self.respond_to?(:chef_zero_opts)
32
+ default_opts.merge(chef_zero_opts)
33
+ else
34
+ default_opts
35
+ end
37
36
 
37
+ if ChefZero::RSpec.server && server_opts.any? { |opt, value| ChefZero::RSpec.server.options[opt] != value }
38
+ ChefZero::RSpec.server.stop
39
+ ChefZero::RSpec.server = nil
40
+ end
41
+
42
+ unless ChefZero::RSpec.server
38
43
  # TODO: can this be logged easily?
39
44
  # pp :zero_opts => server_opts
40
45
 
@@ -188,12 +188,25 @@ module ChefZero
188
188
  :BindAddress => @options[:host],
189
189
  :Port => @options[:port],
190
190
  :AccessLog => [],
191
- :Logger => WEBrick::Log.new(StringIO.new, 7)
191
+ :Logger => WEBrick::Log.new(StringIO.new, 7),
192
+ :StartCallback => proc {
193
+ @running = true
194
+ }
192
195
  )
193
196
  @server.mount('/', Rack::Handler::WEBrick, app)
194
197
 
195
- @thread = Thread.new { @server.start }
196
- @thread.abort_on_exception = true
198
+ @thread = Thread.new do
199
+ begin
200
+ Thread.abort_on_exception = true
201
+ @server.start
202
+ ensure
203
+ @running = false
204
+ end
205
+ end
206
+ # Do not return until the web server is genuinely started.
207
+ while !@running && @thread.alive?
208
+ sleep(0.01)
209
+ end
197
210
  @thread
198
211
  end
199
212
 
@@ -206,16 +219,7 @@ module ChefZero
206
219
  # true if the server is accepting requests, false otherwise
207
220
  #
208
221
  def running?
209
- if @server.nil? || @server.status != :Running
210
- return false
211
- end
212
-
213
- uri = URI.join(url, 'cookbooks')
214
- headers = { 'Accept' => 'application/json' }
215
-
216
- Timeout.timeout(0.1) { !open(uri, headers).nil? }
217
- rescue SocketError, Errno::ECONNREFUSED, Timeout::Error
218
- false
222
+ !@server.nil? && @running && @server.status == :Running
219
223
  end
220
224
 
221
225
  #
@@ -226,7 +230,7 @@ module ChefZero
226
230
  # server
227
231
  #
228
232
  def stop(wait = 5)
229
- if @thread
233
+ if @running
230
234
  @server.shutdown
231
235
  @thread.join(wait)
232
236
  end
@@ -1,3 +1,3 @@
1
1
  module ChefZero
2
- VERSION = '2.1.2'
2
+ VERSION = '2.1.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-zero
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Keiser