chef 13.2.20 → 13.3.42

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