chef-zero 4.8.0 → 4.9.0

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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +8 -4
  3. data/Rakefile +20 -10
  4. data/bin/chef-zero +12 -12
  5. data/chef-zero.gemspec +24 -24
  6. data/lib/chef_zero.rb +1 -1
  7. data/lib/chef_zero/chef_data/acl_path.rb +16 -16
  8. data/lib/chef_zero/chef_data/cookbook_data.rb +24 -24
  9. data/lib/chef_zero/chef_data/data_normalizer.rb +120 -120
  10. data/lib/chef_zero/chef_data/default_creator.rb +145 -145
  11. data/lib/chef_zero/data_store/data_already_exists_error.rb +1 -1
  12. data/lib/chef_zero/data_store/data_not_found_error.rb +2 -2
  13. data/lib/chef_zero/data_store/default_facade.rb +5 -5
  14. data/lib/chef_zero/data_store/interface_v1.rb +1 -1
  15. data/lib/chef_zero/data_store/interface_v2.rb +1 -1
  16. data/lib/chef_zero/data_store/memory_store.rb +4 -4
  17. data/lib/chef_zero/data_store/memory_store_v2.rb +8 -8
  18. data/lib/chef_zero/data_store/raw_file_store.rb +10 -10
  19. data/lib/chef_zero/data_store/v1_to_v2_adapter.rb +9 -9
  20. data/lib/chef_zero/data_store/v2_to_v1_adapter.rb +5 -5
  21. data/lib/chef_zero/endpoints/acl_endpoint.rb +6 -6
  22. data/lib/chef_zero/endpoints/acls_endpoint.rb +5 -5
  23. data/lib/chef_zero/endpoints/actor_default_key_endpoint.rb +1 -1
  24. data/lib/chef_zero/endpoints/actor_endpoint.rb +20 -20
  25. data/lib/chef_zero/endpoints/actor_key_endpoint.rb +1 -1
  26. data/lib/chef_zero/endpoints/actor_keys_endpoint.rb +5 -6
  27. data/lib/chef_zero/endpoints/actors_endpoint.rb +12 -12
  28. data/lib/chef_zero/endpoints/authenticate_user_endpoint.rb +10 -10
  29. data/lib/chef_zero/endpoints/container_endpoint.rb +4 -4
  30. data/lib/chef_zero/endpoints/containers_endpoint.rb +3 -3
  31. data/lib/chef_zero/endpoints/cookbook_artifact_endpoint.rb +1 -1
  32. data/lib/chef_zero/endpoints/cookbook_artifact_identifier_endpoint.rb +1 -1
  33. data/lib/chef_zero/endpoints/cookbook_artifacts_endpoint.rb +1 -1
  34. data/lib/chef_zero/endpoints/cookbook_endpoint.rb +5 -5
  35. data/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +20 -16
  36. data/lib/chef_zero/endpoints/cookbooks_base.rb +13 -13
  37. data/lib/chef_zero/endpoints/cookbooks_endpoint.rb +4 -4
  38. data/lib/chef_zero/endpoints/data_bag_endpoint.rb +12 -12
  39. data/lib/chef_zero/endpoints/data_bag_item_endpoint.rb +6 -6
  40. data/lib/chef_zero/endpoints/data_bags_endpoint.rb +5 -5
  41. data/lib/chef_zero/endpoints/dummy_endpoint.rb +0 -2
  42. data/lib/chef_zero/endpoints/environment_cookbook_endpoint.rb +6 -6
  43. data/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb +16 -16
  44. data/lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb +6 -6
  45. data/lib/chef_zero/endpoints/environment_endpoint.rb +3 -3
  46. data/lib/chef_zero/endpoints/environment_nodes_endpoint.rb +6 -6
  47. data/lib/chef_zero/endpoints/environment_recipes_endpoint.rb +4 -4
  48. data/lib/chef_zero/endpoints/environment_role_endpoint.rb +8 -8
  49. data/lib/chef_zero/endpoints/file_store_file_endpoint.rb +2 -2
  50. data/lib/chef_zero/endpoints/group_endpoint.rb +4 -4
  51. data/lib/chef_zero/endpoints/groups_endpoint.rb +3 -3
  52. data/lib/chef_zero/endpoints/license_endpoint.rb +5 -5
  53. data/lib/chef_zero/endpoints/node_endpoint.rb +3 -4
  54. data/lib/chef_zero/endpoints/node_identifiers_endpoint.rb +7 -7
  55. data/lib/chef_zero/endpoints/nodes_endpoint.rb +3 -4
  56. data/lib/chef_zero/endpoints/not_found_endpoint.rb +2 -2
  57. data/lib/chef_zero/endpoints/organization_association_request_endpoint.rb +2 -2
  58. data/lib/chef_zero/endpoints/organization_association_requests_endpoint.rb +6 -6
  59. data/lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb +8 -8
  60. data/lib/chef_zero/endpoints/organization_endpoint.rb +10 -10
  61. data/lib/chef_zero/endpoints/organization_user_base.rb +2 -2
  62. data/lib/chef_zero/endpoints/organization_user_default_key_endpoint.rb +1 -1
  63. data/lib/chef_zero/endpoints/organization_user_endpoint.rb +5 -5
  64. data/lib/chef_zero/endpoints/organization_user_key_endpoint.rb +2 -2
  65. data/lib/chef_zero/endpoints/organization_user_keys_endpoint.rb +1 -1
  66. data/lib/chef_zero/endpoints/organization_users_endpoint.rb +12 -12
  67. data/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb +6 -6
  68. data/lib/chef_zero/endpoints/organizations_endpoint.rb +12 -13
  69. data/lib/chef_zero/endpoints/policies_endpoint.rb +2 -2
  70. data/lib/chef_zero/endpoints/policy_endpoint.rb +1 -1
  71. data/lib/chef_zero/endpoints/policy_group_endpoint.rb +6 -6
  72. data/lib/chef_zero/endpoints/policy_group_policy_endpoint.rb +3 -4
  73. data/lib/chef_zero/endpoints/policy_groups_endpoint.rb +4 -4
  74. data/lib/chef_zero/endpoints/policy_revision_endpoint.rb +1 -1
  75. data/lib/chef_zero/endpoints/policy_revisions_endpoint.rb +1 -1
  76. data/lib/chef_zero/endpoints/principal_endpoint.rb +15 -15
  77. data/lib/chef_zero/endpoints/rest_list_endpoint.rb +4 -4
  78. data/lib/chef_zero/endpoints/rest_object_endpoint.rb +4 -4
  79. data/lib/chef_zero/endpoints/role_endpoint.rb +3 -3
  80. data/lib/chef_zero/endpoints/role_environments_endpoint.rb +3 -3
  81. data/lib/chef_zero/endpoints/sandbox_endpoint.rb +8 -8
  82. data/lib/chef_zero/endpoints/sandboxes_endpoint.rb +9 -9
  83. data/lib/chef_zero/endpoints/search_endpoint.rb +51 -49
  84. data/lib/chef_zero/endpoints/searches_endpoint.rb +2 -2
  85. data/lib/chef_zero/endpoints/server_api_version_endpoint.rb +2 -2
  86. data/lib/chef_zero/endpoints/system_recovery_endpoint.rb +8 -8
  87. data/lib/chef_zero/endpoints/user_association_request_endpoint.rb +12 -12
  88. data/lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb +4 -4
  89. data/lib/chef_zero/endpoints/user_association_requests_endpoint.rb +4 -4
  90. data/lib/chef_zero/endpoints/user_organizations_endpoint.rb +5 -5
  91. data/lib/chef_zero/endpoints/version_endpoint.rb +1 -1
  92. data/lib/chef_zero/log.rb +1 -1
  93. data/lib/chef_zero/rest_base.rb +25 -25
  94. data/lib/chef_zero/rest_request.rb +11 -11
  95. data/lib/chef_zero/rest_router.rb +30 -30
  96. data/lib/chef_zero/rspec.rb +33 -33
  97. data/lib/chef_zero/server.rb +188 -189
  98. data/lib/chef_zero/socketless_server_map.rb +2 -3
  99. data/lib/chef_zero/solr/query/binary_operator.rb +8 -8
  100. data/lib/chef_zero/solr/query/phrase.rb +1 -1
  101. data/lib/chef_zero/solr/query/range_query.rb +2 -2
  102. data/lib/chef_zero/solr/query/regexpable_query.rb +1 -0
  103. data/lib/chef_zero/solr/query/term.rb +5 -5
  104. data/lib/chef_zero/solr/query/unary_operator.rb +4 -4
  105. data/lib/chef_zero/solr/solr_doc.rb +4 -4
  106. data/lib/chef_zero/solr/solr_parser.rb +34 -33
  107. data/lib/chef_zero/version.rb +1 -1
  108. data/spec/run_oc_pedant.rb +61 -60
  109. data/spec/search_spec.rb +11 -11
  110. data/spec/server_spec.rb +35 -35
  111. data/spec/socketless_server_map_spec.rb +1 -3
  112. data/spec/support/oc_pedant.rb +20 -21
  113. metadata +2 -2
