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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Author:: Nuo Yan <nuo@chef.io>
|
|
3
3
|
# Author:: Bryan McLellan <btm@loftninjas.org>
|
|
4
4
|
# Author:: Seth Chisamore <schisamo@chef.io>
|
|
5
|
-
# Copyright:: Copyright 2010-
|
|
5
|
+
# Copyright:: Copyright 2010-2017, Chef Software Inc.
|
|
6
6
|
# License:: Apache License, Version 2.0
|
|
7
7
|
#
|
|
8
8
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -49,10 +49,6 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
|
49
49
|
|
|
50
50
|
SERVICE_RIGHT = "SeServiceLogonRight"
|
|
51
51
|
|
|
52
|
-
def whyrun_supported?
|
|
53
|
-
false
|
|
54
|
-
end
|
|
55
|
-
|
|
56
52
|
def load_current_resource
|
|
57
53
|
@current_resource = Chef::Resource::WindowsService.new(@new_resource.name)
|
|
58
54
|
@current_resource.service_name(@new_resource.service_name)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: AJ Christensen (<aj@hjksolutions.com>)
|
|
3
3
|
# Author:: Davide Cavalca (<dcavalca@fb.com>)
|
|
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");
|
|
@@ -17,15 +17,12 @@
|
|
|
17
17
|
# limitations under the License.
|
|
18
18
|
#
|
|
19
19
|
|
|
20
|
-
require "chef/mixin/command"
|
|
21
20
|
require "chef/provider"
|
|
22
21
|
|
|
23
22
|
class Chef
|
|
24
23
|
class Provider
|
|
25
24
|
class Service < Chef::Provider
|
|
26
25
|
|
|
27
|
-
include Chef::Mixin::Command
|
|
28
|
-
|
|
29
26
|
def supports
|
|
30
27
|
@supports ||= new_resource.supports.dup
|
|
31
28
|
end
|
|
@@ -35,10 +32,6 @@ class Chef
|
|
|
35
32
|
@enabled = nil
|
|
36
33
|
end
|
|
37
34
|
|
|
38
|
-
def whyrun_supported?
|
|
39
|
-
true
|
|
40
|
-
end
|
|
41
|
-
|
|
42
35
|
def load_current_resource
|
|
43
36
|
supports[:status] = false if supports[:status].nil?
|
|
44
37
|
supports[:reload] = false if supports[:reload].nil?
|
|
@@ -51,21 +44,21 @@ class Chef
|
|
|
51
44
|
# XXX?: the #nil? check below will likely fail if this is a cloned resource or if
|
|
52
45
|
# we just run multiple actions.
|
|
53
46
|
def load_new_resource_state
|
|
54
|
-
if
|
|
55
|
-
|
|
47
|
+
if new_resource.enabled.nil?
|
|
48
|
+
new_resource.enabled(current_resource.enabled)
|
|
56
49
|
end
|
|
57
|
-
if
|
|
58
|
-
|
|
50
|
+
if new_resource.running.nil?
|
|
51
|
+
new_resource.running(current_resource.running)
|
|
59
52
|
end
|
|
60
|
-
if
|
|
61
|
-
|
|
53
|
+
if new_resource.masked.nil?
|
|
54
|
+
new_resource.masked(current_resource.masked)
|
|
62
55
|
end
|
|
63
56
|
end
|
|
64
57
|
|
|
65
58
|
# subclasses should override this if they do implement user services
|
|
66
59
|
def user_services_requirements
|
|
67
60
|
requirements.assert(:all_actions) do |a|
|
|
68
|
-
a.assertion {
|
|
61
|
+
a.assertion { new_resource.user.nil? }
|
|
69
62
|
a.failure_message Chef::Exceptions::UnsupportedAction, "#{self} does not support user services"
|
|
70
63
|
end
|
|
71
64
|
end
|
|
@@ -76,7 +69,7 @@ class Chef
|
|
|
76
69
|
|
|
77
70
|
def define_resource_requirements
|
|
78
71
|
requirements.assert(:reload) do |a|
|
|
79
|
-
a.assertion { supports[:reload] ||
|
|
72
|
+
a.assertion { supports[:reload] || new_resource.reload_command }
|
|
80
73
|
a.failure_message Chef::Exceptions::UnsupportedAction, "#{self} does not support :reload"
|
|
81
74
|
# if a service is not declared to support reload, that won't
|
|
82
75
|
# typically change during the course of a run - so no whyrun
|
|
@@ -85,97 +78,97 @@ class Chef
|
|
|
85
78
|
end
|
|
86
79
|
|
|
87
80
|
def action_enable
|
|
88
|
-
if
|
|
89
|
-
Chef::Log.debug("#{
|
|
81
|
+
if current_resource.enabled
|
|
82
|
+
Chef::Log.debug("#{new_resource} already enabled - nothing to do")
|
|
90
83
|
else
|
|
91
|
-
converge_by("enable service #{
|
|
84
|
+
converge_by("enable service #{new_resource}") do
|
|
92
85
|
enable_service
|
|
93
|
-
Chef::Log.info("#{
|
|
86
|
+
Chef::Log.info("#{new_resource} enabled")
|
|
94
87
|
end
|
|
95
88
|
end
|
|
96
89
|
load_new_resource_state
|
|
97
|
-
|
|
90
|
+
new_resource.enabled(true)
|
|
98
91
|
end
|
|
99
92
|
|
|
100
93
|
def action_disable
|
|
101
|
-
if
|
|
102
|
-
converge_by("disable service #{
|
|
94
|
+
if current_resource.enabled
|
|
95
|
+
converge_by("disable service #{new_resource}") do
|
|
103
96
|
disable_service
|
|
104
|
-
Chef::Log.info("#{
|
|
97
|
+
Chef::Log.info("#{new_resource} disabled")
|
|
105
98
|
end
|
|
106
99
|
else
|
|
107
|
-
Chef::Log.debug("#{
|
|
100
|
+
Chef::Log.debug("#{new_resource} already disabled - nothing to do")
|
|
108
101
|
end
|
|
109
102
|
load_new_resource_state
|
|
110
|
-
|
|
103
|
+
new_resource.enabled(false)
|
|
111
104
|
end
|
|
112
105
|
|
|
113
106
|
def action_mask
|
|
114
|
-
if
|
|
115
|
-
Chef::Log.debug("#{
|
|
107
|
+
if current_resource.masked
|
|
108
|
+
Chef::Log.debug("#{new_resource} already masked - nothing to do")
|
|
116
109
|
else
|
|
117
|
-
converge_by("mask service #{
|
|
110
|
+
converge_by("mask service #{new_resource}") do
|
|
118
111
|
mask_service
|
|
119
|
-
Chef::Log.info("#{
|
|
112
|
+
Chef::Log.info("#{new_resource} masked")
|
|
120
113
|
end
|
|
121
114
|
end
|
|
122
115
|
load_new_resource_state
|
|
123
|
-
|
|
116
|
+
new_resource.masked(true)
|
|
124
117
|
end
|
|
125
118
|
|
|
126
119
|
def action_unmask
|
|
127
|
-
if
|
|
128
|
-
converge_by("unmask service #{
|
|
120
|
+
if current_resource.masked
|
|
121
|
+
converge_by("unmask service #{new_resource}") do
|
|
129
122
|
unmask_service
|
|
130
|
-
Chef::Log.info("#{
|
|
123
|
+
Chef::Log.info("#{new_resource} unmasked")
|
|
131
124
|
end
|
|
132
125
|
else
|
|
133
|
-
Chef::Log.debug("#{
|
|
126
|
+
Chef::Log.debug("#{new_resource} already unmasked - nothing to do")
|
|
134
127
|
end
|
|
135
128
|
load_new_resource_state
|
|
136
|
-
|
|
129
|
+
new_resource.masked(false)
|
|
137
130
|
end
|
|
138
131
|
|
|
139
132
|
def action_start
|
|
140
|
-
unless
|
|
141
|
-
converge_by("start service #{
|
|
133
|
+
unless current_resource.running
|
|
134
|
+
converge_by("start service #{new_resource}") do
|
|
142
135
|
start_service
|
|
143
|
-
Chef::Log.info("#{
|
|
136
|
+
Chef::Log.info("#{new_resource} started")
|
|
144
137
|
end
|
|
145
138
|
else
|
|
146
|
-
Chef::Log.debug("#{
|
|
139
|
+
Chef::Log.debug("#{new_resource} already running - nothing to do")
|
|
147
140
|
end
|
|
148
141
|
load_new_resource_state
|
|
149
|
-
|
|
142
|
+
new_resource.running(true)
|
|
150
143
|
end
|
|
151
144
|
|
|
152
145
|
def action_stop
|
|
153
|
-
if
|
|
154
|
-
converge_by("stop service #{
|
|
146
|
+
if current_resource.running
|
|
147
|
+
converge_by("stop service #{new_resource}") do
|
|
155
148
|
stop_service
|
|
156
|
-
Chef::Log.info("#{
|
|
149
|
+
Chef::Log.info("#{new_resource} stopped")
|
|
157
150
|
end
|
|
158
151
|
else
|
|
159
|
-
Chef::Log.debug("#{
|
|
152
|
+
Chef::Log.debug("#{new_resource} already stopped - nothing to do")
|
|
160
153
|
end
|
|
161
154
|
load_new_resource_state
|
|
162
|
-
|
|
155
|
+
new_resource.running(false)
|
|
163
156
|
end
|
|
164
157
|
|
|
165
158
|
def action_restart
|
|
166
|
-
converge_by("restart service #{
|
|
159
|
+
converge_by("restart service #{new_resource}") do
|
|
167
160
|
restart_service
|
|
168
|
-
Chef::Log.info("#{
|
|
161
|
+
Chef::Log.info("#{new_resource} restarted")
|
|
169
162
|
end
|
|
170
163
|
load_new_resource_state
|
|
171
|
-
|
|
164
|
+
new_resource.running(true)
|
|
172
165
|
end
|
|
173
166
|
|
|
174
167
|
def action_reload
|
|
175
|
-
if
|
|
176
|
-
converge_by("reload service #{
|
|
168
|
+
if current_resource.running
|
|
169
|
+
converge_by("reload service #{new_resource}") do
|
|
177
170
|
reload_service
|
|
178
|
-
Chef::Log.info("#{
|
|
171
|
+
Chef::Log.info("#{new_resource} reloaded")
|
|
179
172
|
end
|
|
180
173
|
end
|
|
181
174
|
load_new_resource_state
|
|
@@ -216,17 +209,17 @@ class Chef
|
|
|
216
209
|
protected
|
|
217
210
|
|
|
218
211
|
def default_init_command
|
|
219
|
-
if
|
|
220
|
-
|
|
221
|
-
elsif
|
|
212
|
+
if new_resource.init_command
|
|
213
|
+
new_resource.init_command
|
|
214
|
+
elsif instance_variable_defined?(:@init_command)
|
|
222
215
|
@init_command
|
|
223
216
|
end
|
|
224
217
|
end
|
|
225
218
|
|
|
226
219
|
def custom_command_for_action?(action)
|
|
227
220
|
method_name = "#{action}_command".to_sym
|
|
228
|
-
|
|
229
|
-
|
|
221
|
+
new_resource.respond_to?(method_name) &&
|
|
222
|
+
!!new_resource.send(method_name)
|
|
230
223
|
end
|
|
231
224
|
|
|
232
225
|
module ServicePriorityInit
|
|
@@ -252,7 +245,7 @@ class Chef
|
|
|
252
245
|
Chef.set_provider_priority_array :service, [ Systemd, Arch ], platform_family: "arch"
|
|
253
246
|
Chef.set_provider_priority_array :service, [ Systemd, Gentoo ], platform_family: "gentoo"
|
|
254
247
|
Chef.set_provider_priority_array :service, [ Systemd, Upstart, Insserv, Debian, Invokercd ], platform_family: "debian"
|
|
255
|
-
Chef.set_provider_priority_array :service, [ Systemd, Insserv, Redhat ], platform_family: %w{rhel fedora suse}
|
|
248
|
+
Chef.set_provider_priority_array :service, [ Systemd, Insserv, Redhat ], platform_family: %w{rhel fedora suse amazon}
|
|
256
249
|
end
|
|
257
250
|
end
|
|
258
251
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Daniel DeLeo (<dan@kallistec.com>)
|
|
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");
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
|
|
21
21
|
require "chef/log"
|
|
22
22
|
require "chef/provider"
|
|
23
|
-
require "chef/mixin/command"
|
|
24
23
|
require "chef-config/mixin/fuzzy_hostname_matcher"
|
|
25
24
|
require "fileutils"
|
|
26
25
|
|
|
@@ -32,19 +31,14 @@ class Chef
|
|
|
32
31
|
|
|
33
32
|
SVN_INFO_PATTERN = /^([\w\s]+): (.+)$/
|
|
34
33
|
|
|
35
|
-
include Chef::Mixin::Command
|
|
36
34
|
include ChefConfig::Mixin::FuzzyHostnameMatcher
|
|
37
35
|
|
|
38
|
-
def whyrun_supported?
|
|
39
|
-
true
|
|
40
|
-
end
|
|
41
|
-
|
|
42
36
|
def load_current_resource
|
|
43
|
-
@current_resource = Chef::Resource::Subversion.new(
|
|
37
|
+
@current_resource = Chef::Resource::Subversion.new(new_resource.name)
|
|
44
38
|
|
|
45
|
-
unless [:export, :force_export].include?(Array(
|
|
39
|
+
unless [:export, :force_export].include?(Array(new_resource.action).first)
|
|
46
40
|
if current_revision = find_current_revision
|
|
47
|
-
|
|
41
|
+
current_resource.revision current_revision
|
|
48
42
|
end
|
|
49
43
|
end
|
|
50
44
|
end
|
|
@@ -53,21 +47,21 @@ class Chef
|
|
|
53
47
|
requirements.assert(:all_actions) do |a|
|
|
54
48
|
# Make sure the parent dir exists, or else fail.
|
|
55
49
|
# for why run, print a message explaining the potential error.
|
|
56
|
-
parent_directory = ::File.dirname(
|
|
50
|
+
parent_directory = ::File.dirname(new_resource.destination)
|
|
57
51
|
a.assertion { ::File.directory?(parent_directory) }
|
|
58
52
|
a.failure_message(Chef::Exceptions::MissingParentDirectory,
|
|
59
|
-
"Cannot clone #{
|
|
53
|
+
"Cannot clone #{new_resource} to #{new_resource.destination}, the enclosing directory #{parent_directory} does not exist")
|
|
60
54
|
a.whyrun("Directory #{parent_directory} does not exist, assuming it would have been created")
|
|
61
55
|
end
|
|
62
56
|
end
|
|
63
57
|
|
|
64
58
|
def action_checkout
|
|
65
59
|
if target_dir_non_existent_or_empty?
|
|
66
|
-
converge_by("perform checkout of #{
|
|
60
|
+
converge_by("perform checkout of #{new_resource.repository} into #{new_resource.destination}") do
|
|
67
61
|
shell_out!(checkout_command, run_options)
|
|
68
62
|
end
|
|
69
63
|
else
|
|
70
|
-
Chef::Log.debug "#{
|
|
64
|
+
Chef::Log.debug "#{new_resource} checkout destination #{new_resource.destination} already exists or is a non-empty directory - nothing to do"
|
|
71
65
|
end
|
|
72
66
|
end
|
|
73
67
|
|
|
@@ -75,25 +69,25 @@ class Chef
|
|
|
75
69
|
if target_dir_non_existent_or_empty?
|
|
76
70
|
action_force_export
|
|
77
71
|
else
|
|
78
|
-
Chef::Log.debug "#{
|
|
72
|
+
Chef::Log.debug "#{new_resource} export destination #{new_resource.destination} already exists or is a non-empty directory - nothing to do"
|
|
79
73
|
end
|
|
80
74
|
end
|
|
81
75
|
|
|
82
76
|
def action_force_export
|
|
83
|
-
converge_by("export #{
|
|
77
|
+
converge_by("export #{new_resource.repository} into #{new_resource.destination}") do
|
|
84
78
|
shell_out!(export_command, run_options)
|
|
85
79
|
end
|
|
86
80
|
end
|
|
87
81
|
|
|
88
82
|
def action_sync
|
|
89
83
|
assert_target_directory_valid!
|
|
90
|
-
if ::File.exist?(::File.join(
|
|
84
|
+
if ::File.exist?(::File.join(new_resource.destination, ".svn"))
|
|
91
85
|
current_rev = find_current_revision
|
|
92
|
-
Chef::Log.debug "#{
|
|
86
|
+
Chef::Log.debug "#{new_resource} current revision: #{current_rev} target revision: #{revision_int}"
|
|
93
87
|
unless current_revision_matches_target_revision?
|
|
94
|
-
converge_by("sync #{
|
|
88
|
+
converge_by("sync #{new_resource.destination} from #{new_resource.repository}") do
|
|
95
89
|
shell_out!(sync_command, run_options)
|
|
96
|
-
Chef::Log.info "#{
|
|
90
|
+
Chef::Log.info "#{new_resource} updated to revision: #{revision_int}"
|
|
97
91
|
end
|
|
98
92
|
end
|
|
99
93
|
else
|
|
@@ -102,24 +96,24 @@ class Chef
|
|
|
102
96
|
end
|
|
103
97
|
|
|
104
98
|
def sync_command
|
|
105
|
-
c = scm :update,
|
|
106
|
-
Chef::Log.debug "#{
|
|
99
|
+
c = scm :update, new_resource.svn_arguments, verbose, authentication, proxy, "-r#{revision_int}", new_resource.destination
|
|
100
|
+
Chef::Log.debug "#{new_resource} updated working copy #{new_resource.destination} to revision #{new_resource.revision}"
|
|
107
101
|
c
|
|
108
102
|
end
|
|
109
103
|
|
|
110
104
|
def checkout_command
|
|
111
|
-
c = scm :checkout,
|
|
112
|
-
"-r#{revision_int}",
|
|
113
|
-
Chef::Log.info "#{
|
|
105
|
+
c = scm :checkout, new_resource.svn_arguments, verbose, authentication, proxy,
|
|
106
|
+
"-r#{revision_int}", new_resource.repository, new_resource.destination
|
|
107
|
+
Chef::Log.info "#{new_resource} checked out #{new_resource.repository} at revision #{new_resource.revision} to #{new_resource.destination}"
|
|
114
108
|
c
|
|
115
109
|
end
|
|
116
110
|
|
|
117
111
|
def export_command
|
|
118
112
|
args = ["--force"]
|
|
119
|
-
args <<
|
|
120
|
-
"-r#{revision_int}" <<
|
|
113
|
+
args << new_resource.svn_arguments << verbose << authentication << proxy <<
|
|
114
|
+
"-r#{revision_int}" << new_resource.repository << new_resource.destination
|
|
121
115
|
c = scm :export, *args
|
|
122
|
-
Chef::Log.info "#{
|
|
116
|
+
Chef::Log.info "#{new_resource} exported #{new_resource.repository} at revision #{new_resource.revision} to #{new_resource.destination}"
|
|
123
117
|
c
|
|
124
118
|
end
|
|
125
119
|
|
|
@@ -128,10 +122,10 @@ class Chef
|
|
|
128
122
|
# If the specified revision is an integer, trust it.
|
|
129
123
|
def revision_int
|
|
130
124
|
@revision_int ||= begin
|
|
131
|
-
if
|
|
132
|
-
|
|
125
|
+
if new_resource.revision =~ /^\d+$/
|
|
126
|
+
new_resource.revision
|
|
133
127
|
else
|
|
134
|
-
command = scm(:info,
|
|
128
|
+
command = scm(:info, new_resource.repository, new_resource.svn_info_args, authentication, "-r#{new_resource.revision}")
|
|
135
129
|
svn_info = shell_out!(command, run_options(:cwd => cwd, :returns => [0, 1])).stdout
|
|
136
130
|
|
|
137
131
|
extract_revision_info(svn_info)
|
|
@@ -142,7 +136,7 @@ class Chef
|
|
|
142
136
|
alias :revision_slug :revision_int
|
|
143
137
|
|
|
144
138
|
def find_current_revision
|
|
145
|
-
return nil unless ::File.exist?(::File.join(
|
|
139
|
+
return nil unless ::File.exist?(::File.join(new_resource.destination, ".svn"))
|
|
146
140
|
command = scm(:info)
|
|
147
141
|
svn_info = shell_out!(command, run_options(:cwd => cwd, :returns => [0, 1])).stdout
|
|
148
142
|
|
|
@@ -150,20 +144,20 @@ class Chef
|
|
|
150
144
|
end
|
|
151
145
|
|
|
152
146
|
def current_revision_matches_target_revision?
|
|
153
|
-
(
|
|
147
|
+
(!current_resource.revision.nil?) && (revision_int.strip.to_i == current_resource.revision.strip.to_i)
|
|
154
148
|
end
|
|
155
149
|
|
|
156
150
|
def run_options(run_opts = {})
|
|
157
|
-
run_opts[:user] =
|
|
158
|
-
run_opts[:group] =
|
|
159
|
-
run_opts[:timeout] =
|
|
151
|
+
run_opts[:user] = new_resource.user if new_resource.user
|
|
152
|
+
run_opts[:group] = new_resource.group if new_resource.group
|
|
153
|
+
run_opts[:timeout] = new_resource.timeout if new_resource.timeout
|
|
160
154
|
run_opts
|
|
161
155
|
end
|
|
162
156
|
|
|
163
157
|
private
|
|
164
158
|
|
|
165
159
|
def cwd
|
|
166
|
-
|
|
160
|
+
new_resource.destination
|
|
167
161
|
end
|
|
168
162
|
|
|
169
163
|
def verbose
|
|
@@ -181,7 +175,7 @@ class Chef
|
|
|
181
175
|
rev = (repo_attrs["Last Changed Rev"] || repo_attrs["Revision"])
|
|
182
176
|
rev.strip! if rev
|
|
183
177
|
raise "Could not parse `svn info` data: #{svn_info}" if repo_attrs.empty?
|
|
184
|
-
Chef::Log.debug "#{
|
|
178
|
+
Chef::Log.debug "#{new_resource} resolved revision #{new_resource.revision} to #{rev}"
|
|
185
179
|
rev
|
|
186
180
|
end
|
|
187
181
|
|
|
@@ -190,14 +184,14 @@ class Chef
|
|
|
190
184
|
# switch, since Capistrano will check for that prompt in the output
|
|
191
185
|
# and will respond appropriately.
|
|
192
186
|
def authentication
|
|
193
|
-
return "" unless
|
|
194
|
-
result = "--username #{
|
|
195
|
-
result << "--password #{
|
|
187
|
+
return "" unless new_resource.svn_username
|
|
188
|
+
result = "--username #{new_resource.svn_username} "
|
|
189
|
+
result << "--password #{new_resource.svn_password} "
|
|
196
190
|
result
|
|
197
191
|
end
|
|
198
192
|
|
|
199
193
|
def proxy
|
|
200
|
-
repo_uri = URI.parse(
|
|
194
|
+
repo_uri = URI.parse(new_resource.repository)
|
|
201
195
|
proxy_uri = Chef::Config.proxy_uri(repo_uri.scheme, repo_uri.host, repo_uri.port)
|
|
202
196
|
return "" if proxy_uri.nil?
|
|
203
197
|
|
|
@@ -213,18 +207,18 @@ class Chef
|
|
|
213
207
|
end
|
|
214
208
|
|
|
215
209
|
def target_dir_non_existent_or_empty?
|
|
216
|
-
!::File.exist?(
|
|
210
|
+
!::File.exist?(new_resource.destination) || Dir.entries(new_resource.destination).sort == [".", ".."]
|
|
217
211
|
end
|
|
218
212
|
|
|
219
213
|
def svn_binary
|
|
220
|
-
|
|
214
|
+
new_resource.svn_binary ||
|
|
221
215
|
(Chef::Platform.windows? ? "svn.exe" : "svn")
|
|
222
216
|
end
|
|
223
217
|
|
|
224
218
|
def assert_target_directory_valid!
|
|
225
|
-
target_parent_directory = ::File.dirname(
|
|
219
|
+
target_parent_directory = ::File.dirname(new_resource.destination)
|
|
226
220
|
unless ::File.directory?(target_parent_directory)
|
|
227
|
-
msg = "Cannot clone #{
|
|
221
|
+
msg = "Cannot clone #{new_resource} to #{new_resource.destination}, the enclosing directory #{target_parent_directory} does not exist"
|
|
228
222
|
raise Chef::Exceptions::MissingParentDirectory, msg
|
|
229
223
|
end
|
|
230
224
|
end
|
|
@@ -20,6 +20,7 @@ require "chef/provider"
|
|
|
20
20
|
require "chef/mixin/which"
|
|
21
21
|
require "chef/mixin/shell_out"
|
|
22
22
|
require "chef/resource/file"
|
|
23
|
+
require "chef/resource/file/verification/systemd_unit"
|
|
23
24
|
require "iniparse"
|
|
24
25
|
|
|
25
26
|
class Chef
|
|
@@ -193,6 +194,7 @@ class Chef
|
|
|
193
194
|
f.group "root"
|
|
194
195
|
f.mode "0644"
|
|
195
196
|
f.content new_resource.to_ini
|
|
197
|
+
f.verify :systemd_unit if new_resource.verify
|
|
196
198
|
end.run_action(action)
|
|
197
199
|
end
|
|
198
200
|
|
|
@@ -36,7 +36,30 @@ class Chef
|
|
|
36
36
|
private
|
|
37
37
|
|
|
38
38
|
def file_for_provider
|
|
39
|
-
|
|
39
|
+
# Deal with any DelayedEvaluator values in the template variables.
|
|
40
|
+
visitor = lambda do |obj|
|
|
41
|
+
case obj
|
|
42
|
+
when Hash
|
|
43
|
+
# If this is an Attribute object, we need to change class otherwise
|
|
44
|
+
# we get the immutable behavior. This could probably be fixed by
|
|
45
|
+
# using Hash#transform_values once we only support Ruby 2.4.
|
|
46
|
+
obj_class = obj.is_a?(Chef::Node::ImmutableMash) ? Mash : obj.class
|
|
47
|
+
# Avoid mutating hashes in the resource in case we're changing anything.
|
|
48
|
+
obj.each_with_object(obj_class.new) do |(key, value), memo|
|
|
49
|
+
memo[key] = visitor.call(value)
|
|
50
|
+
end
|
|
51
|
+
when Array
|
|
52
|
+
# Avoid mutating arrays in the resource in case we're changing anything.
|
|
53
|
+
obj.map { |value| visitor.call(value) }
|
|
54
|
+
when DelayedEvaluator
|
|
55
|
+
new_resource.instance_eval(&obj)
|
|
56
|
+
else
|
|
57
|
+
obj
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
variables = visitor.call(new_resource.variables)
|
|
61
|
+
|
|
62
|
+
context = TemplateContext.new(variables)
|
|
40
63
|
context[:node] = run_context.node
|
|
41
64
|
context[:template_finder] = template_finder
|
|
42
65
|
|
|
@@ -19,25 +19,19 @@
|
|
|
19
19
|
|
|
20
20
|
require "chef/provider/template_finder"
|
|
21
21
|
require "chef/provider/file"
|
|
22
|
-
require "chef/deprecation/provider/template"
|
|
23
|
-
require "chef/deprecation/warnings"
|
|
24
22
|
|
|
25
23
|
class Chef
|
|
26
24
|
class Provider
|
|
27
25
|
class Template < Chef::Provider::File
|
|
28
26
|
provides :template
|
|
29
27
|
|
|
30
|
-
extend Chef::Deprecation::Warnings
|
|
31
|
-
include Chef::Deprecation::Provider::Template
|
|
32
|
-
add_deprecation_warnings_for(Chef::Deprecation::Provider::Template.instance_methods)
|
|
33
|
-
|
|
34
28
|
def initialize(new_resource, run_context)
|
|
35
29
|
@content_class = Chef::Provider::Template::Content
|
|
36
30
|
super
|
|
37
31
|
end
|
|
38
32
|
|
|
39
33
|
def load_current_resource
|
|
40
|
-
@current_resource = Chef::Resource::Template.new(
|
|
34
|
+
@current_resource = Chef::Resource::Template.new(new_resource.name)
|
|
41
35
|
super
|
|
42
36
|
end
|
|
43
37
|
|
|
@@ -55,8 +49,8 @@ class Chef
|
|
|
55
49
|
private
|
|
56
50
|
|
|
57
51
|
def managing_content?
|
|
58
|
-
return true if
|
|
59
|
-
return true if
|
|
52
|
+
return true if new_resource.checksum
|
|
53
|
+
return true if !new_resource.source.nil? && @action != :create_if_missing
|
|
60
54
|
false
|
|
61
55
|
end
|
|
62
56
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Dreamcat4 (<dreamcat4@gmail.com>)
|
|
3
|
-
# Copyright:: Copyright 2009-
|
|
3
|
+
# Copyright:: Copyright 2009-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");
|
|
@@ -297,7 +297,7 @@ user password using shadow hash.")
|
|
|
297
297
|
return
|
|
298
298
|
end
|
|
299
299
|
|
|
300
|
-
if
|
|
300
|
+
if new_resource.manage_home
|
|
301
301
|
validate_home_dir_specification!
|
|
302
302
|
|
|
303
303
|
if (current_resource.home == new_resource.home) && !new_home_exists?
|
|
@@ -442,7 +442,7 @@ user password using shadow hash.")
|
|
|
442
442
|
# and deleting home directory if needed.
|
|
443
443
|
#
|
|
444
444
|
def remove_user
|
|
445
|
-
if
|
|
445
|
+
if new_resource.manage_home
|
|
446
446
|
# Remove home directory
|
|
447
447
|
FileUtils.rm_rf(current_resource.home)
|
|
448
448
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright:: Copyright 2016, Chef Software Inc.
|
|
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");
|
|
@@ -52,14 +52,15 @@ class Chef
|
|
|
52
52
|
opts << "-s" << new_resource.shell if should_set?(:shell)
|
|
53
53
|
opts << "-u" << new_resource.uid if should_set?(:uid)
|
|
54
54
|
opts << "-d" << new_resource.home if updating_home?
|
|
55
|
-
opts << "-o" if non_unique
|
|
55
|
+
opts << "-o" if new_resource.non_unique
|
|
56
56
|
opts
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
def usermod_options
|
|
60
60
|
opts = []
|
|
61
|
+
opts += [ "-u", new_resource.uid ] if new_resource.non_unique
|
|
61
62
|
if updating_home?
|
|
62
|
-
if
|
|
63
|
+
if new_resource.manage_home
|
|
63
64
|
opts << "-m"
|
|
64
65
|
end
|
|
65
66
|
end
|
|
@@ -69,7 +70,7 @@ class Chef
|
|
|
69
70
|
def useradd_options
|
|
70
71
|
opts = []
|
|
71
72
|
opts << "-r" if new_resource.system
|
|
72
|
-
opts << if
|
|
73
|
+
opts << if new_resource.manage_home
|
|
73
74
|
"-m"
|
|
74
75
|
else
|
|
75
76
|
"-M"
|
|
@@ -79,7 +80,7 @@ class Chef
|
|
|
79
80
|
|
|
80
81
|
def userdel_options
|
|
81
82
|
opts = []
|
|
82
|
-
opts << "-r" if
|
|
83
|
+
opts << "-r" if new_resource.manage_home
|
|
83
84
|
opts << "-f" if new_resource.force
|
|
84
85
|
opts
|
|
85
86
|
end
|