chef-zero 14.0.13 → 15.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -6
  3. data/Rakefile +9 -1
  4. data/bin/chef-zero +2 -2
  5. data/chef-zero.gemspec +2 -5
  6. data/lib/chef_zero.rb +1 -1
  7. data/lib/chef_zero/chef_data/cookbook_data.rb +2 -2
  8. data/lib/chef_zero/chef_data/data_normalizer.rb +10 -7
  9. data/lib/chef_zero/chef_data/default_creator.rb +8 -5
  10. data/lib/chef_zero/data_store/data_already_exists_error.rb +1 -1
  11. data/lib/chef_zero/data_store/data_error.rb +1 -1
  12. data/lib/chef_zero/data_store/data_not_found_error.rb +1 -1
  13. data/lib/chef_zero/data_store/default_facade.rb +4 -4
  14. data/lib/chef_zero/data_store/interface_v2.rb +1 -1
  15. data/lib/chef_zero/data_store/memory_store.rb +3 -3
  16. data/lib/chef_zero/data_store/memory_store_v2.rb +22 -14
  17. data/lib/chef_zero/data_store/raw_file_store.rb +7 -5
  18. data/lib/chef_zero/data_store/v1_to_v2_adapter.rb +11 -1
  19. data/lib/chef_zero/data_store/v2_to_v1_adapter.rb +1 -1
  20. data/lib/chef_zero/endpoints/acl_endpoint.rb +4 -3
  21. data/lib/chef_zero/endpoints/acls_endpoint.rb +6 -5
  22. data/lib/chef_zero/endpoints/actor_default_key_endpoint.rb +2 -1
  23. data/lib/chef_zero/endpoints/actor_endpoint.rb +4 -4
  24. data/lib/chef_zero/endpoints/actor_key_endpoint.rb +1 -1
  25. data/lib/chef_zero/endpoints/actor_keys_endpoint.rb +3 -2
  26. data/lib/chef_zero/endpoints/actors_endpoint.rb +2 -2
  27. data/lib/chef_zero/endpoints/authenticate_user_endpoint.rb +3 -2
  28. data/lib/chef_zero/endpoints/container_endpoint.rb +3 -3
  29. data/lib/chef_zero/endpoints/containers_endpoint.rb +3 -3
  30. data/lib/chef_zero/endpoints/controls_endpoint.rb +1 -1
  31. data/lib/chef_zero/endpoints/cookbook_artifact_endpoint.rb +1 -1
  32. data/lib/chef_zero/endpoints/cookbook_artifact_identifier_endpoint.rb +3 -3
  33. data/lib/chef_zero/endpoints/cookbook_artifacts_endpoint.rb +1 -1
  34. data/lib/chef_zero/endpoints/cookbook_endpoint.rb +1 -1
  35. data/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +8 -6
  36. data/lib/chef_zero/endpoints/cookbooks_base.rb +5 -3
  37. data/lib/chef_zero/endpoints/cookbooks_endpoint.rb +1 -1
  38. data/lib/chef_zero/endpoints/data_bag_endpoint.rb +4 -4
  39. data/lib/chef_zero/endpoints/data_bag_item_endpoint.rb +4 -4
  40. data/lib/chef_zero/endpoints/data_bags_endpoint.rb +3 -3
  41. data/lib/chef_zero/endpoints/environment_cookbook_endpoint.rb +2 -2
  42. data/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb +14 -11
  43. data/lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb +2 -2
  44. data/lib/chef_zero/endpoints/environment_endpoint.rb +3 -3
  45. data/lib/chef_zero/endpoints/environment_nodes_endpoint.rb +2 -2
  46. data/lib/chef_zero/endpoints/environment_recipes_endpoint.rb +2 -2
  47. data/lib/chef_zero/endpoints/environment_role_endpoint.rb +2 -2
  48. data/lib/chef_zero/endpoints/file_store_file_endpoint.rb +1 -1
  49. data/lib/chef_zero/endpoints/group_endpoint.rb +3 -3
  50. data/lib/chef_zero/endpoints/groups_endpoint.rb +2 -2
  51. data/lib/chef_zero/endpoints/license_endpoint.rb +2 -2
  52. data/lib/chef_zero/endpoints/node_endpoint.rb +3 -3
  53. data/lib/chef_zero/endpoints/node_identifiers_endpoint.rb +2 -2
  54. data/lib/chef_zero/endpoints/nodes_endpoint.rb +3 -3
  55. data/lib/chef_zero/endpoints/not_found_endpoint.rb +2 -2
  56. data/lib/chef_zero/endpoints/organization_association_request_endpoint.rb +3 -2
  57. data/lib/chef_zero/endpoints/organization_association_requests_endpoint.rb +2 -2
  58. data/lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb +2 -2
  59. data/lib/chef_zero/endpoints/organization_endpoint.rb +4 -3
  60. data/lib/chef_zero/endpoints/organization_user_base.rb +2 -2
  61. data/lib/chef_zero/endpoints/organization_user_default_key_endpoint.rb +1 -1
  62. data/lib/chef_zero/endpoints/organization_user_endpoint.rb +2 -2
  63. data/lib/chef_zero/endpoints/organization_user_key_endpoint.rb +2 -2
  64. data/lib/chef_zero/endpoints/organization_user_keys_endpoint.rb +1 -1
  65. data/lib/chef_zero/endpoints/organization_users_endpoint.rb +3 -3
  66. data/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb +2 -2
  67. data/lib/chef_zero/endpoints/organizations_endpoint.rb +2 -2
  68. data/lib/chef_zero/endpoints/policies_endpoint.rb +1 -1
  69. data/lib/chef_zero/endpoints/policy_endpoint.rb +1 -1
  70. data/lib/chef_zero/endpoints/policy_group_endpoint.rb +3 -3
  71. data/lib/chef_zero/endpoints/policy_group_policy_endpoint.rb +4 -4
  72. data/lib/chef_zero/endpoints/policy_groups_endpoint.rb +3 -3
  73. data/lib/chef_zero/endpoints/policy_revision_endpoint.rb +1 -1
  74. data/lib/chef_zero/endpoints/policy_revisions_endpoint.rb +1 -1
  75. data/lib/chef_zero/endpoints/principal_endpoint.rb +3 -3
  76. data/lib/chef_zero/endpoints/rest_list_endpoint.rb +3 -3
  77. data/lib/chef_zero/endpoints/rest_object_endpoint.rb +4 -3
  78. data/lib/chef_zero/endpoints/role_endpoint.rb +3 -3
  79. data/lib/chef_zero/endpoints/role_environments_endpoint.rb +2 -2
  80. data/lib/chef_zero/endpoints/sandbox_endpoint.rb +4 -4
  81. data/lib/chef_zero/endpoints/sandboxes_endpoint.rb +2 -2
  82. data/lib/chef_zero/endpoints/search_endpoint.rb +9 -9
  83. data/lib/chef_zero/endpoints/searches_endpoint.rb +1 -1
  84. data/lib/chef_zero/endpoints/server_api_version_endpoint.rb +1 -1
  85. data/lib/chef_zero/endpoints/system_recovery_endpoint.rb +4 -4
  86. data/lib/chef_zero/endpoints/universe_endpoint.rb +3 -3
  87. data/lib/chef_zero/endpoints/user_association_request_endpoint.rb +3 -2
  88. data/lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb +2 -2
  89. data/lib/chef_zero/endpoints/user_association_requests_endpoint.rb +2 -2
  90. data/lib/chef_zero/endpoints/user_organizations_endpoint.rb +2 -2
  91. data/lib/chef_zero/endpoints/version_endpoint.rb +2 -2
  92. data/lib/chef_zero/rest_base.rb +20 -16
  93. data/lib/chef_zero/rest_request.rb +10 -6
  94. data/lib/chef_zero/rest_router.rb +3 -3
  95. data/lib/chef_zero/rspec.rb +4 -3
  96. data/lib/chef_zero/server.rb +95 -91
  97. data/lib/chef_zero/socketless_server_map.rb +3 -2
  98. data/lib/chef_zero/solr/query/phrase.rb +2 -2
  99. data/lib/chef_zero/solr/query/range_query.rb +3 -3
  100. data/lib/chef_zero/solr/query/term.rb +1 -1
  101. data/lib/chef_zero/solr/solr_parser.rb +12 -10
  102. data/lib/chef_zero/version.rb +1 -1
  103. data/spec/run_oc_pedant.rb +8 -6
  104. data/spec/search_spec.rb +2 -2
  105. data/spec/server_spec.rb +2 -2
  106. data/spec/socketless_server_map_spec.rb +1 -1
  107. data/spec/support/oc_pedant.rb +1 -1
  108. metadata +5 -33
