chef-zero 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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