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.
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