@@ -1,4 +1,4 @@
1
- require "chef_zero/rest_base"
1
+ require_relative "../rest_base"
2
2
 
3
3
  module ChefZero
4
4
  module Endpoints
@@ -1,4 +1,4 @@
1
- require "chef_zero/rest_base"
1
+ require_relative "../rest_base"
2
2
 
3
3
  module ChefZero
4
4
  module Endpoints
@@ -1,5 +1,5 @@
1
- require "ffi_yajl"
2
- require "chef_zero/rest_base"
1
+ require "ffi_yajl" unless defined?(FFI_Yajl)
2
+ require_relative "../rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -10,13 +10,13 @@ module ChefZero
10
10
  name = request_json["username"]
11
11
  password = request_json["password"]
12
12
  user = get_data(request, request.rest_path[0..-2] + ["users", name], :nil)
13
- if !user
13
+ unless user
14
14
  raise RestErrorResponse.new(403, "Nonexistent user")
15
15
  end
16
16
 
17
17
  user = FFI_Yajl::Parser.parse(user)
18
18
  user = ChefData::DataNormalizer.normalize_user(user, name, [ "username" ], server.options[:osc_compat])
19
- if !user["recovery_authentication_enabled"]
19
+ unless user["recovery_authentication_enabled"]
20
20
  raise RestErrorResponse.new(403, "Only users with recovery_authentication_enabled=true may use /system_recovery to log in")
