chef 12.4.3-universal-mingw32 → 12.5.1-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +21 -25
- data/Gemfile +46 -0
- data/README.md +4 -4
- data/Rakefile +4 -110
- data/bin/chef-service-manager +3 -1
- data/distro/common/html/knife_cookbook_site.html +18 -18
- data/distro/common/man/man1/knife-cookbook-site.1 +11 -11
- data/lib/chef.rb +1 -1
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/apply.rb +19 -1
- data/lib/chef/application/client.rb +11 -5
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +1 -1
- data/lib/chef/application/windows_service_manager.rb +19 -12
- data/lib/chef/chef_class.rb +46 -0
- data/lib/chef/chef_fs/config.rb +22 -24
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +3 -1
- data/lib/chef/chef_fs/file_pattern.rb +4 -15
- data/lib/chef/chef_fs/file_system/acl_dir.rb +3 -4
- data/lib/chef/chef_fs/file_system/acls_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/base_fs_dir.rb +0 -5
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +5 -2
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_dir.rb +2 -9
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbook_entry.rb +2 -9
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_cookbooks_dir.rb +10 -17
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +1 -12
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +15 -11
- data/lib/chef/chef_fs/file_system/chef_server_root_dir.rb +8 -2
- data/lib/chef/chef_fs/file_system/cookbook_dir.rb +4 -4
- data/lib/chef/chef_fs/file_system/cookbooks_acl_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +3 -11
- data/lib/chef/chef_fs/file_system/data_bags_dir.rb +3 -5
- data/lib/chef/chef_fs/file_system/environments_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/file_system_entry.rb +7 -4
- data/lib/chef/chef_fs/file_system/memory_dir.rb +2 -3
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +15 -0
- data/lib/chef/chef_fs/file_system/nodes_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/organization_members_entry.rb +2 -2
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +4 -9
- data/lib/chef/chef_fs/knife.rb +35 -7
- data/lib/chef/chef_fs/path_utils.rb +65 -34
- data/lib/chef/client.rb +2 -3
- data/lib/chef/config.rb +34 -2
- data/lib/chef/{mixin/wstring.rb → constants.rb} +9 -13
- data/lib/chef/cookbook/metadata.rb +25 -3
- data/lib/chef/cookbook/synchronizer.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +3 -3
- data/lib/chef/delayed_evaluator.rb +21 -0
- data/lib/chef/deprecation/mixin/template.rb +1 -2
- data/lib/chef/deprecation/provider/cookbook_file.rb +1 -1
- data/lib/chef/deprecation/provider/file.rb +1 -1
- data/lib/chef/deprecation/provider/remote_directory.rb +52 -0
- data/lib/chef/deprecation/provider/remote_file.rb +1 -2
- data/lib/chef/deprecation/provider/template.rb +1 -1
- data/lib/chef/deprecation/warnings.rb +3 -4
- data/lib/chef/dsl/reboot_pending.rb +3 -2
- data/lib/chef/dsl/recipe.rb +26 -7
- data/lib/chef/dsl/resources.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +51 -22
- data/lib/chef/event_dispatch/dispatcher.rb +21 -6
- data/lib/chef/event_dispatch/dsl.rb +64 -0
- data/lib/chef/exceptions.rb +28 -1
- data/lib/chef/file_content_management/tempfile.rb +1 -1
- data/lib/chef/formatters/base.rb +3 -0
- data/lib/chef/formatters/doc.rb +56 -6
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +36 -0
- data/lib/chef/formatters/minimal.rb +2 -2
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -1
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/knife.rb +35 -55
- data/lib/chef/knife/bootstrap.rb +41 -0
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -0
- data/lib/chef/knife/bootstrap/client_builder.rb +16 -0
- data/lib/chef/knife/bootstrap/templates/README.md +3 -4
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +1 -1
- data/lib/chef/knife/cookbook_create.rb +1 -1
- data/lib/chef/knife/cookbook_site_download.rb +1 -1
- data/lib/chef/knife/cookbook_site_install.rb +1 -1
- data/lib/chef/knife/cookbook_site_share.rb +6 -6
- data/lib/chef/knife/cookbook_site_unshare.rb +2 -2
- data/lib/chef/knife/core/bootstrap_context.rb +12 -4
- data/lib/chef/knife/core/custom_manifest_loader.rb +69 -0
- data/lib/chef/knife/core/gem_glob_loader.rb +138 -0
- data/lib/chef/knife/core/hashed_command_loader.rb +80 -0
- data/lib/chef/knife/core/node_presenter.rb +24 -1
- data/lib/chef/knife/core/object_loader.rb +1 -0
- data/lib/chef/knife/core/subcommand_loader.rb +131 -146
- data/lib/chef/knife/node_run_list_remove.rb +12 -1
- data/lib/chef/knife/null.rb +10 -0
- data/lib/chef/knife/rehash.rb +62 -0
- data/lib/chef/knife/search.rb +3 -3
- data/lib/chef/knife/ssh.rb +52 -30
- data/lib/chef/knife/ssl_check.rb +3 -2
- data/lib/chef/knife/user_edit.rb +1 -2
- data/lib/chef/local_mode.rb +5 -0
- data/lib/chef/log.rb +5 -1
- data/lib/chef/mixin/deprecation.rb +8 -8
- data/lib/chef/mixin/params_validate.rb +362 -135
- data/lib/chef/mixin/template.rb +48 -0
- data/lib/chef/mixin/which.rb +1 -1
- data/lib/chef/mixin/wide_string.rb +72 -0
- data/lib/chef/mixin/windows_architecture_helper.rb +15 -39
- data/lib/chef/mixin/windows_env_helper.rb +4 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +51 -0
- data/lib/chef/monkey_patches/win32/registry.rb +72 -0
- data/lib/chef/node.rb +116 -3
- data/lib/chef/node_map.rb +2 -2
- data/lib/chef/platform/handler_map.rb +0 -5
- data/lib/chef/platform/provider_mapping.rb +5 -6
- data/lib/chef/platform/query_helpers.rb +46 -4
- data/lib/chef/platform/rebooter.rb +1 -1
- data/lib/chef/platform/service_helpers.rb +30 -32
- data/lib/chef/policy_builder.rb +1 -8
- data/lib/chef/policy_builder/dynamic.rb +186 -0
- data/lib/chef/policy_builder/expand_node_object.rb +30 -15
- data/lib/chef/policy_builder/policyfile.rb +155 -18
- data/lib/chef/property.rb +568 -0
- data/lib/chef/provider.rb +222 -13
- data/lib/chef/provider/batch.rb +8 -0
- data/lib/chef/provider/deploy.rb +5 -7
- data/lib/chef/provider/directory.rb +14 -2
- data/lib/chef/provider/dsc_resource.rb +5 -9
- data/lib/chef/provider/group/pw.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +2 -2
- data/lib/chef/provider/lwrp_base.rb +1 -75
- data/lib/chef/provider/mount.rb +7 -3
- data/lib/chef/provider/package.rb +1 -1
- data/lib/chef/provider/package/dpkg.rb +5 -11
- data/lib/chef/provider/package/rpm.rb +2 -2
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +17 -5
- data/lib/chef/provider/powershell_script.rb +59 -23
- data/lib/chef/provider/registry_key.rb +5 -5
- data/lib/chef/provider/remote_directory.rb +190 -102
- data/lib/chef/provider/service.rb +12 -2
- data/lib/chef/provider/service/aix.rb +1 -1
- data/lib/chef/provider/service/debian.rb +3 -5
- data/lib/chef/provider/service/freebsd.rb +1 -1
- data/lib/chef/provider/service/gentoo.rb +3 -3
- data/lib/chef/provider/service/init.rb +3 -3
- data/lib/chef/provider/service/insserv.rb +2 -4
- data/lib/chef/provider/service/invokercd.rb +2 -4
- data/lib/chef/provider/service/macosx.rb +5 -1
- data/lib/chef/provider/service/openbsd.rb +2 -1
- data/lib/chef/provider/service/redhat.rb +52 -16
- data/lib/chef/provider/service/simple.rb +2 -2
- data/lib/chef/provider/service/systemd.rb +3 -5
- data/lib/chef/provider/service/upstart.rb +4 -6
- data/lib/chef/provider/subversion.rb +13 -7
- data/lib/chef/provider/template/content.rb +16 -6
- data/lib/chef/provider/user/solaris.rb +32 -4
- data/lib/chef/provider/windows_script.rb +3 -5
- data/lib/chef/provider_resolver.rb +2 -2
- data/lib/chef/recipe.rb +1 -8
- data/lib/chef/resource.rb +563 -90
- data/lib/chef/resource/action_class.rb +83 -0
- data/lib/chef/resource/chef_gem.rb +3 -3
- data/lib/chef/resource/deploy.rb +8 -2
- data/lib/chef/resource/dsc_script.rb +2 -0
- data/lib/chef/resource/file/verification.rb +7 -1
- data/lib/chef/resource/lwrp_base.rb +1 -7
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/service.rb +10 -2
- data/lib/chef/resource/subversion.rb +5 -0
- data/lib/chef/resource/windows_script.rb +6 -2
- data/lib/chef/resource/yum_package.rb +10 -1
- data/lib/chef/resource_resolver.rb +3 -3
- data/lib/chef/run_context.rb +402 -83
- data/lib/chef/run_list/versioned_recipe_list.rb +15 -0
- data/lib/chef/run_lock.rb +30 -21
- data/lib/chef/util/powershell/ps_credential.rb +4 -0
- data/lib/chef/util/windows.rb +0 -32
- data/lib/chef/util/windows/net_group.rb +85 -106
- data/lib/chef/util/windows/net_use.rb +35 -71
- data/lib/chef/util/windows/net_user.rb +0 -1
- data/lib/chef/util/windows/volume.rb +19 -19
- data/lib/chef/version.rb +3 -3
- data/lib/chef/win32/api.rb +1 -0
- data/lib/chef/win32/api/file.rb +20 -0
- data/lib/chef/win32/api/net.rb +163 -43
- data/lib/chef/win32/api/registry.rb +51 -0
- data/lib/chef/win32/api/system.rb +23 -0
- data/lib/chef/win32/api/unicode.rb +0 -43
- data/lib/chef/win32/crypto.rb +2 -1
- data/lib/chef/win32/file.rb +28 -3
- data/lib/chef/win32/mutex.rb +1 -2
- data/lib/chef/win32/net.rb +162 -8
- data/lib/chef/win32/process.rb +13 -0
- data/lib/chef/win32/registry.rb +35 -30
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/security/token.rb +1 -1
- data/lib/chef/win32/system.rb +62 -0
- data/lib/chef/win32/unicode.rb +7 -2
- data/lib/chef/win32/version.rb +0 -4
- data/lib/chef/workstation_config_loader.rb +3 -158
- data/spec/data/cookbooks/openldap/templates/default/helpers.erb +14 -0
- data/spec/data/cookbooks/openldap/templates/default/nested_openldap_partials.erb +1 -0
- data/spec/data/cookbooks/openldap/templates/default/nested_partial.erb +1 -0
- data/spec/data/dsc_lcm.pfx +0 -0
- data/spec/data/run_context/cookbooks/include/recipes/default.rb +24 -0
- data/spec/data/run_context/cookbooks/include/recipes/includee.rb +3 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +33 -43
- data/spec/functional/knife/cookbook_delete_spec.rb +17 -7
- data/spec/functional/knife/ssh_spec.rb +16 -0
- data/spec/functional/rebooter_spec.rb +1 -1
- data/spec/functional/resource/deploy_revision_spec.rb +1 -1
- data/spec/functional/resource/dsc_resource_spec.rb +2 -0
- data/spec/functional/resource/dsc_script_spec.rb +91 -2
- data/spec/functional/resource/group_spec.rb +67 -44
- data/spec/functional/resource/{powershell_spec.rb → powershell_script_spec.rb} +107 -18
- data/spec/functional/resource/windows_service_spec.rb +1 -1
- data/spec/functional/run_lock_spec.rb +368 -189
- data/spec/functional/win32/{registry_helper_spec.rb → registry_spec.rb} +16 -23
- data/spec/functional/win32/service_manager_spec.rb +2 -2
- data/spec/integration/client/client_spec.rb +51 -0
- data/spec/integration/knife/chef_repo_path_spec.rb +13 -11
- data/spec/integration/knife/download_spec.rb +4 -0
- data/spec/integration/knife/list_spec.rb +8 -0
- data/spec/integration/knife/upload_spec.rb +1 -1
- data/spec/integration/recipes/recipe_dsl_spec.rb +1 -16
- data/spec/integration/recipes/remote_directory.rb +74 -0
- data/spec/integration/recipes/resource_action_spec.rb +363 -0
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +423 -0
- data/spec/integration/recipes/resource_load_spec.rb +206 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/support/platform_helpers.rb +13 -0
- data/spec/support/shared/context/win32.rb +34 -0
- data/spec/support/shared/functional/win32_service.rb +2 -1
- data/spec/support/shared/functional/windows_script.rb +63 -26
- data/spec/support/shared/unit/mock_shellout.rb +46 -0
- data/spec/support/shared/unit/provider/file.rb +10 -4
- data/spec/unit/application/client_spec.rb +16 -3
- data/spec/unit/application/knife_spec.rb +2 -2
- data/spec/unit/application/solo_spec.rb +4 -3
- data/spec/unit/chef_class_spec.rb +23 -4
- data/spec/unit/chef_fs/path_util_spec.rb +108 -0
- data/spec/unit/client_spec.rb +6 -1
- data/spec/unit/config_spec.rb +31 -0
- data/spec/unit/cookbook/metadata_spec.rb +23 -3
- data/spec/unit/cookbook/syntax_check_spec.rb +3 -0
- data/spec/unit/deprecation_spec.rb +3 -6
- data/spec/unit/dsl/reboot_pending_spec.rb +12 -6
- data/spec/unit/event_dispatch/dispatcher_spec.rb +65 -3
- data/spec/unit/event_dispatch/dsl_spec.rb +83 -0
- data/spec/unit/formatters/doc_spec.rb +32 -0
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +26 -0
- data/spec/unit/json_compat_spec.rb +4 -3
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +27 -0
- data/spec/unit/knife/bootstrap_spec.rb +55 -3
- data/spec/unit/knife/cookbook_site_share_spec.rb +3 -3
- data/spec/unit/knife/core/bootstrap_context_spec.rb +21 -4
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +41 -0
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +210 -0
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +93 -0
- data/spec/unit/knife/core/subcommand_loader_spec.rb +16 -192
- data/spec/unit/knife/node_run_list_remove_spec.rb +17 -0
- data/spec/unit/knife/ssl_check_spec.rb +4 -0
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +10 -10
- data/spec/unit/mixin/params_validate_spec.rb +4 -2
- data/spec/unit/mixin/template_spec.rb +5 -1
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +13 -8
- data/spec/unit/node_spec.rb +220 -0
- data/spec/unit/platform/query_helpers_spec.rb +146 -3
- data/spec/unit/policy_builder/dynamic_spec.rb +275 -0
- data/spec/unit/policy_builder/expand_node_object_spec.rb +37 -38
- data/spec/unit/policy_builder/policyfile_spec.rb +260 -46
- data/spec/unit/property/state_spec.rb +506 -0
- data/spec/unit/property/validation_spec.rb +663 -0
- data/spec/unit/property_spec.rb +1094 -0
- data/spec/unit/provider/deploy_spec.rb +5 -5
- data/spec/unit/provider/directory_spec.rb +35 -0
- data/spec/unit/provider/dsc_resource_spec.rb +3 -10
- data/spec/unit/provider/ifconfig_spec.rb +22 -2
- data/spec/unit/provider/mount/aix_spec.rb +2 -1
- data/spec/unit/provider/mount/mount_spec.rb +6 -0
- data/spec/unit/provider/mount/windows_spec.rb +14 -0
- data/spec/unit/provider/mount_spec.rb +12 -1
- data/spec/unit/provider/package/dpkg_spec.rb +8 -1
- data/spec/unit/provider/package/rpm_spec.rb +18 -1
- data/spec/unit/provider/package/rubygems_spec.rb +18 -0
- data/spec/unit/provider/package/yum_spec.rb +97 -24
- data/spec/unit/provider/powershell_script_spec.rb +106 -0
- data/spec/unit/provider/registry_key_spec.rb +12 -0
- data/spec/unit/provider/remote_directory_spec.rb +1 -2
- data/spec/unit/provider/service/aix_service_spec.rb +3 -3
- data/spec/unit/provider/service/gentoo_service_spec.rb +4 -4
- data/spec/unit/provider/service/macosx_spec.rb +4 -4
- data/spec/unit/provider/service/openbsd_service_spec.rb +10 -8
- data/spec/unit/provider/service/redhat_spec.rb +88 -8
- data/spec/unit/provider/service/upstart_service_spec.rb +11 -7
- data/spec/unit/provider/service/windows_spec.rb +211 -200
- data/spec/unit/provider/subversion_spec.rb +50 -31
- data/spec/unit/provider/template/content_spec.rb +93 -2
- data/spec/unit/provider/user/solaris_spec.rb +66 -9
- data/spec/unit/provider_resolver_spec.rb +707 -650
- data/spec/unit/provider_spec.rb +1 -3
- data/spec/unit/recipe_spec.rb +0 -4
- data/spec/unit/resource/deploy_spec.rb +7 -1
- data/spec/unit/resource/dsc_script_spec.rb +4 -0
- data/spec/unit/resource/file/verification_spec.rb +33 -5
- data/spec/unit/resource/{powershell_spec.rb → powershell_script_spec.rb} +17 -13
- data/spec/unit/resource/service_spec.rb +4 -4
- data/spec/unit/resource/subversion_spec.rb +4 -0
- data/spec/unit/resource/yum_package_spec.rb +10 -1
- data/spec/unit/resource_spec.rb +2 -2
- data/spec/unit/run_context/child_run_context_spec.rb +133 -0
- data/spec/unit/run_context_spec.rb +7 -0
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +5 -0
- data/spec/unit/win32/registry_spec.rb +394 -0
- data/tasks/external_tests.rb +47 -23
- data/tasks/maintainers.rb +155 -14
- metadata +64 -53
- data/lib/chef/knife/bootstrap/templates/archlinux-gems.erb +0 -76
- data/lib/chef/knife/bootstrap/templates/chef-aix.erb +0 -72
- data/spec/unit/provider/powershell_spec.rb +0 -80
- data/spec/unit/registry_helper_spec.rb +0 -376
- data/spec/unit/workstation_config_loader_spec.rb +0 -283
@@ -23,7 +23,7 @@ class Chef
|
|
23
23
|
# == Deprecation::Provider::RemoteFile
|
24
24
|
# This module contains the deprecated functions of
|
25
25
|
# Chef::Provider::RemoteFile. These functions are refactored to different
|
26
|
-
# components. They are frozen and will be removed in Chef
|
26
|
+
# components. They are frozen and will be removed in Chef 13.
|
27
27
|
#
|
28
28
|
module RemoteFile
|
29
29
|
|
@@ -83,4 +83,3 @@ class Chef
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
86
|
-
|
@@ -25,7 +25,7 @@ class Chef
|
|
25
25
|
# == Deprecation::Provider::Template
|
26
26
|
# This module contains the deprecated functions of
|
27
27
|
# Chef::Provider::Template. These functions are refactored to different
|
28
|
-
# components. They are frozen and will be removed in Chef
|
28
|
+
# components. They are frozen and will be removed in Chef 13.
|
29
29
|
#
|
30
30
|
module Template
|
31
31
|
|
@@ -25,10 +25,9 @@ class Chef
|
|
25
25
|
m = instance_method(name)
|
26
26
|
define_method(name) do |*args|
|
27
27
|
message = []
|
28
|
-
message << "Method '#{name}' of '#{self.class}' is deprecated. It will be removed in Chef
|
29
|
-
message << "Please update your cookbooks accordingly.
|
30
|
-
|
31
|
-
Chef::Log.deprecation message
|
28
|
+
message << "Method '#{name}' of '#{self.class}' is deprecated. It will be removed in Chef 13."
|
29
|
+
message << "Please update your cookbooks accordingly."
|
30
|
+
Chef.log_deprecation(message)
|
32
31
|
super(*args)
|
33
32
|
end
|
34
33
|
end
|
@@ -45,11 +45,12 @@ class Chef
|
|
45
45
|
registry_key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired') ||
|
46
46
|
|
47
47
|
# Vista + Server 2008 and newer may have reboots pending from CBS
|
48
|
-
registry_key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\
|
48
|
+
registry_key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending') ||
|
49
49
|
|
50
50
|
# The mere existence of the UpdateExeVolatile key should indicate a pending restart for certain updates
|
51
51
|
# http://support.microsoft.com/kb/832475
|
52
|
-
|
52
|
+
Chef::Platform.windows_server_2003? &&
|
53
|
+
(registry_key_exists?('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile') &&
|
53
54
|
!registry_get_values('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile').select { |v| v[:name] == "Flags" }[0].nil? &&
|
54
55
|
[1,2,3].include?(registry_get_values('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile').select { |v| v[:name] == "Flags" }[0][:data]))
|
55
56
|
elsif platform?("ubuntu")
|
data/lib/chef/dsl/recipe.rb
CHANGED
@@ -19,12 +19,10 @@
|
|
19
19
|
|
20
20
|
require 'chef/mixin/convert_to_class_name'
|
21
21
|
require 'chef/exceptions'
|
22
|
-
require 'chef/resource_builder'
|
23
22
|
require 'chef/mixin/shell_out'
|
24
23
|
require 'chef/mixin/powershell_out'
|
25
24
|
require 'chef/dsl/resources'
|
26
25
|
require 'chef/dsl/definitions'
|
27
|
-
require 'chef/resource'
|
28
26
|
|
29
27
|
class Chef
|
30
28
|
module DSL
|
@@ -122,9 +120,9 @@ class Chef
|
|
122
120
|
|
123
121
|
def describe_self_for_error
|
124
122
|
if respond_to?(:name)
|
125
|
-
%Q[`#{self.class
|
123
|
+
%Q[`#{self.class} "#{name}"']
|
126
124
|
elsif respond_to?(:recipe_name)
|
127
|
-
%Q[`#{self.class
|
125
|
+
%Q[`#{self.class} "#{recipe_name}"']
|
128
126
|
else
|
129
127
|
to_s
|
130
128
|
end
|
@@ -142,8 +140,7 @@ class Chef
|
|
142
140
|
# method_missing manually. Not a fan. Not. A. Fan.
|
143
141
|
#
|
144
142
|
if respond_to?(method_symbol)
|
145
|
-
Chef
|
146
|
-
Chef::Log.deprecation("Use public_send() or send() instead.")
|
143
|
+
Chef.log_deprecation("Calling method_missing(#{method_symbol.inspect}) directly is deprecated in Chef 12 and will be removed in Chef 13. Use public_send() or send() instead.")
|
147
144
|
return send(method_symbol, *args, &block)
|
148
145
|
end
|
149
146
|
|
@@ -152,7 +149,7 @@ class Chef
|
|
152
149
|
# never called. DEPRECATED.
|
153
150
|
#
|
154
151
|
if run_context.definitions.has_key?(method_symbol.to_sym)
|
155
|
-
Chef
|
152
|
+
Chef.log_deprecation("Definition #{method_symbol} (#{run_context.definitions[method_symbol.to_sym]}) was added to the run_context without calling Chef::DSL::Definitions.add_definition(#{method_symbol.to_sym.inspect}). This will become required in Chef 13.")
|
156
153
|
Chef::DSL::Definitions.add_definition(method_symbol)
|
157
154
|
return send(method_symbol, *args, &block)
|
158
155
|
end
|
@@ -176,10 +173,32 @@ class Chef
|
|
176
173
|
raise NameError, "No resource, method, or local variable named `#{method_symbol}' for #{describe_self_for_error}"
|
177
174
|
end
|
178
175
|
end
|
176
|
+
|
177
|
+
module FullDSL
|
178
|
+
require 'chef/dsl/data_query'
|
179
|
+
require 'chef/dsl/platform_introspection'
|
180
|
+
require 'chef/dsl/include_recipe'
|
181
|
+
require 'chef/dsl/registry_helper'
|
182
|
+
require 'chef/dsl/reboot_pending'
|
183
|
+
require 'chef/dsl/audit'
|
184
|
+
require 'chef/dsl/powershell'
|
185
|
+
include Chef::DSL::DataQuery
|
186
|
+
include Chef::DSL::PlatformIntrospection
|
187
|
+
include Chef::DSL::IncludeRecipe
|
188
|
+
include Chef::DSL::Recipe
|
189
|
+
include Chef::DSL::RegistryHelper
|
190
|
+
include Chef::DSL::RebootPending
|
191
|
+
include Chef::DSL::Audit
|
192
|
+
include Chef::DSL::Powershell
|
193
|
+
end
|
179
194
|
end
|
180
195
|
end
|
181
196
|
end
|
182
197
|
|
198
|
+
# Avoid circular references for things that are only used in instance methods
|
199
|
+
require 'chef/resource_builder'
|
200
|
+
require 'chef/resource'
|
201
|
+
|
183
202
|
# **DEPRECATED**
|
184
203
|
# This used to be part of chef/mixin/recipe_definition_dsl_core. Load the file to activate the deprecation code.
|
185
204
|
require 'chef/mixin/recipe_definition_dsl_core'
|
data/lib/chef/dsl/resources.rb
CHANGED
@@ -11,14 +11,14 @@ class Chef
|
|
11
11
|
begin
|
12
12
|
module_eval(<<-EOM, __FILE__, __LINE__+1)
|
13
13
|
def #{dsl_name}(*args, &block)
|
14
|
-
Chef
|
14
|
+
Chef.log_deprecation("Cannot create resource #{dsl_name} with more than one argument. All arguments except the name (\#{args[0].inspect}) will be ignored. This will cause an error in Chef 13. Arguments: \#{args}") if args.size > 1
|
15
15
|
declare_resource(#{dsl_name.inspect}, args[0], caller[0], &block)
|
16
16
|
end
|
17
17
|
EOM
|
18
18
|
rescue SyntaxError
|
19
19
|
# Handle the case where dsl_name has spaces, etc.
|
20
20
|
define_method(dsl_name.to_sym) do |*args, &block|
|
21
|
-
Chef
|
21
|
+
Chef.log_deprecation("Cannot create resource #{dsl_name} with more than one argument. All arguments except the name (#{args[0].inspect}) will be ignored. This will cause an error in Chef 13. Arguments: #{args}") if args.size > 1
|
22
22
|
declare_resource(dsl_name, args[0], caller[0], &block)
|
23
23
|
end
|
24
24
|
end
|
@@ -47,14 +47,19 @@ class Chef
|
|
47
47
|
def ohai_completed(node)
|
48
48
|
end
|
49
49
|
|
50
|
-
#
|
50
|
+
# Announce that we're not going to register the client. Generally because
|
51
|
+
# we already have the private key, or because we're deliberately not using
|
52
|
+
# a key.
|
51
53
|
def skipping_registration(node_name, config)
|
52
54
|
end
|
53
55
|
|
54
|
-
# About to attempt to
|
56
|
+
# About to attempt to create a private key registered to the server with
|
57
|
+
# client +node_name+.
|
55
58
|
def registration_start(node_name, config)
|
56
59
|
end
|
57
60
|
|
61
|
+
# Successfully created the private key and registered this client with the
|
62
|
+
# server.
|
58
63
|
def registration_completed
|
59
64
|
end
|
60
65
|
|
@@ -118,8 +123,8 @@ class Chef
|
|
118
123
|
def cookbook_sync_start(cookbook_count)
|
119
124
|
end
|
120
125
|
|
121
|
-
# Called when cookbook +
|
122
|
-
def synchronized_cookbook(cookbook_name)
|
126
|
+
# Called when cookbook +cookbook+ has been sync'd
|
127
|
+
def synchronized_cookbook(cookbook_name, cookbook)
|
123
128
|
end
|
124
129
|
|
125
130
|
# Called when an individual file in a cookbook has been updated
|
@@ -269,26 +274,37 @@ class Chef
|
|
269
274
|
# def notifications_resolved
|
270
275
|
# end
|
271
276
|
|
277
|
+
#
|
278
|
+
# Resource events and ordering:
|
279
|
+
#
|
280
|
+
# 1. Start the action
|
281
|
+
# - resource_action_start
|
282
|
+
# 2. Check the guard
|
283
|
+
# - resource_skipped: (goto 7) if only_if/not_if say to skip
|
284
|
+
# 3. Load the current resource
|
285
|
+
# - resource_current_state_loaded
|
286
|
+
# - resource_current_state_load_bypassed (if not why-run safe)
|
287
|
+
# 4. Check if why-run safe
|
288
|
+
# - resource_bypassed: (goto 7) if not why-run safe
|
289
|
+
# 5. During processing:
|
290
|
+
# - resource_update_applied: For each actual change (many per action)
|
291
|
+
# 6. Processing complete status:
|
292
|
+
# - resource_failed if the resource threw an exception while running
|
293
|
+
# - resource_failed_retriable: (goto 3) if resource failed and will be retried
|
294
|
+
# - resource_updated if the resource was updated (resource_update_applied will have been called)
|
295
|
+
# - resource_up_to_date if the resource was up to date (no resource_update_applied)
|
296
|
+
# 7. Processing complete:
|
297
|
+
# - resource_completed
|
298
|
+
#
|
299
|
+
|
272
300
|
# Called before action is executed on a resource.
|
273
301
|
def resource_action_start(resource, action, notification_type=nil, notifier=nil)
|
274
302
|
end
|
275
303
|
|
276
|
-
# Called when a resource fails, but will retry.
|
277
|
-
def resource_failed_retriable(resource, action, retry_count, exception)
|
278
|
-
end
|
279
|
-
|
280
|
-
# Called when a resource fails and will not be retried.
|
281
|
-
def resource_failed(resource, action, exception)
|
282
|
-
end
|
283
|
-
|
284
304
|
# Called when a resource action has been skipped b/c of a conditional
|
285
305
|
def resource_skipped(resource, action, conditional)
|
286
306
|
end
|
287
307
|
|
288
|
-
# Called when a resource action has been completed
|
289
|
-
def resource_completed(resource)
|
290
|
-
end
|
291
|
-
|
292
308
|
# Called after #load_current_resource has run.
|
293
309
|
def resource_current_state_loaded(resource, action, current_resource)
|
294
310
|
end
|
@@ -302,21 +318,33 @@ class Chef
|
|
302
318
|
def resource_bypassed(resource, action, current_resource)
|
303
319
|
end
|
304
320
|
|
305
|
-
# Called when a resource has no converge actions, e.g., it was already correct.
|
306
|
-
def resource_up_to_date(resource, action)
|
307
|
-
end
|
308
|
-
|
309
321
|
# Called when a change has been made to a resource. May be called multiple
|
310
322
|
# times per resource, e.g., a file may have its content updated, and then
|
311
323
|
# its permissions updated.
|
312
324
|
def resource_update_applied(resource, action, update)
|
313
325
|
end
|
314
326
|
|
327
|
+
# Called when a resource fails, but will retry.
|
328
|
+
def resource_failed_retriable(resource, action, retry_count, exception)
|
329
|
+
end
|
330
|
+
|
331
|
+
# Called when a resource fails and will not be retried.
|
332
|
+
def resource_failed(resource, action, exception)
|
333
|
+
end
|
334
|
+
|
315
335
|
# Called after a resource has been completely converged, but only if
|
316
336
|
# modifications were made.
|
317
337
|
def resource_updated(resource, action)
|
318
338
|
end
|
319
339
|
|
340
|
+
# Called when a resource has no converge actions, e.g., it was already correct.
|
341
|
+
def resource_up_to_date(resource, action)
|
342
|
+
end
|
343
|
+
|
344
|
+
# Called when a resource action has been completed
|
345
|
+
def resource_completed(resource)
|
346
|
+
end
|
347
|
+
|
320
348
|
# A stream has opened.
|
321
349
|
def stream_opened(stream, options = {})
|
322
350
|
end
|
@@ -352,8 +380,9 @@ class Chef
|
|
352
380
|
def whyrun_assumption(action, resource, message)
|
353
381
|
end
|
354
382
|
|
355
|
-
|
356
|
-
|
383
|
+
# Emit a message about something being deprecated.
|
384
|
+
def deprecation(message, location=caller(2..2)[0])
|
385
|
+
end
|
357
386
|
|
358
387
|
# An uncategorized message. This supports the case that a user needs to
|
359
388
|
# pass output that doesn't fit into one of the callbacks above. Note that
|
@@ -25,18 +25,33 @@ class Chef
|
|
25
25
|
# define the forwarding in one go:
|
26
26
|
#
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
def call_subscribers(method_name, *args)
|
29
|
+
@subscribers.each do |s|
|
30
|
+
# Skip new/unsupported event names.
|
31
|
+
next if !s.respond_to?(method_name)
|
32
|
+
mth = s.method(method_name)
|
33
|
+
# Trim arguments to match what the subscriber expects to allow
|
34
|
+
# adding new arguments without breaking compat.
|
35
|
+
if mth.arity < args.size && mth.arity >= 0
|
36
|
+
mth.call(*args.take(mth.arity))
|
37
|
+
else
|
38
|
+
mth.call(*args)
|
39
|
+
end
|
32
40
|
end
|
33
41
|
end
|
34
42
|
|
35
43
|
(Base.instance_methods - Object.instance_methods).each do |method_name|
|
36
|
-
|
44
|
+
class_eval <<-EOM
|
45
|
+
def #{method_name}(*args)
|
46
|
+
call_subscribers(#{method_name.inspect}, *args)
|
47
|
+
end
|
48
|
+
EOM
|
37
49
|
end
|
38
50
|
|
51
|
+
# Special case deprecation, since it needs to know its caller
|
52
|
+
def deprecation(message, location=caller(2..2)[0])
|
53
|
+
call_subscribers(:deprecation, message, location)
|
54
|
+
end
|
39
55
|
end
|
40
56
|
end
|
41
57
|
end
|
42
|
-
|
@@ -0,0 +1,64 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Ranjib Dey (<ranjib@linux.com>)
|
3
|
+
# Copyright:: Copyright (c) 2015 Ranjib Dey
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
require 'chef/event_dispatch/base'
|
19
|
+
require 'chef/exceptions'
|
20
|
+
require 'chef/config'
|
21
|
+
|
22
|
+
class Chef
|
23
|
+
module EventDispatch
|
24
|
+
class DSL
|
25
|
+
attr_reader :handler
|
26
|
+
|
27
|
+
def initialize(name)
|
28
|
+
klass = Class.new(Chef::EventDispatch::Base) do
|
29
|
+
attr_reader :name
|
30
|
+
end
|
31
|
+
@handler = klass.new
|
32
|
+
@handler.instance_variable_set(:@name, name)
|
33
|
+
|
34
|
+
# Use event.register API to add anonymous handler if Chef.run_context
|
35
|
+
# and associated event dispatcher is set, else fallback to
|
36
|
+
# Chef::Config[:hanlder]
|
37
|
+
if Chef.run_context && Chef.run_context.events
|
38
|
+
Chef::Log.debug("Registering handler '#{name}' using events api")
|
39
|
+
Chef.run_context.events.register(handler)
|
40
|
+
else
|
41
|
+
Chef::Log.debug("Registering handler '#{name}' using global config")
|
42
|
+
Chef::Config[:event_handlers] << handler
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Adds a new event handler derived from base handler
|
47
|
+
# with user defined block against a chef event
|
48
|
+
#
|
49
|
+
# @return [Chef::EventDispatch::Base] a base handler object
|
50
|
+
def on(event_type, &block)
|
51
|
+
validate!(event_type)
|
52
|
+
handler.define_singleton_method(event_type) do |*args|
|
53
|
+
instance_exec(*args, &block)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
private
|
58
|
+
def validate!(event_type)
|
59
|
+
all_event_types = (Chef::EventDispatch::Base.instance_methods - Object.instance_methods)
|
60
|
+
raise Chef::Exceptions::InvalidEventType, "Invalid event type: #{event_type}" unless all_event_types.include?(event_type)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
data/lib/chef/exceptions.rb
CHANGED
@@ -17,12 +17,16 @@
|
|
17
17
|
# See the License for the specific language governing permissions and
|
18
18
|
# limitations under the License.
|
19
19
|
|
20
|
+
require 'chef-config/exceptions'
|
21
|
+
|
20
22
|
class Chef
|
21
23
|
# == Chef::Exceptions
|
22
24
|
# Chef's custom exceptions are all contained within the Chef::Exceptions
|
23
25
|
# namespace.
|
24
26
|
class Exceptions
|
25
27
|
|
28
|
+
ConfigurationError = ChefConfig::ConfigurationError
|
29
|
+
|
26
30
|
# Backcompat with Chef::ShellOut code:
|
27
31
|
require 'mixlib/shellout/exceptions'
|
28
32
|
|
@@ -68,7 +72,6 @@ class Chef
|
|
68
72
|
class DuplicateRole < RuntimeError; end
|
69
73
|
class ValidationFailed < ArgumentError; end
|
70
74
|
class InvalidPrivateKey < ArgumentError; end
|
71
|
-
class ConfigurationError < ArgumentError; end
|
72
75
|
class MissingKeyAttribute < ArgumentError; end
|
73
76
|
class KeyCommandInputError < ArgumentError; end
|
74
77
|
class InvalidKeyArgument < ArgumentError; end
|
@@ -100,6 +103,11 @@ class Chef
|
|
100
103
|
class ProviderNotFound < RuntimeError; end
|
101
104
|
NoProviderAvailable = ProviderNotFound
|
102
105
|
class VerificationNotFound < RuntimeError; end
|
106
|
+
class InvalidEventType < ArgumentError; end
|
107
|
+
class MultipleIdentityError < RuntimeError; end
|
108
|
+
# Used in Resource::ActionClass#load_current_resource to denote that
|
109
|
+
# the resource doesn't actually exist (for example, the file does not exist)
|
110
|
+
class CurrentValueDoesNotExist < RuntimeError; end
|
103
111
|
|
104
112
|
# Can't find a Resource of this type that is valid on this platform.
|
105
113
|
class NoSuchResourceType < NameError
|
@@ -108,6 +116,8 @@ class Chef
|
|
108
116
|
end
|
109
117
|
end
|
110
118
|
|
119
|
+
class InvalidPolicybuilderCall < ArgumentError; end
|
120
|
+
|
111
121
|
class InvalidResourceSpecification < ArgumentError; end
|
112
122
|
class SolrConnectionError < RuntimeError; end
|
113
123
|
class IllegalChecksumRevert < RuntimeError; end
|
@@ -121,6 +131,23 @@ class Chef
|
|
121
131
|
class EnclosingDirectoryDoesNotExist < ArgumentError; end
|
122
132
|
# Errors originating from calls to the Win32 API
|
123
133
|
class Win32APIError < RuntimeError; end
|
134
|
+
|
135
|
+
class Win32NetAPIError < Win32APIError
|
136
|
+
attr_reader :msg, :error_code
|
137
|
+
def initialize(msg, error_code)
|
138
|
+
@msg = msg
|
139
|
+
@error_code = error_code
|
140
|
+
|
141
|
+
formatted_message = ""
|
142
|
+
formatted_message << "---- Begin Win32 API output ----\n"
|
143
|
+
formatted_message << "Net Api Error Code: #{error_code}\n"
|
144
|
+
formatted_message << "Net Api Error Message: #{msg}\n"
|
145
|
+
formatted_message << "---- End Win32 API output ----\n"
|
146
|
+
|
147
|
+
super(formatted_message)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
124
151
|
# Thrown when Win32 API layer binds to non-existent Win32 function. Occurs
|
125
152
|
# when older versions of Windows don't support newer Win32 API functions.
|
126
153
|
class Win32APIFunctionNotImplemented < NotImplementedError; end
|