summaryrefslogtreecommitdiff
path: root/lib/chef/knife
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2019-05-20 18:05:36 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2019-05-20 18:05:36 -0700
commit9dbdb769bfd963f82eb4bfea53c83501d0193766 (patch)
treedaba4babc4ba8eb73bd765783dc8a53a7abff6be /lib/chef/knife
parent248344cfe776b66a8da563c985e34d9c99967791 (diff)
downloadchef-9dbdb769bfd963f82eb4bfea53c83501d0193766.tar.gz
This hits the ones that are most frequently required.lcg/require-idempotency
Stops the kernel from scanning through all the activated gems every time in order to resolve names into pathnames. See rubygems/rubygems#2762 Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Diffstat (limited to 'lib/chef/knife')
-rw-r--r--lib/chef/knife/bootstrap.rb2
-rw-r--r--lib/chef/knife/bootstrap/client_builder.rb2
-rw-r--r--lib/chef/knife/bootstrap/train_connector.rb6
-rw-r--r--lib/chef/knife/config_use_profile.rb2
-rw-r--r--lib/chef/knife/configure.rb2
-rw-r--r--lib/chef/knife/cookbook_show.rb2
-rw-r--r--lib/chef/knife/core/bootstrap_context.rb2
-rw-r--r--lib/chef/knife/core/gem_glob_loader.rb2
-rw-r--r--lib/chef/knife/core/generic_presenter.rb2
-rw-r--r--lib/chef/knife/core/object_loader.rb2
-rw-r--r--lib/chef/knife/core/ui.rb4
-rw-r--r--lib/chef/knife/data_bag_secret_options.rb2
-rw-r--r--lib/chef/knife/search.rb2
-rw-r--r--lib/chef/knife/ssh.rb6
-rw-r--r--lib/chef/knife/ssl_check.rb8
-rw-r--r--lib/chef/knife/ssl_fetch.rb8
-rw-r--r--lib/chef/knife/supermarket_download.rb2
-rw-r--r--lib/chef/knife/supermarket_install.rb4
18 files changed, 30 insertions, 30 deletions
diff --git a/lib/chef/knife/bootstrap.rb b/lib/chef/knife/bootstrap.rb
index 2a9eab6f8e..d65d9da396 100644
--- a/lib/chef/knife/bootstrap.rb
+++ b/lib/chef/knife/bootstrap.rb
@@ -395,7 +395,7 @@ class Chef
attr_reader :connection
deps do
- require "erubis"
+ require "erubis" unless defined?(Erubis)
require_relative "../json_compat"
require_relative "../util/path_helper"
diff --git a/lib/chef/knife/bootstrap/client_builder.rb b/lib/chef/knife/bootstrap/client_builder.rb
index 1864297053..87dd03d6ed 100644
--- a/lib/chef/knife/bootstrap/client_builder.rb
+++ b/lib/chef/knife/bootstrap/client_builder.rb
@@ -20,7 +20,7 @@ require_relative "../../node"
require_relative "../../server_api"
require_relative "../../api_client/registration"
require_relative "../../api_client"
-require "tmpdir"
+require "tmpdir" unless defined?(Dir.mktmpdir)
class Chef
class Knife
diff --git a/lib/chef/knife/bootstrap/train_connector.rb b/lib/chef/knife/bootstrap/train_connector.rb
index f1b4816049..af09a8c366 100644
--- a/lib/chef/knife/bootstrap/train_connector.rb
+++ b/lib/chef/knife/bootstrap/train_connector.rb
@@ -16,8 +16,8 @@
#
require "train"
-require "tempfile"
-require "uri"
+require "tempfile" unless defined?(Tempfile)
+require "uri" unless defined?(URI)
class Chef
class Knife
@@ -305,7 +305,7 @@ class Chef
# Having this as a method makes it easier to mock
# SSH Config for testing.
def ssh_config_for_host(host)
- require "net/ssh"
+ require "net/ssh" unless defined?(Net::SSH)
Net::SSH::Config.for(host)
end
end
diff --git a/lib/chef/knife/config_use_profile.rb b/lib/chef/knife/config_use_profile.rb
index a202c8cf2a..89d75b3369 100644
--- a/lib/chef/knife/config_use_profile.rb
+++ b/lib/chef/knife/config_use_profile.rb
@@ -15,7 +15,7 @@
# limitations under the License.
#
-require "fileutils"
+require "fileutils" unless defined?(FileUtils)
require_relative "../knife"
diff --git a/lib/chef/knife/configure.rb b/lib/chef/knife/configure.rb
index 0e523584fb..5ff5d96aa0 100644
--- a/lib/chef/knife/configure.rb
+++ b/lib/chef/knife/configure.rb
@@ -26,7 +26,7 @@ class Chef
attr_reader :chef_repo, :new_client_key, :validation_client_name, :validation_key
deps do
- require "ohai"
+ require "ohai" unless defined?(Ohai::System)
Chef::Knife::ClientCreate.load_deps
Chef::Knife::UserCreate.load_deps
end
diff --git a/lib/chef/knife/cookbook_show.rb b/lib/chef/knife/cookbook_show.rb
index d7855f63ba..9129e61e7e 100644
--- a/lib/chef/knife/cookbook_show.rb
+++ b/lib/chef/knife/cookbook_show.rb
@@ -24,7 +24,7 @@ class Chef
deps do
require_relative "../json_compat"
- require "uri"
+ require "uri" unless defined?(URI)
require_relative "../cookbook_version"
end
diff --git a/lib/chef/knife/core/bootstrap_context.rb b/lib/chef/knife/core/bootstrap_context.rb
index 759fb043c0..997ebd5f28 100644
--- a/lib/chef/knife/core/bootstrap_context.rb
+++ b/lib/chef/knife/core/bootstrap_context.rb
@@ -18,7 +18,7 @@
require_relative "../../run_list"
require_relative "../../util/path_helper"
-require "pathname"
+require "pathname" unless defined?(Pathname)
require_relative "../../dist"
class Chef
diff --git a/lib/chef/knife/core/gem_glob_loader.rb b/lib/chef/knife/core/gem_glob_loader.rb
index b5b9143552..41d85b83a4 100644
--- a/lib/chef/knife/core/gem_glob_loader.rb
+++ b/lib/chef/knife/core/gem_glob_loader.rb
@@ -39,7 +39,7 @@ class Chef
# subcommand loader has been modified to load the plugins by using Kernel.load
# with the absolute path.
def gem_and_builtin_subcommands
- require "rubygems"
+ require "rubygems" unless defined?(Gem)
find_subcommands_via_rubygems
rescue LoadError
find_subcommands_via_dirglob
diff --git a/lib/chef/knife/core/generic_presenter.rb b/lib/chef/knife/core/generic_presenter.rb
index 77c874e71a..96a4c766a5 100644
--- a/lib/chef/knife/core/generic_presenter.rb
+++ b/lib/chef/knife/core/generic_presenter.rb
@@ -89,7 +89,7 @@ class Chef
require "yaml"
YAML.dump(data)
when :pp
- require "stringio"
+ require "stringio" unless defined?(StringIO)
# If you were looking for some attribute and there is only one match
# just dump the attribute value
if config[:attribute] && data.length == 1
diff --git a/lib/chef/knife/core/object_loader.rb b/lib/chef/knife/core/object_loader.rb
index d87b3eaf71..94b956be04 100644
--- a/lib/chef/knife/core/object_loader.rb
+++ b/lib/chef/knife/core/object_loader.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "ffi_yajl"
+require "ffi_yajl" unless defined?(FFI_Yajl)
require_relative "../../util/path_helper"
require_relative "../../data_bag_item"
diff --git a/lib/chef/knife/core/ui.rb b/lib/chef/knife/core/ui.rb
index cbda9c20f5..7961e1b523 100644
--- a/lib/chef/knife/core/ui.rb
+++ b/lib/chef/knife/core/ui.rb
@@ -18,10 +18,10 @@
# limitations under the License.
#
-require "forwardable"
+require "forwardable" unless defined?(Forwardable)
require_relative "../../platform/query_helpers"
require_relative "generic_presenter"
-require "tempfile"
+require "tempfile" unless defined?(Tempfile)
class Chef
class Knife
diff --git a/lib/chef/knife/data_bag_secret_options.rb b/lib/chef/knife/data_bag_secret_options.rb
index 19b0dfca38..d04be7d448 100644
--- a/lib/chef/knife/data_bag_secret_options.rb
+++ b/lib/chef/knife/data_bag_secret_options.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "mixlib/cli"
+require "mixlib/cli" unless defined?(Mixlib::CLI)
require_relative "../config"
require_relative "../encrypted_data_bag_item/check_encrypted"
diff --git a/lib/chef/knife/search.rb b/lib/chef/knife/search.rb
index bca6e9a886..b2aa7b5dc9 100644
--- a/lib/chef/knife/search.rb
+++ b/lib/chef/knife/search.rb
@@ -18,7 +18,7 @@
require_relative "../knife"
require_relative "core/node_presenter"
-require "addressable/uri"
+require "addressable/uri" unless defined?(Addressable::URI)
class Chef
class Knife
diff --git a/lib/chef/knife/ssh.rb b/lib/chef/knife/ssh.rb
index b829a21969..a3cda96fb5 100644
--- a/lib/chef/knife/ssh.rb
+++ b/lib/chef/knife/ssh.rb
@@ -24,13 +24,13 @@ class Chef
class Ssh < Knife
deps do
- require "net/ssh"
+ require "net/ssh" unless defined?(Net::SSH)
require "net/ssh/multi"
require "readline"
require_relative "../exceptions"
require_relative "../search/query"
require_relative "../util/path_helper"
- require "mixlib/shellout"
+ require "mixlib/shellout" unless defined?(Mixlib::ShellOut)
end
include Chef::Mixin::ShellOut
@@ -498,7 +498,7 @@ class Chef
def macterm
begin
- require "appscript"
+ require "appscript" unless defined?(Appscript)
rescue LoadError
STDERR.puts "You need the rb-appscript gem to use knife ssh macterm. `(sudo) gem install rb-appscript` to install"
raise
diff --git a/lib/chef/knife/ssl_check.rb b/lib/chef/knife/ssl_check.rb
index 9a27261124..46a1f2f3b0 100644
--- a/lib/chef/knife/ssl_check.rb
+++ b/lib/chef/knife/ssl_check.rb
@@ -24,11 +24,11 @@ class Chef
class SslCheck < Chef::Knife
deps do
- require "pp"
- require "socket"
- require "uri"
+ require "pp" unless defined?(PP)
+ require "socket" unless defined?(Socket)
+ require "uri" unless defined?(URI)
require_relative "../http/ssl_policies"
- require "openssl"
+ require "openssl" unless defined?(OpenSSL)
require_relative "../mixin/proxified_socket"
include Chef::Mixin::ProxifiedSocket
end
diff --git a/lib/chef/knife/ssl_fetch.rb b/lib/chef/knife/ssl_fetch.rb
index 9b6b364d8f..3f6a466881 100644
--- a/lib/chef/knife/ssl_fetch.rb
+++ b/lib/chef/knife/ssl_fetch.rb
@@ -24,10 +24,10 @@ class Chef
class SslFetch < Chef::Knife
deps do
- require "pp"
- require "socket"
- require "uri"
- require "openssl"
+ require "pp" unless defined?(PP)
+ require "socket" unless defined?(Socket)
+ require "uri" unless defined?(URI)
+ require "openssl" unless defined?(OpenSSL)
require_relative "../mixin/proxified_socket"
include Chef::Mixin::ProxifiedSocket
end
diff --git a/lib/chef/knife/supermarket_download.rb b/lib/chef/knife/supermarket_download.rb
index abb65a9c1b..b48126151f 100644
--- a/lib/chef/knife/supermarket_download.rb
+++ b/lib/chef/knife/supermarket_download.rb
@@ -26,7 +26,7 @@ class Chef
category "supermarket"
deps do
- require "fileutils"
+ require "fileutils" unless defined?(FileUtils)
end
option :file,
diff --git a/lib/chef/knife/supermarket_install.rb b/lib/chef/knife/supermarket_install.rb
index ab88170245..f47917e13d 100644
--- a/lib/chef/knife/supermarket_install.rb
+++ b/lib/chef/knife/supermarket_install.rb
@@ -24,8 +24,8 @@ class Chef
class SupermarketInstall < Knife
deps do
- require "shellwords"
- require "mixlib/archive"
+ require "shellwords" unless defined?(Shellwords)
+ require "mixlib/archive" unless defined?(Mixlib::Archive)
require_relative "core/cookbook_scm_repo"
require_relative "../cookbook/metadata"
end