21
21
  end
22
22
  if user["password"] != password
@@ -1,6 +1,6 @@
1
- require "ffi_yajl"
2
- require "chef_zero/endpoints/rest_object_endpoint"
3
- require "chef_zero/chef_data/data_normalizer"
1
+ require "ffi_yajl" unless defined?(FFI_Yajl)
2
+ require_relative "rest_object_endpoint"
3
+ require_relative "../chef_data/data_normalizer"
4
4
 
5
5
  module ChefZero
6
6
  module Endpoints
@@ -1,5 +1,5 @@
1
- require "ffi_yajl"
2
- require "chef_zero/rest_base"
1
+ require "ffi_yajl" unless defined?(FFI_Yajl)
2
+ require_relative "../rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -11,6 +11,7 @@ module ChefZero
11
11
  if id !~ /^#{username}-(.+)/
12
12
  raise RestErrorResponse.new(400, "Association request #{id} is invalid. Must be #{username}-orgname.")
13
13
  end
14
+
14
15
  orgname = $1
15
16
 
16
17
  json = FFI_Yajl::Parser.parse(request.body)
@@ -1,5 +1,5 @@
1
- require "ffi_yajl"
2
- require "chef_zero/rest_base"
1
+ require "ffi_yajl" unless defined?(FFI_Yajl)
2
+ require_relative "../rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -1,5 +1,5 @@
1
- require "ffi_yajl"
2
- require "chef_zero/rest_base"
1
+ require "ffi_yajl" unless defined?(FFI_Yajl)
2
+ require_relative "../rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -1,5 +1,5 @@
1
- require "ffi_yajl"
2
- require "chef_zero/rest_base"
1
+ require "ffi_yajl" unless defined?(FFI_Yajl)
2
+ require_relative "../rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -1,5 +1,5 @@
1
- require "chef_zero/rest_base"
2
- require "chef_zero/dist"
1
+ require_relative "../rest_base"
2
+ require_relative "../dist"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -1,7 +1,7 @@
1
- require "chef_zero/rest_request"
2
- require "chef_zero/rest_error_response"
3
- require "chef_zero/data_store/data_not_found_error"
4
- require "chef_zero/chef_data/acl_path"
1
+ require_relative "rest_request"
2
+ require_relative "rest_error_response"
3
+ require_relative "data_store/data_not_found_error"
4
+ require_relative "chef_data/acl_path"
5
5
 
