chef 13.2.20 → 13.3.42

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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/Gemfile +2 -8
  4. data/README.md +6 -2
  5. data/Rakefile +0 -11
  6. data/VERSION +1 -1
  7. data/acceptance/Gemfile.lock +1 -1
  8. data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +34 -18
  9. data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +6 -0
  10. data/lib/chef/cookbook/metadata.rb +2 -2
  11. data/lib/chef/deprecation/warnings.rb +3 -1
  12. data/lib/chef/exceptions.rb +1 -1
  13. data/lib/chef/http.rb +9 -10
  14. data/lib/chef/http/api_versions.rb +2 -0
  15. data/lib/chef/http/http_request.rb +3 -0
  16. data/lib/chef/knife/core/bootstrap_context.rb +1 -0
  17. data/lib/chef/knife/core/status_presenter.rb +1 -1
  18. data/lib/chef/knife/ssh.rb +4 -0
  19. data/lib/chef/provider/apt_preference.rb +99 -0
  20. data/lib/chef/provider/execute.rb +3 -2
  21. data/lib/chef/provider/http_request.rb +14 -0
  22. data/lib/chef/provider/mount/aix.rb +49 -8
  23. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  24. data/lib/chef/provider/package/zypper.rb +5 -5
  25. data/lib/chef/provider/service/systemd.rb +12 -11
  26. data/lib/chef/provider/support/zypper_repo.erb +17 -0
  27. data/lib/chef/provider/systemd_unit.rb +3 -2
  28. data/lib/chef/provider/windows_task.rb +92 -71
  29. data/lib/chef/provider/zypper_repository.rb +81 -0
  30. data/lib/chef/providers.rb +2 -0
  31. data/lib/chef/resource/apt_preference.rb +36 -0
  32. data/lib/chef/resource/execute.rb +12 -2
  33. data/lib/chef/resource/http_request.rb +1 -1
  34. data/lib/chef/resource/zypper_repository.rb +51 -0
  35. data/lib/chef/resources.rb +2 -0
  36. data/lib/chef/search/query.rb +6 -1
  37. data/lib/chef/server_api_versions.rb +21 -2
  38. data/lib/chef/version.rb +3 -4
  39. data/lib/chef/win32/api/file.rb +1 -0
  40. data/lib/chef/win32/file.rb +2 -0
  41. data/lib/chef/win32/version.rb +6 -0
  42. data/spec/functional/knife/ssh_spec.rb +1 -1
  43. data/spec/functional/resource/execute_spec.rb +2 -2
  44. data/spec/spec_helper.rb +8 -1
  45. data/spec/unit/cookbook/metadata_spec.rb +3 -3
  46. data/spec/unit/http/api_versions_spec.rb +6 -3
  47. data/spec/unit/knife/bootstrap_spec.rb +4 -0
  48. data/spec/unit/knife/cookbook_show_spec.rb +3 -3
  49. data/spec/unit/knife/ssh_spec.rb +7 -1
  50. data/spec/unit/knife/status_spec.rb +2 -0
  51. data/spec/unit/provider/apt_preference_spec.rb +87 -0
  52. data/spec/unit/provider/apt_update_spec.rb +7 -7
  53. data/spec/unit/provider/dsc_resource_spec.rb +2 -2
  54. data/spec/unit/provider/execute_spec.rb +32 -14
  55. data/spec/unit/provider/mount/aix_spec.rb +33 -1
  56. data/spec/unit/provider/package/rubygems_spec.rb +1 -1
  57. data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +56 -3
  58. data/spec/unit/provider/package/windows_spec.rb +1 -1
  59. data/spec/unit/provider/package/zypper_spec.rb +43 -0
  60. data/spec/unit/provider/script_spec.rb +1 -1
  61. data/spec/unit/provider/service/systemd_service_spec.rb +23 -21
  62. data/spec/unit/provider/systemd_unit_spec.rb +42 -41
  63. data/spec/unit/provider/windows_task_spec.rb +40 -0
  64. data/spec/unit/resource/apt_preference_spec.rb +41 -0
  65. data/spec/unit/resource/execute_spec.rb +21 -1
  66. data/spec/unit/resource/powershell_script_spec.rb +2 -2
  67. data/spec/unit/resource/zypper_repository_spec.rb +65 -0
  68. data/spec/unit/search/query_spec.rb +13 -18
  69. data/spec/unit/server_api_spec.rb +75 -1
  70. data/spec/unit/server_api_versions_spec.rb +22 -0
  71. data/spec/unit/win32/link_spec.rb +73 -0
  72. data/tasks/dependencies.rb +0 -1
  73. metadata +13 -6
  74. data/tasks/changelog.rb +0 -37
  75. data/tasks/version.rb +0 -41
