chef-zero 14.0.6 → 14.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +9 -1
- data/Rakefile +11 -14
- data/chef-zero.gemspec +4 -8
- data/lib/chef_zero.rb +3 -3
- data/lib/chef_zero/chef_data/acl_path.rb +2 -2
- data/lib/chef_zero/chef_data/cookbook_data.rb +6 -6
- data/lib/chef_zero/chef_data/data_normalizer.rb +4 -4
- data/lib/chef_zero/chef_data/default_creator.rb +4 -4
- data/lib/chef_zero/data_store/default_facade.rb +1 -1
- data/lib/chef_zero/data_store/memory_store_v2.rb +5 -5
- data/lib/chef_zero/data_store/raw_file_store.rb +2 -2
- data/lib/chef_zero/endpoints/acl_endpoint.rb +2 -2
- data/lib/chef_zero/endpoints/actor_keys_endpoint.rb +2 -2
- data/lib/chef_zero/endpoints/container_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +3 -3
- data/lib/chef_zero/endpoints/data_bag_item_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/data_bags_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/environment_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/file_store_file_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/group_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/node_endpoint.rb +5 -5
- data/lib/chef_zero/endpoints/node_identifiers_endpoint.rb +3 -3
- data/lib/chef_zero/endpoints/nodes_endpoint.rb +5 -5
- data/lib/chef_zero/endpoints/not_found_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/organization_endpoint.rb +3 -3
- data/lib/chef_zero/endpoints/organization_users_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/organizations_endpoint.rb +4 -4
- data/lib/chef_zero/endpoints/rest_list_endpoint.rb +2 -2
- data/lib/chef_zero/endpoints/rest_object_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/role_endpoint.rb +1 -1
- data/lib/chef_zero/endpoints/sandbox_endpoint.rb +5 -5
- data/lib/chef_zero/endpoints/sandboxes_endpoint.rb +9 -9
- data/lib/chef_zero/endpoints/user_association_request_endpoint.rb +1 -1
- data/lib/chef_zero/rest_base.rb +4 -4
- data/lib/chef_zero/rspec.rb +3 -3
- data/lib/chef_zero/server.rb +19 -19
- data/lib/chef_zero/solr/query/range_query.rb +1 -1
- data/lib/chef_zero/solr/query/regexpable_query.rb +3 -3
- data/lib/chef_zero/solr/solr_parser.rb +1 -1
- data/lib/chef_zero/version.rb +1 -1
- data/spec/server_spec.rb +4 -4
- data/spec/support/oc_pedant.rb +32 -32
- metadata +8 -45
- data/README.md +0 -168
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 81a886b9fb926d3f1f355c4de530c96f2d65d7a3565c39415ad4a5d257689493
|
4
|
+
data.tar.gz: 7575b3e658f703ef7f9e3ea4d04a3a263ae4fe1318ac40af36ba6d235d8b1faf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7dd8837c30d93b11a012bd1dfcd335938ee42e91a0e0e0b46a20d89cd4acfd0101220185c209f77f99cc9e5d6f68c6f1ca79db9d76d760e83c925986438d7669
|
7
|
+
data.tar.gz: d4bd90dd779dbdcec494219f9a08c8f1402c349b9b1985f39c836724c0ee235a7e1a49feeaf8c640381a8fb4297259a91314f9659cb1757ef834dbce85c74143
|
data/Gemfile
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
|
+
|
2
3
|
gemspec
|
3
4
|
|
4
5
|
# gem 'rest-client', :git => 'https://github.com/chef/rest-client.git'
|
5
6
|
|
6
7
|
group :pedant do
|
7
|
-
gem "oc-chef-pedant", :
|
8
|
+
gem "oc-chef-pedant", git: "https://github.com/chef/chef-server.git"
|
8
9
|
end
|
9
10
|
|
10
11
|
group :development, :test do
|
@@ -16,6 +17,13 @@ if ENV["GEMFILE_MOD"]
|
|
16
17
|
instance_eval(ENV["GEMFILE_MOD"])
|
17
18
|
else
|
18
19
|
gem "chef", "~> 14.0"
|
20
|
+
gem "ohai", "~> 14.0"
|
21
|
+
end
|
22
|
+
|
23
|
+
group :debug do
|
24
|
+
gem "pry"
|
25
|
+
gem "pry-byebug"
|
26
|
+
gem "pry-stack_explorer"
|
19
27
|
end
|
20
28
|
|
21
29
|
# If you want to load debugging tools into the bundle exec sandbox,
|
data/Rakefile
CHANGED
@@ -1,24 +1,21 @@
|
|
1
|
-
require "bundler"
|
2
1
|
require "bundler/gem_tasks"
|
3
2
|
|
4
|
-
require "chef_zero/version"
|
5
|
-
|
6
3
|
def run_oc_pedant(env = {})
|
7
4
|
ENV.update(env)
|
8
5
|
require File.expand_path("spec/run_oc_pedant")
|
9
6
|
end
|
10
7
|
|
11
|
-
ENV_DOCS =
|
12
|
-
Environment:
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
8
|
+
ENV_DOCS = <<~END.freeze
|
9
|
+
Environment:
|
10
|
+
- RSPEC_OPTS Options to pass to RSpec
|
11
|
+
e.g. RSPEC_OPTS="--fail-fast --profile 5"
|
12
|
+
- PEDANT_OPTS Options to pass to oc-chef-pedant
|
13
|
+
e.g. PEDANT_OPTS="--focus-keys --skip-users"
|
14
|
+
- LOG_LEVEL Set the log level (default: warn)
|
15
|
+
e.g. LOG_LEVEL=debug
|
19
16
|
END
|
20
17
|
|
21
|
-
task :
|
18
|
+
task default: :pedant
|
22
19
|
|
23
20
|
desc "Run specs"
|
24
21
|
task :spec do
|
@@ -26,7 +23,7 @@ task :spec do
|
|
26
23
|
end
|
27
24
|
|
28
25
|
desc "Run oc-chef-pedant\n\n#{ENV_DOCS}"
|
29
|
-
task :
|
26
|
+
task pedant: :oc_pedant
|
30
27
|
|
31
28
|
desc "Run oc-chef-pedant with CHEF_FS set\n\n#{ENV_DOCS}"
|
32
29
|
task :cheffs do
|
@@ -59,5 +56,5 @@ begin
|
|
59
56
|
task.options += ["--display-cop-names", "--no-color"]
|
60
57
|
end
|
61
58
|
rescue LoadError
|
62
|
-
puts "chefstyle/rubocop is not available.
|
59
|
+
puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
|
63
60
|
end
|
data/chef-zero.gemspec
CHANGED
@@ -4,13 +4,12 @@ require "chef_zero/version"
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "chef-zero"
|
6
6
|
s.version = ChefZero::VERSION
|
7
|
-
s.platform = Gem::Platform::RUBY
|
8
7
|
s.summary = "Self-contained, easy-setup, fast-start in-memory Chef server for testing and solo setup purposes"
|
9
8
|
s.description = s.summary
|
10
9
|
s.author = "John Keiser"
|
11
10
|
s.email = "jkeiser@chef.io"
|
12
|
-
s.homepage = "
|
13
|
-
s.license = "Apache
|
11
|
+
s.homepage = "https://github.com/chef/chef-zero"
|
12
|
+
s.license = "Apache-2.0"
|
14
13
|
|
15
14
|
s.required_ruby_version = ">= 2.4.0"
|
16
15
|
|
@@ -18,17 +17,14 @@ Gem::Specification.new do |s|
|
|
18
17
|
s.add_dependency "hashie", ">= 2.0", "< 4.0"
|
19
18
|
s.add_dependency "uuidtools", "~> 2.1"
|
20
19
|
s.add_dependency "ffi-yajl", "~> 2.2"
|
21
|
-
s.add_dependency "rack", "~> 2.0"
|
20
|
+
s.add_dependency "rack", "~> 2.0", ">= 2.0.6"
|
22
21
|
|
23
|
-
s.add_development_dependency "pry"
|
24
|
-
s.add_development_dependency "pry-byebug"
|
25
|
-
s.add_development_dependency "pry-stack_explorer"
|
26
22
|
s.add_development_dependency "rake"
|
27
23
|
s.add_development_dependency "rspec"
|
28
24
|
|
29
25
|
s.bindir = "bin"
|
30
26
|
s.executables = ["chef-zero"]
|
31
27
|
s.require_path = "lib"
|
32
|
-
s.files = %w{LICENSE
|
28
|
+
s.files = %w{LICENSE Gemfile Rakefile} + Dir.glob("*.gemspec") +
|
33
29
|
Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject { |f| File.directory?(f) }
|
34
30
|
end
|
data/lib/chef_zero.rb
CHANGED
@@ -4,7 +4,7 @@ module ChefZero
|
|
4
4
|
MIN_API_VERSION = 0
|
5
5
|
MAX_API_VERSION = 2
|
6
6
|
|
7
|
-
CERTIFICATE = "-----BEGIN CERTIFICATE-----\nMIIDMzCCApygAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnjELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFjAUBgNVBAoM\nDU9wc2NvZGUsIEluYy4xHDAaBgNVBAsME0NlcnRpZmljYXRlIFNlcnZpY2UxMjAw\nBgNVBAMMKW9wc2NvZGUuY29tL2VtYWlsQWRkcmVzcz1hdXRoQG9wc2NvZGUuY29t\nMB4XDTEyMTEyMTAwMzQyMVoXDTIyMTExOTAwMzQyMVowgZsxEDAOBgNVBAcTB1Nl\nYXR0bGUxEzARBgNVBAgTCldhc2hpbmd0b24xCzAJBgNVBAYTAlVTMRwwGgYDVQQL\nExNDZXJ0aWZpY2F0ZSBTZXJ2aWNlMRYwFAYDVQQKEw1PcHNjb2RlLCBJbmMuMS8w\nLQYDVQQDFCZVUkk6aHR0cDovL29wc2NvZGUuY29tL0dVSURTL3VzZXJfZ3VpZDCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLDmPbR71bS2esZlZh/HfC6\n0azXFjl2677wq2ovk9xrUb0Ui4ZLC66TqQ9C/RBzOjXU4TRf3hgPTqvlCgHusl0d\nIcLCrsSl6kPEhJpYWWfRoroIAwf82A9yLQekhqXZEXu5EKkwoUMqyF6m0ZCasaE1\ny8niQxdLAsk3ady/CGQlFqHTPKFfU5UASR2LRtYC1MCIvJHDFRKAp9kPJbQo9P37\nZ8IU7cDudkZFgNLmDixlWsh7C0ghX8fgAlj1P6FgsFufygam973k79GhIP54dELB\nc0S6E8ekkRSOXU9jX/IoiXuFglBvFihAdhvED58bMXzj2AwXUyeAlxItnvs+NVUC\nAwEAATANBgkqhkiG9w0BAQUFAAOBgQBkFZRbMoywK3hb0/X7MXmPYa7nlfnd5UXq\nr2n32ettzZNmEPaI2d1j+//nL5qqhOlrWPS88eKEPnBOX/jZpUWOuAAddnrvFzgw\nrp/C2H7oMT+29F+5ezeViLKbzoFYb4yECHBoi66IFXNae13yj7taMboBeUmE664G\nTB/MZpRr8g==\n-----END CERTIFICATE-----\n"
|
8
|
-
PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0sOY9tHvVtLZ6xmVmH8d\n8LrRrNcWOXbrvvCrai+T3GtRvRSLhksLrpOpD0L9EHM6NdThNF/eGA9Oq+UKAe6y\nXR0hwsKuxKXqQ8SEmlhZZ9GiuggDB/zYD3ItB6SGpdkRe7kQqTChQyrIXqbRkJqx\noTXLyeJDF0sCyTdp3L8IZCUWodM8oV9TlQBJHYtG1gLUwIi8kcMVEoCn2Q8ltCj0\n/ftnwhTtwO52RkWA0uYOLGVayHsLSCFfx+ACWPU/oWCwW5/KBqb3veTv0aEg/nh0\nQsFzRLoTx6SRFI5dT2Nf8iiJe4WCUG8WKEB2G8QPnxsxfOPYDBdTJ4CXEi2e+z41\nVQIDAQAB\n-----END PUBLIC KEY-----\n"
|
9
|
-
PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA0sOY9tHvVtLZ6xmVmH8d8LrRrNcWOXbrvvCrai+T3GtRvRSL\nhksLrpOpD0L9EHM6NdThNF/eGA9Oq+UKAe6yXR0hwsKuxKXqQ8SEmlhZZ9GiuggD\nB/zYD3ItB6SGpdkRe7kQqTChQyrIXqbRkJqxoTXLyeJDF0sCyTdp3L8IZCUWodM8\noV9TlQBJHYtG1gLUwIi8kcMVEoCn2Q8ltCj0/ftnwhTtwO52RkWA0uYOLGVayHsL\nSCFfx+ACWPU/oWCwW5/KBqb3veTv0aEg/nh0QsFzRLoTx6SRFI5dT2Nf8iiJe4WC\nUG8WKEB2G8QPnxsxfOPYDBdTJ4CXEi2e+z41VQIDAQABAoIBAALhqbW2KQ+G0nPk\nZacwFbi01SkHx8YBWjfCEpXhEKRy0ytCnKW5YO+CFU2gHNWcva7+uhV9OgwaKXkw\nKHLeUJH1VADVqI4Htqw2g5mYm6BPvWnNsjzpuAp+BR+VoEGkNhj67r9hatMAQr0I\nitTvSH5rvd2EumYXIHKfz1K1SegUk1u1EL1RcMzRmZe4gDb6eNBs9Sg4im4ybTG6\npPIytA8vBQVWhjuAR2Tm+wZHiy0Az6Vu7c2mS07FSX6FO4E8SxWf8idaK9ijMGSq\nFvIS04mrY6XCPUPUC4qm1qNnhDPpOr7CpI2OO98SqGanStS5NFlSFXeXPpM280/u\nfZUA0AECgYEA+x7QUnffDrt7LK2cX6wbvn4mRnFxet7bJjrfWIHf+Rm0URikaNma\nh0/wNKpKBwIH+eHK/LslgzcplrqPytGGHLOG97Gyo5tGAzyLHUWBmsNkRksY2sPL\nuHq6pYWJNkqhnWGnIbmqCr0EWih82x/y4qxbJYpYqXMrit0wVf7yAgkCgYEA1twI\ngFaXqesetTPoEHSQSgC8S4D5/NkdriUXCYb06REcvo9IpFMuiOkVUYNN5d3MDNTP\nIdBicfmvfNELvBtXDomEUD8ls1UuoTIXRNGZ0VsZXu7OErXCK0JKNNyqRmOwcvYL\nJRqLfnlei5Ndo1lu286yL74c5rdTLs/nI2p4e+0CgYB079ZmcLeILrmfBoFI8+Y/\ngJLmPrFvXBOE6+lRV7kqUFPtZ6I3yQzyccETZTDvrnx0WjaiFavUPH27WMjY01S2\nTMtO0Iq1MPsbSrglO1as8MvjB9ldFcvp7gy4Q0Sv6XT0yqJ/S+vo8Df0m+H4UBpU\nf5o6EwBSd/UQxwtZIE0lsQKBgQCswfjX8Eg8KL/lJNpIOOE3j4XXE9ptksmJl2sB\njxDnQYoiMqVO808saHVquC/vTrpd6tKtNpehWwjeTFuqITWLi8jmmQ+gNTKsC9Gn\n1Pxf2Gb67PqnEpwQGln+TRtgQ5HBrdHiQIi+5am+gnw89pDrjjO5rZwhanAo6KPJ\n1zcPNQKBgQDxFu8v4frDmRNCVaZS4f1B6wTrcMrnibIDlnzrK9GG6Hz1U7dDv8s8\nNf4UmeMzDXjlPWZVOvS5+9HKJPdPj7/onv8B2m18+lcgTTDJBkza7R1mjL1Cje/Z\nKcVGsryKN6cjE7yCDasnA7R2rVBV/7NWeJV77bmzT5O//rW4yIfUIg==\n-----END RSA PRIVATE KEY-----\n"
|
7
|
+
CERTIFICATE = "-----BEGIN CERTIFICATE-----\nMIIDMzCCApygAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnjELMAkGA1UEBhMCVVMx\nEzARBgNVBAgMCldhc2hpbmd0b24xEDAOBgNVBAcMB1NlYXR0bGUxFjAUBgNVBAoM\nDU9wc2NvZGUsIEluYy4xHDAaBgNVBAsME0NlcnRpZmljYXRlIFNlcnZpY2UxMjAw\nBgNVBAMMKW9wc2NvZGUuY29tL2VtYWlsQWRkcmVzcz1hdXRoQG9wc2NvZGUuY29t\nMB4XDTEyMTEyMTAwMzQyMVoXDTIyMTExOTAwMzQyMVowgZsxEDAOBgNVBAcTB1Nl\nYXR0bGUxEzARBgNVBAgTCldhc2hpbmd0b24xCzAJBgNVBAYTAlVTMRwwGgYDVQQL\nExNDZXJ0aWZpY2F0ZSBTZXJ2aWNlMRYwFAYDVQQKEw1PcHNjb2RlLCBJbmMuMS8w\nLQYDVQQDFCZVUkk6aHR0cDovL29wc2NvZGUuY29tL0dVSURTL3VzZXJfZ3VpZDCC\nASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANLDmPbR71bS2esZlZh/HfC6\n0azXFjl2677wq2ovk9xrUb0Ui4ZLC66TqQ9C/RBzOjXU4TRf3hgPTqvlCgHusl0d\nIcLCrsSl6kPEhJpYWWfRoroIAwf82A9yLQekhqXZEXu5EKkwoUMqyF6m0ZCasaE1\ny8niQxdLAsk3ady/CGQlFqHTPKFfU5UASR2LRtYC1MCIvJHDFRKAp9kPJbQo9P37\nZ8IU7cDudkZFgNLmDixlWsh7C0ghX8fgAlj1P6FgsFufygam973k79GhIP54dELB\nc0S6E8ekkRSOXU9jX/IoiXuFglBvFihAdhvED58bMXzj2AwXUyeAlxItnvs+NVUC\nAwEAATANBgkqhkiG9w0BAQUFAAOBgQBkFZRbMoywK3hb0/X7MXmPYa7nlfnd5UXq\nr2n32ettzZNmEPaI2d1j+//nL5qqhOlrWPS88eKEPnBOX/jZpUWOuAAddnrvFzgw\nrp/C2H7oMT+29F+5ezeViLKbzoFYb4yECHBoi66IFXNae13yj7taMboBeUmE664G\nTB/MZpRr8g==\n-----END CERTIFICATE-----\n".freeze
|
8
|
+
PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0sOY9tHvVtLZ6xmVmH8d\n8LrRrNcWOXbrvvCrai+T3GtRvRSLhksLrpOpD0L9EHM6NdThNF/eGA9Oq+UKAe6y\nXR0hwsKuxKXqQ8SEmlhZZ9GiuggDB/zYD3ItB6SGpdkRe7kQqTChQyrIXqbRkJqx\noTXLyeJDF0sCyTdp3L8IZCUWodM8oV9TlQBJHYtG1gLUwIi8kcMVEoCn2Q8ltCj0\n/ftnwhTtwO52RkWA0uYOLGVayHsLSCFfx+ACWPU/oWCwW5/KBqb3veTv0aEg/nh0\nQsFzRLoTx6SRFI5dT2Nf8iiJe4WCUG8WKEB2G8QPnxsxfOPYDBdTJ4CXEi2e+z41\nVQIDAQAB\n-----END PUBLIC KEY-----\n".freeze
|
9
|
+
PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEA0sOY9tHvVtLZ6xmVmH8d8LrRrNcWOXbrvvCrai+T3GtRvRSL\nhksLrpOpD0L9EHM6NdThNF/eGA9Oq+UKAe6yXR0hwsKuxKXqQ8SEmlhZZ9GiuggD\nB/zYD3ItB6SGpdkRe7kQqTChQyrIXqbRkJqxoTXLyeJDF0sCyTdp3L8IZCUWodM8\noV9TlQBJHYtG1gLUwIi8kcMVEoCn2Q8ltCj0/ftnwhTtwO52RkWA0uYOLGVayHsL\nSCFfx+ACWPU/oWCwW5/KBqb3veTv0aEg/nh0QsFzRLoTx6SRFI5dT2Nf8iiJe4WC\nUG8WKEB2G8QPnxsxfOPYDBdTJ4CXEi2e+z41VQIDAQABAoIBAALhqbW2KQ+G0nPk\nZacwFbi01SkHx8YBWjfCEpXhEKRy0ytCnKW5YO+CFU2gHNWcva7+uhV9OgwaKXkw\nKHLeUJH1VADVqI4Htqw2g5mYm6BPvWnNsjzpuAp+BR+VoEGkNhj67r9hatMAQr0I\nitTvSH5rvd2EumYXIHKfz1K1SegUk1u1EL1RcMzRmZe4gDb6eNBs9Sg4im4ybTG6\npPIytA8vBQVWhjuAR2Tm+wZHiy0Az6Vu7c2mS07FSX6FO4E8SxWf8idaK9ijMGSq\nFvIS04mrY6XCPUPUC4qm1qNnhDPpOr7CpI2OO98SqGanStS5NFlSFXeXPpM280/u\nfZUA0AECgYEA+x7QUnffDrt7LK2cX6wbvn4mRnFxet7bJjrfWIHf+Rm0URikaNma\nh0/wNKpKBwIH+eHK/LslgzcplrqPytGGHLOG97Gyo5tGAzyLHUWBmsNkRksY2sPL\nuHq6pYWJNkqhnWGnIbmqCr0EWih82x/y4qxbJYpYqXMrit0wVf7yAgkCgYEA1twI\ngFaXqesetTPoEHSQSgC8S4D5/NkdriUXCYb06REcvo9IpFMuiOkVUYNN5d3MDNTP\nIdBicfmvfNELvBtXDomEUD8ls1UuoTIXRNGZ0VsZXu7OErXCK0JKNNyqRmOwcvYL\nJRqLfnlei5Ndo1lu286yL74c5rdTLs/nI2p4e+0CgYB079ZmcLeILrmfBoFI8+Y/\ngJLmPrFvXBOE6+lRV7kqUFPtZ6I3yQzyccETZTDvrnx0WjaiFavUPH27WMjY01S2\nTMtO0Iq1MPsbSrglO1as8MvjB9ldFcvp7gy4Q0Sv6XT0yqJ/S+vo8Df0m+H4UBpU\nf5o6EwBSd/UQxwtZIE0lsQKBgQCswfjX8Eg8KL/lJNpIOOE3j4XXE9ptksmJl2sB\njxDnQYoiMqVO808saHVquC/vTrpd6tKtNpehWwjeTFuqITWLi8jmmQ+gNTKsC9Gn\n1Pxf2Gb67PqnEpwQGln+TRtgQ5HBrdHiQIi+5am+gnw89pDrjjO5rZwhanAo6KPJ\n1zcPNQKBgQDxFu8v4frDmRNCVaZS4f1B6wTrcMrnibIDlnzrK9GG6Hz1U7dDv8s8\nNf4UmeMzDXjlPWZVOvS5+9HKJPdPj7/onv8B2m18+lcgTTDJBkza7R1mjL1Cje/Z\nKcVGsryKN6cjE7yCDasnA7R2rVBV/7NWeJV77bmzT5O//rW4yIfUIg==\n-----END RSA PRIVATE KEY-----\n".freeze
|
10
10
|
end
|
@@ -14,8 +14,8 @@ module ChefZero
|
|
14
14
|
# - stop adding pivotal to acls (he already has access to what he needs)
|
15
15
|
module AclPath
|
16
16
|
ORG_DATA_TYPES = %w{clients cookbook_artifacts cookbooks containers data environments groups
|
17
|
-
nodes policies policy_groups roles sandboxes}
|
18
|
-
TOP_DATA_TYPES = %w{containers organizations users}
|
17
|
+
nodes policies policy_groups roles sandboxes}.freeze
|
18
|
+
TOP_DATA_TYPES = %w{containers organizations users}.freeze
|
19
19
|
|
20
20
|
# ACL data paths for a partition are:
|
21
21
|
# / -> /acls/root
|
@@ -11,7 +11,7 @@ module ChefZero
|
|
11
11
|
class << self
|
12
12
|
def to_hash(cookbook, name, version = nil)
|
13
13
|
frozen = false
|
14
|
-
if cookbook.
|
14
|
+
if cookbook.key?(:frozen)
|
15
15
|
frozen = cookbook[:frozen]
|
16
16
|
cookbook = cookbook.dup
|
17
17
|
cookbook.delete(:frozen)
|
@@ -72,7 +72,7 @@ module ChefZero
|
|
72
72
|
|
73
73
|
def has_child(directory, name)
|
74
74
|
if directory.is_a?(Hash)
|
75
|
-
directory.
|
75
|
+
directory.key?(name)
|
76
76
|
else
|
77
77
|
directory.child(name).exists?
|
78
78
|
end
|
@@ -140,10 +140,10 @@ module ChefZero
|
|
140
140
|
def load_file(value, name, part = nil)
|
141
141
|
specific_name = part ? "#{part}/#{name}" : name
|
142
142
|
[{
|
143
|
-
:
|
144
|
-
:
|
145
|
-
:
|
146
|
-
:
|
143
|
+
name: specific_name,
|
144
|
+
path: name,
|
145
|
+
checksum: Digest::MD5.hexdigest(value),
|
146
|
+
specificity: "default",
|
147
147
|
}]
|
148
148
|
end
|
149
149
|
|
@@ -6,13 +6,13 @@ module ChefZero
|
|
6
6
|
module ChefData
|
7
7
|
class DataNormalizer
|
8
8
|
|
9
|
-
COOKBOOK_SEGMENTS = %w{ resources providers recipes definitions libraries attributes files templates root_files }
|
9
|
+
COOKBOOK_SEGMENTS = %w{ resources providers recipes definitions libraries attributes files templates root_files }.freeze
|
10
10
|
|
11
11
|
def self.normalize_acls(acls)
|
12
12
|
ChefData::DefaultCreator::PERMISSIONS.each do |perm|
|
13
13
|
acls[perm] ||= {}
|
14
14
|
acls[perm]["groups"] ||= []
|
15
|
-
if acls[perm].
|
15
|
+
if acls[perm].key? "users"
|
16
16
|
# When clients and users are split, their combined list
|
17
17
|
# is the final list of actors that a subsequent GET will
|
18
18
|
# provide. Each list is guaranteed to be unique, but the
|
@@ -98,7 +98,7 @@ module ChefZero
|
|
98
98
|
if method == "PUT" && api_version < 2
|
99
99
|
cookbook["all_files"] = cookbook.delete(["root_files"]) { [] }
|
100
100
|
COOKBOOK_SEGMENTS.each do |segment|
|
101
|
-
next unless cookbook.
|
101
|
+
next unless cookbook.key? segment
|
102
102
|
cookbook[segment].each do |file|
|
103
103
|
file["name"] = "#{segment}/#{file['name']}"
|
104
104
|
cookbook["all_files"] << file
|
@@ -108,7 +108,7 @@ module ChefZero
|
|
108
108
|
elsif method != "PUT"
|
109
109
|
if cookbook.key? "all_files"
|
110
110
|
cookbook["all_files"].each do |file|
|
111
|
-
if file.is_a?(Hash) && file.
|
111
|
+
if file.is_a?(Hash) && file.key?("checksum")
|
112
112
|
file["url"] ||= endpoint.build_uri(base_uri, org_prefix + ["file_store", "checksums", file["checksum"]])
|
113
113
|
end
|
114
114
|
end
|
@@ -24,8 +24,8 @@ module ChefZero
|
|
24
24
|
attr_reader :creators
|
25
25
|
attr_writer :deleted
|
26
26
|
|
27
|
-
PERMISSIONS = %w{create read update delete grant}
|
28
|
-
DEFAULT_SUPERUSERS = %w{pivotal}
|
27
|
+
PERMISSIONS = %w{create read update delete grant}.freeze
|
28
|
+
DEFAULT_SUPERUSERS = %w{pivotal}.freeze
|
29
29
|
|
30
30
|
def clear
|
31
31
|
@creators = { [] => @superusers }
|
@@ -166,7 +166,7 @@ module ChefZero
|
|
166
166
|
"containers" => %w{clients containers cookbook_artifacts cookbooks data environments groups nodes policies policy_groups roles sandboxes},
|
167
167
|
"groups" => %w{admins billing-admins clients users},
|
168
168
|
"association_requests" => {},
|
169
|
-
}
|
169
|
+
}.freeze
|
170
170
|
|
171
171
|
def list_org_default(path)
|
172
172
|
if path.size >= 3 && path[2] == "acls"
|
@@ -373,7 +373,7 @@ module ChefZero
|
|
373
373
|
end
|
374
374
|
owners = filter_owners(path, unknown_owners)
|
375
375
|
|
376
|
-
#ANGRY
|
376
|
+
# ANGRY
|
377
377
|
# Non-default containers do not get superusers added to them,
|
378
378
|
# because reasons.
|
379
379
|
unless path.size == 4 && path[0] == "organizations" && path[2] == "containers" && !exists?(path)
|
@@ -36,7 +36,7 @@ module ChefZero
|
|
36
36
|
def create_dir(path, name, *options)
|
37
37
|
parent = _get(path, options.include?(:recursive))
|
38
38
|
|
39
|
-
if parent.
|
39
|
+
if parent.key?(name)
|
40
40
|
if !options.include?(:recursive)
|
41
41
|
raise DataAlreadyExistsError.new(path + [name])
|
42
42
|
end
|
@@ -52,7 +52,7 @@ module ChefZero
|
|
52
52
|
|
53
53
|
parent = _get(path, options.include?(:create_dir))
|
54
54
|
|
55
|
-
if parent.
|
55
|
+
if parent.key?(name)
|
56
56
|
raise DataAlreadyExistsError.new(path + [name])
|
57
57
|
end
|
58
58
|
parent[name] = data
|
@@ -82,7 +82,7 @@ module ChefZero
|
|
82
82
|
|
83
83
|
def delete(path)
|
84
84
|
parent = _get(path[0, path.length - 1])
|
85
|
-
if !parent.
|
85
|
+
if !parent.key?(path[-1])
|
86
86
|
raise DataNotFoundError.new(path)
|
87
87
|
end
|
88
88
|
if !parent[path[-1]].is_a?(String)
|
@@ -93,7 +93,7 @@ module ChefZero
|
|
93
93
|
|
94
94
|
def delete_dir(path, *options)
|
95
95
|
parent = _get(path[0, path.length - 1])
|
96
|
-
if !parent.
|
96
|
+
if !parent.key?(path[-1])
|
97
97
|
raise DataNotFoundError.new(path)
|
98
98
|
end
|
99
99
|
if !parent[path[-1]].is_a?(Hash)
|
@@ -135,7 +135,7 @@ module ChefZero
|
|
135
135
|
def _get(path, create_dir = false)
|
136
136
|
value = @data
|
137
137
|
path.each_with_index do |path_part, index|
|
138
|
-
if !value.
|
138
|
+
if !value.key?(path_part)
|
139
139
|
if create_dir
|
140
140
|
value[path_part] = {}
|
141
141
|
else
|
@@ -69,7 +69,7 @@ module ChefZero
|
|
69
69
|
FileUtils.mkdir_p(path_to(path))
|
70
70
|
end
|
71
71
|
begin
|
72
|
-
File.open(path_to(path, name), File::WRONLY | File::CREAT | File::EXCL | File::BINARY, :
|
72
|
+
File.open(path_to(path, name), File::WRONLY | File::CREAT | File::EXCL | File::BINARY, internal_encoding: nil) do |file|
|
73
73
|
file.write data
|
74
74
|
end
|
75
75
|
rescue Errno::ENOENT
|
@@ -94,7 +94,7 @@ module ChefZero
|
|
94
94
|
if options.include?(:create)
|
95
95
|
mode |= File::CREAT
|
96
96
|
end
|
97
|
-
File.open(path_to(path), mode, :
|
97
|
+
File.open(path_to(path), mode, internal_encoding: nil) do |file|
|
98
98
|
file.write data
|
99
99
|
end
|
100
100
|
rescue Errno::ENOENT
|
@@ -30,8 +30,8 @@ module ChefZero
|
|
30
30
|
path, perm = validate_request(request)
|
31
31
|
acls = FFI_Yajl::Parser.parse(get_data(request, path))
|
32
32
|
acls[perm] = FFI_Yajl::Parser.parse(request.body)[perm]
|
33
|
-
set_data(request, path, FFI_Yajl::Encoder.encode(acls, :
|
34
|
-
json_response(200, { "uri" =>
|
33
|
+
set_data(request, path, FFI_Yajl::Encoder.encode(acls, pretty: true))
|
34
|
+
json_response(200, { "uri" => (build_uri(request.base_uri, request.rest_path)).to_s })
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -5,8 +5,8 @@ module ChefZero
|
|
5
5
|
# /users/USER/keys
|
6
6
|
# /organizations/ORG/clients/CLIENT/keys
|
7
7
|
class ActorKeysEndpoint < RestBase
|
8
|
-
DEFAULT_PUBLIC_KEY_NAME = "default"
|
9
|
-
DATE_FORMAT = "%FT%TZ" # e.g. 2015-12-24T21:00:00Z
|
8
|
+
DEFAULT_PUBLIC_KEY_NAME = "default".freeze
|
9
|
+
DATE_FORMAT = "%FT%TZ".freeze # e.g. 2015-12-24T21:00:00Z
|
10
10
|
|
11
11
|
def get(request, alt_uri_root = nil)
|
12
12
|
path = data_path(request)
|
@@ -15,7 +15,7 @@ module ChefZero
|
|
15
15
|
def populate_defaults(request, response_json)
|
16
16
|
container = FFI_Yajl::Parser.parse(response_json)
|
17
17
|
container = ChefData::DataNormalizer.normalize_container(container, request.rest_path[3])
|
18
|
-
FFI_Yajl::Encoder.encode(container, :
|
18
|
+
FFI_Yajl::Encoder.encode(container, pretty: true)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -31,7 +31,7 @@ module ChefZero
|
|
31
31
|
request_body = FFI_Yajl::Parser.parse(request.body)
|
32
32
|
if !request_body["frozen?"]
|
33
33
|
request_body["frozen?"] = true
|
34
|
-
request.body = FFI_Yajl::Encoder.encode(request_body, :
|
34
|
+
request.body = FFI_Yajl::Encoder.encode(request_body, pretty: true)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -74,7 +74,7 @@ module ChefZero
|
|
74
74
|
FFI_Yajl::Parser.parse(cookbook).each_pair do |key, value|
|
75
75
|
if value.is_a?(Array)
|
76
76
|
value.each do |file|
|
77
|
-
if file.is_a?(Hash) && file.
|
77
|
+
if file.is_a?(Hash) && file.key?("checksum")
|
78
78
|
result << file["checksum"]
|
79
79
|
end
|
80
80
|
end
|
@@ -122,7 +122,7 @@ module ChefZero
|
|
122
122
|
cookbook["chef_type"] ||= "cookbook_version"
|
123
123
|
cookbook["json_class"] ||= "Chef::CookbookVersion"
|
124
124
|
cookbook = ChefData::DataNormalizer.normalize_cookbook(self, request.rest_path[0..1], cookbook, request.rest_path[3], request.rest_path[4], request.base_uri, request.method, false, api_version: request.api_version) if normalize
|
125
|
-
FFI_Yajl::Encoder.encode(cookbook, :
|
125
|
+
FFI_Yajl::Encoder.encode(cookbook, pretty: true)
|
126
126
|
end
|
127
127
|
|
128
128
|
def latest_version(versions)
|
@@ -18,7 +18,7 @@ module ChefZero
|
|
18
18
|
def self.populate_defaults(request, response_json, data_bag, data_bag_item)
|
19
19
|
response = FFI_Yajl::Parser.parse(response_json)
|
20
20
|
response = ChefData::DataNormalizer.normalize_data_bag_item(response, data_bag, data_bag_item, request.method)
|
21
|
-
FFI_Yajl::Encoder.encode(response, :
|
21
|
+
FFI_Yajl::Encoder.encode(response, pretty: true)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -15,7 +15,7 @@ module ChefZero
|
|
15
15
|
error(409, "Object already exists")
|
16
16
|
else
|
17
17
|
create_data_dir(request, request.rest_path[0..1] + ["data"], name, :recursive)
|
18
|
-
json_response(201, { "uri" =>
|
18
|
+
json_response(201, { "uri" => (build_uri(request.base_uri, request.rest_path + [name])).to_s })
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -81,7 +81,7 @@ module ChefZero
|
|
81
81
|
cookbook_dependencies.each_pair do |dep_name, dep_constraint|
|
82
82
|
# If the dep is not already in the list, add it to the list to solve
|
83
83
|
# and bring in all environment-allowed cookbook versions to desired_versions
|
84
|
-
if !new_desired_versions.
|
84
|
+
if !new_desired_versions.key?(dep_name)
|
85
85
|
new_unsolved += [dep_name]
|
86
86
|
# If the dep is missing, we will try other versions of the cookbook that might not have the bad dep.
|
87
87
|
if !exists_data_dir?(request, request.rest_path[0..1] + ["cookbooks", dep_name])
|
@@ -26,7 +26,7 @@ module ChefZero
|
|
26
26
|
def populate_defaults(request, response_json)
|
27
27
|
response = FFI_Yajl::Parser.parse(response_json)
|
28
28
|
response = ChefData::DataNormalizer.normalize_environment(response, request.rest_path[3])
|
29
|
-
FFI_Yajl::Encoder.encode(response, :
|
29
|
+
FFI_Yajl::Encoder.encode(response, pretty: true)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
@@ -14,7 +14,7 @@ module ChefZero
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def put(request)
|
17
|
-
data_store.set(request.rest_path, request.body, :create, :create_dir, :
|
17
|
+
data_store.set(request.rest_path, request.body, :create, :create_dir, requestor: request.requestor)
|
18
18
|
json_response(200, {})
|
19
19
|
end
|
20
20
|
end
|
@@ -13,7 +13,7 @@ module ChefZero
|
|
13
13
|
def populate_defaults(request, response_json)
|
14
14
|
group = FFI_Yajl::Parser.parse(response_json)
|
15
15
|
group = ChefData::DataNormalizer.normalize_group(group, request.rest_path[3], request.rest_path[1])
|
16
|
-
FFI_Yajl::Encoder.encode(group, :
|
16
|
+
FFI_Yajl::Encoder.encode(group, pretty: true)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -9,12 +9,12 @@ module ChefZero
|
|
9
9
|
def put(request)
|
10
10
|
data = parse_json(request.body)
|
11
11
|
|
12
|
-
if data.
|
13
|
-
return error(400, "Field 'policy_name' invalid", :
|
12
|
+
if data.key?("policy_name") && policy_name_invalid?(data["policy_name"])
|
13
|
+
return error(400, "Field 'policy_name' invalid", pretty: false)
|
14
14
|
end
|
15
15
|
|
16
|
-
if data.
|
17
|
-
return error(400, "Field 'policy_group' invalid", :
|
16
|
+
if data.key?("policy_group") && policy_name_invalid?(data["policy_group"])
|
17
|
+
return error(400, "Field 'policy_group' invalid", pretty: false)
|
18
18
|
end
|
19
19
|
|
20
20
|
super(request)
|
@@ -27,7 +27,7 @@ module ChefZero
|
|
27
27
|
def populate_defaults(request, response_json)
|
28
28
|
node = FFI_Yajl::Parser.parse(response_json)
|
29
29
|
node = ChefData::DataNormalizer.normalize_node(node, request.rest_path[3])
|
30
|
-
FFI_Yajl::Encoder.encode(node, :
|
30
|
+
FFI_Yajl::Encoder.encode(node, pretty: true)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|