chef-zero 0.9.8 → 0.9.9

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.
@@ -1,4 +1,8 @@
1
+ require 'chef_zero/core_ext'
2
+
1
3
  module ChefZero
4
+ autoload :Log, 'chef_zero/log'
5
+
2
6
  CERTIFICATE = "-----BEGIN CERTIFICATE-----\nMIIDMzCCApygAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnjELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFjAUBgNVBAoM\nDU9wc2NvZGUsIEluYy4xHDAaBgNVBAsME0NlcnRpZmljYXRlIFNlcnZpY2UxMjAw\nBgNVBAMMKW9wc2NvZGUuY29tL2VtYWlsQWRkcmVzcz1hdXRoQG9wc2NvZGUuY29t\nMB4XDTEyMTEyMTAwMzQyMVoXDTIyMTExOTAwMzQyMVowgZsxEDAOBgNVBAcTB1Nl\nYXR0bGUxEzARBgNVBAgTCldhc2hpbmd0b24xCzAJBgNVBAYTAlVTMRwwGgYDVQQL\nExNDZXJ0aWZpY2F0ZSBTZXJ2aWNlMRYwFAYDVQQKEw1PcHNjb2RlLCBJbmMuMS8w\nLQYDVQQDFCZVUkk6aHR0cDovL29wc2NvZGUuY29tL0dVSURTL3VzZXJfZ3VpZDCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLDmPbR71bS2esZlZh/HfC6\n0azXFjl2677wq2ovk9xrUb0Ui4ZLC66TqQ9C/RBzOjXU4TRf3hgPTqvlCgHusl0d\nIcLCrsSl6kPEhJpYWWfRoroIAwf82A9yLQekhqXZEXu5EKkwoUMqyF6m0ZCasaE1\ny8niQxdLAsk3ady/CGQlFqHTPKFfU5UASR2LRtYC1MCIvJHDFRKAp9kPJbQo9P37\nZ8IU7cDudkZFgNLmDixlWsh7C0ghX8fgAlj1P6FgsFufygam973k79GhIP54dELB\nc0S6E8ekkRSOXU9jX/IoiXuFglBvFihAdhvED58bMXzj2AwXUyeAlxItnvs+NVUC\nAwEAATANBgkqhkiG9w0BAQUFAAOBgQBkFZRbMoywK3hb0/X7MXmPYa7nlfnd5UXq\nr2n32ettzZNmEPaI2d1j+//nL5qqhOlrWPS88eKEPnBOX/jZpUWOuAAddnrvFzgw\nrp/C2H7oMT+29F+5ezeViLKbzoFYb4yECHBoi66IFXNae13yj7taMboBeUmE664G\nTB/MZpRr8g==\n-----END CERTIFICATE-----\n"
3
7
  PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0sOY9tHvVtLZ6xmVmH8d\n8LrRrNcWOXbrvvCrai+T3GtRvRSLhksLrpOpD0L9EHM6NdThNF/eGA9Oq+UKAe6y\nXR0hwsKuxKXqQ8SEmlhZZ9GiuggDB/zYD3ItB6SGpdkRe7kQqTChQyrIXqbRkJqx\noTXLyeJDF0sCyTdp3L8IZCUWodM8oV9TlQBJHYtG1gLUwIi8kcMVEoCn2Q8ltCj0\n/ftnwhTtwO52RkWA0uYOLGVayHsLSCFfx+ACWPU/oWCwW5/KBqb3veTv0aEg/nh0\nQsFzRLoTx6SRFI5dT2Nf8iiJe4WCUG8WKEB2G8QPnxsxfOPYDBdTJ4CXEi2e+z41\nVQIDAQAB\n-----END PUBLIC KEY-----\n"