6
6
  module ChefZero
7
7
  class RestBase
@@ -30,15 +30,13 @@ module ChefZero
30
30
  }
31
31
 
32
32
  return json_response(406,
33
- response,
34
- request_version: version, response_version: -1
35
- )
33
+ response,
34
+ request_version: version, response_version: -1)
36
35
  end
37
36
  rescue ArgumentError
38
37
  json_response(406,
39
- { "username" => request.requestor },
40
- request_version: -1, response_version: -1
41
- )
38
+ { "username" => request.requestor },
39
+ request_version: -1, response_version: -1)
42
40
  end
43
41
 
44
42
  def call(request)
@@ -46,14 +44,15 @@ module ChefZero
46
44
  return response unless response.nil?
47
45
 
48
46
  method = request.method.downcase.to_sym
49
- if !respond_to?(method)
50
- accept_methods = [:get, :put, :post, :delete].select { |m| respond_to?(m) }
47
+ unless respond_to?(method)
48
+ accept_methods = %i{get put post delete}.select { |m| respond_to?(m) }
51
49
  accept_methods_str = accept_methods.map { |m| m.to_s.upcase }.join(", ")
52
- return [405, { "Content-Type" => "text/plain", "Allow" => accept_methods_str }, "Bad request method for '#{request.env['REQUEST_PATH']}': #{request.env['REQUEST_METHOD']}"]
50
+ return [405, { "Content-Type" => "text/plain", "Allow" => accept_methods_str }, "Bad request method for '#{request.env["REQUEST_PATH"]}': #{request.env["REQUEST_METHOD"]}"]
53
51
  end
54
52
  if json_only && !accepts?(request, "application", "json")
55
53
  return [406, { "Content-Type" => "text/plain" }, "Must accept application/json"]
56
54
  end
55
+
57
56
  # Dispatch to get()/post()/put()/delete()
58
57
  begin
59
58
  send(method, request)
@@ -70,14 +69,15 @@ module ChefZero
70
69
  def accepts?(request, category, type)
71
70
  # If HTTP_ACCEPT is not sent at all, assume it accepts anything
72
71
  # This parses as per http://tools.ietf.org/html/rfc7231#section-5.3
73
- return true if !request.env["HTTP_ACCEPT"]
72
+ return true unless request.env["HTTP_ACCEPT"]
73
+
74
74
  accepts = request.env["HTTP_ACCEPT"].split(/,\s*/).map { |x| x.split(";", 2)[0].strip }
75
75
  accepts.include?("#{category}/#{type}") || accepts.include?("#{category}/*") || accepts.include?("*/*")
76
76
  end
77
77
 
78
78
  def get_data(request, rest_path = nil, *options)
79
79
  rest_path ||= request.rest_path
80
- rest_path = rest_path.map { |v| URI.decode(v) }
80
+ rest_path = rest_path.map { |v| self.class.rfc2396_parser.unescape(v) }
81
81
  begin
82
82
  data_store.get(rest_path, request)
83
83
  rescue DataStore::DataNotFoundError
@@ -284,7 +284,7 @@ module ChefZero
284
284
  end
285
285
 
286
286
  def self.build_uri(base_uri, rest_path)
287
- "#{base_uri}/#{rest_path.map { |v| URI.escape(v) }.join('/')}"
287
+ "#{base_uri}/#{rest_path.map { |v| rfc2396_parser.escape(v) }.join("/")}"
288
288
  end
289
289
 
290
290
  def populate_defaults(request, response)
@@ -324,5 +324,9 @@ module ChefZero
324
324
  name.size > 255 ||
325
325
  name =~ /[+ !]/
326
326
  end
327
+
328
+ def self.rfc2396_parser
329
+ @parser ||= URI::RFC2396_Parser.new
330
+ end
327
331
  end
328
332
  end
@@ -1,8 +1,8 @@
1
1
  require "rack/request"
2
+ require "cgi" unless defined?(CGI)
2
3
 
3
4
  module ChefZero
4
5
  class RestRequest
5
-
6
6
  def initialize(env, rest_base_prefix = [])
7
7
  @env = env
8
8
  @rest_base_prefix = rest_base_prefix
