chef-zero 0.9.1 → 0.9.2

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.
@@ -5,62 +5,78 @@ require 'chef/config'
5
5
 
6
6
  module ChefZero
7
7
  module RSpec
8
+ def self.server
9
+ @server
10
+ end
11
+ def self.server=(value)
12
+ @server = value
13
+ end
14
+ def self.client_key
15
+ @client_key
16
+ end
17
+ def self.client_key=(value)
18
+ @client_key = value
19
+ end
20
+
8
21
  def when_the_chef_server(description, &block)
9
22
  context "When the Chef server #{description}" do
10
23
  before :each do
11
- raise "Attempt to create multiple servers in one test" if @server
12
- # Set up configuration so that clients will point to the server
13
- Thin::Logging.silent = true
14
- @chef_zero_server = ChefZero::Server.new(:port => 8889)
15
- Chef::Config.chef_server_url = @chef_zero_server.url
16
- Chef::Config.node_name = 'admin'
17
- @chef_zero_client_key = Tempfile.new(['chef_zero_client_key', '.pem'])
18
- @chef_zero_client_key.write(ChefZero::PRIVATE_KEY)
19
- @chef_zero_client_key.close
20
- Chef::Config.client_key = @chef_zero_client_key
24
+ unless ChefZero::RSpec.server
25
+ # Set up configuration so that clients will point to the server
26
+ Thin::Logging.silent = true
27
+ ChefZero::RSpec.server = ChefZero::Server.new(:port => 8889, :signals => false)
28
+ ChefZero::RSpec.client_key = Tempfile.new(['chef_zero_client_key', '.pem'])
29
+ ChefZero::RSpec.client_key.write(ChefZero::PRIVATE_KEY)
30
+ ChefZero::RSpec.client_key.close
31
+ # Start the server
32
+ ChefZero::RSpec.server.start_background
33
+ else
34
+ ChefZero::RSpec.server.clear_data
35
+ end
21
36
 
22
- # Start the server
23
- @chef_zero_server.start_background
37
+ Chef::Config.chef_server_url = ChefZero::RSpec.server.url
38
+ Chef::Config.node_name = 'admin'
39
+ Chef::Config.client_key = ChefZero::RSpec.client_key
24
40
  end
25
41
 
26
42
  def self.client(name, client)
27
- before(:each) { @chef_zero_server.load_data({ 'clients' => { name => client }}) }
43
+ before(:each) { ChefZero::RSpec.server.load_data({ 'clients' => { name => client }}) }
28
44
  end
29
45
 
30
46
  def self.cookbook(name, version, cookbook)
31
- before(:each) { @chef_zero_server.load_data({ 'cookbooks' => { "#{name}-#{version}" => cookbook }}) }
47
+ before(:each) { ChefZero::RSpec.server.load_data({ 'cookbooks' => { "#{name}-#{version}" => cookbook }}) }
32
48
  end
33
49
 
34
50
  def self.data_bag(name, data_bag)
35
- before(:each) { @chef_zero_server.load_data({ 'data' => { name => data_bag }}) }
51
+ before(:each) { ChefZero::RSpec.server.load_data({ 'data' => { name => data_bag }}) }
36
52
  end
37
53
 
38
54
  def self.environment(name, environment)
39
- before(:each) { @chef_zero_server.load_data({ 'environments' => { name => environment }}) }
55
+ before(:each) { ChefZero::RSpec.server.load_data({ 'environments' => { name => environment }}) }
40
56
  end
41
57
 
42
58
  def self.node(name, node)
43
- before(:each) { @chef_zero_server.load_data({ 'nodes' => { name => node }}) }
59
+ before(:each) { ChefZero::RSpec.server.load_data({ 'nodes' => { name => node }}) }
44
60
  end
45
61
 
46
62
  def self.role(name, role)
47
- before(:each) { @chef_zero_server.load_data({ 'roles' => { name => role }}) }
63
+ before(:each) { ChefZero::RSpec.server.load_data({ 'roles' => { name => role }}) }
48
64
  end
49
65
 
50
66
  def self.user(name, user)
51
- before(:each) { @chef_zero_server.load_data({ 'users' => { name => user }}) }
67
+ before(:each) { ChefZero::RSpec.server.load_data({ 'users' => { name => user }}) }
52
68
  end
53
69
 
54
- after :each do
55
- if @chef_zero_server
56
- @chef_zero_server.stop
57
- @chef_zero_server = nil
58
- end
59
- if @chef_zero_client_key
60
- @chef_zero_client_key.unlink
61
- @chef_zero_client_key = nil
62
- end
63
- end
70
+ # after :each do
71
+ # if @@ChefZero::RSpec.server
72
+ # @@ChefZero::RSpec.server.stop
73
+ # @@ChefZero::RSpec.server = nil
74
+ # end
75
+ # if @@ChefZero::RSpec.client_key
76
+ # @@ChefZero::RSpec.client_key.unlink
77
+ # @@ChefZero::RSpec.client_key = nil
78
+ # end
79
+ # end
64
80
 
65
81
  instance_eval(&block)
66
82
  end
@@ -59,26 +59,11 @@ module ChefZero
59
59
  options[:host] ||= '127.0.0.1'
60
60
  options[:port] ||= 80
61
61
  options[:generate_real_keys] = true if !options.has_key?(:generate_real_keys)
62
- @server = Thin::Server.new(options[:host], options[:port], make_app)
62
+ thin_options = {}
63
+ thin_options[:signals] = options[:signals] if options.has_key?(:signals)
64
+ @server = Thin::Server.new(options[:host], options[:port], make_app, thin_options)
63
65
  @generate_real_keys = options[:generate_real_keys]
64
- @data = {
65
- 'clients' => {
66
- 'chef-validator' => '{ "validator": true }',
67
- 'chef-webui' => '{ "admin": true }'
68
- },
69
- 'cookbooks' => {},
70
- 'data' => {},
71
- 'environments' => {
72
- '_default' => '{ "description": "The default Chef environment" }'
73
- },
74
- 'file_store' => {},
75
- 'nodes' => {},
76
- 'roles' => {},
77
- 'sandboxes' => {},
78
- 'users' => {
79
- 'admin' => '{ "admin": true }'
80
- }
81
- }
66
+ clear_data
82
67
  end
83
68
 
84
69
  attr_reader :server
@@ -196,6 +181,27 @@ module ChefZero
196
181
  end
197
182
  end
198
183
 
184
+ def clear_data
185
+ @data = {
186
+ 'clients' => {
187
+ 'chef-validator' => '{ "validator": true }',
188
+ 'chef-webui' => '{ "admin": true }'
189
+ },
190
+ 'cookbooks' => {},
191
+ 'data' => {},
192
+ 'environments' => {
193
+ '_default' => '{ "description": "The default Chef environment" }'
194
+ },
195
+ 'file_store' => {},
196
+ 'nodes' => {},
197
+ 'roles' => {},
198
+ 'sandboxes' => {},
199
+ 'users' => {
200
+ 'admin' => '{ "admin": true }'
201
+ }
202
+ }
203
+ end
204
+
199
205
  private
200
206
 
201
207
  def make_app
@@ -1,3 +1,3 @@
1
1
  module ChefZero
2
- VERSION = '0.9.1'
2
+ VERSION = '0.9.2'
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: 0.9.1
4
+ version: 0.9.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-24 00:00:00.000000000 Z
12
+ date: 2012-12-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: chef