chef 12.18.31 → 13.0.118
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +15 -11
- data/README.md +13 -13
- data/Rakefile +1 -19
- data/VERSION +1 -1
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
- data/acceptance/Gemfile +8 -5
- data/acceptance/Gemfile.lock +90 -81
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +8 -7
- data/lib/chef/api_client.rb +8 -15
- data/lib/chef/api_client_v1.rb +9 -11
- data/lib/chef/application/apply.rb +8 -10
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/exit_code.rb +11 -82
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +0 -1
- data/lib/chef/application/windows_service.rb +36 -37
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/application.rb +15 -25
- data/lib/chef/audit/audit_event_proxy.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +1 -1
- data/lib/chef/blacklist.rb +81 -0
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
- data/lib/chef/chef_fs/command_line.rb +15 -16
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_pattern.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
- data/lib/chef/chef_fs/file_system.rb +1 -1
- data/lib/chef/chef_fs/parallelizer.rb +9 -11
- data/lib/chef/client.rb +47 -11
- data/lib/chef/config_fetcher.rb +4 -4
- data/lib/chef/constants.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +10 -6
- data/lib/chef/cookbook/manifest_v0.rb +68 -0
- data/lib/chef/cookbook/manifest_v2.rb +41 -0
- data/lib/chef/cookbook/metadata.rb +25 -134
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
- data/lib/chef/cookbook/synchronizer.rb +24 -21
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +91 -65
- data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +69 -157
- data/lib/chef/data_bag.rb +1 -7
- data/lib/chef/data_bag_item.rb +5 -10
- data/lib/chef/data_collector/messages.rb +2 -0
- data/lib/chef/data_collector/resource_report.rb +32 -4
- data/lib/chef/data_collector.rb +3 -4
- data/lib/chef/decorator/unchain.rb +0 -16
- data/lib/chef/decorator.rb +1 -1
- data/lib/chef/deprecated.rb +53 -19
- data/lib/chef/dsl/audit.rb +2 -2
- data/lib/chef/dsl/declare_resource.rb +11 -17
- data/lib/chef/dsl/platform_introspection.rb +29 -31
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -4
- data/lib/chef/dsl/resources.rb +4 -13
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/environment.rb +9 -16
- data/lib/chef/event_dispatch/base.rb +16 -0
- data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
- data/lib/chef/exceptions.rb +6 -10
- data/lib/chef/file_access_control/unix.rb +14 -14
- data/lib/chef/file_access_control/windows.rb +1 -1
- data/lib/chef/formatters/error_description.rb +18 -1
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
- data/lib/chef/formatters/error_mapper.rb +6 -6
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
- data/lib/chef/http/api_versions.rb +54 -0
- data/lib/chef/http/authenticator.rb +15 -6
- data/lib/chef/http/json_output.rb +4 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/http.rb +39 -0
- data/lib/chef/json_compat.rb +7 -103
- data/lib/chef/key.rb +5 -10
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
- data/lib/chef/knife/bootstrap.rb +6 -0
- data/lib/chef/knife/configure.rb +1 -3
- data/lib/chef/knife/configure_client.rb +1 -3
- data/lib/chef/knife/cookbook_create.rb +1 -434
- data/lib/chef/knife/cookbook_download.rb +3 -4
- data/lib/chef/knife/cookbook_show.rb +7 -3
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- data/lib/chef/knife/core/bootstrap_context.rb +8 -7
- data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +2 -32
- data/lib/chef/knife/core/ui.rb +20 -27
- data/lib/chef/knife/data_bag_create.rb +6 -4
- data/lib/chef/knife/data_bag_secret_options.rb +1 -1
- data/lib/chef/knife/deps.rb +32 -34
- data/lib/chef/knife/edit.rb +1 -1
- data/lib/chef/knife/help.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/search.rb +9 -20
- data/lib/chef/knife/ssh.rb +62 -36
- data/lib/chef/knife/ssl_check.rb +1 -1
- data/lib/chef/knife/user_delete.rb +1 -1
- data/lib/chef/knife/xargs.rb +1 -1
- data/lib/chef/knife.rb +6 -7
- data/lib/chef/mash.rb +1 -1
- data/lib/chef/mixin/create_path.rb +3 -5
- data/lib/chef/mixin/from_file.rb +2 -2
- data/lib/chef/mixin/get_source_from_package.rb +2 -2
- data/lib/chef/mixin/notifying_block.rb +7 -9
- data/lib/chef/mixin/params_validate.rb +9 -8
- data/lib/chef/mixin/path_sanity.rb +17 -19
- data/lib/chef/mixin/securable.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +33 -29
- data/lib/chef/mixin/unformatter.rb +2 -2
- data/lib/chef/mixin/uris.rb +4 -6
- data/lib/chef/mixin/versioned_api.rb +84 -0
- data/lib/chef/mixin/which.rb +25 -8
- data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
- data/lib/chef/mixin/xml_escape.rb +3 -5
- data/lib/chef/mixins.rb +0 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
- data/lib/chef/node/attribute.rb +9 -32
- data/lib/chef/node/attribute_collections.rb +1 -19
- data/lib/chef/node/common_api.rb +5 -7
- data/lib/chef/node/immutable_collections.rb +42 -38
- data/lib/chef/node/mixin/immutablize_array.rb +1 -1
- data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
- data/lib/chef/node.rb +21 -20
- data/lib/chef/node_map.rb +2 -5
- data/lib/chef/org.rb +10 -17
- data/lib/chef/platform/provider_mapping.rb +2 -169
- data/lib/chef/platform/query_helpers.rb +1 -1
- data/lib/chef/platform/rebooter.rb +1 -2
- data/lib/chef/policy_builder/expand_node_object.rb +3 -29
- data/lib/chef/policy_builder/policyfile.rb +8 -6
- data/lib/chef/property.rb +66 -80
- data/lib/chef/provider/apt_repository.rb +6 -10
- data/lib/chef/provider/apt_update.rb +1 -7
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/breakpoint.rb +2 -2
- data/lib/chef/provider/cookbook_file.rb +3 -9
- data/lib/chef/provider/cron.rb +42 -60
- data/lib/chef/provider/deploy/revision.rb +3 -5
- data/lib/chef/provider/deploy.rb +82 -88
- data/lib/chef/provider/directory.rb +33 -37
- data/lib/chef/provider/dsc_resource.rb +23 -11
- data/lib/chef/provider/dsc_script.rb +1 -5
- data/lib/chef/provider/env/windows.rb +5 -1
- data/lib/chef/provider/env.rb +32 -30
- data/lib/chef/provider/erl_call.rb +15 -47
- data/lib/chef/provider/execute.rb +7 -8
- data/lib/chef/provider/file.rb +49 -61
- data/lib/chef/provider/git.rb +56 -60
- data/lib/chef/provider/group.rb +1 -7
- data/lib/chef/provider/http_request.rb +37 -41
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +0 -6
- data/lib/chef/provider/launchd.rb +6 -2
- data/lib/chef/provider/link.rb +51 -55
- data/lib/chef/provider/log.rb +3 -7
- data/lib/chef/provider/lwrp_base.rb +0 -9
- data/lib/chef/provider/mdadm.rb +25 -33
- data/lib/chef/provider/mount/aix.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +2 -2
- data/lib/chef/provider/mount.rb +1 -5
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/ohai.rb +1 -7
- data/lib/chef/provider/osx_profile.rb +24 -29
- data/lib/chef/provider/package/aix.rb +55 -53
- data/lib/chef/provider/package/apt.rb +15 -13
- data/lib/chef/provider/package/cab.rb +48 -20
- data/lib/chef/provider/package/chocolatey.rb +9 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
- data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
- data/lib/chef/provider/package/dnf/version.rb +1 -1
- data/lib/chef/provider/package/dnf.rb +21 -19
- data/lib/chef/provider/package/dpkg.rb +8 -9
- data/lib/chef/provider/package/freebsd/base.rb +10 -10
- data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
- data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
- data/lib/chef/provider/package/freebsd/port.rb +7 -7
- data/lib/chef/provider/package/homebrew.rb +11 -10
- data/lib/chef/provider/package/ips.rb +18 -24
- data/lib/chef/provider/package/macports.rb +23 -23
- data/lib/chef/provider/package/msu.rb +11 -12
- data/lib/chef/provider/package/openbsd.rb +25 -22
- data/lib/chef/provider/package/pacman.rb +16 -17
- data/lib/chef/provider/package/paludis.rb +26 -27
- data/lib/chef/provider/package/portage.rb +22 -23
- data/lib/chef/provider/package/powershell.rb +17 -17
- data/lib/chef/provider/package/rpm.rb +25 -26
- data/lib/chef/provider/package/rubygems.rb +64 -62
- data/lib/chef/provider/package/smartos.rb +16 -16
- data/lib/chef/provider/package/solaris.rb +44 -45
- data/lib/chef/provider/package/windows/exe.rb +6 -6
- data/lib/chef/provider/package/windows/msi.rb +7 -7
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
- data/lib/chef/provider/package/windows.rb +3 -3
- data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
- data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
- data/lib/chef/provider/package/yum.rb +319 -269
- data/lib/chef/provider/package/zypper.rb +10 -20
- data/lib/chef/provider/package.rb +71 -63
- data/lib/chef/provider/powershell_script.rb +15 -7
- data/lib/chef/provider/reboot.rb +10 -14
- data/lib/chef/provider/registry_key.rb +39 -43
- data/lib/chef/provider/remote_directory.rb +3 -15
- data/lib/chef/provider/remote_file.rb +3 -9
- data/lib/chef/provider/route.rb +1 -7
- data/lib/chef/provider/ruby_block.rb +4 -8
- data/lib/chef/provider/script.rb +42 -6
- data/lib/chef/provider/service/aix.rb +1 -5
- data/lib/chef/provider/service/debian.rb +15 -21
- data/lib/chef/provider/service/freebsd.rb +0 -1
- data/lib/chef/provider/service/gentoo.rb +0 -1
- data/lib/chef/provider/service/init.rb +0 -1
- data/lib/chef/provider/service/insserv.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +0 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +0 -5
- data/lib/chef/provider/service/solaris.rb +5 -4
- data/lib/chef/provider/service/systemd.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +10 -12
- data/lib/chef/provider/service/windows.rb +1 -5
- data/lib/chef/provider/service.rb +51 -58
- data/lib/chef/provider/subversion.rb +40 -46
- data/lib/chef/provider/systemd_unit.rb +2 -0
- data/lib/chef/provider/template/content.rb +24 -1
- data/lib/chef/provider/template.rb +3 -9
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/linux.rb +6 -5
- data/lib/chef/provider/user/pw.rb +4 -10
- data/lib/chef/provider/user/solaris.rb +2 -2
- data/lib/chef/provider/user/useradd.rb +5 -5
- data/lib/chef/provider/user.rb +43 -59
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
- data/lib/chef/provider/windows_task.rb +418 -0
- data/lib/chef/provider/yum_repository.rb +3 -6
- data/lib/chef/provider.rb +63 -115
- data/lib/chef/provider_resolver.rb +8 -34
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/recipe.rb +9 -1
- data/lib/chef/resource/action_class.rb +13 -17
- data/lib/chef/resource/apt_repository.rb +0 -1
- data/lib/chef/resource/apt_update.rb +3 -1
- data/lib/chef/resource/chef_gem.rb +4 -11
- data/lib/chef/resource/chocolatey_package.rb +4 -1
- data/lib/chef/resource/dnf_package.rb +6 -3
- data/lib/chef/resource/dsc_resource.rb +9 -1
- data/lib/chef/resource/execute.rb +66 -19
- data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
- data/lib/chef/resource/file/verification.rb +2 -7
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +16 -2
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +0 -2
- data/lib/chef/resource/mount.rb +5 -12
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/script.rb +8 -34
- data/lib/chef/resource/service.rb +15 -13
- data/lib/chef/resource/systemd_unit.rb +5 -0
- data/lib/chef/resource/user/aix_user.rb +1 -1
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +1 -10
- data/lib/chef/resource/user/pw_user.rb +1 -1
- data/lib/chef/resource/user/solaris_user.rb +1 -1
- data/lib/chef/resource/user/windows_user.rb +1 -1
- data/lib/chef/resource/user.rb +1 -19
- data/lib/chef/resource/windows_package.rb +4 -1
- data/lib/chef/resource/windows_task.rb +237 -0
- data/lib/chef/resource/yum_package.rb +13 -4
- data/lib/chef/resource/yum_repository.rb +0 -1
- data/lib/chef/resource/zypper_package.rb +2 -0
- data/lib/chef/resource.rb +90 -202
- data/lib/chef/resource_builder.rb +1 -65
- data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
- data/lib/chef/resource_collection/resource_list.rb +6 -0
- data/lib/chef/resource_collection/resource_set.rb +44 -17
- data/lib/chef/resource_collection.rb +10 -0
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resource_resolver.rb +1 -25
- data/lib/chef/resources.rb +1 -1
- data/lib/chef/role.rb +0 -6
- data/lib/chef/run_context/cookbook_compiler.rb +49 -5
- data/lib/chef/run_context.rb +4 -25
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
- data/lib/chef/search/query.rb +26 -31
- data/lib/chef/server_api.rb +2 -0
- data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/shell/shell_session.rb +14 -4
- data/lib/chef/shell.rb +32 -7
- data/lib/chef/user.rb +9 -16
- data/lib/chef/user_v1.rb +9 -16
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/selinux.rb +1 -1
- data/lib/chef/util/windows/net_group.rb +18 -30
- data/lib/chef/util/windows/net_use.rb +7 -11
- data/lib/chef/util/windows/net_user.rb +12 -18
- data/lib/chef/util/windows/volume.rb +9 -15
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/win32/api/file.rb +25 -31
- data/lib/chef/win32/api/installer.rb +2 -2
- data/lib/chef/win32/api.rb +4 -6
- data/lib/chef/win32/file.rb +4 -6
- data/lib/chef/win32/registry.rb +9 -9
- data/lib/chef/win32/security/acl.rb +2 -2
- data/lib/chef/win32/security/sid.rb +5 -0
- data/lib/chef/win32/security.rb +2 -2
- data/lib/chef/win32/unicode.rb +2 -2
- data/lib/chef/win32/version.rb +1 -1
- data/lib/chef.rb +1 -2
- data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
- data/spec/data/lwrp/resources/buck_passer.rb +5 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
- data/spec/data/prefer_metadata_json/metadata.json +51 -0
- data/spec/data/prefer_metadata_json/metadata.rb +6 -0
- data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
- data/spec/data/shef-config.rb +11 -10
- data/spec/functional/knife/ssh_spec.rb +34 -6
- data/spec/functional/rebooter_spec.rb +1 -0
- data/spec/functional/resource/bash_spec.rb +11 -45
- data/spec/functional/resource/batch_spec.rb +5 -1
- data/spec/functional/resource/cron_spec.rb +2 -2
- data/spec/functional/resource/dsc_script_spec.rb +2 -4
- data/spec/functional/resource/execute_spec.rb +17 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/template_spec.rb +33 -0
- data/spec/functional/resource/user/dscl_spec.rb +2 -4
- data/spec/functional/root_alias_spec.rb +78 -0
- data/spec/functional/shell_spec.rb +38 -40
- data/spec/integration/client/client_spec.rb +109 -16
- data/spec/integration/client/exit_code_spec.rb +1 -105
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
- data/spec/integration/knife/cookbook_download_spec.rb +0 -24
- data/spec/integration/knife/cookbook_show_spec.rb +12 -23
- data/spec/integration/knife/deps_spec.rb +5 -9
- data/spec/integration/knife/search_node_spec.rb +39 -0
- data/spec/integration/knife/serve_spec.rb +58 -22
- data/spec/integration/knife/upload_spec.rb +3 -11
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
- data/spec/integration/recipes/notifies_spec.rb +60 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
- data/spec/integration/recipes/resource_action_spec.rb +37 -30
- data/spec/spec_helper.rb +7 -0
- data/spec/support/chef_helpers.rb +5 -7
- data/spec/support/platform_helpers.rb +10 -3
- data/spec/support/platforms/prof/gc.rb +4 -6
- data/spec/support/shared/context/client.rb +9 -2
- data/spec/support/shared/functional/execute_resource.rb +150 -0
- data/spec/support/shared/functional/windows_script.rb +74 -4
- data/spec/support/shared/integration/knife_support.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +37 -9
- data/spec/support/shared/unit/provider/file.rb +10 -0
- data/spec/support/shared/unit/script_resource.rb +1 -9
- data/spec/unit/application/exit_code_spec.rb +4 -89
- data/spec/unit/application_spec.rb +39 -29
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
- data/spec/unit/client_spec.rb +72 -31
- data/spec/unit/config_fetcher_spec.rb +2 -2
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
- data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
- data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
- data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
- data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
- data/spec/unit/cookbook/metadata_spec.rb +29 -108
- data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
- data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
- data/spec/unit/cookbook_loader_spec.rb +17 -19
- data/spec/unit/cookbook_manifest_spec.rb +12 -44
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
- data/spec/unit/cookbook_spec.rb +10 -14
- data/spec/unit/cookbook_uploader_spec.rb +1 -1
- data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
- data/spec/unit/cookbook_version_spec.rb +19 -128
- data/spec/unit/data_bag_item_spec.rb +4 -0
- data/spec/unit/data_collector/messages_spec.rb +137 -0
- data/spec/unit/data_collector/resource_report_spec.rb +145 -0
- data/spec/unit/deprecation_spec.rb +0 -14
- data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
- data/spec/unit/formatters/error_description_spec.rb +52 -7
- data/spec/unit/http/api_versions_spec.rb +79 -0
- data/spec/unit/http/authenticator_spec.rb +20 -0
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
- data/spec/unit/json_compat_spec.rb +0 -32
- data/spec/unit/knife/bootstrap_spec.rb +34 -0
- data/spec/unit/knife/configure_client_spec.rb +0 -2
- data/spec/unit/knife/cookbook_create_spec.rb +1 -220
- data/spec/unit/knife/cookbook_download_spec.rb +46 -28
- data/spec/unit/knife/cookbook_show_spec.rb +42 -9
- data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
- data/spec/unit/knife/core/ui_spec.rb +21 -11
- data/spec/unit/knife/data_bag_create_spec.rb +65 -45
- data/spec/unit/knife/ssh_spec.rb +34 -36
- data/spec/unit/knife_spec.rb +2 -2
- data/spec/unit/lwrp_spec.rb +38 -127
- data/spec/unit/mixin/path_sanity_spec.rb +7 -7
- data/spec/unit/mixin/shell_out_spec.rb +18 -84
- data/spec/unit/mixin/versioned_api_spec.rb +128 -0
- data/spec/unit/mixin/which.rb +160 -0
- data/spec/unit/node/attribute_spec.rb +65 -33
- data/spec/unit/node/immutable_collections_spec.rb +104 -1
- data/spec/unit/node_map_spec.rb +1 -23
- data/spec/unit/node_spec.rb +81 -98
- data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
- data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
- data/spec/unit/property/validation_spec.rb +51 -69
- data/spec/unit/property_spec.rb +105 -125
- data/spec/unit/provider/apt_repository_spec.rb +33 -27
- data/spec/unit/provider/cron_spec.rb +15 -39
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/directory_spec.rb +10 -0
- data/spec/unit/provider/dsc_resource_spec.rb +175 -0
- data/spec/unit/provider/erl_call_spec.rb +5 -13
- data/spec/unit/provider/execute_spec.rb +3 -14
- data/spec/unit/provider/launchd_spec.rb +2 -2
- data/spec/unit/provider/package/aix_spec.rb +22 -22
- data/spec/unit/provider/package/apt_spec.rb +37 -27
- data/spec/unit/provider/package/cab_spec.rb +59 -5
- data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
- data/spec/unit/provider/package/dpkg_spec.rb +16 -16
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
- data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
- data/spec/unit/provider/package/homebrew_spec.rb +9 -9
- data/spec/unit/provider/package/ips_spec.rb +37 -31
- data/spec/unit/provider/package/macports_spec.rb +10 -10
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +6 -6
- data/spec/unit/provider/package/paludis_spec.rb +7 -7
- data/spec/unit/provider/package/portage_spec.rb +6 -7
- data/spec/unit/provider/package/rpm_spec.rb +23 -23
- data/spec/unit/provider/package/rubygems_spec.rb +135 -46
- data/spec/unit/provider/package/solaris_spec.rb +15 -15
- data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum_spec.rb +58 -50
- data/spec/unit/provider/package/zypper_spec.rb +54 -97
- data/spec/unit/provider/package_spec.rb +8 -0
- data/spec/unit/provider/powershell_script_spec.rb +14 -4
- data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +7 -1
- data/spec/unit/provider/script_spec.rb +49 -6
- data/spec/unit/provider/service/debian_service_spec.rb +14 -20
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/user/linux_spec.rb +5 -43
- data/spec/unit/provider/user/pw_spec.rb +7 -27
- data/spec/unit/provider/windows_task_spec.rb +392 -0
- data/spec/unit/provider_resolver_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +10 -3
- data/spec/unit/recipe_spec.rb +3 -172
- data/spec/unit/resource/chef_gem_spec.rb +16 -62
- data/spec/unit/resource/conditional_spec.rb +4 -4
- data/spec/unit/resource/cookbook_file_spec.rb +2 -2
- data/spec/unit/resource/cron_spec.rb +1 -1
- data/spec/unit/resource/deploy_spec.rb +4 -4
- data/spec/unit/resource/directory_spec.rb +2 -2
- data/spec/unit/resource/dsc_resource_spec.rb +6 -0
- data/spec/unit/resource/env_spec.rb +1 -1
- data/spec/unit/resource/execute_spec.rb +215 -1
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
- data/spec/unit/resource/file/verification_spec.rb +8 -14
- data/spec/unit/resource/file_spec.rb +3 -3
- data/spec/unit/resource/freebsd_package_spec.rb +2 -2
- data/spec/unit/resource/group_spec.rb +2 -2
- data/spec/unit/resource/ifconfig_spec.rb +1 -1
- data/spec/unit/resource/link_spec.rb +2 -2
- data/spec/unit/resource/mdadm_spec.rb +1 -1
- data/spec/unit/resource/mount_spec.rb +3 -3
- data/spec/unit/resource/ohai_spec.rb +1 -1
- data/spec/unit/resource/package_spec.rb +14 -4
- data/spec/unit/resource/registry_key_spec.rb +2 -2
- data/spec/unit/resource/remote_directory_spec.rb +2 -2
- data/spec/unit/resource/remote_file_spec.rb +2 -2
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/scm_spec.rb +2 -2
- data/spec/unit/resource/script_spec.rb +1 -1
- data/spec/unit/resource/service_spec.rb +25 -5
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/user_spec.rb +6 -6
- data/spec/unit/resource/windows_task_spec.rb +213 -0
- data/spec/unit/resource/yum_package_spec.rb +42 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
- data/spec/unit/resource_collection_spec.rb +4 -3
- data/spec/unit/resource_reporter_spec.rb +6 -6
- data/spec/unit/resource_spec.rb +55 -71
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
- data/spec/unit/runner_spec.rb +10 -28
- data/spec/unit/search/query_spec.rb +32 -34
- data/spec/unit/server_api_versions_spec.rb +44 -0
- data/spec/unit/shell/shell_session_spec.rb +33 -2
- data/spec/unit/util/selinux_spec.rb +3 -14
- data/spec/unit/win32/error_spec.rb +67 -0
- data/spec/unit/win32/security_spec.rb +66 -0
- data/tasks/bundle.rb +36 -52
- data/tasks/changelog.rb +1 -1
- data/tasks/dependencies.rb +54 -52
- data/tasks/version.rb +41 -0
- metadata +91 -76
- data/lib/chef/deprecation/mixin/template.rb +0 -48
- data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
- data/lib/chef/deprecation/provider/file.rb +0 -198
- data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
- data/lib/chef/deprecation/provider/remote_file.rb +0 -85
- data/lib/chef/deprecation/provider/template.rb +0 -63
- data/lib/chef/dsl/method_missing.rb +0 -75
- data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
- data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
- data/lib/chef/mixin/command/unix.rb +0 -220
- data/lib/chef/mixin/command/windows.rb +0 -71
- data/lib/chef/mixin/command.rb +0 -194
- data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
- data/lib/chef/provider/package/easy_install.rb +0 -135
- data/lib/chef/rest.rb +0 -210
- data/lib/chef/shell_out.rb +0 -13
- data/lib/chef/tasks/chef_repo.rake +0 -200
- data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
- data/spec/functional/rest_spec.rb +0 -95
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
- data/spec/unit/lib_backcompat_spec.rb +0 -34
- data/spec/unit/mixin/command_spec.rb +0 -107
- data/spec/unit/platform_spec.rb +0 -242
- data/spec/unit/provider/package/easy_install_spec.rb +0 -114
- data/spec/unit/resource/easy_install_package_spec.rb +0 -39
- data/spec/unit/rest/auth_credentials_spec.rb +0 -292
- data/spec/unit/rest_spec.rb +0 -753
- data/spec/unit/shell_out_spec.rb +0 -18
- data/tasks/bin/bundle-platform +0 -20
- data/tasks/bin/bundle-platform.bat +0 -2
- data/tasks/bin/bundler_patch.rb +0 -27
- data/tasks/bin/gem-version-diff +0 -37
- data/tasks/bundle_util.rb +0 -110
|
@@ -58,8 +58,9 @@ class Chef
|
|
|
58
58
|
|
|
59
59
|
def resolve
|
|
60
60
|
maybe_explicit_provider(resource) ||
|
|
61
|
+
maybe_custom_resource(resource) ||
|
|
61
62
|
maybe_dynamic_provider_resolution(resource, action) ||
|
|
62
|
-
|
|
63
|
+
raise(Chef::Exceptions::ProviderNotFound, "Cannot find a provider for #{resource} on #{node["platform"]} version #{node["platform_version"]}")
|
|
63
64
|
end
|
|
64
65
|
|
|
65
66
|
# Does NOT call provides? on the resource (it is assumed this is being
|
|
@@ -105,10 +106,14 @@ class Chef
|
|
|
105
106
|
end
|
|
106
107
|
end
|
|
107
108
|
|
|
109
|
+
# if its a custom resource, just grab the action class
|
|
110
|
+
def maybe_custom_resource(resource)
|
|
111
|
+
resource.class.action_class if resource.class.custom_resource?
|
|
112
|
+
end
|
|
113
|
+
|
|
108
114
|
# if resource.provider is set, just return one of those objects
|
|
109
115
|
def maybe_explicit_provider(resource)
|
|
110
|
-
|
|
111
|
-
resource.provider
|
|
116
|
+
resource.provider if resource.provider
|
|
112
117
|
end
|
|
113
118
|
|
|
114
119
|
# try dynamically finding a provider based on querying the providers to see what they support
|
|
@@ -126,11 +131,6 @@ class Chef
|
|
|
126
131
|
handler
|
|
127
132
|
end
|
|
128
133
|
|
|
129
|
-
# try the old static lookup of providers by platform
|
|
130
|
-
def maybe_chef_platform_lookup(resource)
|
|
131
|
-
Chef::Platform.find_provider_for_node(node, resource)
|
|
132
|
-
end
|
|
133
|
-
|
|
134
134
|
def priority_map
|
|
135
135
|
Chef.provider_priority_map
|
|
136
136
|
end
|
|
@@ -142,31 +142,5 @@ class Chef
|
|
|
142
142
|
def overrode_provides?(handler)
|
|
143
143
|
handler.method(:provides?).owner != Chef::Provider.method(:provides?).owner
|
|
144
144
|
end
|
|
145
|
-
|
|
146
|
-
module Deprecated
|
|
147
|
-
# return a deterministically sorted list of Chef::Provider subclasses
|
|
148
|
-
def providers
|
|
149
|
-
@providers ||= Chef::Provider.descendants
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
def enabled_handlers
|
|
153
|
-
@enabled_handlers ||= begin
|
|
154
|
-
handlers = super
|
|
155
|
-
if handlers.empty?
|
|
156
|
-
# Look through all providers, and find ones that return true to provides.
|
|
157
|
-
# Don't bother with ones that don't override provides?, since they
|
|
158
|
-
# would have been in enabled_handlers already if that were so. (It's a
|
|
159
|
-
# perf concern otherwise.)
|
|
160
|
-
handlers = providers.select { |handler| overrode_provides?(handler) && handler.provides?(node, resource) }
|
|
161
|
-
handlers.each do |handler|
|
|
162
|
-
message = "#{handler}.provides? returned true when asked if it provides DSL #{resource.resource_name}, but provides #{resource.resource_name.inspect} was never called! In Chef 13, this will break: you must call provides to mark the names you provide, even if you also override provides? yourself."
|
|
163
|
-
Chef.deprecated(:custom_resource, message)
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
handlers
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
end
|
|
170
|
-
prepend Deprecated
|
|
171
145
|
end
|
|
172
146
|
end
|
data/lib/chef/providers.rb
CHANGED
|
@@ -59,6 +59,7 @@ require "chef/provider/template"
|
|
|
59
59
|
require "chef/provider/user"
|
|
60
60
|
require "chef/provider/whyrun_safe_ruby_block"
|
|
61
61
|
require "chef/provider/yum_repository"
|
|
62
|
+
require "chef/provider/windows_task"
|
|
62
63
|
|
|
63
64
|
require "chef/provider/env/windows"
|
|
64
65
|
|
|
@@ -66,7 +67,6 @@ require "chef/provider/package/apt"
|
|
|
66
67
|
require "chef/provider/package/chocolatey"
|
|
67
68
|
require "chef/provider/package/dpkg"
|
|
68
69
|
require "chef/provider/package/dnf"
|
|
69
|
-
require "chef/provider/package/easy_install"
|
|
70
70
|
require "chef/provider/package/freebsd/port"
|
|
71
71
|
require "chef/provider/package/freebsd/pkg"
|
|
72
72
|
require "chef/provider/package/freebsd/pkgng"
|
data/lib/chef/recipe.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#--
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
3
|
# Author:: Christopher Walters (<cw@chef.io>)
|
|
4
|
-
# Copyright:: Copyright 2008-
|
|
4
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
5
5
|
# License:: Apache License, Version 2.0
|
|
6
6
|
#
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -104,5 +104,13 @@ class Chef
|
|
|
104
104
|
run_context.node.tags.delete(tag)
|
|
105
105
|
end
|
|
106
106
|
end
|
|
107
|
+
|
|
108
|
+
def to_s
|
|
109
|
+
"cookbook: #{cookbook_name ? cookbook_name : "(none)"}, recipe: #{recipe_name ? recipe_name : "(none)"} "
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def inspect
|
|
113
|
+
to_s
|
|
114
|
+
end
|
|
107
115
|
end
|
|
108
116
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: John Keiser (<jkeiser@chef.io)
|
|
3
|
-
# Copyright:: Copyright 2015-
|
|
3
|
+
# Copyright:: Copyright 2015-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -16,22 +16,19 @@
|
|
|
16
16
|
# limitations under the License.
|
|
17
17
|
#
|
|
18
18
|
|
|
19
|
+
require "chef/provider"
|
|
19
20
|
require "chef/exceptions"
|
|
20
21
|
require "chef/dsl/recipe"
|
|
21
22
|
|
|
22
23
|
class Chef
|
|
23
24
|
class Resource
|
|
24
|
-
|
|
25
|
+
class ActionClass < Chef::Provider
|
|
25
26
|
include Chef::DSL::Recipe
|
|
26
27
|
|
|
27
28
|
def to_s
|
|
28
29
|
"#{new_resource || "<no resource>"} action #{action ? action.inspect : "<no action>"}"
|
|
29
30
|
end
|
|
30
31
|
|
|
31
|
-
def whyrun_supported?
|
|
32
|
-
true
|
|
33
|
-
end
|
|
34
|
-
|
|
35
32
|
#
|
|
36
33
|
# If load_current_value! is defined on the resource, use that.
|
|
37
34
|
#
|
|
@@ -67,27 +64,26 @@ class Chef
|
|
|
67
64
|
@current_resource = current_resource
|
|
68
65
|
end
|
|
69
66
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
other.include_resource_dsl true
|
|
67
|
+
# XXX: remove in Chef-14
|
|
68
|
+
def self.include_resource_dsl?
|
|
69
|
+
true
|
|
74
70
|
end
|
|
75
71
|
|
|
76
|
-
|
|
72
|
+
class << self
|
|
77
73
|
#
|
|
78
74
|
# The Chef::Resource class this ActionClass was declared against.
|
|
79
75
|
#
|
|
80
76
|
# @return [Class] The Chef::Resource class this ActionClass was declared against.
|
|
81
77
|
#
|
|
82
78
|
attr_accessor :resource_class
|
|
79
|
+
end
|
|
83
80
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
def self.to_s
|
|
82
|
+
"#{resource_class} action provider"
|
|
83
|
+
end
|
|
87
84
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
end
|
|
85
|
+
def self.inspect
|
|
86
|
+
to_s
|
|
91
87
|
end
|
|
92
88
|
end
|
|
93
89
|
end
|
|
@@ -38,7 +38,6 @@ class Chef
|
|
|
38
38
|
|
|
39
39
|
property :cookbook, [String, nil, false], default: nil, desired_state: false, nillable: true, coerce: proc { |x| x ? x : nil }
|
|
40
40
|
property :cache_rebuild, [TrueClass, FalseClass], default: true, desired_state: false
|
|
41
|
-
property :sensitive, [TrueClass, FalseClass], default: false, desired_state: false
|
|
42
41
|
|
|
43
42
|
default_action :add
|
|
44
43
|
allowed_actions :add, :remove
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Thom May (<thom@chef.io>)
|
|
3
|
-
# Copyright:: Copyright (c) 2016 Chef Software
|
|
3
|
+
# Copyright:: Copyright (c) 2016-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -24,6 +24,8 @@ class Chef
|
|
|
24
24
|
resource_name :apt_update
|
|
25
25
|
provides :apt_update
|
|
26
26
|
|
|
27
|
+
# allow bare apt_update with no name
|
|
28
|
+
property :name, String, default: ""
|
|
27
29
|
property :frequency, Integer, default: 86_400
|
|
28
30
|
|
|
29
31
|
default_action :periodic
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Bryan McLellan <btm@loftninjas.org>
|
|
3
|
-
# Copyright:: Copyright 2012-
|
|
3
|
+
# Copyright:: Copyright 2012-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -28,19 +28,12 @@ class Chef
|
|
|
28
28
|
callbacks: {
|
|
29
29
|
"The chef_gem resource is restricted to the current gem environment, use gem_package to install to other environments." => proc { |v| v == "#{RbConfig::CONFIG['bindir']}/gem" },
|
|
30
30
|
}
|
|
31
|
-
property :compile_time, [ true, false
|
|
31
|
+
property :compile_time, [ true, false ], default: false, desired_state: false
|
|
32
32
|
|
|
33
33
|
def after_created
|
|
34
|
-
|
|
35
|
-
# Action could be an array of symbols, but probably won't (think install + enable for a package)
|
|
36
|
-
if compile_time.nil?
|
|
37
|
-
message = "#{self} chef_gem compile_time installation is deprecated. Please set `compile_time false` on the resource to use the new behavior, or set `compile_time true` on the resource if compile_time behavior is required."
|
|
38
|
-
Chef.deprecated :chef_gem_compile_time, message
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
if compile_time || compile_time.nil?
|
|
34
|
+
if compile_time
|
|
42
35
|
Array(action).each do |action|
|
|
43
|
-
|
|
36
|
+
run_action(action)
|
|
44
37
|
end
|
|
45
38
|
Gem.clear_paths
|
|
46
39
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
|
-
# Copyright:: Copyright 2008-
|
|
3
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -31,6 +31,9 @@ class Chef
|
|
|
31
31
|
@resource_name = :chocolatey_package
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
+
# windows can't take Array options yet
|
|
35
|
+
property :options, String
|
|
36
|
+
|
|
34
37
|
property :package_name, [String, Array], coerce: proc { |x| [x].flatten }
|
|
35
38
|
|
|
36
39
|
property :version, [String, Array], coerce: proc { |x| [x].flatten }
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright:: Copyright 2016, Chef Software
|
|
2
|
+
# Copyright:: Copyright 2016-2017, Chef Software Inc.
|
|
3
3
|
# License:: Apache License, Version 2.0
|
|
4
4
|
#
|
|
5
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -16,18 +16,21 @@
|
|
|
16
16
|
#
|
|
17
17
|
|
|
18
18
|
require "chef/resource/package"
|
|
19
|
+
require "chef/mixin/which"
|
|
20
|
+
require "chef/mixin/shell_out"
|
|
19
21
|
|
|
20
22
|
class Chef
|
|
21
23
|
class Resource
|
|
22
24
|
class DnfPackage < Chef::Resource::Package
|
|
23
25
|
extend Chef::Mixin::Which
|
|
26
|
+
extend Chef::Mixin::ShellOut
|
|
24
27
|
|
|
25
28
|
resource_name :dnf_package
|
|
26
29
|
|
|
27
30
|
allowed_actions :install, :upgrade, :remove, :purge, :reconfig, :lock, :unlock, :flush_cache
|
|
28
31
|
|
|
29
|
-
provides :package,
|
|
30
|
-
which("dnf")
|
|
32
|
+
provides :package, platform_family: %w{rhel fedora amazon} do
|
|
33
|
+
which("dnf") && shell_out("rpm -q dnf").stdout =~ /^dnf-[1-9]/
|
|
31
34
|
end
|
|
32
35
|
|
|
33
36
|
provides :dnf_package
|
|
@@ -29,7 +29,7 @@ class Chef
|
|
|
29
29
|
# to dump the actual ivars
|
|
30
30
|
class ToTextHash < Hash
|
|
31
31
|
def to_text
|
|
32
|
-
descriptions =
|
|
32
|
+
descriptions = map do |(property, obj)|
|
|
33
33
|
obj_text = if obj.respond_to?(:to_text)
|
|
34
34
|
obj.to_text
|
|
35
35
|
else
|
|
@@ -68,6 +68,14 @@ class Chef
|
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
+
def module_version(arg = nil)
|
|
72
|
+
set_or_return(
|
|
73
|
+
:module_version,
|
|
74
|
+
arg,
|
|
75
|
+
:kind_of => [ String ]
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
|
|
71
79
|
def property(property_name, value = nil)
|
|
72
80
|
if not property_name.is_a?(Symbol)
|
|
73
81
|
raise TypeError, "A property name of type Symbol must be specified, '#{property_name}' of type #{property_name.class} was given"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
3
|
# Author:: Tyler Cloke (<tyler@chef.io>)
|
|
4
|
-
# Copyright:: Copyright 2008-
|
|
4
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
5
5
|
# License:: Apache License, Version 2.0
|
|
6
6
|
#
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -42,7 +42,6 @@ class Chef
|
|
|
42
42
|
@cwd = nil
|
|
43
43
|
@environment = nil
|
|
44
44
|
@group = nil
|
|
45
|
-
@path = nil
|
|
46
45
|
@returns = 0
|
|
47
46
|
@timeout = nil
|
|
48
47
|
@user = nil
|
|
@@ -109,16 +108,6 @@ class Chef
|
|
|
109
108
|
:kind_of => [ TrueClass, FalseClass ])
|
|
110
109
|
end
|
|
111
110
|
|
|
112
|
-
def path(arg = nil)
|
|
113
|
-
Chef::Log.warn "The 'path' attribute of 'execute' is not used by any provider in Chef 11 or Chef 12. Use 'environment' attribute to configure 'PATH'. This attribute will be removed in Chef 13."
|
|
114
|
-
|
|
115
|
-
set_or_return(
|
|
116
|
-
:path,
|
|
117
|
-
arg,
|
|
118
|
-
:kind_of => [ Array ]
|
|
119
|
-
)
|
|
120
|
-
end
|
|
121
|
-
|
|
122
111
|
def returns(arg = nil)
|
|
123
112
|
set_or_return(
|
|
124
113
|
:returns,
|
|
@@ -135,13 +124,13 @@ class Chef
|
|
|
135
124
|
)
|
|
136
125
|
end
|
|
137
126
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
127
|
+
property :user, [ String, Integer ]
|
|
128
|
+
|
|
129
|
+
property :domain, String
|
|
130
|
+
|
|
131
|
+
property :password, String, sensitive: true
|
|
132
|
+
|
|
133
|
+
property :sensitive, [ TrueClass, FalseClass ], default: false, coerce: proc { |x| password ? true : x }
|
|
145
134
|
|
|
146
135
|
def self.set_guard_inherited_attributes(*inherited_attributes)
|
|
147
136
|
@class_inherited_attributes = inherited_attributes
|
|
@@ -159,6 +148,64 @@ class Chef
|
|
|
159
148
|
ancestor_attributes.concat(@class_inherited_attributes ? @class_inherited_attributes : []).uniq
|
|
160
149
|
end
|
|
161
150
|
|
|
151
|
+
def after_created
|
|
152
|
+
validate_identity_platform(user, password, domain)
|
|
153
|
+
identity = qualify_user(user, password, domain)
|
|
154
|
+
domain(identity[:domain])
|
|
155
|
+
user(identity[:user])
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
def validate_identity_platform(specified_user, password = nil, specified_domain = nil)
|
|
159
|
+
if node[:platform_family] == "windows"
|
|
160
|
+
if specified_user && password.nil?
|
|
161
|
+
raise ArgumentError, "A value for `password` must be specified when a value for `user` is specified on the Windows platform"
|
|
162
|
+
end
|
|
163
|
+
else
|
|
164
|
+
if password || specified_domain
|
|
165
|
+
raise Exceptions::UnsupportedPlatform, "Values for `domain` and `password` are only supported on the Windows platform"
|
|
166
|
+
end
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
def qualify_user(specified_user, password = nil, specified_domain = nil)
|
|
171
|
+
domain = specified_domain
|
|
172
|
+
user = specified_user
|
|
173
|
+
|
|
174
|
+
if specified_user.nil? && ! specified_domain.nil?
|
|
175
|
+
raise ArgumentError, "The domain `#{specified_domain}` was specified, but no user name was given"
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
# if domain is provided in both username and domain
|
|
179
|
+
if specified_user && ((specified_user.include? '\\') || (specified_user.include? "@")) && specified_domain
|
|
180
|
+
raise ArgumentError, "The domain is provided twice. Username: `#{specified_user}`, Domain: `#{specified_domain}`. Please specify domain only once."
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
if ! specified_user.nil? && specified_domain.nil?
|
|
184
|
+
# Splitting username of format: Domain\Username
|
|
185
|
+
domain_and_user = user.split('\\')
|
|
186
|
+
|
|
187
|
+
if domain_and_user.length == 2
|
|
188
|
+
domain = domain_and_user[0]
|
|
189
|
+
user = domain_and_user[1]
|
|
190
|
+
elsif domain_and_user.length == 1
|
|
191
|
+
# Splitting username of format: Username@Domain
|
|
192
|
+
domain_and_user = user.split("@")
|
|
193
|
+
if domain_and_user.length == 2
|
|
194
|
+
domain = domain_and_user[1]
|
|
195
|
+
user = domain_and_user[0]
|
|
196
|
+
elsif domain_and_user.length != 1
|
|
197
|
+
raise ArgumentError, "The specified user name `#{user}` is not a syntactically valid user name"
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
if ( password || domain ) && user.nil?
|
|
203
|
+
raise ArgumentError, "A value for `password` or `domain` was specified without specification of a value for `user`"
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
{ domain: domain, user: user }
|
|
207
|
+
end
|
|
208
|
+
|
|
162
209
|
set_guard_inherited_attributes(
|
|
163
210
|
:cwd,
|
|
164
211
|
:environment,
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Author:: Mal Graty (<mal.graty@googlemail.com>)
|
|
3
|
+
# Copyright:: Copyright 2013-2017, Chef Software Inc.
|
|
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
|
+
|
|
19
|
+
require "chef/mixin/which"
|
|
20
|
+
|
|
21
|
+
class Chef
|
|
22
|
+
class Resource
|
|
23
|
+
class File
|
|
24
|
+
class Verification
|
|
25
|
+
|
|
26
|
+
#
|
|
27
|
+
# Systemd provides a binary for verifying the correctness of
|
|
28
|
+
# unit files. Unfortunately some units have constraints on the
|
|
29
|
+
# filename meaning that normal verification against temp files
|
|
30
|
+
# won't work.
|
|
31
|
+
#
|
|
32
|
+
# Working around that requires placing a copy of the temp file
|
|
33
|
+
# in a temp directory, under its real name and running the
|
|
34
|
+
# verification tool against that file.
|
|
35
|
+
#
|
|
36
|
+
|
|
37
|
+
class SystemdUnit < Chef::Resource::File::Verification
|
|
38
|
+
include Chef::Mixin::Which
|
|
39
|
+
|
|
40
|
+
provides :systemd_unit
|
|
41
|
+
|
|
42
|
+
def initialize(parent_resource, command, opts, &block)
|
|
43
|
+
super
|
|
44
|
+
@command = systemd_analyze_cmd
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def verify(path, opts = {})
|
|
48
|
+
return true unless systemd_analyze_path
|
|
49
|
+
Dir.mktmpdir("chef-systemd-unit") do |dir|
|
|
50
|
+
temp = "#{dir}/#{::File.basename(@parent_resource.path)}"
|
|
51
|
+
::FileUtils.cp(path, temp)
|
|
52
|
+
verify_command(temp, opts)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def systemd_analyze_cmd
|
|
57
|
+
@systemd_analyze_cmd ||= "#{systemd_analyze_path} verify %{path}"
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def systemd_analyze_path
|
|
61
|
+
@systemd_analyze_path ||= which("systemd-analyze")
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -106,15 +106,10 @@ class Chef
|
|
|
106
106
|
# We reuse Chef::GuardInterpreter in order to support
|
|
107
107
|
# the same set of options that the not_if/only_if blocks do
|
|
108
108
|
def verify_command(path, opts)
|
|
109
|
-
# First implementation interpolated `file`; docs & RFC claim `path`
|
|
110
|
-
# is interpolated. Until `file` can be deprecated, interpolate both.
|
|
111
109
|
if @command.include?("%{file}")
|
|
112
|
-
|
|
113
|
-
"%{file} is deprecated in verify command and will not be "\
|
|
114
|
-
"supported in Chef 13. Please use %{path} instead."
|
|
115
|
-
)
|
|
110
|
+
raise ArgumentError, "The %{file} expansion for verify commands has been removed. Please use %{path} instead."
|
|
116
111
|
end
|
|
117
|
-
command = @command % { :
|
|
112
|
+
command = @command % { :path => path }
|
|
118
113
|
interpreter = Chef::GuardInterpreter.for_resource(@parent_resource, command, @command_opts)
|
|
119
114
|
interpreter.evaluate
|
|
120
115
|
end
|
|
@@ -37,7 +37,7 @@ class Chef
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def supports_pkgng?
|
|
40
|
-
ships_with_pkgng? || !!
|
|
40
|
+
ships_with_pkgng? || !!shell_out_compact!("make", "-V", "WITH_PKGNG", :env => nil).stdout.match(/yes/i)
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
private
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
|
-
# Copyright:: Copyright 2008-
|
|
3
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -23,18 +23,32 @@ class Chef
|
|
|
23
23
|
class GemPackage < Chef::Resource::Package
|
|
24
24
|
resource_name :gem_package
|
|
25
25
|
|
|
26
|
+
# the source can either be a path to a package source like:
|
|
27
|
+
# source /var/tmp/mygem-1.2.3.4.gem
|
|
28
|
+
# or it can be a url rubygems source like:
|
|
29
|
+
# https://www.rubygems.org
|
|
30
|
+
# the default has to be nil in order for the magical wiring up of the name property to
|
|
31
|
+
# the source pathname to work correctly.
|
|
32
|
+
#
|
|
33
|
+
# we don't do coercions here because its all a bit too complicated
|
|
34
|
+
#
|
|
35
|
+
# FIXME? the array form of installing paths most likely does not work?
|
|
36
|
+
#
|
|
26
37
|
property :source, [ String, Array ]
|
|
27
38
|
property :clear_sources, [ true, false ], default: false, desired_state: false
|
|
28
39
|
# Sets a custom gem_binary to run for gem commands.
|
|
29
40
|
property :gem_binary, String, desired_state: false
|
|
30
41
|
|
|
42
|
+
# set to false to avoid including Chef::Config[:rubygems_url] in the sources
|
|
43
|
+
property :include_default_source, [ TrueClass, FalseClass ], default: true
|
|
44
|
+
|
|
31
45
|
##
|
|
32
46
|
# Options for the gem install, either a Hash or a String. When a hash is
|
|
33
47
|
# given, the options are passed to Gem::DependencyInstaller.new, and the
|
|
34
48
|
# gem will be installed via the gems API. When a String is given, the gem
|
|
35
49
|
# will be installed by shelling out to the gem command. Using a Hash of
|
|
36
50
|
# options with an explicit gem_binary will result in undefined behavior.
|
|
37
|
-
property :options, [ String, Hash, nil ], desired_state: false
|
|
51
|
+
property :options, [ String, Hash, Array, nil ], desired_state: false
|
|
38
52
|
|
|
39
53
|
end
|
|
40
54
|
end
|
|
@@ -27,13 +27,13 @@ class Chef
|
|
|
27
27
|
identity_attr :label
|
|
28
28
|
|
|
29
29
|
default_action :create
|
|
30
|
-
allowed_actions :create, :create_if_missing, :delete, :enable, :disable
|
|
30
|
+
allowed_actions :create, :create_if_missing, :delete, :enable, :disable, :restart
|
|
31
31
|
|
|
32
32
|
property :label, String, default: lazy { name }, identity: true
|
|
33
33
|
property :backup, [Integer, FalseClass]
|
|
34
34
|
property :cookbook, String
|
|
35
35
|
property :group, [String, Integer]
|
|
36
|
-
property :
|
|
36
|
+
property :plist_hash, Hash
|
|
37
37
|
property :mode, [String, Integer]
|
|
38
38
|
property :owner, [String, Integer]
|
|
39
39
|
property :path, String
|
|
@@ -114,7 +114,7 @@ class Chef
|
|
|
114
114
|
property :ld_group, String
|
|
115
115
|
property :limit_load_from_hosts, Array
|
|
116
116
|
property :limit_load_to_hosts, Array
|
|
117
|
-
property :limit_load_to_session_type, Array
|
|
117
|
+
property :limit_load_to_session_type, [ Array, String ]
|
|
118
118
|
property :low_priority_io, [ TrueClass, FalseClass ]
|
|
119
119
|
property :mach_services, Hash
|
|
120
120
|
property :nice, Integer
|
data/lib/chef/resource/mount.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Joshua Timberman (<joshua@chef.io>)
|
|
3
3
|
# Author:: Tyler Cloke (<tyler@chef.io>)
|
|
4
|
-
# Copyright:: Copyright 2009-
|
|
4
|
+
# Copyright:: Copyright 2009-2017, Chef Software Inc.
|
|
5
5
|
# License:: Apache License, Version 2.0
|
|
6
6
|
#
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -30,6 +30,10 @@ class Chef
|
|
|
30
30
|
default_action :mount
|
|
31
31
|
allowed_actions :mount, :umount, :unmount, :remount, :enable, :disable
|
|
32
32
|
|
|
33
|
+
# this is a poor API please do not re-use this pattern
|
|
34
|
+
property :supports, Hash, default: lazy { { remount: false } },
|
|
35
|
+
coerce: proc { |x| x.is_a?(Array) ? x.each_with_object({}) { |i, m| m[i] = true } : x }
|
|
36
|
+
|
|
33
37
|
def initialize(name, run_context = nil)
|
|
34
38
|
super
|
|
35
39
|
@mount_point = name
|
|
@@ -42,7 +46,6 @@ class Chef
|
|
|
42
46
|
@pass = 2
|
|
43
47
|
@mounted = false
|
|
44
48
|
@enabled = false
|
|
45
|
-
@supports = { :remount => false }
|
|
46
49
|
@username = nil
|
|
47
50
|
@password = nil
|
|
48
51
|
@domain = nil
|
|
@@ -140,16 +143,6 @@ class Chef
|
|
|
140
143
|
)
|
|
141
144
|
end
|
|
142
145
|
|
|
143
|
-
def supports(args = {})
|
|
144
|
-
if args.is_a? Array
|
|
145
|
-
args.each { |arg| @supports[arg] = true }
|
|
146
|
-
elsif args.any?
|
|
147
|
-
@supports = args
|
|
148
|
-
else
|
|
149
|
-
@supports
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
|
|
153
146
|
def username(arg = nil)
|
|
154
147
|
set_or_return(
|
|
155
148
|
:username,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
3
|
# Author:: Tyler Cloke (<tyler@chef.io>)
|
|
4
|
-
# Copyright:: Copyright 2008-
|
|
4
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
5
5
|
# License:: Apache License, Version 2.0
|
|
6
6
|
#
|
|
7
7
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -36,7 +36,7 @@ class Chef
|
|
|
36
36
|
property :package_name, [ String, Array ], identity: true
|
|
37
37
|
|
|
38
38
|
property :version, [ String, Array ]
|
|
39
|
-
property :options, String
|
|
39
|
+
property :options, [ String, Array ], coerce: proc { |x| x.is_a?(String) ? x.shellsplit : x }
|
|
40
40
|
property :response_file, String, desired_state: false
|
|
41
41
|
property :response_file_variables, Hash, default: lazy { {} }, desired_state: false
|
|
42
42
|
property :source, String, desired_state: false
|