@@ -18,7 +18,7 @@ module ChefZero
18
18
  else
19
19
  scheme = env["rack.url_scheme"]
20
20
  end
21
- @base_uri ||= "#{scheme}://#{env['HTTP_HOST']}#{env['SCRIPT_NAME']}"
21
+ @base_uri ||= "#{scheme}://#{env["HTTP_HOST"]}#{env["SCRIPT_NAME"]}"
22
22
  end
23
23
 
24
24
  def base_uri=(value)
@@ -61,24 +61,28 @@ module ChefZero
61
61
  @query_params ||= begin
62
62
  params = Rack::Request.new(env).GET
63
63
  params.keys.each do |key|
64
- params[key] = URI.unescape(params[key])
64
+ params[key] = self.class.rfc2396_parser.unescape(params[key])
65
65
  end
66
66
  params
67
67
  end
68
68
  end
69
69
 
70
70
  def to_s
71
- result = "#{method} #{rest_path.join('/')}"
71
+ result = "#{method} #{rest_path.join("/")}"
72
72
  if query_params.size > 0
73
- result << "?#{query_params.map { |k, v| "#{k}=#{v}" }.join('&')}"
73
+ result << "?#{query_params.map { |k, v| "#{k}=#{v}" }.join("&")}"
74
74
  end
75
75
  if body.chomp != ""
76
76
  result << "\n--- #{method} BODY ---\n"
77
77
  result << body
78
- result << "\n" if !body.end_with?("\n")
78
+ result << "\n" unless body.end_with?("\n")
79
79
  result << "--- END #{method} BODY ---"
80
80
  end
81
81
  result
82
82
  end
83
+
84
+ def self.rfc2396_parser
85
+ @parser ||= URI::RFC2396_Parser.new
86
+ end
83
87
  end
84
88
  end
@@ -1,13 +1,13 @@
1
- require "pp"
1
+ require "pp" unless defined?(PP)
2
2
 
3
3
  module ChefZero
4
4
  class RestRouter
5
5
  def initialize(routes)
6
6
  @routes = routes.map do |route, endpoint|
7
7
  if route =~ /\*\*$/
8
- pattern = Regexp.new("^#{route[0..-3].gsub('*', '[^/]*')}")
8
+ pattern = Regexp.new("^#{route[0..-3].gsub("*", "[^/]*")}")
9
9
  else
10
- pattern = Regexp.new("^#{route.gsub('*', '[^/]*')}$")
10
+ pattern = Regexp.new("^#{route.gsub("*", "[^/]*")}$")
11
11
  end
12
12
  [ pattern, endpoint ]
13
13
  end
@@ -1,6 +1,6 @@
1
- require "tempfile"
2
- require "chef_zero/server"
3
- require "chef_zero/rest_request"
1
+ require "tempfile" unless defined?(Tempfile)
2
+ require_relative "server"
3
+ require_relative "rest_request"
4
4
 
5
5
  module ChefZero
6
6
  module RSpec
@@ -69,6 +69,7 @@ module ChefZero
69
69
  if chef_server_options[:server_scope] != self.class.chef_server_options[:server_scope]
70
70
  raise "server_scope: #{chef_server_options[:server_scope]} will not be honored: it can only be set on when_the_chef_server!"
71
71
  end
72
+
72
73
  Log.info("Starting #{ChefZero::Dist::PRODUCT} server with options #{chef_server_options}")
73
74
 
74
75
  ChefZero::RSpec.set_server_options(chef_server_options)
@@ -16,97 +16,97 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require "openssl"
20
- require "open-uri"
21
- require "rubygems"
22
- require "timeout"
23
- require "stringio"
24
-
25
- require "rack"
26
- require "webrick"
19
+ require "openssl" unless defined?(OpenSSL)
20
+ require "open-uri" unless defined?(OpenURI)
21
+ require "rubygems" unless defined?(Gem)
22
+ require "timeout" unless defined?(Timeout)
23
+ require "stringio" unless defined?(StringIO)
24
+
25
+ require "rack" unless defined?(Rack)
26
+ require "webrick" unless defined?(WEBrick)
27
27
  require "webrick/https"
28
28
 