@@ -0,0 +1,73 @@
1
+ #
2
+ # Copyright:: Copyright 2012-2017, Chef Software Inc.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ require "spec_helper"
19
+ if Chef::Platform.windows?
20
+ require "chef/win32/api/file"
21
+ require "chef/win32/file"
22
+ require "chef/win32/version"
23
+ end
24
+
25
+ describe Chef::ReservedNames::Win32::File, :windows_only do
26
+ context "#symlink" do
27
+ let(:with_privilege) { Chef::ReservedNames::Win32::API::File::SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE }
28
+ let(:without_privilege) { 0x0 }
29
+
30
+ context "an invalid parameter is passed" do
31
+ it "will throw an exception if an invalid parameter is passed" do
32
+ allow(File).to receive(:directory?).and_return(false)
33
+ allow(Chef::ReservedNames::Win32::File).to receive(:encode_path) { |a| a }
34
+ allow_any_instance_of(Chef::ReservedNames::Win32::Version).to receive(:windows_10?).and_return(true)
35
+ allow_any_instance_of(Chef::ReservedNames::Win32::Version).to receive(:build_number).and_return(1)
36
+ allow(Chef::ReservedNames::Win32::File).to receive(:CreateSymbolicLinkW).and_return(nil)
37
+
38
+ expect { Chef::ReservedNames::Win32::File.symlink("a", "b") }.to raise_error Chef::Exceptions::Win32APIError
39
+ end
40
+ end
41
+
42
+ context "a valid parameter is passed" do
43
+ before(:each) do
44
+ allow(File).to receive(:directory?).and_return(false)
45
+ allow(Chef::ReservedNames::Win32::File).to receive(:encode_path) { |a| a }
46
+ allow(Chef::ReservedNames::Win32::File).to receive(:CreateSymbolicLinkW).with(any_args) { "don't //actually// do this" }
47
+ end
48
+
49
+ it "will not pass the unpirivileged symlink flag if the node is not Windows 10" do
50
+ allow_any_instance_of(Chef::ReservedNames::Win32::Version).to receive(:windows_10?).and_return(false)
51
+
52
+ expect(Chef::ReservedNames::Win32::File).to receive(:CreateSymbolicLinkW).with("b", "a", without_privilege)
53
+ described_class.symlink("a", "b")
54
+ end
55
+
56
+ it "will not pass the unpirivileged symlink flag if the node is not at least Windows 10 Creators Update" do
57
+ allow_any_instance_of(Chef::ReservedNames::Win32::Version).to receive(:windows_10?).and_return(true)
58
+ allow_any_instance_of(Chef::ReservedNames::Win32::Version).to receive(:build_number).and_return(1)
59
+
60
+ expect(Chef::ReservedNames::Win32::File).to receive(:CreateSymbolicLinkW).with("b", "a", without_privilege)
61
+ described_class.symlink("a", "b")
62
+ end
63
+
64
+ it "will pass the unpirivileged symlink flag if the node is Windows 10 Creators Update or higher" do
65
+ allow_any_instance_of(Chef::ReservedNames::Win32::Version).to receive(:windows_10?).and_return(true)
66
+ allow_any_instance_of(Chef::ReservedNames::Win32::Version).to receive(:build_number).and_return(15063)
67
+
68
+ expect(Chef::ReservedNames::Win32::File).to receive(:CreateSymbolicLinkW).with("b", "a", with_privilege)
69
+ described_class.symlink("a", "b")
70
+ end
71
+ end
72
+ end
73
+ end
@@ -37,7 +37,6 @@ namespace :dependencies do
37
37
  desc "Update all dependencies. dependencies:update to update as little as possible (CI-only)."