@@ -1,5 +1,5 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/endpoints/rest_list_endpoint'
1
+ require "ffi_yajl"
2
+ require "chef_zero/endpoints/rest_list_endpoint"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -11,11 +11,11 @@ module ChefZero
11
11
  name = identity_keys.map { |k| json[k] }.select { |v| v }.first
12
12
  if name.nil?
13
13
  error(400, "Must specify #{identity_keys.map { |k| k.inspect }.join(' or ')} in JSON")
14
- elsif exists_data_dir?(request, request.rest_path[0..1] + ['data', name])
14
+ elsif exists_data_dir?(request, request.rest_path[0..1] + ["data", name])
15
15
  error(409, "Object already exists")
16
16
  else
17
- create_data_dir(request, request.rest_path[0..1] + ['data'], name, :recursive)
18
- json_response(201, {"uri" => "#{build_uri(request.base_uri, request.rest_path + [name])}"})
17
+ create_data_dir(request, request.rest_path[0..1] + ["data"], name, :recursive)
18
+ json_response(201, { "uri" => "#{build_uri(request.base_uri, request.rest_path + [name])}" })
19
19
  end
20
20
  end
21
21
  end
@@ -7,7 +7,6 @@ module ChefZero
7
7
  # called by #direct_solr_query, once each for roles, nodes, and data bag items. each RSpec example makes
