chef-zero 2.1.2 → 2.1.3

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 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