diff options
author | mwrock <matt@mattwrock.com> | 2020-09-04 18:46:27 -0700 |
---|---|---|
committer | mwrock <matt@mattwrock.com> | 2020-09-08 14:46:36 -0700 |
commit | 41ae92bd5070b450e04f02ae9a1d30987d14bb93 (patch) | |
tree | 952399197c5344e29a648560fda242ef77a7dd7e /lib/chef/resource | |
parent | 313afa345a0d19019218807a16bf6fdd6447a87b (diff) | |
download | chef-41ae92bd5070b450e04f02ae9a1d30987d14bb93.tar.gz |
use autoloading for many required gems
Signed-off-by: mwrock <matt@mattwrock.com>
Diffstat (limited to 'lib/chef/resource')
-rw-r--r-- | lib/chef/resource/apt_repository.rb | 2 | ||||
-rw-r--r-- | lib/chef/resource/build_essential.rb | 2 | ||||
-rw-r--r-- | lib/chef/resource/chef_vault_secret.rb | 2 | ||||
-rw-r--r-- | lib/chef/resource/macos_userdefaults.rb | 2 | ||||
-rw-r--r-- | lib/chef/resource/openssl_ec_private_key.rb | 8 | ||||
-rw-r--r-- | lib/chef/resource/openssl_rsa_private_key.rb | 8 | ||||
-rw-r--r-- | lib/chef/resource/osx_profile.rb | 4 | ||||
-rw-r--r-- | lib/chef/resource/plist.rb | 2 | ||||
-rw-r--r-- | lib/chef/resource/windows_certificate.rb | 6 | ||||
-rw-r--r-- | lib/chef/resource/windows_printer.rb | 8 | ||||
-rw-r--r-- | lib/chef/resource/windows_printer_port.rb | 10 |
11 files changed, 32 insertions, 22 deletions
diff --git a/lib/chef/resource/apt_repository.rb b/lib/chef/resource/apt_repository.rb index bc0c904745..e4569561fc 100644 --- a/lib/chef/resource/apt_repository.rb +++ b/lib/chef/resource/apt_repository.rb @@ -19,7 +19,7 @@ require_relative "../resource" require_relative "../http/simple" require "tmpdir" unless defined?(Dir.mktmpdir) -require "addressable" unless defined?(Addressable) +autoload :Addressable, "addressable" class Chef class Resource diff --git a/lib/chef/resource/build_essential.rb b/lib/chef/resource/build_essential.rb index ad37d3924f..17b97ebd97 100644 --- a/lib/chef/resource/build_essential.rb +++ b/lib/chef/resource/build_essential.rb @@ -15,7 +15,7 @@ # require_relative "../resource" -require "plist" +autoload :Plist, "plist" class Chef class Resource diff --git a/lib/chef/resource/chef_vault_secret.rb b/lib/chef/resource/chef_vault_secret.rb index d8a2e89ffe..1c8fa985f9 100644 --- a/lib/chef/resource/chef_vault_secret.rb +++ b/lib/chef/resource/chef_vault_secret.rb @@ -16,7 +16,7 @@ # require_relative "../resource" -require "chef-vault" +autoload :ChefVault, "chef-vault" class Chef class Resource diff --git a/lib/chef/resource/macos_userdefaults.rb b/lib/chef/resource/macos_userdefaults.rb index d163fd8402..ab789635e7 100644 --- a/lib/chef/resource/macos_userdefaults.rb +++ b/lib/chef/resource/macos_userdefaults.rb @@ -17,7 +17,7 @@ require_relative "../resource" require_relative "../dist" -require "plist" +autoload :Plist, "plist" class Chef class Resource diff --git a/lib/chef/resource/openssl_ec_private_key.rb b/lib/chef/resource/openssl_ec_private_key.rb index 36ad8f43ae..26f28b1ad8 100644 --- a/lib/chef/resource/openssl_ec_private_key.rb +++ b/lib/chef/resource/openssl_ec_private_key.rb @@ -66,10 +66,12 @@ class Chef description: "The desired passphrase for the key." property :key_cipher, String, - equal_to: OpenSSL::Cipher.ciphers, - validation_message: "key_cipher must be a cipher known to openssl. Run `openssl list-cipher-algorithms` to see available options.", description: "The designed cipher to use when generating your key. Run `openssl list-cipher-algorithms` to see available options.", - default: "des3" + default: lazy { "des3" }, + callbacks: { + "key_cipher must be a cipher known to openssl. Run `openssl list-cipher-algorithms` to see available options." => + proc { |v| OpenSSL::Cipher.ciphers.include?(v) }, + } property :owner, [String, Integer], description: "The owner applied to all files created by the resource." diff --git a/lib/chef/resource/openssl_rsa_private_key.rb b/lib/chef/resource/openssl_rsa_private_key.rb index c8129a728e..381e2af696 100644 --- a/lib/chef/resource/openssl_rsa_private_key.rb +++ b/lib/chef/resource/openssl_rsa_private_key.rb @@ -65,10 +65,12 @@ class Chef description: "The desired passphrase for the key." property :key_cipher, String, - equal_to: OpenSSL::Cipher.ciphers, - validation_message: "key_cipher must be a cipher known to openssl. Run `openssl list-cipher-algorithms` to see available options.", description: "The designed cipher to use when generating your key. Run `openssl list-cipher-algorithms` to see available options.", - default: "des3" + default: lazy { "des3" }, + callbacks: { + "key_cipher must be a cipher known to openssl. Run `openssl list-cipher-algorithms` to see available options." => + proc { |v| OpenSSL::Cipher.ciphers.include?(v) }, + } property :owner, [String, Integer], description: "The owner applied to all files created by the resource." diff --git a/lib/chef/resource/osx_profile.rb b/lib/chef/resource/osx_profile.rb index c3ff099436..d1a2791d3c 100644 --- a/lib/chef/resource/osx_profile.rb +++ b/lib/chef/resource/osx_profile.rb @@ -19,8 +19,8 @@ require_relative "../resource" require_relative "../log" require_relative "../resource/file" -require "uuidtools" -require "plist" +autoload :UUIDTools, "uuidtools" +autoload :Plist, "plist" class Chef class Resource diff --git a/lib/chef/resource/plist.rb b/lib/chef/resource/plist.rb index 06811ea8b6..f4058520a9 100644 --- a/lib/chef/resource/plist.rb +++ b/lib/chef/resource/plist.rb @@ -16,7 +16,7 @@ # limitations under the License. # require_relative "../resource" -require "plist" +autoload :Plist, "plist" class Chef class Resource diff --git a/lib/chef/resource/windows_certificate.rb b/lib/chef/resource/windows_certificate.rb index ce1bcede40..215f87d9c3 100644 --- a/lib/chef/resource/windows_certificate.rb +++ b/lib/chef/resource/windows_certificate.rb @@ -19,8 +19,10 @@ require_relative "../util/path_helper" require_relative "../resource" -require "win32-certstore" if Chef::Platform.windows? -require "openssl" unless defined?(OpenSSL) +module Win32 + autoload :Certstore, "win32-certstore" if Chef::Platform.windows? +end +autoload :OpenSSL, "openssl" require_relative "../dist" class Chef diff --git a/lib/chef/resource/windows_printer.rb b/lib/chef/resource/windows_printer.rb index 947477baeb..dea15ba112 100644 --- a/lib/chef/resource/windows_printer.rb +++ b/lib/chef/resource/windows_printer.rb @@ -24,7 +24,7 @@ class Chef class WindowsPrinter < Chef::Resource unified_mode true - require "resolv" + autoload :Resolv, "resolv" provides(:windows_printer) { true } @@ -78,8 +78,10 @@ class Chef property :ipv4_address, String, description: "The IPv4 address of the printer, such as `10.4.64.23`", - validation_message: "The ipv4_address property must be in the IPv4 format of `WWW.XXX.YYY.ZZZ`", - regex: Resolv::IPv4::Regex + callbacks: { + "The ipv4_address property must be in the IPv4 format of `WWW.XXX.YYY.ZZZ`" => + proc { |v| v.match(Resolv::IPv4::Regex) }, + } PRINTERS_REG_KEY = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\\'.freeze unless defined?(PRINTERS_REG_KEY) diff --git a/lib/chef/resource/windows_printer_port.rb b/lib/chef/resource/windows_printer_port.rb index 1b3f8753ba..2a4eaa09b3 100644 --- a/lib/chef/resource/windows_printer_port.rb +++ b/lib/chef/resource/windows_printer_port.rb @@ -24,7 +24,7 @@ class Chef class WindowsPrinterPort < Chef::Resource unified_mode true - require "resolv" + autoload :Resolv, "resolv" provides(:windows_printer_port) { true } @@ -61,9 +61,11 @@ class Chef property :ipv4_address, String, name_property: true, - regex: Resolv::IPv4::Regex, - validation_message: "The ipv4_address property must be in the format of WWW.XXX.YYY.ZZZ!", - description: "An optional property for the IPv4 address of the printer if it differs from the resource block's name." + description: "An optional property for the IPv4 address of the printer if it differs from the resource block's name.", + callbacks: { + "The ipv4_address property must be in the format of WWW.XXX.YYY.ZZZ!" => + proc { |v| v.match(Resolv::IPv4::Regex) }, + } property :port_name, String, description: "The port name." |