4
8
  PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA0sOY9tHvVtLZ6xmVmH8d8LrRrNcWOXbrvvCrai+T3GtRvRSL\nhksLrpOpD0L9EHM6NdThNF/eGA9Oq+UKAe6yXR0hwsKuxKXqQ8SEmlhZZ9GiuggD\nB/zYD3ItB6SGpdkRe7kQqTChQyrIXqbRkJqxoTXLyeJDF0sCyTdp3L8IZCUWodM8\noV9TlQBJHYtG1gLUwIi8kcMVEoCn2Q8ltCj0/ftnwhTtwO52RkWA0uYOLGVayHsL\nSCFfx+ACWPU/oWCwW5/KBqb3veTv0aEg/nh0QsFzRLoTx6SRFI5dT2Nf8iiJe4WC\nUG8WKEB2G8QPnxsxfOPYDBdTJ4CXEi2e+z41VQIDAQABAoIBAALhqbW2KQ+G0nPk\nZacwFbi01SkHx8YBWjfCEpXhEKRy0ytCnKW5YO+CFU2gHNWcva7+uhV9OgwaKXkw\nKHLeUJH1VADVqI4Htqw2g5mYm6BPvWnNsjzpuAp+BR+VoEGkNhj67r9hatMAQr0I\nitTvSH5rvd2EumYXIHKfz1K1SegUk1u1EL1RcMzRmZe4gDb6eNBs9Sg4im4ybTG6\npPIytA8vBQVWhjuAR2Tm+wZHiy0Az6Vu7c2mS07FSX6FO4E8SxWf8idaK9ijMGSq\nFvIS04mrY6XCPUPUC4qm1qNnhDPpOr7CpI2OO98SqGanStS5NFlSFXeXPpM280/u\nfZUA0AECgYEA+x7QUnffDrt7LK2cX6wbvn4mRnFxet7bJjrfWIHf+Rm0URikaNma\nh0/wNKpKBwIH+eHK/LslgzcplrqPytGGHLOG97Gyo5tGAzyLHUWBmsNkRksY2sPL\nuHq6pYWJNkqhnWGnIbmqCr0EWih82x/y4qxbJYpYqXMrit0wVf7yAgkCgYEA1twI\ngFaXqesetTPoEHSQSgC8S4D5/NkdriUXCYb06REcvo9IpFMuiOkVUYNN5d3MDNTP\nIdBicfmvfNELvBtXDomEUD8ls1UuoTIXRNGZ0VsZXu7OErXCK0JKNNyqRmOwcvYL\nJRqLfnlei5Ndo1lu286yL74c5rdTLs/nI2p4e+0CgYB079ZmcLeILrmfBoFI8+Y/\ngJLmPrFvXBOE6+lRV7kqUFPtZ6I3yQzyccETZTDvrnx0WjaiFavUPH27WMjY01S2\nTMtO0Iq1MPsbSrglO1as8MvjB9ldFcvp7gy4Q0Sv6XT0yqJ/S+vo8Df0m+H4UBpU\nf5o6EwBSd/UQxwtZIE0lsQKBgQCswfjX8Eg8KL/lJNpIOOE3j4XXE9ptksmJl2sB\njxDnQYoiMqVO808saHVquC/vTrpd6tKtNpehWwjeTFuqITWLi8jmmQ+gNTKsC9Gn\n1Pxf2Gb67PqnEpwQGln+TRtgQ5HBrdHiQIi+5am+gnw89pDrjjO5rZwhanAo6KPJ\n1zcPNQKBgQDxFu8v4frDmRNCVaZS4f1B6wTrcMrnibIDlnzrK9GG6Hz1U7dDv8s8\nNf4UmeMzDXjlPWZVOvS5+9HKJPdPj7/onv8B2m18+lcgTTDJBkza7R1mjL1Cje/Z\nKcVGsryKN6cjE7yCDasnA7R2rVBV/7NWeJV77bmzT5O//rW4yIfUIg==\n-----END RSA PRIVATE KEY-----\n"
@@ -0,0 +1,30 @@
1
+ module ChefZero
2
+ module Chef
3
+ module Cookbook
4
+ # Handles loading configuration values from a Chef config file
5
+ #
6
+ # @author Justin Campbell <justin.campbell@riotgames.com>
7
+ class Metadata < Hash
8
+ # @param [String] path
9
+ def initialize(cookbook)
10
+ self.name(cookbook.name)
11
+ self.recipes(cookbook.fully_qualified_recipe_names)
12
+ end
13
+
14
+ def from_json(filepath)
15
+ self.merge!(JSON.parse(File.read(filepath)))
16
+ end
17
+
18
+ private
19
+
20
+ def method_missing(key, value = nil)
21
+ if value.nil?
22
+ self[key.to_sym]
23
+ else
24
+ store key.to_sym, value
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,5 +1,5 @@
1
1
  require 'digest/md5'
2
- require 'chef/cookbook/metadata' # for ruby metadata.rb dsl
2
+ require 'chef_zero/chef/cookbook/metadata'
3
3
 
4
4
  module ChefZero
5
5
  module CookbookData
@@ -30,7 +30,7 @@ module ChefZero
30
30
  end
31
31
 
32
32
  def self.metadata_from(directory, name, version, recipe_names)
33
- metadata = Chef::Cookbook::Metadata.new(PretendCookbook.new(name, recipe_names))
33
+ metadata = ChefZero::Chef::Cookbook::Metadata.new(PretendCookbook.new(name, recipe_names))
34
34
  # If both .rb and .json exist, read .rb