8
8
  # 3 calls, with the expected sequence of return values [0, 1, 0].
9
9
  def get(request)
10
-
11
10
  # this could be made less brittle, but if things change to have more than 3 cycles, we should really
12
11
  # be notified by a spec failure.
13
12
  @mock_values ||= ([0, 1, 0] * 3).map { |val| make_response(val) }
@@ -28,4 +27,3 @@ module ChefZero
28
27
  end
29
28
  end
30
29
  end
31
-
@@ -1,5 +1,5 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/endpoints/cookbooks_base'
1
+ require "ffi_yajl"
2
+ require "chef_zero/endpoints/cookbooks_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -8,12 +8,12 @@ module ChefZero
8
8
  def get(request)
9
9
  cookbook_name = request.rest_path[5]
10
10
  environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
11
- constraints = environment['cookbook_versions'] || {}
11
+ constraints = environment["cookbook_versions"] || {}
12
12
  cookbook_versions = list_data(request, request.rest_path[0..1] + request.rest_path[4..5])
13
- if request.query_params['num_versions'] == 'all'
13
+ if request.query_params["num_versions"] == "all"
14
14
  num_versions = nil
15
- elsif request.query_params['num_versions']
16
- num_versions = request.query_params['num_versions'].to_i
15
+ elsif request.query_params["num_versions"]
16
+ num_versions = request.query_params["num_versions"].to_i
17
17
  else
18
18
  num_versions = nil
19
19
  end
@@ -1,6 +1,6 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/rest_base'
3
- require 'chef_zero/rest_error_response'
1
+ require "ffi_yajl"
2
+ require "chef_zero/rest_base"
3
+ require "chef_zero/rest_error_response"
4
4
 
