summaryrefslogtreecommitdiff
path: root/lib/chef
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef')
-rw-r--r--lib/chef/cookbook/gem_installer.rb7
-rw-r--r--lib/chef/exceptions.rb6
-rw-r--r--lib/chef/knife/client_bulk_delete.rb1
-rw-r--r--lib/chef/knife/client_create.rb1
-rw-r--r--lib/chef/knife/client_delete.rb1
-rw-r--r--lib/chef/knife/client_edit.rb1
-rw-r--r--lib/chef/knife/client_list.rb1
-rw-r--r--lib/chef/knife/client_reregister.rb1
-rw-r--r--lib/chef/knife/client_show.rb1
-rw-r--r--lib/chef/knife/data_bag_from_file.rb1
-rw-r--r--lib/chef/knife/environment_create.rb1
-rw-r--r--lib/chef/knife/environment_delete.rb1
-rw-r--r--lib/chef/knife/environment_edit.rb1
-rw-r--r--lib/chef/knife/environment_list.rb1
-rw-r--r--lib/chef/knife/environment_show.rb1
-rw-r--r--lib/chef/knife/role_run_list_remove.rb1
-rw-r--r--lib/chef/knife/role_run_list_set.rb1
-rw-r--r--lib/chef/knife/role_show.rb3
-rw-r--r--lib/chef/knife/user_create.rb1
-rw-r--r--lib/chef/knife/user_delete.rb1
-rw-r--r--lib/chef/knife/user_edit.rb1
-rw-r--r--lib/chef/knife/user_list.rb1
-rw-r--r--lib/chef/knife/user_reregister.rb1
-rw-r--r--lib/chef/knife/user_show.rb1
-rw-r--r--lib/chef/mixin/shell_out.rb5
-rw-r--r--lib/chef/provider/ifconfig/redhat.rb1
-rw-r--r--lib/chef/resource/ifconfig.rb4
-rw-r--r--lib/chef/version.rb2
28 files changed, 25 insertions, 24 deletions
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
#