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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +9 -1
  3. data/Rakefile +11 -14
  4. data/chef-zero.gemspec +4 -8
  5. data/lib/chef_zero.rb +3 -3
  6. data/lib/chef_zero/chef_data/acl_path.rb +2 -2
  7. data/lib/chef_zero/chef_data/cookbook_data.rb +6 -6
  8. data/lib/chef_zero/chef_data/data_normalizer.rb +4 -4
  9. data/lib/chef_zero/chef_data/default_creator.rb +4 -4
  10. data/lib/chef_zero/data_store/default_facade.rb +1 -1
  11. data/lib/chef_zero/data_store/memory_store_v2.rb +5 -5
  12. data/lib/chef_zero/data_store/raw_file_store.rb +2 -2
  13. data/lib/chef_zero/endpoints/acl_endpoint.rb +2 -2
  14. data/lib/chef_zero/endpoints/actor_keys_endpoint.rb +2 -2
  15. data/lib/chef_zero/endpoints/container_endpoint.rb +1 -1
  16. data/lib/chef_zero/endpoints/cookbook_version_endpoint.rb +3 -3
  17. data/lib/chef_zero/endpoints/data_bag_item_endpoint.rb +1 -1
  18. data/lib/chef_zero/endpoints/data_bags_endpoint.rb +1 -1
  19. data/lib/chef_zero/endpoints/environment_cookbook_versions_endpoint.rb +1 -1
  20. data/lib/chef_zero/endpoints/environment_endpoint.rb +1 -1
  21. data/lib/chef_zero/endpoints/file_store_file_endpoint.rb +1 -1
  22. data/lib/chef_zero/endpoints/group_endpoint.rb +1 -1
  23. data/lib/chef_zero/endpoints/node_endpoint.rb +5 -5
  24. data/lib/chef_zero/endpoints/node_identifiers_endpoint.rb +3 -3
  25. data/lib/chef_zero/endpoints/nodes_endpoint.rb +5 -5
  26. data/lib/chef_zero/endpoints/not_found_endpoint.rb +1 -1
  27. data/lib/chef_zero/endpoints/organization_endpoint.rb +3 -3
  28. data/lib/chef_zero/endpoints/organization_users_endpoint.rb +1 -1
  29. data/lib/chef_zero/endpoints/organization_validator_key_endpoint.rb +1 -1
  30. data/lib/chef_zero/endpoints/organizations_endpoint.rb +4 -4
  31. data/lib/chef_zero/endpoints/rest_list_endpoint.rb +2 -2
  32. data/lib/chef_zero/endpoints/rest_object_endpoint.rb +1 -1
  33. data/lib/chef_zero/endpoints/role_endpoint.rb +1 -1
  34. data/lib/chef_zero/endpoints/sandbox_endpoint.rb +5 -5
  35. data/lib/chef_zero/endpoints/sandboxes_endpoint.rb +9 -9
  36. data/lib/chef_zero/endpoints/user_association_request_endpoint.rb +1 -1
  37. data/lib/chef_zero/rest_base.rb +4 -4
  38. data/lib/chef_zero/rspec.rb +3 -3
  39. data/lib/chef_zero/server.rb +19 -19
  40. data/lib/chef_zero/solr/query/range_query.rb +1 -1
  41. data/lib/chef_zero/solr/query/regexpable_query.rb +3 -3
  42. data/lib/chef_zero/solr/solr_parser.rb +1 -1
  43. data/lib/chef_zero/version.rb +1 -1
  44. data/spec/server_spec.rb +4 -4
  45. data/spec/support/oc_pedant.rb +32 -32
  46. metadata +8 -45
  47. data/README.md +0 -168
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d0707f86a20fcf72ca9611f063fcc032229f68e0da454e46d912cf67b9a023a
4
- data.tar.gz: 97a4261a6e7f741d42834b8e848dd2f5d181e5046d2f332205e955812fa1d401
3
+ metadata.gz: 81a886b9fb926d3f1f355c4de530c96f2d65d7a3565c39415ad4a5d257689493
4
+ data.tar.gz: 7575b3e658f703ef7f9e3ea4d04a3a263ae4fe1318ac40af36ba6d235d8b1faf
5
5
  SHA512:
6
- metadata.gz: f2c25d07cf431f85fa377db925c1473050f08b89fa776024989ab050d3e3419187aa204ec26bf3afd91c1ea9a2c50da40e7f18bf89e8605f92155637a4ff0031
7
- data.tar.gz: 4bac9abe81e5f922809fd6d202dc7e766550bb77915cffdf59067167dd9e23101bf4b3d888e4fb9523125b05754f72b5922f6977d41abc9aa91dfff03d105c55
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", :git => "https://github.com/chef/chef-server.git"
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 = <<END
12
- Environment:
13
- - RSPEC_OPTS Options to pass to RSpec
14
- e.g. RSPEC_OPTS="--fail-fast --profile 5"
15
- - PEDANT_OPTS Options to pass to oc-chef-pedant
16
- e.g. PEDANT_OPTS="--focus-keys --skip-users"
17
- - LOG_LEVEL Set the log level (default: warn)
18
- e.g. LOG_LEVEL=debug
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 :default => :pedant
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 :pedant => :oc_pedant
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. gem install chefstyle to do style checking."
59
+ puts "chefstyle/rubocop is not available. bundle install first to make sure all dependencies are installed."
63
60
  end
@@ -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 = "http://www.chef.io"
13
- s.license = "Apache 2.0"
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 README.md Gemfile Rakefile} + Dir.glob("*.gemspec") +
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
@@ -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.has_key?(:frozen)
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.has_key?(name)
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
- :name => specific_name,
144
- :path => name,
145
- :checksum => Digest::MD5.hexdigest(value),
146
- :specificity => "default",
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].has_key? "users"
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.has_key? segment
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.has_key?("checksum")
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)
@@ -70,7 +70,7 @@ module ChefZero
70
70
  rescue DataNotFoundError
71
71
  result = default_creator.get(path)
72
72
  if result
73
- FFI_Yajl::Encoder.encode(result, :pretty => true)
73
+ FFI_Yajl::Encoder.encode(result, pretty: true)
74
74
  else
75
75
  raise
76
76
  end
@@ -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.has_key?(name)
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.has_key?(name)
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.has_key?(path[-1])
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.has_key?(path[-1])
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.has_key?(path_part)
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, :internal_encoding => nil) do |file|
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, :internal_encoding => nil) do |file|
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, :pretty => true))
34
- json_response(200, { "uri" => "#{build_uri(request.base_uri, request.rest_path)}" })
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, :pretty => true)
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, :pretty => true)
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.has_key?("checksum")
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, :pretty => true)
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, :pretty => true)
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" => "#{build_uri(request.base_uri, request.rest_path + [name])}" })
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.has_key?(dep_name)
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, :pretty => true)
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, :requestor => request.requestor)
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, :pretty => true)
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.has_key?("policy_name") && policy_name_invalid?(data["policy_name"])
13
- return error(400, "Field 'policy_name' invalid", :pretty => false)
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.has_key?("policy_group") && policy_name_invalid?(data["policy_group"])
17
- return error(400, "Field 'policy_group' invalid", :pretty => false)
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, :pretty => true)
30
+ FFI_Yajl::Encoder.encode(node, pretty: true)
31
31
  end
32
32
  end
33
33
  end