5
5
  module ChefZero
6
6
  module Endpoints
@@ -8,26 +8,26 @@ module ChefZero
8
8
  class EnvironmentCookbookVersionsEndpoint < RestBase
9
9
 
10
10
  def post(request)
11
- cookbook_names = list_data(request, request.rest_path[0..1] + ['cookbooks'])
11
+ cookbook_names = list_data(request, request.rest_path[0..1] + ["cookbooks"])
12
12
 
13
13
  # Get the list of cookbooks and versions desired by the runlist
14
14
  desired_versions = {}
15
- run_list = FFI_Yajl::Parser.parse(request.body, :create_additions => false)['run_list']
15
+ run_list = FFI_Yajl::Parser.parse(request.body, :create_additions => false)["run_list"]
16
16
  run_list.each do |run_list_entry|
17
17
  if run_list_entry =~ /(.+)::.+\@(.+)/ || run_list_entry =~ /(.+)\@(.+)/
18
18
  raise RestErrorResponse.new(412, "No such cookbook: #{$1}") if !cookbook_names.include?($1)
19
- raise RestErrorResponse.new(412, "No such cookbook version for cookbook #{$1}: #{$2}") if !list_data(request, request.rest_path[0..1] + ['cookbooks', $1]).include?($2)
19
+ raise RestErrorResponse.new(412, "No such cookbook version for cookbook #{$1}: #{$2}") if !list_data(request, request.rest_path[0..1] + ["cookbooks", $1]).include?($2)
20
20
  desired_versions[$1] = [ $2 ]
21
21
  else
22
- desired_cookbook = run_list_entry.split('::')[0]
22
+ desired_cookbook = run_list_entry.split("::")[0]
23
23
  raise RestErrorResponse.new(412, "No such cookbook: #{desired_cookbook}") if !cookbook_names.include?(desired_cookbook)
24
- desired_versions[desired_cookbook] = list_data(request, request.rest_path[0..1] + ['cookbooks', desired_cookbook])
24
+ desired_versions[desired_cookbook] = list_data(request, request.rest_path[0..1] + ["cookbooks", desired_cookbook])
25
25
  end
26
26
  end
27
27
 
28
28
  # Filter by environment constraints
29
29
  environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
30
- environment_constraints = environment['cookbook_versions'] || {}
30
+ environment_constraints = environment["cookbook_versions"] || {}
31
31
 
32
32
  desired_versions.each_key do |name|
33
33
  desired_versions = filter_by_constraint(desired_versions, name, environment_constraints[name])
@@ -48,8 +48,8 @@ module ChefZero
48
48
 
49
49
  result = {}
50
50
  solved.each_pair do |name, versions|
51
- cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', name, versions[0]]), :create_additions => false)
52
- result[name] = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, name, versions[0], request.base_uri, 'MIN')
51
+ cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", name, versions[0]]), :create_additions => false)
52
+ result[name] = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, name, versions[0], request.base_uri, "MIN")
53
53
  end
54
54
  json_response(200, result)
55
55
  end
@@ -74,9 +74,9 @@ module ChefZero
74
74
  new_unsolved = unsolved[1..-1]
75
75
 
76
76
  # Pick this cookbook, and add dependencies
77
- cookbook_obj = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', solve_for, desired_version]), :create_additions => false)
78
- cookbook_metadata = cookbook_obj['metadata'] || {}
79
- cookbook_dependencies = cookbook_metadata['dependencies'] || {}
77
+ cookbook_obj = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", solve_for, desired_version]), :create_additions => false)
78
+ cookbook_metadata = cookbook_obj["metadata"] || {}
79
+ cookbook_dependencies = cookbook_metadata["dependencies"] || {}
80
80
  dep_not_found = false
81
81
  cookbook_dependencies.each_pair do |dep_name, dep_constraint|
82
82
  # If the dep is not already in the list, add it to the list to solve
@@ -84,12 +84,12 @@ module ChefZero
84
84
  if !new_desired_versions.has_key?(dep_name)
85
85
  new_unsolved = new_unsolved + [dep_name]