38
38
  task :update_ci => %w{
39
39
  dependencies:update_gemfile_lock
40
- dependencies:update_omnibus_overrides
41
40
  dependencies:update_omnibus_gemfile_lock
42
41
  dependencies:update_acceptance_gemfile_lock
43
42
  dependencies:update_kitchen_tests_gemfile_lock
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef
3
3
  version: !ruby/object:Gem::Version
4
- version: 13.2.20
4
+ version: 13.3.42
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-30 00:00:00.000000000 Z
11
+ date: 2017-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-config
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 13.2.20
19
+ version: 13.3.42
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 13.2.20
26
+ version: 13.3.42
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mixlib-cli
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -1187,6 +1187,7 @@ files:
1187
1187
  - lib/chef/policy_builder/policyfile.rb
1188
1188
  - lib/chef/property.rb
1189
1189
  - lib/chef/provider.rb
1190
+ - lib/chef/provider/apt_preference.rb
1190
1191
  - lib/chef/provider/apt_repository.rb
1191
1192
  - lib/chef/provider/apt_update.rb
1192
1193
  - lib/chef/provider/batch.rb
@@ -1310,6 +1311,7 @@ files:
1310
1311
  - lib/chef/provider/service/windows.rb
1311
1312
  - lib/chef/provider/subversion.rb
1312
1313
  - lib/chef/provider/support/yum_repo.erb
1314
+ - lib/chef/provider/support/zypper_repo.erb
1313
1315
  - lib/chef/provider/systemd_unit.rb
1314
1316
  - lib/chef/provider/template.rb
1315
1317
  - lib/chef/provider/template/content.rb
@@ -1326,6 +1328,7 @@ files:
1326
1328
  - lib/chef/provider/windows_script.rb
1327
1329
  - lib/chef/provider/windows_task.rb
1328
1330
  - lib/chef/provider/yum_repository.rb
1331
+ - lib/chef/provider/zypper_repository.rb
1329
1332
  - lib/chef/provider_resolver.rb
1330
1333
  - lib/chef/providers.rb
1331
1334
  - lib/chef/recipe.rb
@@ -1334,6 +1337,7 @@ files:
1334
1337
  - lib/chef/resource.rb
1335
1338
  - lib/chef/resource/action_class.rb
1336
1339
  - lib/chef/resource/apt_package.rb
1340
+ - lib/chef/resource/apt_preference.rb
1337
1341
  - lib/chef/resource/apt_repository.rb
1338
1342
  - lib/chef/resource/apt_update.rb
1339
1343
  - lib/chef/resource/bash.rb
@@ -1423,6 +1427,7 @@ files:
1423
1427
  - lib/chef/resource/yum_package.rb
1424
1428
  - lib/chef/resource/yum_repository.rb
1425
1429
  - lib/chef/resource/zypper_package.rb
1430
+ - lib/chef/resource/zypper_repository.rb
1426
1431
  - lib/chef/resource_builder.rb
1427
1432
  - lib/chef/resource_collection.rb
1428
1433
  - lib/chef/resource_collection/resource_collection_serialization.rb
@@ -2344,6 +2349,7 @@ files:
2344
2349
  - spec/unit/property/state_spec.rb
2345
2350
  - spec/unit/property/validation_spec.rb
2346
2351
  - spec/unit/property_spec.rb
2352
+ - spec/unit/provider/apt_preference_spec.rb
2347
2353
  - spec/unit/provider/apt_repository_spec.rb
2348
2354
  - spec/unit/provider/apt_update_spec.rb
2349
2355
  - spec/unit/provider/cookbook_file/content_spec.rb
@@ -2470,6 +2476,7 @@ files:
2470
2476
  - spec/unit/pure_application_spec.rb
2471
2477
  - spec/unit/recipe_spec.rb
2472
2478
  - spec/unit/resource/apt_package_spec.rb
2479
+ - spec/unit/resource/apt_preference_spec.rb
2473
2480
  - spec/unit/resource/apt_repository_spec.rb
2474
2481
  - spec/unit/resource/apt_update_spec.rb
2475
2482
  - spec/unit/resource/bash_spec.rb
@@ -2545,6 +2552,7 @@ files:
2545
2552
  - spec/unit/resource/windows_task_spec.rb
2546
2553
  - spec/unit/resource/yum_package_spec.rb
2547
2554
  - spec/unit/resource/yum_repository_spec.rb
2555
+ - spec/unit/resource/zypper_repository_spec.rb
2548
2556
  - spec/unit/resource_builder_spec.rb
2549
2557
  - spec/unit/resource_collection/resource_list_spec.rb
2550
2558
  - spec/unit/resource_collection/resource_set_spec.rb
@@ -2593,19 +2601,18 @@ files:
2593
2601
  - spec/unit/version_constraint_spec.rb
2594
2602
  - spec/unit/version_string_spec.rb
2595
2603
  - spec/unit/win32/error_spec.rb
2604
+ - spec/unit/win32/link_spec.rb
2596
2605
  - spec/unit/win32/registry_spec.rb
2597
2606
  - spec/unit/win32/security_spec.rb
2598
2607
  - spec/unit/windows_service_spec.rb
2599
2608
  - tasks/announce.rb
2600
2609
  - tasks/bin/run_external_test
2601
2610
  - tasks/cbgb.rb
2602
- - tasks/changelog.rb
2603
2611
  - tasks/dependencies.rb
2604
2612
  - tasks/maintainers.rb
2605
2613
  - tasks/rspec.rb
2606
2614
  - tasks/templates/prerelease.md.erb
2607
2615
  - tasks/templates/release.md.erb
2608
- - tasks/version.rb
2609
2616
  homepage: https://www.chef.io
2610
2617
  licenses:
2611
2618
  - Apache-2.0
@@ -1,37 +0,0 @@
1
- begin
2
- require "github_changelog_generator/task"
3
- require "mixlib/install"
4
-
5
- namespace :changelog do
6
- # Fetch the latest version from mixlib-install
7
- def latest_stable_version
8
- # for 13.1, a 12.20 release was made after 13.0, which is busting the changelog generator. Reset this post 13.1 release
9
- "13.0.118"
10
- # Mixlib::Install.available_versions("chef", "stable").last
11
- end
12
-
13
- # Take the changelog from the latest stable release and put it into history.
14
- task :archive do
15
- changelog = Net::HTTP.get(URI("https://raw.githubusercontent.com/chef/chef/v#{latest_stable_version}/CHANGELOG.md")).chomp.split("\n")
16
- File.open("HISTORY.md", "w+") { |f| f.write(changelog[2..-4].join("\n")) }
17
- end
18
-
19
- # Run this to just update the changelog for the current release. This will
20
- # take what is in HISTORY and generate a changelog of PRs between the most
21
- # recent stable version and HEAD.
22
- GitHubChangelogGenerator::RakeTask.new :update do |config|
23
- config.future_release = "v#{Chef::VERSION}"
24
- config.between_tags = ["v#{latest_stable_version}", "v#{Chef::VERSION}"]
25
- config.max_issues = 0
26
- config.add_issues_wo_labels = false
27
- config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature".split(",")
28
- config.bug_labels = "bug,Bug,Improvement,Upstream Bug".split(",")
29
- config.exclude_labels = "duplicate,question,invalid,wontfix,no_changelog,Exclude From Changelog,Question,Discussion,Meta: Exclude From Changelog".split(",")
30
- config.header = "This changelog reflects the current state of chef's master branch on github and may not reflect the current released version of chef, which is [![Gem Version](https://badge.fury.io/rb/chef.svg)](https://badge.fury.io/rb/chef)."
31
- end
32
- end
33
-
34
- task :changelog => "changelog:update"
35
- rescue LoadError
36
- puts "github_changelog_generator is not available. gem install github_changelog_generator to generate changelogs"
37
- end
@@ -1,41 +0,0 @@
1
- #
2
- # Copyright:: Copyright 2017 Chef Software, Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- #     http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- task :ci_version_bump do
19
- begin
20
- require "rake"
21
-
22
- Rake::Task["version:bump_patch"].invoke
23
- Rake::Task["version:update"].invoke
24
-
25
- # We want to log errors that occur in the following tasks, but we don't
26
- # want them to stop an otherwise valid version bump from progressing.
27
- begin
28
- Rake::Task["changelog:update"].invoke
29
- rescue Exception => e
30
- puts "There was an error updating the CHANGELOG"
31
- puts e
32
- end
33
-
34
- begin
35
- Rake::Task["update_dockerfile"].invoke
36
- rescue Exception => e
37
- puts "There was an error updating the Dockerfile"
38
- puts e
39
- end
40
- end
41
- end