diff options
39 files changed, 56 insertions, 53 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index bab9ee957c..81b97d6828 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +1,21 @@ <!-- usage documentation: http://expeditor-docs.es.chef.io/configuration/changelog/ --> -<!-- latest_release 14.3.44 --> -## [v14.3.44](https://github.com/chef/chef/tree/v14.3.44) (2018-07-15) +<!-- latest_release 14.4.3 --> +## [v14.4.3](https://github.com/chef/chef/tree/v14.4.3) (2018-07-16) #### Merged Pull Requests -- Improve the error message when knife bootstrap windows isn't installed [#7470](https://github.com/chef/chef/pull/7470) ([tas50](https://github.com/tas50)) +- Allow specifying VLAN & Gateway on RHEL/Centos [#6400](https://github.com/chef/chef/pull/6400) ([tomdoherty](https://github.com/tomdoherty)) <!-- latest_release --> <!-- release_rollup since=14.3.37 --> ### Changes since 14.3.37 release #### Merged Pull Requests +- Allow specifying VLAN & Gateway on RHEL/Centos [#6400](https://github.com/chef/chef/pull/6400) ([tomdoherty](https://github.com/tomdoherty)) <!-- 14.4.3 --> +- ifconfig: Allow specifying VLAN on RHEL/Centos [#7478](https://github.com/chef/chef/pull/7478) ([tas50](https://github.com/tas50)) <!-- 14.4.2 --> +- add back clean_array API [#7477](https://github.com/chef/chef/pull/7477) ([lamont-granquist](https://github.com/lamont-granquist)) <!-- 14.4.1 --> +- Bump version to 14.4.0 [#7476](https://github.com/chef/chef/pull/7476) ([tas50](https://github.com/tas50)) <!-- 14.4.0 --> +- Make gem_installer generate a valid Gemfile [#6168](https://github.com/chef/chef/pull/6168) ([oclaussen](https://github.com/oclaussen)) <!-- 14.3.46 --> +- Remove require json_compat where not used [#7472](https://github.com/chef/chef/pull/7472) ([tas50](https://github.com/tas50)) <!-- 14.3.45 --> - Improve the error message when knife bootstrap windows isn't installed [#7470](https://github.com/chef/chef/pull/7470) ([tas50](https://github.com/tas50)) <!-- 14.3.44 --> - Move all knife cookbook site plugin logic into knife supermarket [#7466](https://github.com/chef/chef/pull/7466) ([tas50](https://github.com/tas50)) <!-- 14.3.43 --> - Fix duplicated query parameters to resolve Chef::HTTP::Simple regression [#7465](https://github.com/chef/chef/pull/7465) ([lamont-granquist](https://github.com/lamont-granquist)) <!-- 14.3.42 --> diff --git a/Gemfile.lock b/Gemfile.lock index c68ed8b3a0..31a78a1e77 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -9,10 +9,10 @@ GIT PATH remote: . specs: - chef (14.3.44) + chef (14.4.4) addressable bundler (>= 1.10) - chef-config (= 14.3.44) + chef-config (= 14.4.4) chef-zero (>= 13.0) diff-lcs (~> 1.2, >= 1.2.4) erubis (~> 2.7) @@ -40,10 +40,10 @@ PATH specinfra (~> 2.10) syslog-logger (~> 1.6) uuidtools (~> 2.1.5) - chef (14.3.44-universal-mingw32) + chef (14.4.4-universal-mingw32) addressable bundler (>= 1.10) - chef-config (= 14.3.44) + chef-config (= 14.4.4) chef-zero (>= 13.0) diff-lcs (~> 1.2, >= 1.2.4) erubis (~> 2.7) @@ -86,7 +86,7 @@ PATH PATH remote: chef-config specs: - chef-config (14.3.44) + chef-config (14.4.4) addressable fuzzyurl mixlib-config (>= 2.2.12, < 3.0) diff --git a/MAINTAINERS.md b/MAINTAINERS.md index d0acb37daf..5dcf57478d 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -39,7 +39,6 @@ To mention the team, use @chef/client-core * [Jon Cowie](https://github.com/jonlives) * [Joshua Timberman](https://github.com/jtimberman) * [Lamont Granquist](https://github.com/lamont-granquist) -* [Claire McQuin](https://github.com/mcquin) * [Ranjib Dey](https://github.com/ranjib) * [Steven Murawski](https://github.com/smurawski) * [Steven Danna](https://github.com/stevendanna) diff --git a/MAINTAINERS.toml b/MAINTAINERS.toml index 1d0888eb6e..b6856852ea 100644 --- a/MAINTAINERS.toml +++ b/MAINTAINERS.toml @@ -45,7 +45,6 @@ Maintainers for the Chef client, Ohai, mixlibs, ChefDK, ChefSpec, Foodcritic, ch "jonlives", "jtimberman", "lamont-granquist", - "mcquin", "ranjib", "smurawski", "stevendanna", @@ -272,18 +271,10 @@ The specific components of Chef related to a given platform - including (but not Name = "Aaron Kalin" GitHub = "martinisoft" - [people.mcquin] - Name = "Claire McQuin" - GitHub = "mcquin" - [people.ranjib] Name = "Ranjib Dey" GitHub = "ranjib" - [people.sethvargo] - Name = "Seth Vargo" - GitHub = "sethvargo" - [people.smurawski] Name = "Steven Murawski" GitHub = "smurawski" @@ -1 +1 @@ -14.3.44
\ No newline at end of file +14.4.4
\ No newline at end of file diff --git a/chef-config/lib/chef-config/package_task.rb b/chef-config/lib/chef-config/package_task.rb index ae5acef258..e44ec71508 100644 --- a/chef-config/lib/chef-config/package_task.rb +++ b/chef-config/lib/chef-config/package_task.rb @@ -217,11 +217,11 @@ module ChefConfig # See the License for the specific language governing permissions and # limitations under the License. - #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # NOTE: This file is generated by running `rake version` in the top level of # this repo. Do not edit this manually. Edit the VERSION file and run the rake # task instead. - #!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #{"\nrequire \"chef/version_string\"\n" if use_versionstring} #{class_or_module} #{module_name} #{module_name.upcase}_ROOT = File.expand_path("../..", __FILE__) diff --git a/chef-config/lib/chef-config/version.rb b/chef-config/lib/chef-config/version.rb index 2c778a1bea..375830e407 100644 --- a/chef-config/lib/chef-config/version.rb +++ b/chef-config/lib/chef-config/version.rb @@ -21,7 +21,7 @@ module ChefConfig CHEFCONFIG_ROOT = File.expand_path("../..", __FILE__) - VERSION = "14.3.44".freeze + VERSION = "14.4.4".freeze end # diff --git a/lib/chef/cookbook/gem_installer.rb b/lib/chef/cookbook/gem_installer.rb index deac48ff78..79b62f7a72 100644 --- a/lib/chef/cookbook/gem_installer.rb +++ b/lib/chef/cookbook/gem_installer.rb @@ -40,6 +40,13 @@ class Chef cookbook_collection.each_value do |cookbook_version| cookbook_version.metadata.gems.each do |args| + if cookbook_gems[args.first].last.is_a?(Hash) + args << {} unless args.last.is_a?(Hash) + args.last.merge!(cookbook_gems[args.first].pop) do |key, v1, v2| + raise Chef::Exceptions::GemRequirementConflict.new(args.first, key, v1, v2) if v1 != v2 + v2 + end + end cookbook_gems[args.first] += args[1..-1] end end diff --git a/lib/chef/exceptions.rb b/lib/chef/exceptions.rb index ca388d33cd..dafd445d2d 100644 --- a/lib/chef/exceptions.rb +++ b/lib/chef/exceptions.rb @@ -521,5 +521,11 @@ class Chef # exception specific to invalid usage of 'dsc_resource' resource class DSCModuleNameMissing < ArgumentError; end + + class GemRequirementConflict < RuntimeError + def initialize(gem_name, option, value1, value2) + super "Conflicting requirements for gem '#{gem_name}': Both #{value1.inspect} and #{value2.inspect} given for option #{option.inspect}" + end + end end end diff --git a/lib/chef/knife/client_bulk_delete.rb b/lib/chef/knife/client_bulk_delete.rb index a5fe94681d..8bb7181d65 100644 --- a/lib/chef/knife/client_bulk_delete.rb +++ b/lib/chef/knife/client_bulk_delete.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/api_client_v1" - require "chef/json_compat" end option :delete_validators, diff --git a/lib/chef/knife/client_create.rb b/lib/chef/knife/client_create.rb index b821a8a56b..62c8ff8417 100644 --- a/lib/chef/knife/client_create.rb +++ b/lib/chef/knife/client_create.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/api_client_v1" - require "chef/json_compat" end option :file, diff --git a/lib/chef/knife/client_delete.rb b/lib/chef/knife/client_delete.rb index a043b6f731..7b09a9a351 100644 --- a/lib/chef/knife/client_delete.rb +++ b/lib/chef/knife/client_delete.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/api_client_v1" - require "chef/json_compat" end option :delete_validators, diff --git a/lib/chef/knife/client_edit.rb b/lib/chef/knife/client_edit.rb index 948d43cc67..49526c72b3 100644 --- a/lib/chef/knife/client_edit.rb +++ b/lib/chef/knife/client_edit.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/api_client_v1" - require "chef/json_compat" end banner "knife client edit CLIENT (options)" diff --git a/lib/chef/knife/client_list.rb b/lib/chef/knife/client_list.rb index 794d8c9411..bf68c46990 100644 --- a/lib/chef/knife/client_list.rb +++ b/lib/chef/knife/client_list.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/api_client_v1" - require "chef/json_compat" end banner "knife client list (options)" diff --git a/lib/chef/knife/client_reregister.rb b/lib/chef/knife/client_reregister.rb index ce34884803..28660f60c0 100644 --- a/lib/chef/knife/client_reregister.rb +++ b/lib/chef/knife/client_reregister.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/api_client_v1" - require "chef/json_compat" end banner "knife client reregister CLIENT (options)" diff --git a/lib/chef/knife/client_show.rb b/lib/chef/knife/client_show.rb index ce3bf458b2..5a07ff7af1 100644 --- a/lib/chef/knife/client_show.rb +++ b/lib/chef/knife/client_show.rb @@ -26,7 +26,6 @@ class Chef deps do require "chef/api_client_v1" - require "chef/json_compat" end banner "knife client show CLIENT (options)" diff --git a/lib/chef/knife/data_bag_from_file.rb b/lib/chef/knife/data_bag_from_file.rb index 91adcb3129..3579631e41 100644 --- a/lib/chef/knife/data_bag_from_file.rb +++ b/lib/chef/knife/data_bag_from_file.rb @@ -30,7 +30,6 @@ class Chef require "chef/data_bag" require "chef/data_bag_item" require "chef/knife/core/object_loader" - require "chef/json_compat" require "chef/encrypted_data_bag_item" end diff --git a/lib/chef/knife/environment_create.rb b/lib/chef/knife/environment_create.rb index e533a70172..ca51d2cf1a 100644 --- a/lib/chef/knife/environment_create.rb +++ b/lib/chef/knife/environment_create.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/environment" - require "chef/json_compat" end banner "knife environment create ENVIRONMENT (options)" diff --git a/lib/chef/knife/environment_delete.rb b/lib/chef/knife/environment_delete.rb index 869d1c74fe..8368ce9dcd 100644 --- a/lib/chef/knife/environment_delete.rb +++ b/lib/chef/knife/environment_delete.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/environment" - require "chef/json_compat" end banner "knife environment delete ENVIRONMENT (options)" diff --git a/lib/chef/knife/environment_edit.rb b/lib/chef/knife/environment_edit.rb index 43f0b067ae..29f1467626 100644 --- a/lib/chef/knife/environment_edit.rb +++ b/lib/chef/knife/environment_edit.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/environment" - require "chef/json_compat" end banner "knife environment edit ENVIRONMENT (options)" diff --git a/lib/chef/knife/environment_list.rb b/lib/chef/knife/environment_list.rb index c3f2ef2e39..71e4fffe80 100644 --- a/lib/chef/knife/environment_list.rb +++ b/lib/chef/knife/environment_list.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/environment" - require "chef/json_compat" end banner "knife environment list (options)" diff --git a/lib/chef/knife/environment_show.rb b/lib/chef/knife/environment_show.rb index 6d260adbd6..04d17ed1f4 100644 --- a/lib/chef/knife/environment_show.rb +++ b/lib/chef/knife/environment_show.rb @@ -26,7 +26,6 @@ class Chef deps do require "chef/environment" - require "chef/json_compat" end banner "knife environment show ENVIRONMENT (options)" diff --git a/lib/chef/knife/role_run_list_remove.rb b/lib/chef/knife/role_run_list_remove.rb index 6fd35c6aaa..8aaf408a61 100644 --- a/lib/chef/knife/role_run_list_remove.rb +++ b/lib/chef/knife/role_run_list_remove.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/role" - require "chef/json_compat" end banner "knife role run_list remove [ROLE] [ENTRY]" diff --git a/lib/chef/knife/role_run_list_set.rb b/lib/chef/knife/role_run_list_set.rb index 644af1c381..87ba3efb1f 100644 --- a/lib/chef/knife/role_run_list_set.rb +++ b/lib/chef/knife/role_run_list_set.rb @@ -25,7 +25,6 @@ class Chef deps do require "chef/role" - require "chef/json_compat" end banner "knife role run_list set [ROLE] [ENTRIES]" diff --git a/lib/chef/knife/role_show.rb b/lib/chef/knife/role_show.rb index 99684768bb..c9ff6e584e 100644 --- a/lib/chef/knife/role_show.rb +++ b/lib/chef/knife/role_show.rb @@ -25,8 +25,7 @@ class Chef include Knife::Core::MultiAttributeReturnOption deps do - require "chef/node" - require "chef/json_compat" + require "chef/role" end banner "knife role show ROLE (options)" diff --git a/lib/chef/knife/user_create.rb b/lib/chef/knife/user_create.rb index a1761de979..3553e4db44 100644 --- a/lib/chef/knife/user_create.rb +++ b/lib/chef/knife/user_create.rb @@ -28,7 +28,6 @@ class Chef deps do require "chef/user_v1" - require "chef/json_compat" end option :file, diff --git a/lib/chef/knife/user_delete.rb b/lib/chef/knife/user_delete.rb index b0a2ece065..38122975c7 100644 --- a/lib/chef/knife/user_delete.rb +++ b/lib/chef/knife/user_delete.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/user_v1" - require "chef/json_compat" end banner "knife user delete USER (options)" diff --git a/lib/chef/knife/user_edit.rb b/lib/chef/knife/user_edit.rb index 8b89b847a9..e445a31677 100644 --- a/lib/chef/knife/user_edit.rb +++ b/lib/chef/knife/user_edit.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/user_v1" - require "chef/json_compat" end banner "knife user edit USER (options)" diff --git a/lib/chef/knife/user_list.rb b/lib/chef/knife/user_list.rb index eccb8d15a4..4e24a4c7d7 100644 --- a/lib/chef/knife/user_list.rb +++ b/lib/chef/knife/user_list.rb @@ -26,7 +26,6 @@ class Chef deps do require "chef/user_v1" - require "chef/json_compat" end banner "knife user list (options)" diff --git a/lib/chef/knife/user_reregister.rb b/lib/chef/knife/user_reregister.rb index c79deb09a7..97840cadf3 100644 --- a/lib/chef/knife/user_reregister.rb +++ b/lib/chef/knife/user_reregister.rb @@ -24,7 +24,6 @@ class Chef deps do require "chef/user_v1" - require "chef/json_compat" end banner "knife user reregister USER (options)" diff --git a/lib/chef/knife/user_show.rb b/lib/chef/knife/user_show.rb index c2842aa576..544d420346 100644 --- a/lib/chef/knife/user_show.rb +++ b/lib/chef/knife/user_show.rb @@ -26,7 +26,6 @@ class Chef deps do require "chef/user_v1" - require "chef/json_compat" end banner "knife user show USER (options)" diff --git a/lib/chef/mixin/shell_out.rb b/lib/chef/mixin/shell_out.rb index f38c6e262d..25a8ee989c 100644 --- a/lib/chef/mixin/shell_out.rb +++ b/lib/chef/mixin/shell_out.rb @@ -168,6 +168,11 @@ class Chef options end + def clean_array(*args) + Chef.deprecated(:shell_out, "do not call clean_array directly, just use shell_out with splat args or an array") + Chef::Mixin::ShellOut.clean_array(*args) + end + private # this SHOULD be used for setting up expectations in rspec, see banner comment at top. diff --git a/lib/chef/provider/ifconfig/redhat.rb b/lib/chef/provider/ifconfig/redhat.rb index bf3d979e86..24cea17b1a 100644 --- a/lib/chef/provider/ifconfig/redhat.rb +++ b/lib/chef/provider/ifconfig/redhat.rb @@ -42,6 +42,7 @@ class Chef <% if new_resource.bonding_opts %>BONDING_OPTS="<%= new_resource.bonding_opts %>"<% end %> <% if new_resource.master %>MASTER=<%= new_resource.master %><% end %> <% if new_resource.slave %>SLAVE=<%= new_resource.slave %><% end %> +<% if new_resource.vlan %>VLAN=<%= new_resource.vlan %><% end %> } @config_path = "/etc/sysconfig/network-scripts/ifcfg-#{new_resource.device}" end diff --git a/lib/chef/resource/ifconfig.rb b/lib/chef/resource/ifconfig.rb index d43b8c2d58..2ea0381991 100644 --- a/lib/chef/resource/ifconfig.rb +++ b/lib/chef/resource/ifconfig.rb @@ -92,6 +92,10 @@ class Chef property :slave, String, introduced: "13.4", description: "When set to yes, this device is controlled by the channel bonding interface that is specified via the master property." + + property :vlan, String, + introduced: "14.4", + description: "The VLAN to assign the interface to." end end end diff --git a/lib/chef/version.rb b/lib/chef/version.rb index f942b83c69..c8e3e13915 100644 --- a/lib/chef/version.rb +++ b/lib/chef/version.rb @@ -23,7 +23,7 @@ require "chef/version_string" class Chef CHEF_ROOT = File.expand_path("../..", __FILE__) - VERSION = Chef::VersionString.new("14.3.44") + VERSION = Chef::VersionString.new("14.4.4") end # diff --git a/omnibus/config/projects/chef.rb b/omnibus/config/projects/chef.rb index 117dcec94c..7c90725d95 100644 --- a/omnibus/config/projects/chef.rb +++ b/omnibus/config/projects/chef.rb @@ -70,11 +70,8 @@ end package :rpm do signing_passphrase ENV["OMNIBUS_RPM_SIGNING_PASSPHRASE"] - - unless rhel? && platform_version.satisfies?("< 6") - compression_level 1 - compression_type :xz - end + compression_level 1 + compression_type :xz end package :deb do diff --git a/spec/unit/cookbook/gem_installer_spec.rb b/spec/unit/cookbook/gem_installer_spec.rb index 91e6959331..b7c8db514a 100644 --- a/spec/unit/cookbook/gem_installer_spec.rb +++ b/spec/unit/cookbook/gem_installer_spec.rb @@ -22,7 +22,14 @@ describe Chef::Cookbook::GemInstaller do :cookbook, metadata: double( :metadata, - gems: [["httpclient", ">= 1.0"]] + gems: [["httpclient", ">= 1.0", { "git" => "https://github.com/nahi/httpclient" }]] + ) + ), + test4: double( + :cookbook, + metadata: double( + :metadata, + gems: [["httpclient", { "path" => "./gems/httpclient" }]] ) ), } diff --git a/spec/unit/provider/ifconfig/redhat_spec.rb b/spec/unit/provider/ifconfig/redhat_spec.rb index d81f963450..75291d3bf9 100644 --- a/spec/unit/provider/ifconfig/redhat_spec.rb +++ b/spec/unit/provider/ifconfig/redhat_spec.rb @@ -35,6 +35,7 @@ describe Chef::Provider::Ifconfig::Redhat do @new_resource.bonding_opts "mode=active-backup miimon=100" @new_resource.master "bond0" @new_resource.slave "yes" + @new_resource.vlan "yes" @provider = Chef::Provider::Ifconfig::Redhat.new(@new_resource, @run_context) @current_resource = Chef::Resource::Ifconfig.new("10.0.0.1", @run_context) @@ -60,6 +61,7 @@ describe Chef::Provider::Ifconfig::Redhat do expect(arg).to match(/^\s*BONDING_OPTS="mode=active-backup miimon=100"\s*$/) expect(arg).to match(/^\s*MASTER=bond0\s*$/) expect(arg).to match(/^\s*SLAVE=yes\s*$/) + expect(arg).to match(/^\s*VLAN=yes\s*$/) end expect(@config).to receive(:run_action).with(:create) expect(@config).to receive(:updated?).and_return(true) diff --git a/spec/unit/provider/route_spec.rb b/spec/unit/provider/route_spec.rb index ea6ddffb81..977e5681bf 100644 --- a/spec/unit/provider/route_spec.rb +++ b/spec/unit/provider/route_spec.rb @@ -167,7 +167,7 @@ describe Chef::Provider::Route do expect(@provider.generate_command(:add).join(" ")).not_to match(/\svia\s#{Regexp.escape(@new_resource.gateway.to_s)}/) end - it "should use the gatway when target is default" do + it "should use the gateway when target is default" do @default_resource.gateway("10.0.0.10") expect(@default_provider.generate_command(:add).join(" ")).to match(/10.0.0.10/) end |