86
86
  # If the dep is missing, we will try other versions of the cookbook that might not have the bad dep.
87
- if !exists_data_dir?(request, request.rest_path[0..1] + ['cookbooks', dep_name])
87
+ if !exists_data_dir?(request, request.rest_path[0..1] + ["cookbooks", dep_name])
88
88
  @last_missing_dep = dep_name.to_s
89
89
  dep_not_found = true
90
90
  break
91
91
  end
92
- new_desired_versions[dep_name] = list_data(request, request.rest_path[0..1] + ['cookbooks', dep_name])
92
+ new_desired_versions[dep_name] = list_data(request, request.rest_path[0..1] + ["cookbooks", dep_name])
93
93
  new_desired_versions = filter_by_constraint(new_desired_versions, dep_name, environment_constraints[dep_name])
94
94
  end
95
95
  new_desired_versions = filter_by_constraint(new_desired_versions, dep_name, dep_constraint)
@@ -1,5 +1,5 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/endpoints/cookbooks_base'
1
+ require "ffi_yajl"
2
+ require "chef_zero/endpoints/cookbooks_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -7,11 +7,11 @@ module ChefZero
7
7
  class EnvironmentCookbooksEndpoint < CookbooksBase
8
8
  def get(request)
9
9
  environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
10
- constraints = environment['cookbook_versions'] || {}
11
- if request.query_params['num_versions'] == 'all'
10
+ constraints = environment["cookbook_versions"] || {}
11
+ if request.query_params["num_versions"] == "all"
12
12
  num_versions = nil
13
- elsif request.query_params['num_versions']
14
- num_versions = request.query_params['num_versions'].to_i
13
+ elsif request.query_params["num_versions"]
14
+ num_versions = request.query_params["num_versions"].to_i
15
15
  else
16
16
  num_versions = 1
17
17
  end
@@ -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"
2
+ require "chef_zero/endpoints/rest_object_endpoint"
3
+ require "chef_zero/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"
2
+ require "chef_zero/rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -10,10 +10,10 @@ module ChefZero
10
10
  get_data(request, request.rest_path[0..3])
11
11
 
12
12
  result = {}
13
- list_data(request, request.rest_path[0..1] + ['nodes']).each do |name|
14
- node = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['nodes', name]), :create_additions => false)
15
- if node['chef_environment'] == request.rest_path[3]
16
- result[name] = build_uri(request.base_uri, request.rest_path[0..1] + ['nodes', name])
13
+ list_data(request, request.rest_path[0..1] + ["nodes"]).each do |name|
14
+ node = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["nodes", name]), :create_additions => false)
15
+ if node["chef_environment"] == request.rest_path[3]
16
+ result[name] = build_uri(request.base_uri, request.rest_path[0..1] + ["nodes", name])
17
17
  end
18
18
  end
19
19
  json_response(200, result)
@@ -1,5 +1,5 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/endpoints/cookbooks_base'
1
+ require "ffi_yajl"
2
+ require "chef_zero/endpoints/cookbooks_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -7,11 +7,11 @@ module ChefZero
7
7
  class EnvironmentRecipesEndpoint < CookbooksBase
8
8
  def get(request)
9
9
  environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
10
- constraints = environment['cookbook_versions'] || {}
10
+ constraints = environment["cookbook_versions"] || {}
11
11
  result = []
12
12
  filter_cookbooks(all_cookbooks_list(request), constraints, 1) do |name, versions|
13
13
  if versions.size > 0
14
- cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', name, versions[0]]), :create_additions => false)
14
+ cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", name, versions[0]]), :create_additions => false)
15
15
  result += recipe_names(name, cookbook)
16
16
  end
17
17
  end
@@ -1,5 +1,5 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/endpoints/cookbooks_base'
1
+ require "ffi_yajl"
2
+ require "chef_zero/endpoints/cookbooks_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -8,7 +8,7 @@ module ChefZero
8
8
  class EnvironmentRoleEndpoint < CookbooksBase
9
9
  def get(request)
10
10
  # 404 if environment does not exist