35
35
  # TODO if recipes has 3 recipes in it, and the Ruby/JSON has only one, should
36
36
  # the resulting recipe list have 1, or 3-4 recipes in it?
@@ -45,7 +45,6 @@ module ChefZero
45
45
  end
46
46
  result[:version] = version
47
47
  result
48
-
49
48
  end
50
49
 
51
50
  def self.files_from(directory)
@@ -0,0 +1,3 @@
1
+ Dir["#{File.dirname(__FILE__)}/core_ext/*.rb"].sort.each do |path|
2
+ require "chef_zero/core_ext/#{File.basename(path, '.rb')}"
3
+ end
@@ -0,0 +1,5 @@
1
+ require 'hashie'
2
+
3
+ class Hash
4
+ include Hashie::Extensions::DeepMerge
5
+ end
@@ -1,4 +1,5 @@
1
1
  require 'chef_zero/endpoints/cookbooks_base'
2
+ require 'solve'
2
3
 
3
4
  module ChefZero
4
5
  module Endpoints
@@ -31,7 +32,7 @@ module ChefZero
31
32
  end
32
33
 
33
34
  def latest_version(versions)
34
- sorted = versions.sort_by { |version| Chef::Version.new(version) }
35
+ sorted = versions.sort_by { |version| Solve::Version.new(version) }
35
36
  sorted[-1]
36
37
  end
37
38
  end
@@ -2,6 +2,7 @@ require 'json'
2
2
  require 'chef_zero/endpoints/rest_object_endpoint'
3
3
  require 'chef_zero/rest_error_response'
4
4
  require 'chef_zero/data_normalizer'
5
+ require 'solve'
5
6
 
6
7
  module ChefZero
7
8
  module Endpoints
@@ -98,7 +99,7 @@ module ChefZero
98
99
  end
99
100
 
100
101
  def latest_version(versions)
101
- sorted = versions.sort_by { |version| Chef::Version.new(version) }
102
+ sorted = versions.sort_by { |version| Solve::Version.new(version) }
102
103
  sorted[-1]
103
104
  end
104
105
  end
@@ -1,9 +1,7 @@
1
1
  require 'json'
2
- require 'chef/exceptions' # Needed so Chef::Version/VersionConstraint load
3
- require 'chef/version_class'
4
- require 'chef/version_constraint'
5
2
  require 'chef_zero/rest_base'
6
3
  require 'chef_zero/data_normalizer'
4
+ require 'solve'
7
5
 
8
6
  module ChefZero
9
7
  module Endpoints
@@ -28,11 +26,11 @@ module ChefZero
28
26
 
29
27
  def filter_cookbooks(cookbooks_list, constraints = {}, num_versions = nil)
30
28
  cookbooks_list.keys.sort.each do |name|
31
- constraint = Chef::VersionConstraint.new(constraints[name])
29
+ constraint = Solve::Constraint.new(constraints[name])
32
30
  versions = []
33
- cookbooks_list[name].keys.sort_by { |version| Chef::Version.new(version) }.reverse.each do |version|
31
+ cookbooks_list[name].keys.sort_by { |version| Solve::Version.new(version) }.reverse.each do |version|
34
32
  break if num_versions && versions.size >= num_versions
35
- if constraint.include?(version)
33
+ if constraint.satisfies?(version)
36
34
  versions << version
37
35
  end
38
36
  end
@@ -1,9 +1,7 @@
1
1
  require 'json'
2
- require 'chef/exceptions' # Needed so Chef::Version/VersionConstraint load
3
- require 'chef/version_class'
4
- require 'chef/version_constraint'
5
2
  require 'chef_zero/rest_base'
6
3
  require 'chef_zero/rest_error_response'
4
+ require 'solve'
7
5
 
8
6
  module ChefZero
9
7
  module Endpoints
@@ -100,15 +98,15 @@ module ChefZero
100
98
  end
101
99
 
102
100
  def sort_versions(versions)
103
- result = versions.sort_by { |version| Chef::Version.new(version) }
101
+ result = versions.sort_by { |version| Solve::Version.new(version) }
104
102
  result.reverse
105
103
  end
106
104
 
107
105
  def filter_by_constraint(versions, cookbook_name, constraint)
108
106
  return versions if !constraint
109
- constraint = Chef::VersionConstraint.new(constraint)
107
+ constraint = Solve::Constraint.new(constraint)
110
108
  new_versions = versions[cookbook_name]
111
- new_versions = new_versions.select { |version| constraint.include?(version) }
109
+ new_versions = new_versions.select { |version| constraint.satisfies?(version) }
112
110
  result = versions.clone
