chef-zero 14.0.6 → 14.0.11
Sign up to get free protection for your applications and to get access to all the features.
- 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
|