11
- if request.rest_path[2] == 'environments'
11
+ if request.rest_path[2] == "environments"
12
12
  environment_path = request.rest_path[0..1] + request.rest_path[2..3]
13
13
  role_path = request.rest_path[0..1] + request.rest_path[4..5]
14
14
  else
@@ -20,16 +20,16 @@ module ChefZero
20
20
 
21
21
  role = FFI_Yajl::Parser.parse(get_data(request, role_path), :create_additions => false)
22
22
  environment_name = environment_path[3]
23
- if environment_name == '_default'
24
- run_list = role['run_list']
23
+ if environment_name == "_default"
24
+ run_list = role["run_list"]
25
25
  else
26
- if role['env_run_lists']
27
- run_list = role['env_run_lists'][environment_name]
26
+ if role["env_run_lists"]
27
+ run_list = role["env_run_lists"][environment_name]
28
28
  else
29
29
  run_list = nil
30
30
  end
31
31
  end
32
- json_response(200, { 'run_list' => run_list })
32
+ json_response(200, { "run_list" => run_list })
33
33
  end
34
34
  end
35
35
  end
@@ -1,4 +1,4 @@
1
- require 'chef_zero/rest_base'
1
+ require "chef_zero/rest_base"
2
2
 
3
3
  module ChefZero
4
4
  module Endpoints
@@ -10,7 +10,7 @@ module ChefZero
10
10
  end
11
11
 
12
12
  def get(request)
13
- [200, {"Content-Type" => 'application/x-binary'}, get_data(request) ]
13
+ [200, { "Content-Type" => "application/x-binary" }, get_data(request) ]
14
14
  end
15
15
 
16
16
  def put(request)
@@ -1,13 +1,13 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/endpoints/rest_object_endpoint'
3
- require 'chef_zero/chef_data/data_normalizer'
1
+ require "ffi_yajl"
2
+ require "chef_zero/endpoints/rest_object_endpoint"
3
+ require "chef_zero/chef_data/data_normalizer"
4
4
 
5
5
  module ChefZero
6
6
  module Endpoints
7
7
  # /organizations/ORG/groups/NAME
8
8
  class GroupEndpoint < RestObjectEndpoint
9
9
  def initialize(server)
10
- super(server, %w(id groupname))
10
+ super(server, %w{id groupname})
11
11
  end
12
12
 
13
13
  def populate_defaults(request, response_json)
@@ -1,12 +1,12 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/endpoints/rest_list_endpoint'
1
+ require "ffi_yajl"
2
+ require "chef_zero/endpoints/rest_list_endpoint"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
6
6
  # /organizations/ORG/groups/NAME
7
7
  class GroupsEndpoint < RestListEndpoint
8
8
  def initialize(server)
9
- super(server, %w(id groupname))
9
+ super(server, %w{id groupname})
10
10
  end
11
11
  end
12
12
  end
@@ -1,5 +1,5 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/rest_base'
1
+ require "ffi_yajl"
2
+ require "chef_zero/rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -9,15 +9,15 @@ module ChefZero
9
9
 
10
10
  def get(request)
11
11
  node_count = 0
12
- list_data(request, [ 'organizations' ]).each do |orgname|
13
- node_count += list_data(request, [ 'organizations', orgname, 'nodes' ]).size
12
+ list_data(request, [ "organizations" ]).each do |orgname|
13
+ node_count += list_data(request, [ "organizations", orgname, "nodes" ]).size
14
14
  end
15
15
 
16
16
  json_response(200, {
17
17
  "limit_exceeded" => (node_count > MAX_NODE_COUNT) ? true : false,
18
18
  "node_license" => MAX_NODE_COUNT,
19
19
  "node_count" => node_count,
20
- "upgrade_url" => 'http://blah.com'
20
+ "upgrade_url" => "http://blah.com",
21
21
  })
22
22
  end
23
23
  end
@@ -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"
2
+ require "chef_zero/endpoints/rest_object_endpoint"
3
+ require "chef_zero/chef_data/data_normalizer"
4
4
 
5
5
  module ChefZero
6
6
  module Endpoints