113
111
  result[cookbook_name] = new_versions
114
112
  result
@@ -1,5 +1,4 @@
1
1
  require 'json'
2
- require 'chef/mixin/deep_merge'
3
2
  require 'chef_zero/endpoints/rest_object_endpoint'
4
3
  require 'chef_zero/data_normalizer'
5
4
  require 'chef_zero/rest_error_response'
@@ -64,10 +63,10 @@ module ChefZero
64
63
  def expand_for_indexing(value, index, id)
65
64
  if index == 'node'
66
65
  result = {}
67
- Chef::Mixin::DeepMerge.deep_merge!(value['default'] || {}, result)
68
- Chef::Mixin::DeepMerge.deep_merge!(value['normal'] || {}, result)
69
- Chef::Mixin::DeepMerge.deep_merge!(value['override'] || {}, result)
70
- Chef::Mixin::DeepMerge.deep_merge!(value['automatic'] || {}, result)
66
+ result.deep_merge!(value['default'] || {})
67
+ result.deep_merge!(value['normal'] || {})
68
+ result.deep_merge!(value['override'] || {})
69
+ result.deep_merge!(value['automatic'] || {})
71
70
  result['recipe'] = []
72
71
  result['role'] = []
73
72
  if value['run_list']
@@ -0,0 +1,7 @@
1
+ require 'mixlib/log'
2
+
3
+ module ChefZero
4
+ class Log
5
+ extend Mixlib::Log
6
+ end
7
+ end
@@ -1,6 +1,5 @@
1
1
  require 'chef_zero/rest_request'
2
2
  require 'chef_zero/rest_error_response'
3
- require 'chef/log'
4
3
 
5
4
  module ChefZero
6
5
  class RestBase
@@ -21,7 +20,7 @@ module ChefZero
21
20
  accept_methods_str = accept_methods.map { |m| m.to_s.upcase }.join(', ')
22
21
  return [405, {"Content-Type" => "text/plain", "Allow" => accept_methods_str}, "Bad request method for '#{request.env['REQUEST_PATH']}': #{request.env['REQUEST_METHOD']}"]
23
22
  end
24
- if json_only && !request.env['HTTP_ACCEPT'].split(';').include?('application/json')
23
+ if json_only && request.env['HTTP_ACCEPT'] && !request.env['HTTP_ACCEPT'].split(';').include?('application/json')
25
24
  return [406, {"Content-Type" => "text/plain"}, "Must accept application/json"]
26
25
  end
27
26
  # Dispatch to get()/post()/put()/delete()
@@ -1,5 +1,3 @@
1
- require 'chef/log'
2
-
3
1
  module ChefZero
4
2
  class RestRouter
5
3
  def initialize(routes)
@@ -14,7 +12,7 @@ module ChefZero
14
12
 
15
13
  def call(request)
16
14
  begin
17
- Chef::Log.debug "Request: #{request}"
15
+ ChefZero::Log.debug "Request: #{request}"
18
16
  clean_path = "/" + request.rest_path.join("/")
19
17
  routes.each do |route, endpoint|
20
18
  if route.match(clean_path)
@@ -23,7 +21,7 @@ module ChefZero
23
21
  end
24
22
  not_found.call(request)
25
23
  rescue
26
- Chef::Log.error("#{$!.inspect}\n#{$!.backtrace.join("\n")}")
24
+ ChefZero::Log.error("#{$!.inspect}\n#{$!.backtrace.join("\n")}")
27
25
  [500, {"Content-Type" => "text/plain"}, "Exception raised! #{$!.inspect}\n#{$!.backtrace.join("\n")}"]
28
26
  end
29
27
  end
@@ -2,7 +2,6 @@ require 'thin'
2
2
  require 'tempfile'
3
3
  require 'chef_zero/server'
4
4
  require 'chef_zero/rest_request'
5
- require 'chef/config'
6
5
 
7
6
  module ChefZero
8
7
  module RSpec
@@ -45,19 +44,23 @@ module ChefZero
45
44
  end
46
45
  ChefZero::RSpec.clear_request_log
47
46
 
48
- @old_chef_server_url = Chef::Config.chef_server_url
49
- @old_node_name = Chef::Config.node_name
50
- @old_client_key = Chef::Config.client_key
51
- Chef::Config.chef_server_url = ChefZero::RSpec.server.url
52
- Chef::Config.node_name = 'admin'
53
- Chef::Config.client_key = ChefZero::RSpec.client_key.path
54
- Chef::Config.http_retry_count = 0
47
+ if defined?(Chef::Config)
48
+ @old_chef_server_url = Chef::Config.chef_server_url
49
+ @old_node_name = Chef::Config.node_name
50
+ @old_client_key = Chef::Config.client_key
51
+ Chef::Config.chef_server_url = ChefZero::RSpec.server.url
52
+ Chef::Config.node_name = 'admin'
53
+ Chef::Config.client_key = ChefZero::RSpec.client_key.path
54
+ Chef::Config.http_retry_count = 0
55
+ end
55
56
  end
