summaryrefslogtreecommitdiff
path: root/lib/chef_zero/endpoints
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef_zero/endpoints')
-rw-r--r--lib/chef_zero/endpoints/acl_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/acls_endpoint.rb10
-rw-r--r--lib/chef_zero/endpoints/actor_default_key_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/actor_endpoint.rb40
-rw-r--r--lib/chef_zero/endpoints/actor_key_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/actor_keys_endpoint.rb11
-rw-r--r--lib/chef_zero/endpoints/actors_endpoint.rb24
-rw-r--r--lib/chef_zero/endpoints/authenticate_user_endpoint.rb20
-rw-r--r--lib/chef_zero/endpoints/container_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/containers_endpoint.rb6
-rw-r--r--lib/chef_zero/endpoints/cookbook_artifact_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/cookbook_artifact_identifier_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/cookbook_artifacts_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/cookbook_endpoint.rb10
-rw-r--r--lib/chef_zero/endpoints/cookbook_version_endpoint.rb26
-rw-r--r--lib/chef_zero/endpoints/cookbooks_base.rb26
-rw-r--r--lib/chef_zero/endpoints/cookbooks_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/data_bag_endpoint.rb24
-rw-r--r--lib/chef_zero/endpoints/data_bag_item_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/data_bags_endpoint.rb10
-rw-r--r--lib/chef_zero/endpoints/dummy_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/environment_cookbook_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb32
-rw-r--r--lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/environment_endpoint.rb6
-rw-r--r--lib/chef_zero/endpoints/environment_nodes_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/environment_recipes_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/environment_role_endpoint.rb16
-rw-r--r--lib/chef_zero/endpoints/file_store_file_endpoint.rb4
-rw-r--r--lib/chef_zero/endpoints/group_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/groups_endpoint.rb6
-rw-r--r--lib/chef_zero/endpoints/license_endpoint.rb10
-rw-r--r--lib/chef_zero/endpoints/node_endpoint.rb7
-rw-r--r--lib/chef_zero/endpoints/node_identifiers_endpoint.rb14
-rw-r--r--lib/chef_zero/endpoints/nodes_endpoint.rb7
-rw-r--r--lib/chef_zero/endpoints/not_found_endpoint.rb4
-rw-r--r--lib/chef_zero/endpoints/organization_association_request_endpoint.rb4
-rw-r--r--lib/chef_zero/endpoints/organization_association_requests_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb16
-rw-r--r--lib/chef_zero/endpoints/organization_endpoint.rb20
-rw-r--r--lib/chef_zero/endpoints/organization_user_base.rb4
-rw-r--r--lib/chef_zero/endpoints/organization_user_default_key_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/organization_user_endpoint.rb10
-rw-r--r--lib/chef_zero/endpoints/organization_user_key_endpoint.rb4
-rw-r--r--lib/chef_zero/endpoints/organization_user_keys_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/organization_users_endpoint.rb24
-rw-r--r--lib/chef_zero/endpoints/organization_validator_key_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/organizations_endpoint.rb25
-rw-r--r--lib/chef_zero/endpoints/policies_endpoint.rb4
-rw-r--r--lib/chef_zero/endpoints/policy_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/policy_group_endpoint.rb12
-rw-r--r--lib/chef_zero/endpoints/policy_group_policy_endpoint.rb7
-rw-r--r--lib/chef_zero/endpoints/policy_groups_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/policy_revision_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/policy_revisions_endpoint.rb2
-rw-r--r--lib/chef_zero/endpoints/principal_endpoint.rb30
-rw-r--r--lib/chef_zero/endpoints/rest_list_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/rest_object_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/role_endpoint.rb6
-rw-r--r--lib/chef_zero/endpoints/role_environments_endpoint.rb6
-rw-r--r--lib/chef_zero/endpoints/sandbox_endpoint.rb16
-rw-r--r--lib/chef_zero/endpoints/sandboxes_endpoint.rb18
-rw-r--r--lib/chef_zero/endpoints/search_endpoint.rb100
-rw-r--r--lib/chef_zero/endpoints/searches_endpoint.rb4
-rw-r--r--lib/chef_zero/endpoints/server_api_version_endpoint.rb4
-rw-r--r--lib/chef_zero/endpoints/system_recovery_endpoint.rb16
-rw-r--r--lib/chef_zero/endpoints/user_association_request_endpoint.rb24
-rw-r--r--lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/user_association_requests_endpoint.rb8
-rw-r--r--lib/chef_zero/endpoints/user_organizations_endpoint.rb10
-rw-r--r--lib/chef_zero/endpoints/version_endpoint.rb2
71 files changed, 426 insertions, 431 deletions
diff --git a/lib/chef_zero/endpoints/acl_endpoint.rb b/lib/chef_zero/endpoints/acl_endpoint.rb
index cca8392..366bb89 100644
--- a/lib/chef_zero/endpoints/acl_endpoint.rb
+++ b/lib/chef_zero/endpoints/acl_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/chef_data/acl_path'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/chef_data/acl_path"
module ChefZero
module Endpoints
@@ -17,10 +17,10 @@ module ChefZero
class AclEndpoint < RestBase
def validate_request(request)
path = request.rest_path[0..-3] # Strip off _acl/PERM
- path = path[0..1] if path.size == 3 && path[0] == 'organizations' && %w(organization organizations).include?(path[2])
+ path = path[0..1] if path.size == 3 && path[0] == "organizations" && %w{organization organizations}.include?(path[2])
acl_path = ChefData::AclPath.get_acl_data_path(path)
perm = request.rest_path[-1]
- if !acl_path || !%w(read create update delete grant).include?(perm)
+ if !acl_path || !%w{read create update delete grant}.include?(perm)
raise RestErrorResponse.new(404, "Object not found: #{build_uri(request.base_uri, request.rest_path)}")
end
[acl_path, perm]
@@ -31,7 +31,7 @@ module ChefZero
acls = FFI_Yajl::Parser.parse(get_data(request, path), :create_additions => false)
acls[perm] = FFI_Yajl::Parser.parse(request.body, :create_additions => false)[perm]
set_data(request, path, FFI_Yajl::Encoder.encode(acls, :pretty => true))
- json_response(200, {'uri' => "#{build_uri(request.base_uri, request.rest_path)}"})
+ json_response(200, { "uri" => "#{build_uri(request.base_uri, request.rest_path)}" })
end
end
end
diff --git a/lib/chef_zero/endpoints/acls_endpoint.rb b/lib/chef_zero/endpoints/acls_endpoint.rb
index ad9bb31..8565eea 100644
--- a/lib/chef_zero/endpoints/acls_endpoint.rb
+++ b/lib/chef_zero/endpoints/acls_endpoint.rb
@@ -1,7 +1,7 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/chef_data/data_normalizer'
-require 'chef_zero/chef_data/acl_path'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/chef_data/data_normalizer"
+require "chef_zero/chef_data/acl_path"
module ChefZero
module Endpoints
@@ -15,7 +15,7 @@ module ChefZero
class AclsEndpoint < RestBase
def get(request)
path = request.rest_path[0..-2] # Strip off _acl
- path = path[0..1] if path.size == 3 && path[0] == 'organizations' && %w(organization organizations).include?(path[2])
+ path = path[0..1] if path.size == 3 && path[0] == "organizations" && %w{organization organizations}.include?(path[2])
acl_path = ChefData::AclPath.get_acl_data_path(path)
if !acl_path
raise RestErrorResponse.new(404, "Object not found: #{build_uri(request.base_uri, request.rest_path)}")
diff --git a/lib/chef_zero/endpoints/actor_default_key_endpoint.rb b/lib/chef_zero/endpoints/actor_default_key_endpoint.rb
index 3be1475..1985dea 100644
--- a/lib/chef_zero/endpoints/actor_default_key_endpoint.rb
+++ b/lib/chef_zero/endpoints/actor_default_key_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/actor_endpoint.rb b/lib/chef_zero/endpoints/actor_endpoint.rb
index dd2caf2..ea5284e 100644
--- a/lib/chef_zero/endpoints/actor_endpoint.rb
+++ b/lib/chef_zero/endpoints/actor_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -21,10 +21,10 @@ module ChefZero
def delete(request)
result = super
- if request.rest_path[0] == 'users'
- list_data(request, [ 'organizations' ]).each do |org|
+ if request.rest_path[0] == "users"
+ list_data(request, [ "organizations" ]).each do |org|
begin
- delete_data(request, [ 'organizations', org, 'users', request.rest_path[1] ], :data_store_exceptions)
+ delete_data(request, [ "organizations", org, "users", request.rest_path[1] ], :data_store_exceptions)
rescue DataStore::DataNotFoundError
end
end
@@ -38,22 +38,22 @@ module ChefZero
# Find out if we're updating the public key.
request_body = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- if request_body['public_key'].nil?
+ if request_body["public_key"].nil?
# If public_key is null, then don't overwrite it. Weird patchiness.
body_modified = true
- request_body.delete('public_key')
+ request_body.delete("public_key")
else
updating_public_key = true
end
# Generate private_key if requested.
- if request_body.key?('private_key')
+ if request_body.key?("private_key")
body_modified = true
- if request_body.delete('private_key')
+ if request_body.delete("private_key")
private_key, public_key = server.gen_key_pair
updating_public_key = true
- request_body['public_key'] = public_key
+ request_body["public_key"] = public_key
end
end
@@ -73,22 +73,22 @@ module ChefZero
rename_keys!(request, client_or_user_name)
end
- if request.rest_path[0] == 'users'
+ if request.rest_path[0] == "users"
response = {
- 'uri' => build_uri(request.base_uri, [ 'users', client_or_user_name ])
+ "uri" => build_uri(request.base_uri, [ "users", client_or_user_name ]),
}
else
response = parse_json(result[2])
end
if client?(request)
- response['private_key'] = private_key ? private_key : false
+ response["private_key"] = private_key ? private_key : false
else
- response['private_key'] = private_key if private_key
- response.delete('public_key') unless updating_public_key
+ response["private_key"] = private_key if private_key
+ response.delete("public_key") unless updating_public_key
end
- response.delete('password')
+ response.delete("password")
json_response(result[0], response)
else
@@ -125,7 +125,7 @@ module ChefZero
def rename_keys!(request, new_client_or_user_name)
orig_keys_path = keys_path_base(request)
new_keys_path = orig_keys_path.dup
- .tap {|path| path[-2] = new_client_or_user_name }
+ .tap { |path| path[-2] = new_client_or_user_name }
key_names = list_data_or_else(request, orig_keys_path, nil)
return unless key_names # No keys to move
@@ -154,7 +154,7 @@ module ChefZero
rescue DataStore::DataNotFoundError
end
- def client?(request, rest_path=nil)
+ def client?(request, rest_path = nil)
rest_path ||= request.rest_path
request.rest_path[2] == "clients"
end
@@ -165,7 +165,7 @@ module ChefZero
# /organizations/ORG/users/USER -> /organizations/ORG/user_keys/USER/keys
# /users/USER -> /user_keys/USER
#
- def keys_path_base(request, client_or_user_name=nil)
+ def keys_path_base(request, client_or_user_name = nil)
rest_path = (rest_path || request.rest_path).dup
rest_path = rest_path.dup
case rest_path[-2]
diff --git a/lib/chef_zero/endpoints/actor_key_endpoint.rb b/lib/chef_zero/endpoints/actor_key_endpoint.rb
index f2b65ed..a61d2f3 100644
--- a/lib/chef_zero/endpoints/actor_key_endpoint.rb
+++ b/lib/chef_zero/endpoints/actor_key_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/actor_keys_endpoint.rb b/lib/chef_zero/endpoints/actor_keys_endpoint.rb
index f3624d6..00c11d0 100644
--- a/lib/chef_zero/endpoints/actor_keys_endpoint.rb
+++ b/lib/chef_zero/endpoints/actor_keys_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -8,7 +8,7 @@ module ChefZero
DEFAULT_PUBLIC_KEY_NAME = "default"
DATE_FORMAT = "%FT%TZ" # e.g. 2015-12-24T21:00:00Z
- def get(request, alt_uri_root=nil)
+ def get(request, alt_uri_root = nil)
path = data_path(request)
# Get actor or 404 if it doesn't exist
@@ -35,7 +35,7 @@ module ChefZero
if generate_keys
private_key, public_key = server.gen_key_pair
else
- public_key = request_body['public_key']
+ public_key = request_body["public_key"]
end
key_name = request_body["name"]
@@ -74,7 +74,6 @@ module ChefZero
actor_data["public_key"] = public_key
set_data(request, actor_path(request), to_json(actor_data))
-
end
# Returns the keys data store path, which is the same as
@@ -90,7 +89,7 @@ module ChefZero
end
end
- def list_key(request, data_path, alt_uri_root=nil)
+ def list_key(request, data_path, alt_uri_root = nil)
key_name, expiration_date =
if data_path[-1] == DEFAULT_PUBLIC_KEY_NAME
[ DEFAULT_PUBLIC_KEY_NAME, "infinity" ]
@@ -111,7 +110,7 @@ module ChefZero
request.rest_path[2] == "clients"
end
- def key_uri(request, key_name, alt_uri_root=nil)
+ def key_uri(request, key_name, alt_uri_root = nil)
uri_root = alt_uri_root.nil? ? request.rest_path : alt_uri_root
build_uri(request.base_uri, [ *uri_root, key_name ])
end
diff --git a/lib/chef_zero/endpoints/actors_endpoint.rb b/lib/chef_zero/endpoints/actors_endpoint.rb
index 6297aed..1dcbe42 100644
--- a/lib/chef_zero/endpoints/actors_endpoint.rb
+++ b/lib/chef_zero/endpoints/actors_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_list_endpoint'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_list_endpoint"
module ChefZero
module Endpoints
@@ -10,13 +10,13 @@ module ChefZero
# apply query filters: if one applies, stop processing rest
# (precendence matches chef-server: https://github.com/chef/chef-server/blob/268a0c9/src/oc_erchef/apps/chef_objects/src/chef_user.erl#L554-L559)
- if value = request.query_params['external_authentication_uid']
- response[2] = filter('external_authentication_uid', value, request, response[2])
- elsif value = request.query_params['email']
- response[2] = filter('email', value, request, response[2])
+ if value = request.query_params["external_authentication_uid"]
+ response[2] = filter("external_authentication_uid", value, request, response[2])
+ elsif value = request.query_params["email"]
+ response[2] = filter("email", value, request, response[2])
end
- if request.query_params['verbose']
+ if request.query_params["verbose"]
results = parse_json(response[2])
results.each do |name, url|
record = get_data(request, request.rest_path + [ name ], :nil)
@@ -35,16 +35,16 @@ module ChefZero
# First, find out if the user actually posted a public key. If not, make
# one.
request_body = parse_json(request.body)
- public_key = request_body['public_key']
+ public_key = request_body["public_key"]
skip_key_create = !request.api_v0? && !request_body["create_key"]
if !public_key && !skip_key_create
private_key, public_key = server.gen_key_pair
- request_body['public_key'] = public_key
+ request_body["public_key"] = public_key
request.body = to_json(request_body)
elsif skip_key_create
- request_body['public_key'] = nil
+ request_body["public_key"] = nil
request.body = to_json(request_body)
end
@@ -55,8 +55,8 @@ module ChefZero
user_data = parse_json(result[2])
key_data = {}
- key_data['private_key'] = private_key if private_key
- key_data['public_key'] = public_key unless request.rest_path[0] == 'users'
+ key_data["private_key"] = private_key if private_key
+ key_data["public_key"] = public_key unless request.rest_path[0] == "users"
response =
if request.api_v0?
diff --git a/lib/chef_zero/endpoints/authenticate_user_endpoint.rb b/lib/chef_zero/endpoints/authenticate_user_endpoint.rb
index 5d5bb3b..fd26798 100644
--- a/lib/chef_zero/endpoints/authenticate_user_endpoint.rb
+++ b/lib/chef_zero/endpoints/authenticate_user_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -7,23 +7,23 @@ module ChefZero
class AuthenticateUserEndpoint < RestBase
def post(request)
request_json = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- name = request_json['username']
- password = request_json['password']
+ name = request_json["username"]
+ password = request_json["password"]
begin
- user = data_store.get(['users', name])
+ user = data_store.get(["users", name])
rescue ChefZero::DataStore::DataNotFoundError
raise RestErrorResponse.new(401, "Bad username or password")
end
user = FFI_Yajl::Parser.parse(user, :create_additions => false)
- user = ChefData::DataNormalizer.normalize_user(user, name, [ 'username' ], server.options[:osc_compat])
- if user['password'] != password
+ user = ChefData::DataNormalizer.normalize_user(user, name, [ "username" ], server.options[:osc_compat])
+ if user["password"] != password
raise RestErrorResponse.new(401, "Bad username or password")
end
# Include only particular user data in the response
- user.keep_if { |key,value| %w(first_name last_name display_name email username).include?(key) }
+ user.keep_if { |key, value| %w{first_name last_name display_name email username}.include?(key) }
json_response(200, {
- 'status' => 'linked',
- 'user' => user
+ "status" => "linked",
+ "user" => user,
})
end
end
diff --git a/lib/chef_zero/endpoints/container_endpoint.rb b/lib/chef_zero/endpoints/container_endpoint.rb
index bf0a184..588d787 100644
--- a/lib/chef_zero/endpoints/container_endpoint.rb
+++ b/lib/chef_zero/endpoints/container_endpoint.rb
@@ -1,13 +1,13 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
# /organizations/ORG/containers/NAME
class ContainerEndpoint < RestObjectEndpoint
def initialize(server)
- super(server, %w(id containername))
+ super(server, %w{id containername})
end
undef_method(:put)
diff --git a/lib/chef_zero/endpoints/containers_endpoint.rb b/lib/chef_zero/endpoints/containers_endpoint.rb
index 8a4220f..e8708ed 100644
--- a/lib/chef_zero/endpoints/containers_endpoint.rb
+++ b/lib/chef_zero/endpoints/containers_endpoint.rb
@@ -1,12 +1,12 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_list_endpoint'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_list_endpoint"
module ChefZero
module Endpoints
# /organizations/ORG/containers
class ContainersEndpoint < RestListEndpoint
def initialize(server)
- super(server, %w(id containername))
+ super(server, %w{id containername})
end
# create a container.
diff --git a/lib/chef_zero/endpoints/cookbook_artifact_endpoint.rb b/lib/chef_zero/endpoints/cookbook_artifact_endpoint.rb
index e17fea2..baf80d3 100644
--- a/lib/chef_zero/endpoints/cookbook_artifact_endpoint.rb
+++ b/lib/chef_zero/endpoints/cookbook_artifact_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/chef_data/data_normalizer'
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/cookbook_artifact_identifier_endpoint.rb b/lib/chef_zero/endpoints/cookbook_artifact_identifier_endpoint.rb
index b70e2c4..237f9c9 100644
--- a/lib/chef_zero/endpoints/cookbook_artifact_identifier_endpoint.rb
+++ b/lib/chef_zero/endpoints/cookbook_artifact_identifier_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/chef_data/data_normalizer'
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/cookbook_artifacts_endpoint.rb b/lib/chef_zero/endpoints/cookbook_artifacts_endpoint.rb
index d9fdb20..a105664 100644
--- a/lib/chef_zero/endpoints/cookbook_artifacts_endpoint.rb
+++ b/lib/chef_zero/endpoints/cookbook_artifacts_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/chef_data/data_normalizer'
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/cookbook_endpoint.rb b/lib/chef_zero/endpoints/cookbook_endpoint.rb
index 35919ad..7dce172 100644
--- a/lib/chef_zero/endpoints/cookbook_endpoint.rb
+++ b/lib/chef_zero/endpoints/cookbook_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/endpoints/cookbooks_base'
+require "chef_zero/endpoints/cookbooks_base"
module ChefZero
module Endpoints
@@ -7,19 +7,19 @@ module ChefZero
def get(request)
filter = request.rest_path[3]
case filter
- when '_latest'
+ when "_latest"
result = {}
filter_cookbooks(all_cookbooks_list(request), {}, 1) do |name, versions|
if versions.size > 0
- result[name] = build_uri(request.base_uri, request.rest_path[0..1] + ['cookbooks', name, versions[0]])
+ result[name] = build_uri(request.base_uri, request.rest_path[0..1] + ["cookbooks", name, versions[0]])
end
end
json_response(200, result)
- when '_recipes'
+ when "_recipes"
result = []
filter_cookbooks(all_cookbooks_list(request), {}, 1) do |name, versions|
if versions.size > 0
- cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', name, versions[0]]), :create_additions => false)
+ cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", name, versions[0]]), :create_additions => false)
result += recipe_names(name, cookbook)
end
end
diff --git a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb
index 5502ba0..55acd1a 100644
--- a/lib/chef_zero/endpoints/cookbook_version_endpoint.rb
+++ b/lib/chef_zero/endpoints/cookbook_version_endpoint.rb
@@ -1,8 +1,8 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/rest_error_response'
-require 'chef_zero/chef_data/data_normalizer'
-require 'chef_zero/data_store/data_not_found_error'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/rest_error_response"
+require "chef_zero/chef_data/data_normalizer"
+require "chef_zero/data_store/data_not_found_error"
module ChefZero
module Endpoints
@@ -23,14 +23,14 @@ module ChefZero
# Honor frozen
if existing_cookbook
existing_cookbook_json = FFI_Yajl::Parser.parse(existing_cookbook, :create_additions => false)
- if existing_cookbook_json['frozen?']
- if request.query_params['force'] != "true"
+ if existing_cookbook_json["frozen?"]
+ if request.query_params["force"] != "true"
raise RestErrorResponse.new(409, "The cookbook #{name} at version #{version} is frozen. Use the 'force' option to override.")
end
# For some reason, you are forever unable to modify "frozen?" on a frozen cookbook.
request_body = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- if !request_body['frozen?']
- request_body['frozen?'] = true
+ if !request_body["frozen?"]
+ request_body["frozen?"] = true
request.body = FFI_Yajl::Encoder.encode(request_body, :pretty => true)
end
end
@@ -74,8 +74,8 @@ module ChefZero
FFI_Yajl::Parser.parse(cookbook, :create_additions => false).each_pair do |key, value|
if value.is_a?(Array)
value.each do |file|
- if file.is_a?(Hash) && file.has_key?('checksum')
- result << file['checksum']
+ if file.is_a?(Hash) && file.has_key?("checksum")
+ result << file["checksum"]
end
end
end
@@ -86,7 +86,7 @@ module ChefZero
private
def hoover_unused_checksums(deleted_checksums, request)
- %w(cookbooks cookbook_artifacts).each do |cookbook_type|
+ %w{cookbooks cookbook_artifacts}.each do |cookbook_type|
begin
cookbooks = data_store.list(request.rest_path[0..1] + [cookbook_type])
rescue ChefZero::DataStore::DataNotFoundError
@@ -106,7 +106,7 @@ module ChefZero
# This deals with an exception on delete, but things can still get deleted
# that shouldn't be.
begin
- delete_data(request, request.rest_path[0..1] + ['file_store', 'checksums', checksum], :data_store_exceptions)
+ delete_data(request, request.rest_path[0..1] + ["file_store", "checksums", checksum], :data_store_exceptions)
rescue ChefZero::DataStore::DataNotFoundError
end
end
diff --git a/lib/chef_zero/endpoints/cookbooks_base.rb b/lib/chef_zero/endpoints/cookbooks_base.rb
index d138af9..10d1b5b 100644
--- a/lib/chef_zero/endpoints/cookbooks_base.rb
+++ b/lib/chef_zero/endpoints/cookbooks_base.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -11,13 +11,13 @@ module ChefZero
filter_cookbooks(cookbooks_list, constraints, num_versions) do |name, versions|
versions_list = versions.map do |version|
{
- 'url' => build_uri(request.base_uri, request.rest_path[0..1] + ['cookbooks', name, version]),
- 'version' => version
+ "url" => build_uri(request.base_uri, request.rest_path[0..1] + ["cookbooks", name, version]),
+ "version" => version,
}
end
results[name] = {
- 'url' => build_uri(request.base_uri, request.rest_path[0..1] + ['cookbooks', name]),
- 'versions' => versions_list
+ "url" => build_uri(request.base_uri, request.rest_path[0..1] + ["cookbooks", name]),
+ "versions" => versions_list,
}
end
results
@@ -26,8 +26,8 @@ module ChefZero
def all_cookbooks_list(request)
result = {}
# Race conditions exist here (if someone deletes while listing). I don't care.
- data_store.list(request.rest_path[0..1] + ['cookbooks']).each do |name|
- result[name] = data_store.list(request.rest_path[0..1] + ['cookbooks', name])
+ data_store.list(request.rest_path[0..1] + ["cookbooks"]).each do |name|
+ result[name] = data_store.list(request.rest_path[0..1] + ["cookbooks", name])
end
result
end
@@ -48,10 +48,10 @@ module ChefZero
def recipe_names(cookbook_name, cookbook)
result = []
- if cookbook['recipes']
- cookbook['recipes'].each do |recipe|
- if recipe['path'] == "recipes/#{recipe['name']}" && recipe['name'][-3..-1] == '.rb'
- if recipe['name'] == 'default.rb'
+ if cookbook["recipes"]
+ cookbook["recipes"].each do |recipe|
+ if recipe["path"] == "recipes/#{recipe['name']}" && recipe["name"][-3..-1] == ".rb"
+ if recipe["name"] == "default.rb"
result << cookbook_name
end
result << "#{cookbook_name}::#{recipe['name'][0..-4]}"
diff --git a/lib/chef_zero/endpoints/cookbooks_endpoint.rb b/lib/chef_zero/endpoints/cookbooks_endpoint.rb
index 7aaf3e6..e3e2ebe 100644
--- a/lib/chef_zero/endpoints/cookbooks_endpoint.rb
+++ b/lib/chef_zero/endpoints/cookbooks_endpoint.rb
@@ -1,14 +1,14 @@
-require 'chef_zero/endpoints/cookbooks_base'
+require "chef_zero/endpoints/cookbooks_base"
module ChefZero
module Endpoints
# /cookbooks
class CookbooksEndpoint < CookbooksBase
def get(request)
- if request.query_params['num_versions'] == 'all'
+ if request.query_params["num_versions"] == "all"
num_versions = nil
- elsif request.query_params['num_versions']
- num_versions = request.query_params['num_versions'].to_i
+ elsif request.query_params["num_versions"]
+ num_versions = request.query_params["num_versions"].to_i
else
num_versions = 1
end
diff --git a/lib/chef_zero/endpoints/data_bag_endpoint.rb b/lib/chef_zero/endpoints/data_bag_endpoint.rb
index f7a6142..2f754cf 100644
--- a/lib/chef_zero/endpoints/data_bag_endpoint.rb
+++ b/lib/chef_zero/endpoints/data_bag_endpoint.rb
@@ -1,14 +1,14 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_list_endpoint'
-require 'chef_zero/endpoints/data_bag_item_endpoint'
-require 'chef_zero/rest_error_response'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_list_endpoint"
+require "chef_zero/endpoints/data_bag_item_endpoint"
+require "chef_zero/rest_error_response"
module ChefZero
module Endpoints
# /data/NAME
class DataBagEndpoint < RestListEndpoint
def initialize(server)
- super(server, 'id')
+ super(server, "id")
end
def post(request)
@@ -16,7 +16,7 @@ module ChefZero
key = identity_keys.map { |k| json[k] }.select { |v| v }.first
response = super(request)
if response[0] == 201
- already_json_response(201, DataBagItemEndpoint::populate_defaults(request, request.body, request.rest_path[3], key))
+ already_json_response(201, DataBagItemEndpoint.populate_defaults(request, request.body, request.rest_path[3], key))
else
response
end
@@ -24,10 +24,10 @@ module ChefZero
def get_key(contents)
data_bag_item = FFI_Yajl::Parser.parse(contents, :create_additions => false)
- if data_bag_item['json_class'] == 'Chef::DataBagItem' && data_bag_item['raw_data']
- data_bag_item['raw_data']['id']
+ if data_bag_item["json_class"] == "Chef::DataBagItem" && data_bag_item["raw_data"]
+ data_bag_item["raw_data"]["id"]
else
- data_bag_item['id']
+ data_bag_item["id"]
end
end
@@ -35,9 +35,9 @@ module ChefZero
key = request.rest_path[3]
delete_data_dir(request, request.rest_path, :recursive)
json_response(200, {
- 'chef_type' => 'data_bag',
- 'json_class' => 'Chef::DataBag',
- 'name' => key
+ "chef_type" => "data_bag",
+ "json_class" => "Chef::DataBag",
+ "name" => key,
})
end
end
diff --git a/lib/chef_zero/endpoints/data_bag_item_endpoint.rb b/lib/chef_zero/endpoints/data_bag_item_endpoint.rb
index a1dd71c..79bfedd 100644
--- a/lib/chef_zero/endpoints/data_bag_item_endpoint.rb
+++ b/lib/chef_zero/endpoints/data_bag_item_endpoint.rb
@@ -1,18 +1,18 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/endpoints/data_bag_item_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/endpoints/data_bag_item_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
# /data/NAME/NAME
class DataBagItemEndpoint < RestObjectEndpoint
def initialize(server)
- super(server, 'id')
+ super(server, "id")
end
def populate_defaults(request, response_json)
- DataBagItemEndpoint::populate_defaults(request, response_json, request.rest_path[3], request.rest_path[4])
+ DataBagItemEndpoint.populate_defaults(request, response_json, request.rest_path[3], request.rest_path[4])
end
def self.populate_defaults(request, response_json, data_bag, data_bag_item)
diff --git a/lib/chef_zero/endpoints/data_bags_endpoint.rb b/lib/chef_zero/endpoints/data_bags_endpoint.rb
index 3694602..03791b0 100644
--- a/lib/chef_zero/endpoints/data_bags_endpoint.rb
+++ b/lib/chef_zero/endpoints/data_bags_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_list_endpoint'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_list_endpoint"
module ChefZero
module Endpoints
@@ -11,11 +11,11 @@ module ChefZero
name = identity_keys.map { |k| json[k] }.select { |v| v }.first
if name.nil?
error(400, "Must specify #{identity_keys.map { |k| k.inspect }.join(' or ')} in JSON")
- elsif exists_data_dir?(request, request.rest_path[0..1] + ['data', name])
+ elsif exists_data_dir?(request, request.rest_path[0..1] + ["data", name])
error(409, "Object already exists")
else
- create_data_dir(request, request.rest_path[0..1] + ['data'], name, :recursive)
- json_response(201, {"uri" => "#{build_uri(request.base_uri, request.rest_path + [name])}"})
+ create_data_dir(request, request.rest_path[0..1] + ["data"], name, :recursive)
+ json_response(201, { "uri" => "#{build_uri(request.base_uri, request.rest_path + [name])}" })
end
end
end
diff --git a/lib/chef_zero/endpoints/dummy_endpoint.rb b/lib/chef_zero/endpoints/dummy_endpoint.rb
index fe16a7e..08dc30b 100644
--- a/lib/chef_zero/endpoints/dummy_endpoint.rb
+++ b/lib/chef_zero/endpoints/dummy_endpoint.rb
@@ -7,7 +7,6 @@ module ChefZero
# called by #direct_solr_query, once each for roles, nodes, and data bag items. each RSpec example makes
# 3 calls, with the expected sequence of return values [0, 1, 0].
def get(request)
-
# this could be made less brittle, but if things change to have more than 3 cycles, we should really
# be notified by a spec failure.
@mock_values ||= ([0, 1, 0] * 3).map { |val| make_response(val) }
@@ -28,4 +27,3 @@ module ChefZero
end
end
end
-
diff --git a/lib/chef_zero/endpoints/environment_cookbook_endpoint.rb b/lib/chef_zero/endpoints/environment_cookbook_endpoint.rb
index 2554c98..692244d 100644
--- a/lib/chef_zero/endpoints/environment_cookbook_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_cookbook_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/cookbooks_base'
+require "ffi_yajl"
+require "chef_zero/endpoints/cookbooks_base"
module ChefZero
module Endpoints
@@ -8,12 +8,12 @@ module ChefZero
def get(request)
cookbook_name = request.rest_path[5]
environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
- constraints = environment['cookbook_versions'] || {}
+ constraints = environment["cookbook_versions"] || {}
cookbook_versions = list_data(request, request.rest_path[0..1] + request.rest_path[4..5])
- if request.query_params['num_versions'] == 'all'
+ if request.query_params["num_versions"] == "all"
num_versions = nil
- elsif request.query_params['num_versions']
- num_versions = request.query_params['num_versions'].to_i
+ elsif request.query_params["num_versions"]
+ num_versions = request.query_params["num_versions"].to_i
else
num_versions = nil
end
diff --git a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
index b11687b..8e693b5 100644
--- a/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/rest_error_response'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/rest_error_response"
module ChefZero
module Endpoints
@@ -8,26 +8,26 @@ module ChefZero
class EnvironmentCookbookVersionsEndpoint < RestBase
def post(request)
- cookbook_names = list_data(request, request.rest_path[0..1] + ['cookbooks'])
+ cookbook_names = list_data(request, request.rest_path[0..1] + ["cookbooks"])
# Get the list of cookbooks and versions desired by the runlist
desired_versions = {}
- run_list = FFI_Yajl::Parser.parse(request.body, :create_additions => false)['run_list']
+ run_list = FFI_Yajl::Parser.parse(request.body, :create_additions => false)["run_list"]
run_list.each do |run_list_entry|
if run_list_entry =~ /(.+)::.+\@(.+)/ || run_list_entry =~ /(.+)\@(.+)/
raise RestErrorResponse.new(412, "No such cookbook: #{$1}") if !cookbook_names.include?($1)
- 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)
+ 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)
desired_versions[$1] = [ $2 ]
else
- desired_cookbook = run_list_entry.split('::')[0]
+ desired_cookbook = run_list_entry.split("::")[0]
raise RestErrorResponse.new(412, "No such cookbook: #{desired_cookbook}") if !cookbook_names.include?(desired_cookbook)
- desired_versions[desired_cookbook] = list_data(request, request.rest_path[0..1] + ['cookbooks', desired_cookbook])
+ desired_versions[desired_cookbook] = list_data(request, request.rest_path[0..1] + ["cookbooks", desired_cookbook])
end
end
# Filter by environment constraints
environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
- environment_constraints = environment['cookbook_versions'] || {}
+ environment_constraints = environment["cookbook_versions"] || {}
desired_versions.each_key do |name|
desired_versions = filter_by_constraint(desired_versions, name, environment_constraints[name])
@@ -48,8 +48,8 @@ module ChefZero
result = {}
solved.each_pair do |name, versions|
- cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', name, versions[0]]), :create_additions => false)
- result[name] = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, name, versions[0], request.base_uri, 'MIN')
+ cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", name, versions[0]]), :create_additions => false)
+ result[name] = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, name, versions[0], request.base_uri, "MIN")
end
json_response(200, result)
end
@@ -74,9 +74,9 @@ module ChefZero
new_unsolved = unsolved[1..-1]
# Pick this cookbook, and add dependencies
- cookbook_obj = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', solve_for, desired_version]), :create_additions => false)
- cookbook_metadata = cookbook_obj['metadata'] || {}
- cookbook_dependencies = cookbook_metadata['dependencies'] || {}
+ cookbook_obj = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", solve_for, desired_version]), :create_additions => false)
+ cookbook_metadata = cookbook_obj["metadata"] || {}
+ cookbook_dependencies = cookbook_metadata["dependencies"] || {}
dep_not_found = false
cookbook_dependencies.each_pair do |dep_name, dep_constraint|
# If the dep is not already in the list, add it to the list to solve
@@ -84,12 +84,12 @@ module ChefZero
if !new_desired_versions.has_key?(dep_name)
new_unsolved = new_unsolved + [dep_name]
# If the dep is missing, we will try other versions of the cookbook that might not have the bad dep.
- if !exists_data_dir?(request, request.rest_path[0..1] + ['cookbooks', dep_name])
+ if !exists_data_dir?(request, request.rest_path[0..1] + ["cookbooks", dep_name])
@last_missing_dep = dep_name.to_s
dep_not_found = true
break
end
- new_desired_versions[dep_name] = list_data(request, request.rest_path[0..1] + ['cookbooks', dep_name])
+ new_desired_versions[dep_name] = list_data(request, request.rest_path[0..1] + ["cookbooks", dep_name])
new_desired_versions = filter_by_constraint(new_desired_versions, dep_name, environment_constraints[dep_name])
end
new_desired_versions = filter_by_constraint(new_desired_versions, dep_name, dep_constraint)
diff --git a/lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb b/lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb
index 166caa3..c243bd0 100644
--- a/lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_cookbooks_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/cookbooks_base'
+require "ffi_yajl"
+require "chef_zero/endpoints/cookbooks_base"
module ChefZero
module Endpoints
@@ -7,11 +7,11 @@ module ChefZero
class EnvironmentCookbooksEndpoint < CookbooksBase
def get(request)
environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
- constraints = environment['cookbook_versions'] || {}
- if request.query_params['num_versions'] == 'all'
+ constraints = environment["cookbook_versions"] || {}
+ if request.query_params["num_versions"] == "all"
num_versions = nil
- elsif request.query_params['num_versions']
- num_versions = request.query_params['num_versions'].to_i
+ elsif request.query_params["num_versions"]
+ num_versions = request.query_params["num_versions"].to_i
else
num_versions = 1
end
diff --git a/lib/chef_zero/endpoints/environment_endpoint.rb b/lib/chef_zero/endpoints/environment_endpoint.rb
index 9d89f44..6d256e8 100644
--- a/lib/chef_zero/endpoints/environment_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/environment_nodes_endpoint.rb b/lib/chef_zero/endpoints/environment_nodes_endpoint.rb
index e8eaca2..cffe596 100644
--- a/lib/chef_zero/endpoints/environment_nodes_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_nodes_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -10,10 +10,10 @@ module ChefZero
get_data(request, request.rest_path[0..3])
result = {}
- list_data(request, request.rest_path[0..1] + ['nodes']).each do |name|
- node = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['nodes', name]), :create_additions => false)
- if node['chef_environment'] == request.rest_path[3]
- result[name] = build_uri(request.base_uri, request.rest_path[0..1] + ['nodes', name])
+ list_data(request, request.rest_path[0..1] + ["nodes"]).each do |name|
+ node = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["nodes", name]), :create_additions => false)
+ if node["chef_environment"] == request.rest_path[3]
+ result[name] = build_uri(request.base_uri, request.rest_path[0..1] + ["nodes", name])
end
end
json_response(200, result)
diff --git a/lib/chef_zero/endpoints/environment_recipes_endpoint.rb b/lib/chef_zero/endpoints/environment_recipes_endpoint.rb
index 4ecd7e0..8165a68 100644
--- a/lib/chef_zero/endpoints/environment_recipes_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_recipes_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/cookbooks_base'
+require "ffi_yajl"
+require "chef_zero/endpoints/cookbooks_base"
module ChefZero
module Endpoints
@@ -7,11 +7,11 @@ module ChefZero
class EnvironmentRecipesEndpoint < CookbooksBase
def get(request)
environment = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
- constraints = environment['cookbook_versions'] || {}
+ constraints = environment["cookbook_versions"] || {}
result = []
filter_cookbooks(all_cookbooks_list(request), constraints, 1) do |name, versions|
if versions.size > 0
- cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ['cookbooks', name, versions[0]]), :create_additions => false)
+ cookbook = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + ["cookbooks", name, versions[0]]), :create_additions => false)
result += recipe_names(name, cookbook)
end
end
diff --git a/lib/chef_zero/endpoints/environment_role_endpoint.rb b/lib/chef_zero/endpoints/environment_role_endpoint.rb
index 2a87bb4..b05f28a 100644
--- a/lib/chef_zero/endpoints/environment_role_endpoint.rb
+++ b/lib/chef_zero/endpoints/environment_role_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/cookbooks_base'
+require "ffi_yajl"
+require "chef_zero/endpoints/cookbooks_base"
module ChefZero
module Endpoints
@@ -8,7 +8,7 @@ module ChefZero
class EnvironmentRoleEndpoint < CookbooksBase
def get(request)
# 404 if environment does not exist
- if request.rest_path[2] == 'environments'
+ if request.rest_path[2] == "environments"
environment_path = request.rest_path[0..1] + request.rest_path[2..3]
role_path = request.rest_path[0..1] + request.rest_path[4..5]
else
@@ -20,16 +20,16 @@ module ChefZero
role = FFI_Yajl::Parser.parse(get_data(request, role_path), :create_additions => false)
environment_name = environment_path[3]
- if environment_name == '_default'
- run_list = role['run_list']
+ if environment_name == "_default"
+ run_list = role["run_list"]
else
- if role['env_run_lists']
- run_list = role['env_run_lists'][environment_name]
+ if role["env_run_lists"]
+ run_list = role["env_run_lists"][environment_name]
else
run_list = nil
end
end
- json_response(200, { 'run_list' => run_list })
+ json_response(200, { "run_list" => run_list })
end
end
end
diff --git a/lib/chef_zero/endpoints/file_store_file_endpoint.rb b/lib/chef_zero/endpoints/file_store_file_endpoint.rb
index 4e20a5d..90b51da 100644
--- a/lib/chef_zero/endpoints/file_store_file_endpoint.rb
+++ b/lib/chef_zero/endpoints/file_store_file_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -10,7 +10,7 @@ module ChefZero
end
def get(request)
- [200, {"Content-Type" => 'application/x-binary'}, get_data(request) ]
+ [200, { "Content-Type" => "application/x-binary" }, get_data(request) ]
end
def put(request)
diff --git a/lib/chef_zero/endpoints/group_endpoint.rb b/lib/chef_zero/endpoints/group_endpoint.rb
index 7404d4d..fc21946 100644
--- a/lib/chef_zero/endpoints/group_endpoint.rb
+++ b/lib/chef_zero/endpoints/group_endpoint.rb
@@ -1,13 +1,13 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
# /organizations/ORG/groups/NAME
class GroupEndpoint < RestObjectEndpoint
def initialize(server)
- super(server, %w(id groupname))
+ super(server, %w{id groupname})
end
def populate_defaults(request, response_json)
diff --git a/lib/chef_zero/endpoints/groups_endpoint.rb b/lib/chef_zero/endpoints/groups_endpoint.rb
index 3e75293..47cd101 100644
--- a/lib/chef_zero/endpoints/groups_endpoint.rb
+++ b/lib/chef_zero/endpoints/groups_endpoint.rb
@@ -1,12 +1,12 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_list_endpoint'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_list_endpoint"
module ChefZero
module Endpoints
# /organizations/ORG/groups/NAME
class GroupsEndpoint < RestListEndpoint
def initialize(server)
- super(server, %w(id groupname))
+ super(server, %w{id groupname})
end
end
end
diff --git a/lib/chef_zero/endpoints/license_endpoint.rb b/lib/chef_zero/endpoints/license_endpoint.rb
index 8638875..ec85834 100644
--- a/lib/chef_zero/endpoints/license_endpoint.rb
+++ b/lib/chef_zero/endpoints/license_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -9,15 +9,15 @@ module ChefZero
def get(request)
node_count = 0
- list_data(request, [ 'organizations' ]).each do |orgname|
- node_count += list_data(request, [ 'organizations', orgname, 'nodes' ]).size
+ list_data(request, [ "organizations" ]).each do |orgname|
+ node_count += list_data(request, [ "organizations", orgname, "nodes" ]).size
end
json_response(200, {
"limit_exceeded" => (node_count > MAX_NODE_COUNT) ? true : false,
"node_license" => MAX_NODE_COUNT,
"node_count" => node_count,
- "upgrade_url" => 'http://blah.com'
+ "upgrade_url" => "http://blah.com",
})
end
end
diff --git a/lib/chef_zero/endpoints/node_endpoint.rb b/lib/chef_zero/endpoints/node_endpoint.rb
index f2bb8ba..af0e9e0 100644
--- a/lib/chef_zero/endpoints/node_endpoint.rb
+++ b/lib/chef_zero/endpoints/node_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -28,4 +28,3 @@ module ChefZero
end
end
end
-
diff --git a/lib/chef_zero/endpoints/node_identifiers_endpoint.rb b/lib/chef_zero/endpoints/node_identifiers_endpoint.rb
index 9f89a98..68aa01f 100644
--- a/lib/chef_zero/endpoints/node_identifiers_endpoint.rb
+++ b/lib/chef_zero/endpoints/node_identifiers_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'uuidtools'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "uuidtools"
module ChefZero
module Endpoints
@@ -8,10 +8,10 @@ module ChefZero
class NodeIdentifiersEndpoint < RestBase
def get(request)
if get_data(request, request.rest_path[0..3])
- result = {
- :id => UUIDTools::UUID.parse_raw(request.rest_path[0..4].to_s).to_s.gsub('-',''),
- :authz_id => '0'*32,
- :org_id => UUIDTools::UUID.parse_raw(request.rest_path[0..1].to_s).to_s.gsub('-','') }
+ result = {
+ :id => UUIDTools::UUID.parse_raw(request.rest_path[0..4].to_s).to_s.delete("-"),
+ :authz_id => "0" * 32,
+ :org_id => UUIDTools::UUID.parse_raw(request.rest_path[0..1].to_s).to_s.delete("-") }
json_response(200, result)
else
raise RestErrorResponse.new(404, "Object not found: #{build_uri(request.base_uri, request.rest_path)}")
diff --git a/lib/chef_zero/endpoints/nodes_endpoint.rb b/lib/chef_zero/endpoints/nodes_endpoint.rb
index 8b9d852..6011506 100644
--- a/lib/chef_zero/endpoints/nodes_endpoint.rb
+++ b/lib/chef_zero/endpoints/nodes_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -32,4 +32,3 @@ module ChefZero
end
end
end
-
diff --git a/lib/chef_zero/endpoints/not_found_endpoint.rb b/lib/chef_zero/endpoints/not_found_endpoint.rb
index ddf1246..4c23800 100644
--- a/lib/chef_zero/endpoints/not_found_endpoint.rb
+++ b/lib/chef_zero/endpoints/not_found_endpoint.rb
@@ -1,10 +1,10 @@
-require 'ffi_yajl'
+require "ffi_yajl"
module ChefZero
module Endpoints
class NotFoundEndpoint
def call(request)
- return [404, {"Content-Type" => "application/json"}, FFI_Yajl::Encoder.encode({"error" => ["Object not found: #{request.env['REQUEST_PATH']}"]}, :pretty => true)]
+ return [404, { "Content-Type" => "application/json" }, FFI_Yajl::Encoder.encode({ "error" => ["Object not found: #{request.env['REQUEST_PATH']}"] }, :pretty => true)]
end
end
end
diff --git a/lib/chef_zero/endpoints/organization_association_request_endpoint.rb b/lib/chef_zero/endpoints/organization_association_request_endpoint.rb
index 974d2c3..09be738 100644
--- a/lib/chef_zero/endpoints/organization_association_request_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_association_request_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/organization_association_requests_endpoint.rb b/lib/chef_zero/endpoints/organization_association_requests_endpoint.rb
index 72b0e4d..aeba290 100644
--- a/lib/chef_zero/endpoints/organization_association_requests_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_association_requests_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -7,22 +7,22 @@ module ChefZero
class OrganizationAssociationRequestsEndpoint < RestBase
def post(request)
json = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- username = json['user']
+ username = json["user"]
orgname = request.rest_path[1]
id = "#{username}-#{orgname}"
- if exists_data?(request, [ 'organizations', orgname, 'users', username ])
+ if exists_data?(request, [ "organizations", orgname, "users", username ])
raise RestErrorResponse.new(409, "User #{username} is already in organization #{orgname}")
end
- create_data(request, request.rest_path, username, '{}')
+ create_data(request, request.rest_path, username, "{}")
json_response(201, { "uri" => build_uri(request.base_uri, request.rest_path + [ id ]) })
end
def get(request)
orgname = request.rest_path[1]
ChefZero::Endpoints::OrganizationUserBase.get(self, request) do |username|
- { "id" => "#{username}-#{orgname}", 'username' => username }
+ { "id" => "#{username}-#{orgname}", "username" => username }
end
end
end
diff --git a/lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb b/lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb
index cc39a00..174235e 100644
--- a/lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_authenticate_user_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -7,18 +7,18 @@ module ChefZero
class OrganizationAuthenticateUserEndpoint < RestBase
def post(request)
request_json = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- name = request_json['name']
- password = request_json['password']
+ name = request_json["name"]
+ password = request_json["password"]
begin
- user = data_store.get(request.rest_path[0..-2] + ['users', name])
+ user = data_store.get(request.rest_path[0..-2] + ["users", name])
user = FFI_Yajl::Parser.parse(user, :create_additions => false)
- verified = user['password'] == password
+ verified = user["password"] == password
rescue DataStore::DataNotFoundError
verified = false
end
json_response(200, {
- 'name' => name,
- 'verified' => !!verified
+ "name" => name,
+ "verified" => !!verified,
})
end
end
diff --git a/lib/chef_zero/endpoints/organization_endpoint.rb b/lib/chef_zero/endpoints/organization_endpoint.rb
index a5512db..108073d 100644
--- a/lib/chef_zero/endpoints/organization_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_endpoint.rb
@@ -1,37 +1,37 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
# /organizations/NAME
class OrganizationEndpoint < RestBase
def get(request)
- org = get_data(request, request.rest_path + [ 'org' ])
+ org = get_data(request, request.rest_path + [ "org" ])
already_json_response(200, populate_defaults(request, org))
end
def put(request)
- org = FFI_Yajl::Parser.parse(get_data(request, request.rest_path + [ 'org' ]), :create_additions => false)
+ org = FFI_Yajl::Parser.parse(get_data(request, request.rest_path + [ "org" ]), :create_additions => false)
new_org = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
new_org.each do |key, value|
org[key] = value
end
save_org = FFI_Yajl::Encoder.encode(org, :pretty => true)
- if new_org['name'] != request.rest_path[-1]
+ if new_org["name"] != request.rest_path[-1]
# This is a rename
return error(400, "Cannot rename org #{request.rest_path[-1]} to #{new_org['name']}: rename not supported for orgs")
end
- set_data(request, request.rest_path + [ 'org' ], save_org)
+ set_data(request, request.rest_path + [ "org" ], save_org)
json_response(200, {
"uri" => "#{build_uri(request.base_uri, request.rest_path)}",
- "name" => org['name'],
- "org_type" => org['org_type'],
- "full_name" => org['full_name']
+ "name" => org["name"],
+ "org_type" => org["org_type"],
+ "full_name" => org["full_name"],
})
end
def delete(request)
- org = get_data(request, request.rest_path + [ 'org' ])
+ org = get_data(request, request.rest_path + [ "org" ])
delete_data_dir(request, request.rest_path, :recursive)
already_json_response(200, populate_defaults(request, org))
end
diff --git a/lib/chef_zero/endpoints/organization_user_base.rb b/lib/chef_zero/endpoints/organization_user_base.rb
index d4ccf44..5be119d 100644
--- a/lib/chef_zero/endpoints/organization_user_base.rb
+++ b/lib/chef_zero/endpoints/organization_user_base.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/organization_user_default_key_endpoint.rb b/lib/chef_zero/endpoints/organization_user_default_key_endpoint.rb
index 953edc1..ad10377 100644
--- a/lib/chef_zero/endpoints/organization_user_default_key_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_user_default_key_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/organization_user_endpoint.rb b/lib/chef_zero/endpoints/organization_user_endpoint.rb
index 8fd97d4..9418e53 100644
--- a/lib/chef_zero/endpoints/organization_user_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_user_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -8,16 +8,16 @@ module ChefZero
def get(request)
username = request.rest_path[3]
get_data(request) # 404 if user is not in org
- user = get_data(request, [ 'users', username ])
+ user = get_data(request, [ "users", username ])
user = FFI_Yajl::Parser.parse(user, :create_additions => false)
- json_response(200, ChefData::DataNormalizer.normalize_user(user, username, ['username'], server.options[:osc_compat], request.method))
+ json_response(200, ChefData::DataNormalizer.normalize_user(user, username, ["username"], server.options[:osc_compat], request.method))
end
def delete(request)
user = get_data(request)
delete_data(request)
user = FFI_Yajl::Parser.parse(user, :create_additions => false)
- json_response(200, ChefData::DataNormalizer.normalize_user(user, request.rest_path[3], ['username'], server.options[:osc_compat]))
+ json_response(200, ChefData::DataNormalizer.normalize_user(user, request.rest_path[3], ["username"], server.options[:osc_compat]))
end
# Note: post to a named org user is not permitted, alllow invalid method handling (405)
diff --git a/lib/chef_zero/endpoints/organization_user_key_endpoint.rb b/lib/chef_zero/endpoints/organization_user_key_endpoint.rb
index e0c114c..8e1cfc1 100644
--- a/lib/chef_zero/endpoints/organization_user_key_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_user_key_endpoint.rb
@@ -1,5 +1,5 @@
-require 'chef_zero/rest_base'
-require 'chef_zero/endpoints/actor_keys_endpoint'
+require "chef_zero/rest_base"
+require "chef_zero/endpoints/actor_keys_endpoint"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/organization_user_keys_endpoint.rb b/lib/chef_zero/endpoints/organization_user_keys_endpoint.rb
index 96a84fe..c08e3fa 100644
--- a/lib/chef_zero/endpoints/organization_user_keys_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_user_keys_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/organization_users_endpoint.rb b/lib/chef_zero/endpoints/organization_users_endpoint.rb
index 861c670..7473776 100644
--- a/lib/chef_zero/endpoints/organization_users_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_users_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/endpoints/organization_user_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/endpoints/organization_user_base"
module ChefZero
module Endpoints
@@ -9,28 +9,28 @@ module ChefZero
def post(request)
orgname = request.rest_path[1]
json = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- username = json['username']
+ username = json["username"]
- if exists_data?(request, [ 'organizations', orgname, 'users', username ])
+ if exists_data?(request, [ "organizations", orgname, "users", username ])
raise RestErrorResponse.new(409, "User #{username} is already in organization #{orgname}")
end
- users = get_data(request, [ 'organizations', orgname, 'groups', 'users' ])
+ users = get_data(request, [ "organizations", orgname, "groups", "users" ])
users = FFI_Yajl::Parser.parse(users, :create_additions => false)
- create_data(request, request.rest_path, username, '{}')
+ create_data(request, request.rest_path, username, "{}")
# /organizations/ORG/association_requests/USERNAME-ORG
begin
- delete_data(request, [ 'organizations', orgname, 'association_requests', username], :data_store_exceptions)
+ delete_data(request, [ "organizations", orgname, "association_requests", username], :data_store_exceptions)
rescue DataStore::DataNotFoundError
end
# Add the user to the users group if it isn't already there
- if !users['users'] || !users['users'].include?(username)
- users['users'] ||= []
- users['users'] |= [ username ]
- set_data(request, [ 'organizations', orgname, 'groups', 'users' ], FFI_Yajl::Encoder.encode(users, :pretty => true))
+ if !users["users"] || !users["users"].include?(username)
+ users["users"] ||= []
+ users["users"] |= [ username ]
+ set_data(request, [ "organizations", orgname, "groups", "users" ], FFI_Yajl::Encoder.encode(users, :pretty => true))
end
json_response(201, { "uri" => build_uri(request.base_uri, request.rest_path + [ username ]) })
end
diff --git a/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb b/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb
index a840515..d9bac29 100644
--- a/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb
+++ b/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'uuidtools'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "uuidtools"
module ChefZero
module Endpoints
@@ -8,12 +8,12 @@ module ChefZero
class OrganizationValidatorKeyEndpoint < RestBase
def post(request)
org_name = request.rest_path[-2]
- validator_path = [ 'organizations', org_name, 'clients', "#{org_name}-validator"]
+ validator_path = [ "organizations", org_name, "clients", "#{org_name}-validator"]
validator = FFI_Yajl::Parser.parse(get_data(request, validator_path), :create_additions => false)
private_key, public_key = server.gen_key_pair
- validator['public_key'] = public_key
+ validator["public_key"] = public_key
set_data(request, validator_path, FFI_Yajl::Encoder.encode(validator, :pretty => true))
- json_response(200, { 'private_key' => private_key })
+ json_response(200, { "private_key" => private_key })
end
end
end
diff --git a/lib/chef_zero/endpoints/organizations_endpoint.rb b/lib/chef_zero/endpoints/organizations_endpoint.rb
index 41bf03b..52fca5f 100644
--- a/lib/chef_zero/endpoints/organizations_endpoint.rb
+++ b/lib/chef_zero/endpoints/organizations_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'uuidtools'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "uuidtools"
module ChefZero
module Endpoints
@@ -16,8 +16,8 @@ module ChefZero
def post(request)
contents = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- name = contents['name']
- full_name = contents['full_name']
+ name = contents["name"]
+ full_name = contents["full_name"]
if name.nil?
error(400, "Must specify 'name' in JSON")
elsif full_name.nil?
@@ -28,32 +28,31 @@ module ChefZero
create_data_dir(request, request.rest_path, name, :requestor => request.requestor)
org = {
- "guid" => UUIDTools::UUID.random_create.to_s.gsub('-', ''),
- "assigned_at" => Time.now.to_s
+ "guid" => UUIDTools::UUID.random_create.to_s.delete("-"),
+ "assigned_at" => Time.now.to_s,
}.merge(contents)
org_path = request.rest_path + [ name ]
- set_data(request, org_path + [ 'org' ], FFI_Yajl::Encoder.encode(org, :pretty => true))
+ set_data(request, org_path + [ "org" ], FFI_Yajl::Encoder.encode(org, :pretty => true))
if server.generate_real_keys?
# Create the validator client
validator_name = "#{name}-validator"
- validator_path = org_path + [ 'clients', validator_name ]
+ validator_path = org_path + [ "clients", validator_name ]
private_key, public_key = server.gen_key_pair
validator = FFI_Yajl::Encoder.encode({
- 'validator' => true,
- 'public_key' => public_key
+ "validator" => true,
+ "public_key" => public_key,
}, :pretty => true)
set_data(request, validator_path, validator)
end
-
json_response(201, {
"uri" => "#{build_uri(request.base_uri, org_path)}",
"name" => name,
"org_type" => org["org_type"],
"full_name" => full_name,
"clientname" => validator_name,
- "private_key" => private_key
+ "private_key" => private_key,
})
end
end
diff --git a/lib/chef_zero/endpoints/policies_endpoint.rb b/lib/chef_zero/endpoints/policies_endpoint.rb
index 37493da..f830c5c 100644
--- a/lib/chef_zero/endpoints/policies_endpoint.rb
+++ b/lib/chef_zero/endpoints/policies_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/chef_data/data_normalizer'
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -15,7 +15,7 @@ module ChefZero
response_data[policy_name] = {
uri: policy_uri,
- revisions: hashify_list(revisions)
+ revisions: hashify_list(revisions),
}
end
diff --git a/lib/chef_zero/endpoints/policy_endpoint.rb b/lib/chef_zero/endpoints/policy_endpoint.rb
index d8c1bc8..5c77a7c 100644
--- a/lib/chef_zero/endpoints/policy_endpoint.rb
+++ b/lib/chef_zero/endpoints/policy_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/chef_data/data_normalizer'
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/policy_group_endpoint.rb b/lib/chef_zero/endpoints/policy_group_endpoint.rb
index 54732c8..573dc17 100644
--- a/lib/chef_zero/endpoints/policy_group_endpoint.rb
+++ b/lib/chef_zero/endpoints/policy_group_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -11,7 +11,7 @@ module ChefZero
def get(request)
data = {
uri: build_uri(request.base_uri, request.rest_path),
- policies: get_policy_group_policies(request)
+ policies: get_policy_group_policies(request),
}
json_response(200, data)
end
@@ -24,7 +24,7 @@ module ChefZero
policy_names = list_data(request, policies_path)
policy_names.each do |policy_name|
revision = parse_json(get_data(request, policies_path + [policy_name]))
- policies_revisions[policy_name] = { revision_id: revision}
+ policies_revisions[policy_name] = { revision_id: revision }
end
policies_revisions
@@ -37,7 +37,7 @@ module ChefZero
data = {
uri: build_uri(request.base_uri, request.rest_path),
- policies: policy_group_policies
+ policies: policy_group_policies,
}
json_response(200, data)
end
diff --git a/lib/chef_zero/endpoints/policy_group_policy_endpoint.rb b/lib/chef_zero/endpoints/policy_group_policy_endpoint.rb
index d227905..2643dd3 100644
--- a/lib/chef_zero/endpoints/policy_group_policy_endpoint.rb
+++ b/lib/chef_zero/endpoints/policy_group_policy_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -74,7 +74,6 @@ module ChefZero
policy_path = request.rest_path[0..1] + ["policies", policy_name,
"revisions", current_revision_id]
-
full_policy_doc = parse_json(get_data(request, policy_path))
full_policy_doc = ChefData::DataNormalizer.normalize_policy(full_policy_doc, policy_name, current_revision_id)
return json_response(200, full_policy_doc)
diff --git a/lib/chef_zero/endpoints/policy_groups_endpoint.rb b/lib/chef_zero/endpoints/policy_groups_endpoint.rb
index f17db8d..a706268 100644
--- a/lib/chef_zero/endpoints/policy_groups_endpoint.rb
+++ b/lib/chef_zero/endpoints/policy_groups_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
@@ -26,7 +26,7 @@ module ChefZero
end
response_data[group_name] = {
- uri: build_uri(request.base_uri, group_path)
+ uri: build_uri(request.base_uri, group_path),
}
response_data[group_name][:policies] = policies unless policies.empty?
end
diff --git a/lib/chef_zero/endpoints/policy_revision_endpoint.rb b/lib/chef_zero/endpoints/policy_revision_endpoint.rb
index 6a77d26..64e2dca 100644
--- a/lib/chef_zero/endpoints/policy_revision_endpoint.rb
+++ b/lib/chef_zero/endpoints/policy_revision_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/chef_data/data_normalizer'
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/policy_revisions_endpoint.rb b/lib/chef_zero/endpoints/policy_revisions_endpoint.rb
index 7c20a24..27e019e 100644
--- a/lib/chef_zero/endpoints/policy_revisions_endpoint.rb
+++ b/lib/chef_zero/endpoints/policy_revisions_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/chef_data/data_normalizer'
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/principal_endpoint.rb b/lib/chef_zero/endpoints/principal_endpoint.rb
index 64c6986..ebd8315 100644
--- a/lib/chef_zero/endpoints/principal_endpoint.rb
+++ b/lib/chef_zero/endpoints/principal_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -9,33 +9,33 @@ module ChefZero
def get(request)
name = request.rest_path[-1]
# If /organizations/ORG/users/NAME exists, use this user (only org members have precedence over clients). hey are an org member.
- json = get_data(request, request.rest_path[0..1] + [ 'users', name ], :nil)
+ json = get_data(request, request.rest_path[0..1] + [ "users", name ], :nil)
if json
- type = 'user'
+ type = "user"
org_member = true
else
# If /organizations/ORG/clients/NAME exists, use the client.
- json = get_data(request, request.rest_path[0..1] + [ 'clients', name ], :nil)
+ json = get_data(request, request.rest_path[0..1] + [ "clients", name ], :nil)
if json
- type = 'client'
+ type = "client"
org_member = true
else
# If there is no client with that name, check for a user (/users/NAME) and return that with
# org_member = false.
- json = get_data(request, [ 'users', name ], :nil)
+ json = get_data(request, [ "users", name ], :nil)
if json
- type = 'user'
+ type = "user"
org_member = false
end
end
end
if json
principal_data = {
- 'name' => name,
- 'type' => type,
- 'public_key' => FFI_Yajl::Parser.parse(json)['public_key'] || PUBLIC_KEY,
- 'authz_id' => '0'*32,
- 'org_member' => org_member
+ "name" => name,
+ "type" => type,
+ "public_key" => FFI_Yajl::Parser.parse(json)["public_key"] || PUBLIC_KEY,
+ "authz_id" => "0" * 32,
+ "org_member" => org_member,
}
response_data =
@@ -47,7 +47,7 @@ module ChefZero
json_response(200, response_data)
else
- error(404, 'Principal not found')
+ error(404, "Principal not found")
end
end
end
diff --git a/lib/chef_zero/endpoints/rest_list_endpoint.rb b/lib/chef_zero/endpoints/rest_list_endpoint.rb
index d6556cf..0f01a68 100644
--- a/lib/chef_zero/endpoints/rest_list_endpoint.rb
+++ b/lib/chef_zero/endpoints/rest_list_endpoint.rb
@@ -1,11 +1,11 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
# Typical REST list endpoint (/roles or /data/BAG)
class RestListEndpoint < RestBase
- def initialize(server, identity_keys = [ 'name' ])
+ def initialize(server, identity_keys = [ "name" ])
super(server)
identity_keys = [ identity_keys ] if identity_keys.is_a?(String)
@identity_keys = identity_keys
@@ -29,7 +29,7 @@ module ChefZero
error(400, "Must specify #{identity_keys.map { |k| k.inspect }.join(' or ')} in JSON")
else
create_data(request, request.rest_path, key, contents)
- json_response(201, {'uri' => "#{build_uri(request.base_uri, request.rest_path + [key])}"})
+ json_response(201, { "uri" => "#{build_uri(request.base_uri, request.rest_path + [key])}" })
end
end
diff --git a/lib/chef_zero/endpoints/rest_object_endpoint.rb b/lib/chef_zero/endpoints/rest_object_endpoint.rb
index 7e839c0..1f0e9ce 100644
--- a/lib/chef_zero/endpoints/rest_object_endpoint.rb
+++ b/lib/chef_zero/endpoints/rest_object_endpoint.rb
@@ -1,12 +1,12 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
-require 'chef_zero/rest_error_response'
+require "ffi_yajl"
+require "chef_zero/rest_base"
+require "chef_zero/rest_error_response"
module ChefZero
module Endpoints
# Typical REST leaf endpoint (/roles/NAME or /data/BAG/NAME)
class RestObjectEndpoint < RestBase
- def initialize(server, identity_keys = [ 'name' ])
+ def initialize(server, identity_keys = [ "name" ])
super(server)
identity_keys = [ identity_keys ] if identity_keys.is_a?(String)
@identity_keys = identity_keys
diff --git a/lib/chef_zero/endpoints/role_endpoint.rb b/lib/chef_zero/endpoints/role_endpoint.rb
index 0325169..654afca 100644
--- a/lib/chef_zero/endpoints/role_endpoint.rb
+++ b/lib/chef_zero/endpoints/role_endpoint.rb
@@ -1,6 +1,6 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
module ChefZero
module Endpoints
diff --git a/lib/chef_zero/endpoints/role_environments_endpoint.rb b/lib/chef_zero/endpoints/role_environments_endpoint.rb
index d56930a..a408138 100644
--- a/lib/chef_zero/endpoints/role_environments_endpoint.rb
+++ b/lib/chef_zero/endpoints/role_environments_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -7,7 +7,7 @@ module ChefZero
class RoleEnvironmentsEndpoint < RestBase
def get(request)
role = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..3]), :create_additions => false)
- json_response(200, [ '_default' ] + (role['env_run_lists'].keys || []))
+ json_response(200, [ "_default" ] + (role["env_run_lists"].keys || []))
end
end
end
diff --git a/lib/chef_zero/endpoints/sandbox_endpoint.rb b/lib/chef_zero/endpoints/sandbox_endpoint.rb
index c6a3508..b83a4ca 100644
--- a/lib/chef_zero/endpoints/sandbox_endpoint.rb
+++ b/lib/chef_zero/endpoints/sandbox_endpoint.rb
@@ -1,6 +1,6 @@
-require 'chef_zero/rest_base'
-require 'chef_zero/rest_error_response'
-require 'ffi_yajl'
+require "chef_zero/rest_base"
+require "chef_zero/rest_error_response"
+require "ffi_yajl"
module ChefZero
module Endpoints
@@ -8,8 +8,8 @@ module ChefZero
class SandboxEndpoint < RestBase
def put(request)
existing_sandbox = FFI_Yajl::Parser.parse(get_data(request), :create_additions => false)
- existing_sandbox['checksums'].each do |checksum|
- if !exists_data?(request, request.rest_path[0..1] + ['file_store', 'checksums', checksum])
+ existing_sandbox["checksums"].each do |checksum|
+ if !exists_data?(request, request.rest_path[0..1] + ["file_store", "checksums", checksum])
raise RestErrorResponse.new(503, "Checksum not uploaded: #{checksum}")
end
end
@@ -17,9 +17,9 @@ module ChefZero
json_response(200, {
:guid => request.rest_path[3],
:name => request.rest_path[3],
- :checksums => existing_sandbox['checksums'],
- :create_time => existing_sandbox['create_time'],
- :is_completed => true
+ :checksums => existing_sandbox["checksums"],
+ :create_time => existing_sandbox["create_time"],
+ :is_completed => true,
})
end
end
diff --git a/lib/chef_zero/endpoints/sandboxes_endpoint.rb b/lib/chef_zero/endpoints/sandboxes_endpoint.rb
index 88314f7..815ff14 100644
--- a/lib/chef_zero/endpoints/sandboxes_endpoint.rb
+++ b/lib/chef_zero/endpoints/sandboxes_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -13,15 +13,15 @@ module ChefZero
def post(request)
sandbox_checksums = []
- needed_checksums = FFI_Yajl::Parser.parse(request.body, :create_additions => false)['checksums']
+ needed_checksums = FFI_Yajl::Parser.parse(request.body, :create_additions => false)["checksums"]
result_checksums = {}
needed_checksums.keys.each do |needed_checksum|
- if list_data(request, request.rest_path[0..1] + ['file_store', 'checksums']).include?(needed_checksum)
+ if list_data(request, request.rest_path[0..1] + %w{file_store checksums}).include?(needed_checksum)
result_checksums[needed_checksum] = { :needs_upload => false }
else
result_checksums[needed_checksum] = {
:needs_upload => true,
- :url => build_uri(request.base_uri, request.rest_path[0..1] + ['file_store', 'checksums', needed_checksum])
+ :url => build_uri(request.base_uri, request.rest_path[0..1] + ["file_store", "checksums", needed_checksum]),
}
sandbox_checksums << needed_checksum
end
@@ -29,20 +29,20 @@ module ChefZero
# There is an obvious race condition here.
id = @next_id.to_s
- @next_id+=1
+ @next_id += 1
- time_str = Time.now.utc.strftime('%Y-%m-%dT%H:%M:%S%z')
+ time_str = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%S%z")
time_str = "#{time_str[0..21]}:#{time_str[22..23]}"
create_data(request, request.rest_path, id, FFI_Yajl::Encoder.encode({
:create_time => time_str,
- :checksums => sandbox_checksums
+ :checksums => sandbox_checksums,
}, :pretty => true))
json_response(201, {
:uri => build_uri(request.base_uri, request.rest_path + [id]),
:checksums => result_checksums,
- :sandbox_id => id
+ :sandbox_id => id,
})
end
end
diff --git a/lib/chef_zero/endpoints/search_endpoint.rb b/lib/chef_zero/endpoints/search_endpoint.rb
index 63d7f4a..01cfc56 100644
--- a/lib/chef_zero/endpoints/search_endpoint.rb
+++ b/lib/chef_zero/endpoints/search_endpoint.rb
@@ -1,9 +1,9 @@
-require 'ffi_yajl'
-require 'chef_zero/endpoints/rest_object_endpoint'
-require 'chef_zero/chef_data/data_normalizer'
-require 'chef_zero/rest_error_response'
-require 'chef_zero/solr/solr_parser'
-require 'chef_zero/solr/solr_doc'
+require "ffi_yajl"
+require "chef_zero/endpoints/rest_object_endpoint"
+require "chef_zero/chef_data/data_normalizer"
+require "chef_zero/rest_error_response"
+require "chef_zero/solr/solr_parser"
+require "chef_zero/solr/solr_doc"
module ChefZero
module Endpoints
@@ -12,7 +12,7 @@ module ChefZero
def get(request)
orgname = request.rest_path[1]
results = search(request, orgname)
- results['rows'] = results['rows'].map { |name,uri,value,search_value| value }
+ results["rows"] = results["rows"].map { |name, uri, value, search_value| value }
json_response(200, results)
rescue ChefZero::Solr::ParseError
bad_search_request(request)
@@ -22,7 +22,7 @@ module ChefZero
orgname = request.rest_path[1]
full_results = search(request, orgname)
keys = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- partial_results = full_results['rows'].map do |name, uri, doc, search_value|
+ partial_results = full_results["rows"].map do |name, uri, doc, search_value|
data = {}
keys.each_pair do |key, path|
if path.size > 0
@@ -36,14 +36,14 @@ module ChefZero
end
end
{
- 'url' => uri,
- 'data' => data
+ "url" => uri,
+ "data" => data,
}
end
json_response(200, {
- 'rows' => partial_results,
- 'start' => full_results['start'],
- 'total' => full_results['total']
+ "rows" => partial_results,
+ "start" => full_results["start"],
+ "total" => full_results["total"],
})
rescue ChefZero::Solr::ParseError
bad_search_request(request)
@@ -52,53 +52,55 @@ module ChefZero
private
def bad_search_request(request)
- query_string = request.query_params['q']
- resp = {"error" => ["invalid search query: '#{query_string}'"]}
+ query_string = request.query_params["q"]
+ resp = { "error" => ["invalid search query: '#{query_string}'"] }
json_response(400, resp)
end
def search_container(request, index, orgname)
- relative_parts, normalize_proc = case index
- when 'client'
- [ ['clients'], Proc.new { |client, name| ChefData::DataNormalizer.normalize_client(client, name, orgname) } ]
- when 'node'
- [ ['nodes'], Proc.new { |node, name| ChefData::DataNormalizer.normalize_node(node, name) } ]
- when 'environment'
- [ ['environments'], Proc.new { |environment, name| ChefData::DataNormalizer.normalize_environment(environment, name) } ]
- when 'role'
- [ ['roles'], Proc.new { |role, name| ChefData::DataNormalizer.normalize_role(role, name) } ]
- else
- [ ['data', index], Proc.new { |data_bag_item, id| ChefData::DataNormalizer.normalize_data_bag_item(data_bag_item, index, id, 'DELETE') } ]
- end
+ relative_parts, normalize_proc =
+ case index
+ when "client"
+ [ ["clients"], Proc.new { |client, name| ChefData::DataNormalizer.normalize_client(client, name, orgname) } ]
+ when "node"
+ [ ["nodes"], Proc.new { |node, name| ChefData::DataNormalizer.normalize_node(node, name) } ]
+ when "environment"
+ [ ["environments"], Proc.new { |environment, name| ChefData::DataNormalizer.normalize_environment(environment, name) } ]
+ when "role"
+ [ ["roles"], Proc.new { |role, name| ChefData::DataNormalizer.normalize_role(role, name) } ]
+ else
+ [ ["data", index], Proc.new { |data_bag_item, id| ChefData::DataNormalizer.normalize_data_bag_item(data_bag_item, index, id, "DELETE") } ]
+ end
+
[
request.rest_path[0..1] + relative_parts,
- normalize_proc
+ normalize_proc,
]
end
def expand_for_indexing(value, index, id)
- if index == 'node'
+ if index == "node"
result = {}
- deep_merge!(value['default'] || {}, result)
- deep_merge!(value['normal'] || {}, result)
- deep_merge!(value['override'] || {}, result)
- deep_merge!(value['automatic'] || {}, result)
- result['recipe'] = []
- result['role'] = []
- if value['run_list']
- value['run_list'].each do |run_list_entry|
+ deep_merge!(value["default"] || {}, result)
+ deep_merge!(value["normal"] || {}, result)
+ deep_merge!(value["override"] || {}, result)
+ deep_merge!(value["automatic"] || {}, result)
+ result["recipe"] = []
+ result["role"] = []
+ if value["run_list"]
+ value["run_list"].each do |run_list_entry|
if run_list_entry =~ /^(recipe|role)\[(.*)\]/
result[$1] << $2
end
end
end
value.each_pair do |key, value|
- result[key] = value unless %w(default normal override automatic).include?(key)
+ result[key] = value unless %w{default normal override automatic}.include?(key)
end
result
- elsif !%w(client environment role).include?(index)
- ChefData::DataNormalizer.normalize_data_bag_item(value, index, id, 'GET')
+ elsif !%w{client environment role}.include?(index)
+ ChefData::DataNormalizer.normalize_data_bag_item(value, index, id, "GET")
else
value
end
@@ -107,12 +109,12 @@ module ChefZero
def search(request, orgname = nil)
# Extract parameters
index = request.rest_path[3]
- query_string = request.query_params['q'] || '*:*'
+ query_string = request.query_params["q"] || "*:*"
solr_query = ChefZero::Solr::SolrParser.new(query_string).parse
- sort_string = request.query_params['sort']
- start = request.query_params['start']
+ sort_string = request.query_params["sort"]
+ start = request.query_params["start"]
start = start.to_i if start
- rows = request.query_params['rows']
+ rows = request.query_params["rows"]
rows = rows.to_i if rows
# Get the search container
@@ -133,18 +135,18 @@ module ChefZero
# Sort
if sort_string
sort_key, sort_order = sort_string.split(/\s+/, 2)
- result = result.sort_by { |name,uri,value,search_value| ChefZero::Solr::SolrDoc.new(search_value, name)[sort_key] }
+ result = result.sort_by { |name, uri, value, search_value| ChefZero::Solr::SolrDoc.new(search_value, name)[sort_key] }
result = result.reverse if sort_order == "DESC"
end
# Paginate
if start
- result = result[start..start+(rows||-1)]
+ result = result[start..start + (rows || -1)]
end
{
- 'rows' => result,
- 'start' => start || 0,
- 'total' => total
+ "rows" => result,
+ "start" => start || 0,
+ "total" => total,
}
end
diff --git a/lib/chef_zero/endpoints/searches_endpoint.rb b/lib/chef_zero/endpoints/searches_endpoint.rb
index 10deac3..748a93c 100644
--- a/lib/chef_zero/endpoints/searches_endpoint.rb
+++ b/lib/chef_zero/endpoints/searches_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -7,7 +7,7 @@ module ChefZero
def get(request)
# Get the result
result_hash = {}
- indices = (%w(client environment node role) + data_store.list(request.rest_path[0..1] + ['data'])).sort
+ indices = (%w{client environment node role} + data_store.list(request.rest_path[0..1] + ["data"])).sort
indices.each do |index|
result_hash[index] = build_uri(request.base_uri, request.rest_path + [index])
end
diff --git a/lib/chef_zero/endpoints/server_api_version_endpoint.rb b/lib/chef_zero/endpoints/server_api_version_endpoint.rb
index 8ddeaba..a66d3f3 100644
--- a/lib/chef_zero/endpoints/server_api_version_endpoint.rb
+++ b/lib/chef_zero/endpoints/server_api_version_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -6,7 +6,7 @@ module ChefZero
class ServerAPIVersionEndpoint < RestBase
API_VERSION = 1
def get(request)
- json_response(200, {"min_api_version"=>MIN_API_VERSION, "max_api_version"=>MAX_API_VERSION},
+ json_response(200, { "min_api_version" => MIN_API_VERSION, "max_api_version" => MAX_API_VERSION },
request_version: request.api_version, response_version: API_VERSION)
end
end
diff --git a/lib/chef_zero/endpoints/system_recovery_endpoint.rb b/lib/chef_zero/endpoints/system_recovery_endpoint.rb
index be438f8..385101d 100644
--- a/lib/chef_zero/endpoints/system_recovery_endpoint.rb
+++ b/lib/chef_zero/endpoints/system_recovery_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -7,19 +7,19 @@ module ChefZero
class SystemRecoveryEndpoint < RestBase
def post(request)
request_json = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- name = request_json['username']
- password = request_json['password']
- user = get_data(request, request.rest_path[0..-2] + ['users', name], :nil)
+ name = request_json["username"]
+ password = request_json["password"]
+ user = get_data(request, request.rest_path[0..-2] + ["users", name], :nil)
if !user
raise RestErrorResponse.new(403, "Nonexistent user")
end
user = FFI_Yajl::Parser.parse(user, :create_additions => false)
- user = ChefData::DataNormalizer.normalize_user(user, name, [ 'username' ], server.options[:osc_compat])
- if !user['recovery_authentication_enabled']
+ user = ChefData::DataNormalizer.normalize_user(user, name, [ "username" ], server.options[:osc_compat])
+ if !user["recovery_authentication_enabled"]
raise RestErrorResponse.new(403, "Only users with recovery_authentication_enabled=true may use /system_recovery to log in")
end
- if user['password'] != password
+ if user["password"] != password
raise RestErrorResponse.new(401, "Incorrect password")
end
diff --git a/lib/chef_zero/endpoints/user_association_request_endpoint.rb b/lib/chef_zero/endpoints/user_association_request_endpoint.rb
index a83849f..424557e 100644
--- a/lib/chef_zero/endpoints/user_association_request_endpoint.rb
+++ b/lib/chef_zero/endpoints/user_association_request_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -14,26 +14,26 @@ module ChefZero
orgname = $1
json = FFI_Yajl::Parser.parse(request.body, :create_additions => false)
- association_request_path = [ 'organizations', orgname, 'association_requests', username ]
- if json['response'] == 'accept'
- users = get_data(request, [ 'organizations', orgname, 'groups', 'users' ])
+ association_request_path = [ "organizations", orgname, "association_requests", username ]
+ if json["response"] == "accept"
+ users = get_data(request, [ "organizations", orgname, "groups", "users" ])
users = FFI_Yajl::Parser.parse(users, :create_additions => false)
delete_data(request, association_request_path)
- create_data(request, [ 'organizations', orgname, 'users' ], username, '{}')
+ create_data(request, [ "organizations", orgname, "users" ], username, "{}")
# Add the user to the users group if it isn't already there
- if !users['users'] || !users['users'].include?(username)
- users['users'] ||= []
- users['users'] |= [ username ]
- set_data(request, [ 'organizations', orgname, 'groups', 'users' ], FFI_Yajl::Encoder.encode(users, :pretty => true))
+ if !users["users"] || !users["users"].include?(username)
+ users["users"] ||= []
+ users["users"] |= [ username ]
+ set_data(request, [ "organizations", orgname, "groups", "users" ], FFI_Yajl::Encoder.encode(users, :pretty => true))
end
- elsif json['response'] == 'reject'
+ elsif json["response"] == "reject"
delete_data(request, association_request_path)
else
raise RestErrorResponse.new(400, "response parameter was missing or set to the wrong value (must be accept or reject)")
end
- json_response(200, { 'organization' => { 'name' => orgname } })
+ json_response(200, { "organization" => { "name" => orgname } })
end
end
end
diff --git a/lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb b/lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb
index ae8ba9b..617b2b1 100644
--- a/lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb
+++ b/lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -9,8 +9,8 @@ module ChefZero
get_data(request, request.rest_path[0..-3])
username = request.rest_path[1]
- result = list_data(request, [ 'organizations' ]).select do |org|
- exists_data?(request, [ 'organizations', org, 'association_requests', username ])
+ result = list_data(request, [ "organizations" ]).select do |org|
+ exists_data?(request, [ "organizations", org, "association_requests", username ])
end
json_response(200, { "value" => result.size })
end
diff --git a/lib/chef_zero/endpoints/user_association_requests_endpoint.rb b/lib/chef_zero/endpoints/user_association_requests_endpoint.rb
index d8dc6eb..c8db13b 100644
--- a/lib/chef_zero/endpoints/user_association_requests_endpoint.rb
+++ b/lib/chef_zero/endpoints/user_association_requests_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -8,8 +8,8 @@ module ChefZero
def get(request)
get_data(request, request.rest_path[0..-2])
username = request.rest_path[1]
- result = list_data(request, [ 'organizations' ]).select do |org|
- exists_data?(request, [ 'organizations', org, 'association_requests', username ])
+ result = list_data(request, [ "organizations" ]).select do |org|
+ exists_data?(request, [ "organizations", org, "association_requests", username ])
end
result = result.map { |org| { "id" => "#{username}-#{org}", "orgname" => org } }
json_response(200, result)
diff --git a/lib/chef_zero/endpoints/user_organizations_endpoint.rb b/lib/chef_zero/endpoints/user_organizations_endpoint.rb
index 3eb13c4..03eae68 100644
--- a/lib/chef_zero/endpoints/user_organizations_endpoint.rb
+++ b/lib/chef_zero/endpoints/user_organizations_endpoint.rb
@@ -1,5 +1,5 @@
-require 'ffi_yajl'
-require 'chef_zero/rest_base'
+require "ffi_yajl"
+require "chef_zero/rest_base"
module ChefZero
module Endpoints
@@ -7,11 +7,11 @@ module ChefZero
class UserOrganizationsEndpoint < RestBase
def get(request)
username = request.rest_path[1]
- result = list_data(request, [ 'organizations' ]).select do |orgname|
- exists_data?(request, [ 'organizations', orgname, 'users', username ])
+ result = list_data(request, [ "organizations" ]).select do |orgname|
+ exists_data?(request, [ "organizations", orgname, "users", username ])
end
result = result.map do |orgname|
- org = get_data(request, [ 'organizations', orgname, 'org' ])
+ org = get_data(request, [ "organizations", orgname, "org" ])
org = FFI_Yajl::Parser.parse(org, :create_additions => false)
{ "organization" => ChefData::DataNormalizer.normalize_organization(org, orgname) }
end
diff --git a/lib/chef_zero/endpoints/version_endpoint.rb b/lib/chef_zero/endpoints/version_endpoint.rb
index d38c33e..c51e893 100644
--- a/lib/chef_zero/endpoints/version_endpoint.rb
+++ b/lib/chef_zero/endpoints/version_endpoint.rb
@@ -1,4 +1,4 @@
-require 'chef_zero/rest_base'
+require "chef_zero/rest_base"
module ChefZero
module Endpoints