@@ -28,4 +28,3 @@ module ChefZero
28
28
  end
29
29
  end
30
30
  end
31
-
@@ -1,6 +1,6 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/rest_base'
3
- require 'uuidtools'
1
+ require "ffi_yajl"
2
+ require "chef_zero/rest_base"
3
+ require "uuidtools"
4
4
 
5
5
  module ChefZero
6
6
  module Endpoints
@@ -8,10 +8,10 @@ module ChefZero
8
8
  class NodeIdentifiersEndpoint < RestBase
9
9
  def get(request)
10
10
  if get_data(request, request.rest_path[0..3])
11
- result = {
12
- :id => UUIDTools::UUID.parse_raw(request.rest_path[0..4].to_s).to_s.gsub('-',''),
13
- :authz_id => '0'*32,
14
- :org_id => UUIDTools::UUID.parse_raw(request.rest_path[0..1].to_s).to_s.gsub('-','') }
11
+ result = {
12
+ :id => UUIDTools::UUID.parse_raw(request.rest_path[0..4].to_s).to_s.delete("-"),
13
+ :authz_id => "0" * 32,
14
+ :org_id => UUIDTools::UUID.parse_raw(request.rest_path[0..1].to_s).to_s.delete("-") }
15
15
  json_response(200, result)
16
16
  else
17
17
  raise RestErrorResponse.new(404, "Object not found: #{build_uri(request.base_uri, request.rest_path)}")
@@ -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"
2
+ require "chef_zero/endpoints/rest_object_endpoint"
3
+ require "chef_zero/chef_data/data_normalizer"
4
4
 
5
5
  module ChefZero
6
6
  module Endpoints
@@ -32,4 +32,3 @@ module ChefZero
32
32
  end
33
33
  end
34
34
  end
35
-
@@ -1,10 +1,10 @@
1
- require 'ffi_yajl'
1
+ require "ffi_yajl"
2
2
 
3
3
  module ChefZero
4
4
  module Endpoints
5
5
  class NotFoundEndpoint
6
6
  def call(request)
7
- return [404, {"Content-Type" => "application/json"}, FFI_Yajl::Encoder.encode({"error" => ["Object not found: #{request.env['REQUEST_PATH']}"]}, :pretty => true)]
7
+ return [404, { "Content-Type" => "application/json" }, FFI_Yajl::Encoder.encode({ "error" => ["Object not found: #{request.env['REQUEST_PATH']}"] }, :pretty => true)]
8
8
  end
9
9
  end
10
10
  end
@@ -1,5 +1,5 @@
1
- require 'ffi_yajl'
2
- require 'chef_zero/rest_base'
1
+ require "ffi_yajl"
2
+ require "chef_zero/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"
2
+ require "chef_zero/rest_base"
3
3
 
4
4
  module ChefZero
5
5
  module Endpoints
@@ -7,22 +7,22 @@ module ChefZero
7
7
  class OrganizationAssociationRequestsEndpoint < RestBase
8
8
  def post(request)
9
9
  json = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
10
- username = json['user']
10
+ username = json["user"]
11
11
  orgname = request.rest_path[1]
12
12
  id = "#{username}-#{orgname}"
13
13
 
14
- if exists_data?(request, [ 'organizations', orgname, 'users', username ])
14
+ if exists_data?(request, [ "organizations", orgname, "users", username ])
15
15
  raise RestErrorResponse.new(409, "User #{username} is already in organization #{orgname}")
16
16
  end
17
17
 
18
- create_data(request, request.rest_path, username, '{}')
18
+ create_data(request, request.rest_path, username, "{}")
19
19
  json_response(201, { "uri" => build_uri(request.base_uri, request.rest_path + [ id ]) })
20
20
  end
21
21
 
22
22
  def get(request)
23
23
  orgname = request.rest_path[1]
24
24
  ChefZero::Endpoints::OrganizationUserBase.get(self, request) do |username|
25
- { "id" => "#{username}-#{orgname}", 'username' => username }
25
+ { "id" => "#{username}-#{orgname}", "username" => username }
26
26
  end
27
27
  end
28
28
  end