29
- require "chef_zero"
30
- require "chef_zero/socketless_server_map"
31
- require "chef_zero/chef_data/cookbook_data"
32
- require "chef_zero/chef_data/acl_path"
33
- require "chef_zero/rest_router"
34
- require "chef_zero/data_store/memory_store_v2"
35
- require "chef_zero/data_store/v1_to_v2_adapter"
36
- require "chef_zero/data_store/default_facade"
37
- require "chef_zero/version"
29
+ require_relative "../chef_zero"
30
+ require_relative "socketless_server_map"
31
+ require_relative "chef_data/cookbook_data"
32
+ require_relative "chef_data/acl_path"
33
+ require_relative "rest_router"
34
+ require_relative "data_store/memory_store_v2"
35
+ require_relative "data_store/v1_to_v2_adapter"
36
+ require_relative "data_store/default_facade"
37
+ require_relative "version"
38
38
  require "chef_zero/dist.rb"
39
39
 
40
- require "chef_zero/endpoints/rest_list_endpoint"
41
- require "chef_zero/endpoints/authenticate_user_endpoint"
42
- require "chef_zero/endpoints/acls_endpoint"
43
- require "chef_zero/endpoints/acl_endpoint"
44
- require "chef_zero/endpoints/actor_endpoint"
45
- require "chef_zero/endpoints/actors_endpoint"
46
- require "chef_zero/endpoints/actor_key_endpoint"
47
- require "chef_zero/endpoints/organization_user_key_endpoint"
48
- require "chef_zero/endpoints/organization_user_default_key_endpoint"
49
- require "chef_zero/endpoints/organization_user_keys_endpoint"
50
- require "chef_zero/endpoints/actor_default_key_endpoint"
51
- require "chef_zero/endpoints/actor_keys_endpoint"
52
- require "chef_zero/endpoints/cookbooks_endpoint"
53
- require "chef_zero/endpoints/cookbook_endpoint"
54
- require "chef_zero/endpoints/cookbook_version_endpoint"
55
- require "chef_zero/endpoints/cookbook_artifacts_endpoint"
56
- require "chef_zero/endpoints/cookbook_artifact_endpoint"
57
- require "chef_zero/endpoints/cookbook_artifact_identifier_endpoint"
58
- require "chef_zero/endpoints/containers_endpoint"
59
- require "chef_zero/endpoints/container_endpoint"
60
- require "chef_zero/endpoints/controls_endpoint"
61
- require "chef_zero/endpoints/dummy_endpoint"
62
- require "chef_zero/endpoints/data_bags_endpoint"
63
- require "chef_zero/endpoints/data_bag_endpoint"
64
- require "chef_zero/endpoints/data_bag_item_endpoint"
65
- require "chef_zero/endpoints/groups_endpoint"
66
- require "chef_zero/endpoints/group_endpoint"
67
- require "chef_zero/endpoints/environment_endpoint"
68
- require "chef_zero/endpoints/environment_cookbooks_endpoint"
69
- require "chef_zero/endpoints/environment_cookbook_endpoint"
70
- require "chef_zero/endpoints/environment_cookbook_versions_endpoint"
71
- require "chef_zero/endpoints/environment_nodes_endpoint"
72
- require "chef_zero/endpoints/environment_recipes_endpoint"
73
- require "chef_zero/endpoints/environment_role_endpoint"
74
- require "chef_zero/endpoints/license_endpoint"
75
- require "chef_zero/endpoints/node_endpoint"
76
- require "chef_zero/endpoints/nodes_endpoint"
77
- require "chef_zero/endpoints/node_identifiers_endpoint"
78
- require "chef_zero/endpoints/organizations_endpoint"
79
- require "chef_zero/endpoints/organization_endpoint"
80
- require "chef_zero/endpoints/organization_association_requests_endpoint"
81
- require "chef_zero/endpoints/organization_association_request_endpoint"
82
- require "chef_zero/endpoints/organization_authenticate_user_endpoint"
83
- require "chef_zero/endpoints/organization_users_endpoint"
84
- require "chef_zero/endpoints/organization_user_endpoint"
85
- require "chef_zero/endpoints/organization_validator_key_endpoint"
86
- require "chef_zero/endpoints/policies_endpoint"
87
- require "chef_zero/endpoints/policy_endpoint"
88
- require "chef_zero/endpoints/policy_revisions_endpoint"
89
- require "chef_zero/endpoints/policy_revision_endpoint"
90
- require "chef_zero/endpoints/policy_groups_endpoint"
91
- require "chef_zero/endpoints/policy_group_endpoint"
92
- require "chef_zero/endpoints/policy_group_policy_endpoint"
93
- require "chef_zero/endpoints/principal_endpoint"
94
- require "chef_zero/endpoints/role_endpoint"
95
- require "chef_zero/endpoints/role_environments_endpoint"
96
- require "chef_zero/endpoints/sandboxes_endpoint"
97
- require "chef_zero/endpoints/sandbox_endpoint"
98
- require "chef_zero/endpoints/searches_endpoint"
99
- require "chef_zero/endpoints/search_endpoint"
100
- require "chef_zero/endpoints/system_recovery_endpoint"
101
- require "chef_zero/endpoints/user_association_requests_endpoint"
102
- require "chef_zero/endpoints/user_association_requests_count_endpoint"
103
- require "chef_zero/endpoints/user_association_request_endpoint"
104
- require "chef_zero/endpoints/user_organizations_endpoint"
105
- require "chef_zero/endpoints/file_store_file_endpoint"
106
- require "chef_zero/endpoints/not_found_endpoint"
107
- require "chef_zero/endpoints/version_endpoint"
108
- require "chef_zero/endpoints/server_api_version_endpoint"
109
- require "chef_zero/endpoints/universe_endpoint"
40
+ require_relative "endpoints/rest_list_endpoint"
41
+ require_relative "endpoints/authenticate_user_endpoint"
42
+ require_relative "endpoints/acls_endpoint"
43
+ require_relative "endpoints/acl_endpoint"
44
+ require_relative "endpoints/actor_endpoint"
45
+ require_relative "endpoints/actors_endpoint"
46
+ require_relative "endpoints/actor_key_endpoint"
47
+ require_relative "endpoints/organization_user_key_endpoint"
48
+ require_relative "endpoints/organization_user_default_key_endpoint"
49
+ require_relative "endpoints/organization_user_keys_endpoint"
50
+ require_relative "endpoints/actor_default_key_endpoint"
51
+ require_relative "endpoints/actor_keys_endpoint"
52
+ require_relative "endpoints/cookbooks_endpoint"
53
+ require_relative "endpoints/cookbook_endpoint"
54
+ require_relative "endpoints/cookbook_version_endpoint"
55
+ require_relative "endpoints/cookbook_artifacts_endpoint"
56
+ require_relative "endpoints/cookbook_artifact_endpoint"
57
+ require_relative "endpoints/cookbook_artifact_identifier_endpoint"
58
+ require_relative "endpoints/containers_endpoint"
59
+ require_relative "endpoints/container_endpoint"
60
+ require_relative "endpoints/controls_endpoint"
61
+ require_relative "endpoints/dummy_endpoint"
62
+ require_relative "endpoints/data_bags_endpoint"
63
+ require_relative "endpoints/data_bag_endpoint"
64
+ require_relative "endpoints/data_bag_item_endpoint"
65
+ require_relative "endpoints/groups_endpoint"
66
+ require_relative "endpoints/group_endpoint"
67
+ require_relative "endpoints/environment_endpoint"
68
+ require_relative "endpoints/environment_cookbooks_endpoint"
69
+ require_relative "endpoints/environment_cookbook_endpoint"
70
+ require_relative "endpoints/environment_cookbook_versions_endpoint"
71
+ require_relative "endpoints/environment_nodes_endpoint"
72
+ require_relative "endpoints/environment_recipes_endpoint"
73
+ require_relative "endpoints/environment_role_endpoint"
74
+ require_relative "endpoints/license_endpoint"
75
+ require_relative "endpoints/node_endpoint"
76
+ require_relative "endpoints/nodes_endpoint"
77
+ require_relative "endpoints/node_identifiers_endpoint"
78
+ require_relative "endpoints/organizations_endpoint"
79
+ require_relative "endpoints/organization_endpoint"
80
+ require_relative "endpoints/organization_association_requests_endpoint"
81
+ require_relative "endpoints/organization_association_request_endpoint"
82
+ require_relative "endpoints/organization_authenticate_user_endpoint"
83
+ require_relative "endpoints/organization_users_endpoint"
84
+ require_relative "endpoints/organization_user_endpoint"
85
+ require_relative "endpoints/organization_validator_key_endpoint"
86
+ require_relative "endpoints/policies_endpoint"
87
+ require_relative "endpoints/policy_endpoint"
88
+ require_relative "endpoints/policy_revisions_endpoint"
89
+ require_relative "endpoints/policy_revision_endpoint"
90
+ require_relative "endpoints/policy_groups_endpoint"
91
+ require_relative "endpoints/policy_group_endpoint"
92
+ require_relative "endpoints/policy_group_policy_endpoint"
93
+ require_relative "endpoints/principal_endpoint"
94
+ require_relative "endpoints/role_endpoint"
95
+ require_relative "endpoints/role_environments_endpoint"
96
+ require_relative "endpoints/sandboxes_endpoint"
97
+ require_relative "endpoints/sandbox_endpoint"
98
+ require_relative "endpoints/searches_endpoint"
99
+ require_relative "endpoints/search_endpoint"
100
+ require_relative "endpoints/system_recovery_endpoint"
101
+ require_relative "endpoints/user_association_requests_endpoint"
102
+ require_relative "endpoints/user_association_requests_count_endpoint"
103
+ require_relative "endpoints/user_association_request_endpoint"
104
+ require_relative "endpoints/user_organizations_endpoint"
105
+ require_relative "endpoints/file_store_file_endpoint"
106
+ require_relative "endpoints/not_found_endpoint"
107
+ require_relative "endpoints/version_endpoint"
108
+ require_relative "endpoints/server_api_version_endpoint"
109
+ require_relative "endpoints/universe_endpoint"
110
110
 