56
57
 
57
- after :each do
58
- Chef::Config.chef_server_url = @old_chef_server_url
59
- Chef::Config.node_name = @old_node_name
60
- Chef::Config.client_key = @old_client_key
58
+ if defined?(Chef::Config)
59
+ after :each do
60
+ Chef::Config.chef_server_url = @old_chef_server_url
61
+ Chef::Config.node_name = @old_node_name
62
+ Chef::Config.client_key = @old_client_key
63
+ end
61
64
  end
62
65
 
63
66
  def self.client(name, client)
@@ -87,13 +87,14 @@ module ChefZero
87
87
  server.start
88
88
  rescue
89
89
  @server_error = $!
90
- Chef::Log.error("#{$!.message}\n#{$!.backtrace.join("\n")}")
90
+ ChefZero::Log.error("#{$!.message}\n#{$!.backtrace.join("\n")}")
91
91
  end
92
92
  end
93
93
  Timeout::timeout(timeout) do
94
94
  until server.running? || @server_error
95
95
  sleep(0.01)
96
96
  end
97
+ raise @server_error if @server_error
97
98
  end
98
99
  end
99
100
 
@@ -107,7 +108,7 @@ module ChefZero
107
108
  @thread.join(timeout)
108
109
  @thread = nil
109
110
  rescue
110
- Chef::Log.error("Server did not stop within #{timeout}s. Killing.")
111
+ ChefZero::Log.error("Server did not stop within #{timeout}s. Killing.")
111
112
  @thread.kill if @thread
112
113
  @thread = nil
113
114
  end
@@ -210,6 +211,10 @@ module ChefZero
210
211
  }
211
212
  end
212
213
 
214
+ def request_handler(&block)
215
+ @request_handler = block
216
+ end
217
+
213
218
  private
214
219
 
215
220
  def make_app
@@ -254,7 +259,13 @@ module ChefZero
254
259
  if @on_request_proc
255
260
  @on_request_proc.call(request)
256
261
  end
257
- response = router.call(request)
262
+ response = nil
263
+ if @request_handler
264
+ response = @request_handler.call(request)
265
+ end
266
+ unless response
267
+ response = router.call(request)
268
+ end
258
269
  if @on_response_proc
259
270
  @on_response_proc.call(request, response)
260
271
  end
@@ -1,3 +1,3 @@
1
1
  module ChefZero
2
- VERSION = '0.9.8'
2
+ VERSION = '0.9.9'
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.8
4
+ version: 0.9.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,10 +9,10 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-29 00:00:00.000000000 Z
12
+ date: 2013-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: chef
15
+ name: thin
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
@@ -28,13 +28,13 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: thin
31
+ name: mixlib-log
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
- version: '0'
37
+ version: 1.3.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,39 @@ dependencies:
42
42
  requirements:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
- version: '0'
45
+ version: 1.3.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: solve
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: 0.4.3
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.4.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: hashie
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: 2.0.4
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 2.0.4
46
78
  description: Self-contained, easy-setup, fast-start in-memory Chef server for testing
47
79
  and solo setup purposes
48
80
  email: jkeiser@opscode.com
@@ -56,7 +88,10 @@ files:
56
88
  - LICENSE
57
89
  - README.rdoc
58
90
  - Rakefile
91
+ - lib/chef_zero/chef/cookbook/metadata.rb
59
92
  - lib/chef_zero/cookbook_data.rb
93
+ - lib/chef_zero/core_ext/hash.rb
94
+ - lib/chef_zero/core_ext.rb
60
95
  - lib/chef_zero/data_normalizer.rb
61
96
  - lib/chef_zero/endpoints/actor_endpoint.rb
62
97
  - lib/chef_zero/endpoints/actors_endpoint.rb
@@ -87,6 +122,7 @@ files:
87
122
  - lib/chef_zero/endpoints/sandboxes_endpoint.rb
88
123
  - lib/chef_zero/endpoints/search_endpoint.rb
89
124
  - lib/chef_zero/endpoints/searches_endpoint.rb
125
+ - lib/chef_zero/log.rb
90
126
  - lib/chef_zero/rest_base.rb
91
127
  - lib/chef_zero/rest_error_response.rb
92
128
  - lib/chef_zero/rest_request.rb