chef-zero 13.0.0 → 13.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/lib/chef_zero/endpoints/actors_endpoint.rb +7 -3
- data/lib/chef_zero/endpoints/cookbooks_base.rb +16 -0
- data/lib/chef_zero/endpoints/node_endpoint.rb +4 -0
- data/lib/chef_zero/endpoints/universe_endpoint.rb +15 -0
- data/lib/chef_zero/rest_base.rb +10 -0
- data/lib/chef_zero/server.rb +3 -1
- data/lib/chef_zero/version.rb +1 -1
- data/spec/run_oc_pedant.rb +11 -8
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5d647a2d5e5efa6c92eb7c4285f529b35aef7a5
|
4
|
+
data.tar.gz: ec2f33f80f230f44228b24c3ea308918e823b7e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cb417d730349ccd4d32e5bd4b87fdd1e0469118da5cc08d58604759b1f78069dd5a7fbbc65fa33189d1749002d36a4962773ec3d856bf1b4ef8b0b5709b5f09f
|
7
|
+
data.tar.gz: 6a0b06a288410ffad9f2f8af5f061964292f77a130c1b0c1f68fe0dab319bd1056c86c2a430a13dbd1203f55e3ea084b4bef5af1b46f32f28bc452317cdd91e3
|
data/Gemfile
CHANGED
@@ -13,7 +13,7 @@ module ChefZero
|
|
13
13
|
if value = request.query_params["external_authentication_uid"]
|
14
14
|
response[2] = filter("external_authentication_uid", value, request, response[2])
|
15
15
|
elsif value = request.query_params["email"]
|
16
|
-
response[2] = filter("email", value, request, response[2])
|
16
|
+
response[2] = filter("email", value, request, response[2], insensitive: true)
|
17
17
|
end
|
18
18
|
|
19
19
|
if request.query_params["verbose"]
|
@@ -83,18 +83,22 @@ module ChefZero
|
|
83
83
|
|
84
84
|
private
|
85
85
|
|
86
|
-
def filter(key, value, request, resp)
|
86
|
+
def filter(key, value, request, resp, opts = {})
|
87
87
|
results = parse_json(resp)
|
88
88
|
new_results = {}
|
89
89
|
results.each do |name, url|
|
90
90
|
record = get_data(request, request.rest_path + [ name ], :nil)
|
91
91
|
if record
|
92
92
|
record = parse_json(record)
|
93
|
-
new_results[name] = url if record[key]
|
93
|
+
new_results[name] = url if record[key] && is_equal(record[key], value, opts[:insensitive])
|
94
94
|
end
|
95
95
|
end
|
96
96
|
to_json(new_results)
|
97
97
|
end
|
98
|
+
|
99
|
+
def is_equal(a, b, ignore_case)
|
100
|
+
ignore_case ? a.casecmp(b).zero? : a == b
|
101
|
+
end
|
98
102
|
end
|
99
103
|
end
|
100
104
|
end
|
@@ -23,6 +23,22 @@ module ChefZero
|
|
23
23
|
results
|
24
24
|
end
|
25
25
|
|
26
|
+
def format_universe_list(request, cookbooks_list)
|
27
|
+
results = {}
|
28
|
+
cookbooks_list.each do |name, versions|
|
29
|
+
results[name] ||= {}
|
30
|
+
versions.each do |version|
|
31
|
+
cookbook_data = FFI_Yajl::Parser.parse(get_data(request, request.rest_path[0..1] + [ "cookbooks", name, version ], :nil))
|
32
|
+
results[name][version] ||= {
|
33
|
+
"dependencies" => cookbook_data["metadata"]["dependencies"],
|
34
|
+
"location_path" => build_uri(request.base_uri, request.rest_path[0..1] + ["cookbooks", name, version]),
|
35
|
+
"location_type" => "chef_server",
|
36
|
+
}
|
37
|
+
end
|
38
|
+
end
|
39
|
+
results
|
40
|
+
end
|
41
|
+
|
26
42
|
def all_cookbooks_list(request)
|
27
43
|
result = {}
|
28
44
|
# Race conditions exist here (if someone deletes while listing). I don't care.
|
@@ -20,6 +20,10 @@ module ChefZero
|
|
20
20
|
super(request)
|
21
21
|
end
|
22
22
|
|
23
|
+
def head(request)
|
24
|
+
head_request(request)
|
25
|
+
end
|
26
|
+
|
23
27
|
def populate_defaults(request, response_json)
|
24
28
|
node = FFI_Yajl::Parser.parse(response_json)
|
25
29
|
node = ChefData::DataNormalizer.normalize_node(node, request.rest_path[3])
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "ffi_yajl"
|
2
|
+
require "chef_zero/endpoints/rest_object_endpoint"
|
3
|
+
require "chef_zero/chef_data/data_normalizer"
|
4
|
+
|
5
|
+
module ChefZero
|
6
|
+
module Endpoints
|
7
|
+
# /universe
|
8
|
+
class UniverseEndpoint < CookbooksBase
|
9
|
+
|
10
|
+
def get(request)
|
11
|
+
json_response(200, format_universe_list(request, all_cookbooks_list(request)))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/chef_zero/rest_base.rb
CHANGED
@@ -231,6 +231,16 @@ module ChefZero
|
|
231
231
|
[response_code, { "Content-Type" => "text/plain" }, text]
|
232
232
|
end
|
233
233
|
|
234
|
+
# rfc090 returns 404 error or 200 with an emtpy body
|
235
|
+
# @param [ChefZero::RestRequest] request The HTTP request object
|
236
|
+
#
|
237
|
+
# @return (see #json_response)
|
238
|
+
#
|
239
|
+
def head_request(request)
|
240
|
+
get_data(request) # will raise 404 if non-existant
|
241
|
+
json_response(200, nil)
|
242
|
+
end
|
243
|
+
|
234
244
|
# Returns an Array with the response code, HTTP headers, and JSON body.
|
235
245
|
#
|
236
246
|
# @param [Fixnum] response_code The HTTP response code
|
data/lib/chef_zero/server.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: John Keiser (<jkeiser@opscode.com>)
|
3
|
-
# Copyright:: Copyright (c) 2012
|
3
|
+
# Copyright:: Copyright (c) 2012-2017, Chef Software Inc.
|
4
4
|
# License:: Apache License, Version 2.0
|
5
5
|
#
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -105,6 +105,7 @@ require "chef_zero/endpoints/file_store_file_endpoint"
|
|
105
105
|
require "chef_zero/endpoints/not_found_endpoint"
|
106
106
|
require "chef_zero/endpoints/version_endpoint"
|
107
107
|
require "chef_zero/endpoints/server_api_version_endpoint"
|
108
|
+
require "chef_zero/endpoints/universe_endpoint"
|
108
109
|
|
109
110
|
module ChefZero
|
110
111
|
|
@@ -623,6 +624,7 @@ module ChefZero
|
|
623
624
|
[ "/organizations/*/sandboxes/*", SandboxEndpoint.new(self) ],
|
624
625
|
[ "/organizations/*/search", SearchesEndpoint.new(self) ],
|
625
626
|
[ "/organizations/*/search/*", SearchEndpoint.new(self) ],
|
627
|
+
[ "/organizations/*/universe", UniverseEndpoint.new(self) ],
|
626
628
|
[ "/version", VersionEndpoint.new(self) ],
|
627
629
|
[ "/server_api_version", ServerAPIVersionEndpoint.new(self) ],
|
628
630
|
|
data/lib/chef_zero/version.rb
CHANGED
data/spec/run_oc_pedant.rb
CHANGED
@@ -130,12 +130,6 @@ begin
|
|
130
130
|
"--skip-organizations",
|
131
131
|
"--skip-multiuser",
|
132
132
|
"--skip-user-keys",
|
133
|
-
|
134
|
-
# chef-zero has some non-removable quirks, such as the fact that files
|
135
|
-
# with 255-character names cannot be stored in local mode. This is
|
136
|
-
# reserved only for quirks that are *irrevocable* and by design; and
|
137
|
-
# should barely be used at all.
|
138
|
-
"--skip-chef-zero-quirks",
|
139
133
|
]
|
140
134
|
else
|
141
135
|
[]
|
@@ -167,6 +161,10 @@ begin
|
|
167
161
|
# Chef Zero does not intend to support authorization the way erchef does.
|
168
162
|
"--skip-authorization",
|
169
163
|
|
164
|
+
# Chef Zero does not intend to support oc_id authentication/authorization
|
165
|
+
# the way erchef does.
|
166
|
+
"--skip-oc_id",
|
167
|
+
|
170
168
|
# Omnibus tests depend on erchef features that are specific to erchef and
|
171
169
|
# bundled in the omnibus package. Currently the only test in this category
|
172
170
|
# is for the search reindexing script.
|
@@ -181,8 +179,13 @@ begin
|
|
181
179
|
|
182
180
|
# Chef 12 features not yet 100% supported by Chef Zero
|
183
181
|
|
184
|
-
#
|
185
|
-
|
182
|
+
# chef-zero has some non-removable quirks, such as the fact that files
|
183
|
+
# with 255-character names cannot be stored in local mode. This is
|
184
|
+
# reserved only for quirks that are *irrevocable* and by design; and
|
185
|
+
# should barely be used at all. This is also used to skip the user acl
|
186
|
+
# tests from chef-server as the user acls are not supported in chef-zero
|
187
|
+
# at this time.
|
188
|
+
"--skip-chef-zero-quirks",
|
186
189
|
]
|
187
190
|
|
188
191
|
# The knife tests are very slow and don't give us a lot of extra coverage,
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chef-zero
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 13.
|
4
|
+
version: 13.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Keiser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mixlib-log
|
@@ -253,6 +253,7 @@ files:
|
|
253
253
|
- lib/chef_zero/endpoints/searches_endpoint.rb
|
254
254
|
- lib/chef_zero/endpoints/server_api_version_endpoint.rb
|
255
255
|
- lib/chef_zero/endpoints/system_recovery_endpoint.rb
|
256
|
+
- lib/chef_zero/endpoints/universe_endpoint.rb
|
256
257
|
- lib/chef_zero/endpoints/user_association_request_endpoint.rb
|
257
258
|
- lib/chef_zero/endpoints/user_association_requests_count_endpoint.rb
|
258
259
|
- lib/chef_zero/endpoints/user_association_requests_endpoint.rb
|