111
111
  module ChefZero
112
112
 
@@ -176,7 +176,8 @@ module ChefZero
176
176
  end
177
177
 
178
178
  def local_mode_url
179
- raise "Port not yet set, cannot generate URL" unless port.kind_of?(Integer)
179
+ raise "Port not yet set, cannot generate URL" unless port.is_a?(Integer)
180
+
180
181
  "chefzero://localhost:#{port}"
181
182
  end
182
183
 
@@ -275,7 +276,7 @@ module ChefZero
275
276
  true
276
277
  rescue Errno::EADDRINUSE
277
278
  ChefZero::Log.warn("Port #{port} not available")
278
- @server.listeners.each { |l| l.close }
279
+ @server.listeners.each(&:close)
279
280
  @server.listeners.clear
280
281
  false
281
282
  end
@@ -305,7 +306,7 @@ module ChefZero
305
306
  break
306
307
  end
307
308
  end
308
- if !@port
309
+ unless @port
309
310
  raise Errno::EADDRINUSE,
310
311
  "No port in :port range #{options[:port]} is available"
311
312
  end
@@ -501,11 +502,13 @@ module ChefZero
501
502
  else
502
503
  cookbook_data = ChefData::CookbookData.to_hash(cookbook, name_version)
503
504
  end
504
- raise "No version specified" if !cookbook_data[:version]
505
+ raise "No version specified" unless cookbook_data[:version]
506
+
505
507
  data_store.create_dir(["organizations", org_name, cookbook_type], cookbook_data[:cookbook_name], :recursive)
506
508
  data_store.set(["organizations", org_name, cookbook_type, cookbook_data[:cookbook_name], cookbook_data[:version]], FFI_Yajl::Encoder.encode(cookbook_data, pretty: true), :create)
507
509
  cookbook_data.values.each do |files|
508
510
  next unless files.is_a? Array
511
+
509
512
  files.each do |file|
510
513
  data_store.set(["organizations", org_name, "file_store", "checksums", file[:checksum]], get_file(cookbook, file[:path]), :create)
511
514
  end
@@ -642,6 +645,7 @@ module ChefZero
642
645
 
643
646
  def app
644
647
  return @app if @app
648
+
645
649
  router = RestRouter.new(endpoints)
646
650
  router.not_found = NotFoundEndpoint.new
647
651