chef 15.17.4 → 16.0.257
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +14 -20
- data/README.md +6 -6
- data/Rakefile +18 -23
- data/chef-universal-mingw32.gemspec +4 -4
- data/chef.gemspec +10 -26
- data/lib/chef/action_collection.rb +16 -5
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +20 -3
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +6 -2
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +0 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +5 -5
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -3
- data/lib/chef/client.rb +16 -14
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +45 -22
- data/lib/chef/cookbook_version.rb +40 -5
- data/lib/chef/data_bag.rb +2 -2
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/deprecated.rb +1 -9
- data/lib/chef/dist.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +84 -0
- data/lib/chef/dsl/declare_resource.rb +7 -5
- data/lib/chef/dsl/platform_introspection.rb +2 -3
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- data/lib/chef/environment.rb +2 -2
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +0 -3
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -2
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/knife.rb +1 -3
- data/lib/chef/knife/acl_add.rb +57 -0
- data/lib/chef/knife/acl_base.rb +183 -0
- data/lib/chef/knife/acl_bulk_add.rb +78 -0
- data/lib/chef/knife/acl_bulk_remove.rb +83 -0
- data/lib/chef/knife/acl_remove.rb +62 -0
- data/lib/chef/knife/acl_show.rb +56 -0
- data/lib/chef/knife/bootstrap.rb +93 -97
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +20 -20
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +13 -15
- data/lib/chef/knife/bootstrap/train_connector.rb +0 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -3
- data/lib/chef/knife/core/node_presenter.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +17 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +45 -58
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/exec.rb +2 -2
- data/lib/chef/knife/group_add.rb +55 -0
- data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
- data/lib/chef/knife/group_destroy.rb +53 -0
- data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
- data/lib/chef/knife/group_remove.rb +56 -0
- data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -50
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +1 -2
- data/lib/chef/knife/supermarket_list.rb +1 -2
- data/lib/chef/knife/supermarket_search.rb +1 -2
- data/lib/chef/knife/supermarket_share.rb +1 -2
- data/lib/chef/knife/supermarket_show.rb +1 -2
- data/lib/chef/knife/supermarket_unshare.rb +1 -2
- data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
- data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
- data/lib/chef/knife/user_invite_list.rb +34 -0
- data/lib/chef/knife/user_invite_recind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +3 -26
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +13 -1
- data/lib/chef/mixin/shell_out.rb +0 -4
- data/lib/chef/mixin/template.rb +0 -1
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
- data/lib/chef/node/mixin/immutablize_array.rb +4 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
- data/lib/chef/node_map.rb +7 -36
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +22 -4
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +2 -8
- data/lib/chef/provider/file.rb +5 -5
- data/lib/chef/provider/git.rb +84 -27
- data/lib/chef/provider/group.rb +4 -4
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/launchd.rb +36 -51
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/mount/solaris.rb +1 -0
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +3 -4
- data/lib/chef/provider/package/chocolatey.rb +1 -3
- data/lib/chef/provider/package/dnf.rb +66 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +84 -30
- data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
- data/lib/chef/provider/package/dnf/version.rb +5 -1
- data/lib/chef/provider/package/freebsd/pkgng.rb +1 -3
- data/lib/chef/provider/package/homebrew.rb +106 -42
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/powershell.rb +2 -6
- data/lib/chef/provider/package/rubygems.rb +29 -2
- data/lib/chef/provider/package/snap.rb +27 -96
- data/lib/chef/provider/package/windows.rb +3 -2
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +0 -8
- data/lib/chef/provider/package/yum/yum_helper.py +0 -4
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +4 -10
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +3 -3
- data/lib/chef/provider/remote_file/ftp.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +2 -1
- data/lib/chef/provider/remote_file/sftp.rb +3 -2
- data/lib/chef/provider/route.rb +5 -3
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +8 -8
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +31 -29
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +7 -12
- data/lib/chef/provider/service/openbsd.rb +1 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +3 -3
- data/lib/chef/provider/service/systemd.rb +12 -12
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +5 -11
- data/lib/chef/provider/subversion.rb +25 -5
- data/lib/chef/provider/systemd_unit.rb +26 -25
- data/lib/chef/provider/user.rb +6 -6
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/mac.rb +10 -9
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +7 -9
- data/lib/chef/provider/yum_repository.rb +1 -1
- data/lib/chef/provider/zypper_repository.rb +11 -31
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +41 -56
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +149 -0
- data/lib/chef/resource/apt_package.rb +2 -1
- data/lib/chef/resource/apt_preference.rb +69 -2
- data/lib/chef/resource/apt_repository.rb +337 -5
- data/lib/chef/resource/apt_update.rb +52 -1
- data/lib/chef/resource/archive_file.rb +9 -29
- data/lib/chef/resource/bash.rb +2 -0
- data/lib/chef/resource/bff_package.rb +9 -1
- data/lib/chef/resource/breakpoint.rb +0 -1
- data/lib/chef/resource/build_essential.rb +42 -48
- data/lib/chef/resource/cab_package.rb +8 -1
- data/lib/chef/resource/chef_client_cron.rb +225 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +198 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +177 -0
- data/lib/chef/resource/chef_gem.rb +9 -16
- data/lib/chef/resource/chef_handler.rb +2 -1
- data/lib/chef/resource/chef_sleep.rb +0 -1
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +3 -1
- data/lib/chef/resource/chocolatey_feature.rb +2 -1
- data/lib/chef/resource/chocolatey_package.rb +2 -1
- data/lib/chef/resource/chocolatey_source.rb +2 -1
- data/lib/chef/resource/cookbook_file.rb +1 -1
- data/lib/chef/resource/cron.rb +22 -68
- data/lib/chef/resource/cron_access.rb +8 -15
- data/lib/chef/resource/cron_d.rb +9 -75
- data/lib/chef/resource/csh.rb +2 -0
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +4 -4
- data/lib/chef/resource/dnf_package.rb +2 -3
- data/lib/chef/resource/dpkg_package.rb +2 -1
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +13 -12
- data/lib/chef/resource/file.rb +3 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +14 -6
- data/lib/chef/resource/group.rb +4 -1
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +5 -4
- data/lib/chef/resource/homebrew_package.rb +4 -2
- data/lib/chef/resource/homebrew_tap.rb +2 -1
- data/lib/chef/resource/hostname.rb +41 -36
- data/lib/chef/resource/http_request.rb +0 -1
- data/lib/chef/resource/ifconfig.rb +1 -1
- data/lib/chef/resource/ips_package.rb +10 -2
- data/lib/chef/resource/kernel_module.rb +29 -29
- data/lib/chef/resource/ksh.rb +2 -0
- data/lib/chef/resource/launchd.rb +6 -6
- data/lib/chef/resource/link.rb +1 -23
- data/lib/chef/resource/locale.rb +58 -24
- data/lib/chef/resource/log.rb +12 -1
- data/lib/chef/resource/lwrp_base.rb +1 -8
- data/lib/chef/resource/macos_userdefaults.rb +9 -6
- data/lib/chef/resource/macosx_service.rb +2 -1
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +62 -2
- data/lib/chef/resource/mount.rb +3 -0
- data/lib/chef/resource/msu_package.rb +13 -1
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +19 -3
- data/lib/chef/resource/ohai_hint.rb +3 -12
- data/lib/chef/resource/openbsd_package.rb +9 -1
- data/lib/chef/resource/openssl_dhparam.rb +10 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +23 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +21 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +20 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +22 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +37 -1
- data/lib/chef/resource/openssl_x509_crl.rb +12 -1
- data/lib/chef/resource/openssl_x509_request.rb +37 -1
- data/lib/chef/resource/osx_profile.rb +3 -2
- data/lib/chef/resource/package.rb +2 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +12 -3
- data/lib/chef/resource/perl.rb +2 -0
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +13 -3
- data/lib/chef/resource/powershell_package.rb +1 -3
- data/lib/chef/resource/powershell_package_source.rb +3 -1
- data/lib/chef/resource/powershell_script.rb +7 -17
- data/lib/chef/resource/python.rb +2 -0
- data/lib/chef/resource/reboot.rb +0 -1
- data/lib/chef/resource/registry_key.rb +1 -2
- data/lib/chef/resource/remote_directory.rb +2 -0
- data/lib/chef/resource/remote_file.rb +2 -0
- data/lib/chef/resource/rhsm_errata.rb +0 -1
- data/lib/chef/resource/rhsm_errata_level.rb +0 -1
- data/lib/chef/resource/rhsm_register.rb +2 -1
- data/lib/chef/resource/rhsm_repo.rb +3 -1
- data/lib/chef/resource/rhsm_subscription.rb +4 -1
- data/lib/chef/resource/route.rb +5 -1
- data/lib/chef/resource/rpm_package.rb +9 -2
- data/lib/chef/resource/ruby.rb +2 -0
- data/lib/chef/resource/ruby_block.rb +1 -1
- data/lib/chef/resource/scm/_scm.rb +48 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +8 -5
- data/lib/chef/resource/script.rb +6 -3
- data/lib/chef/resource/service.rb +6 -7
- data/lib/chef/resource/smartos_package.rb +9 -1
- data/lib/chef/resource/snap_package.rb +3 -1
- data/lib/chef/resource/solaris_package.rb +9 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +9 -9
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -2
- data/lib/chef/resource/support/ulimit.erb +41 -0
- data/lib/chef/resource/swap_file.rb +5 -3
- data/lib/chef/resource/sysctl.rb +2 -2
- data/lib/chef/resource/systemd_unit.rb +4 -2
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +7 -18
- data/lib/chef/resource/user.rb +1 -3
- data/lib/chef/resource/user/aix_user.rb +0 -2
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +0 -2
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user/pw_user.rb +0 -2
- data/lib/chef/resource/user/solaris_user.rb +0 -2
- data/lib/chef/resource/user/windows_user.rb +0 -2
- data/lib/chef/resource/user_ulimit.rb +114 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +19 -6
- data/lib/chef/resource/windows_auto_run.rb +0 -1
- data/lib/chef/resource/windows_certificate.rb +1 -1
- data/lib/chef/resource/windows_dfs_folder.rb +0 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
- data/lib/chef/resource/windows_dfs_server.rb +0 -1
- data/lib/chef/resource/windows_dns_record.rb +0 -1
- data/lib/chef/resource/windows_dns_zone.rb +0 -1
- data/lib/chef/resource/windows_env.rb +2 -3
- data/lib/chef/resource/windows_feature.rb +2 -2
- data/lib/chef/resource/windows_feature_dism.rb +9 -22
- data/lib/chef/resource/windows_feature_powershell.rb +17 -82
- data/lib/chef/resource/windows_firewall_rule.rb +119 -10
- data/lib/chef/resource/windows_font.rb +1 -3
- data/lib/chef/resource/windows_package.rb +13 -4
- data/lib/chef/resource/windows_pagefile.rb +0 -1
- data/lib/chef/resource/windows_path.rb +0 -1
- data/lib/chef/resource/windows_printer.rb +0 -1
- data/lib/chef/resource/windows_printer_port.rb +0 -1
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +90 -0
- data/lib/chef/resource/windows_service.rb +45 -31
- data/lib/chef/resource/windows_share.rb +3 -7
- data/lib/chef/resource/windows_shortcut.rb +0 -1
- data/lib/chef/resource/windows_task.rb +14 -15
- data/lib/chef/resource/windows_uac.rb +0 -1
- data/lib/chef/resource/windows_user_privilege.rb +157 -0
- data/lib/chef/resource/windows_workgroup.rb +0 -1
- data/lib/chef/resource/yum_package.rb +3 -1
- data/lib/chef/resource/yum_repository.rb +2 -1
- data/lib/chef/resource/zypper_package.rb +3 -2
- data/lib/chef/resource/zypper_repository.rb +2 -1
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +6 -6
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/shell.rb +23 -32
- data/lib/chef/shell/shell_session.rb +0 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/version.rb +2 -2
- data/lib/chef/version_string.rb +1 -1
- data/lib/chef/win32/api/file.rb +18 -18
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +3 -11
- data/lib/chef/win32/process.rb +2 -2
- data/lib/chef/win32/security.rb +40 -2
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +27 -23
- data/spec/functional/resource/aix_service_spec.rb +1 -0
- data/spec/functional/resource/aixinit_service_spec.rb +8 -7
- data/spec/functional/resource/apt_package_spec.rb +1 -0
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +11 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +6 -5
- data/spec/functional/resource/link_spec.rb +17 -17
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/rpm_spec.rb +2 -2
- data/spec/functional/resource/user/dscl_spec.rb +2 -2
- data/spec/functional/resource/user/mac_user_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +8 -8
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -2
- data/spec/functional/shell_spec.rb +6 -6
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +0 -6
- data/spec/functional/win32/security_spec.rb +22 -0
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +123 -2
- data/spec/integration/knife/cookbook_show_spec.rb +28 -26
- data/spec/integration/knife/data_bag_show_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +30 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +50 -21
- data/spec/integration/recipes/notifying_block_spec.rb +9 -6
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +46 -144
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -3
- data/spec/integration/recipes/resource_load_spec.rb +133 -13
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/scripts/ssl-serve.rb +1 -1
- data/spec/spec_helper.rb +11 -14
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
- data/spec/support/platform_helpers.rb +44 -19
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +3 -3
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +5 -18
- data/spec/support/shared/integration/knife_support.rb +14 -8
- data/spec/unit/application/apply_spec.rb +3 -0
- data/spec/unit/application/client_spec.rb +5 -1
- data/spec/unit/application_spec.rb +1 -9
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +4 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +3 -4
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +38 -17
- data/spec/unit/dsl/platform_introspection_spec.rb +0 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/event_dispatch/dispatcher_spec.rb +0 -3
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
- data/spec/unit/knife/bootstrap_spec.rb +36 -54
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/cookbook_upload_spec.rb +6 -5
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +8 -68
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/ssh_spec.rb +10 -113
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_spec.rb +3 -5
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/securable_spec.rb +1 -0
- data/spec/unit/mixin/user_context_spec.rb +9 -1
- data/spec/unit/node/attribute_spec.rb +2 -2
- data/spec/unit/node_spec.rb +24 -0
- data/spec/unit/platform/query_helpers_spec.rb +0 -143
- data/spec/unit/property/state_spec.rb +12 -7
- data/spec/unit/property/validation_spec.rb +25 -1
- data/spec/unit/property_spec.rb +18 -15
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +9 -11
- data/spec/unit/provider/apt_update_spec.rb +12 -11
- data/spec/unit/provider/cookbook_file_spec.rb +4 -4
- data/spec/unit/provider/cron_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +4 -15
- data/spec/unit/provider/file_spec.rb +4 -4
- data/spec/unit/provider/git_spec.rb +44 -4
- data/spec/unit/provider/link_spec.rb +0 -1
- data/spec/unit/provider/log_spec.rb +3 -3
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +2 -2
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/powershell_spec.rb +88 -96
- data/spec/unit/provider/package/rubygems_spec.rb +221 -31
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +53 -30
- data/spec/unit/provider/powershell_script_spec.rb +21 -61
- data/spec/unit/provider/remote_file_spec.rb +3 -4
- data/spec/unit/provider/service/arch_service_spec.rb +2 -3
- data/spec/unit/provider/service/debian_service_spec.rb +35 -14
- data/spec/unit/provider/service/gentoo_service_spec.rb +8 -8
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +6 -2
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/systemd_unit_spec.rb +24 -28
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +25 -75
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/provider_spec.rb +0 -1
- data/spec/unit/recipe_spec.rb +68 -0
- data/spec/unit/resource/alternatives_spec.rb +120 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -18
- data/spec/unit/resource/apt_repository_spec.rb +0 -18
- data/spec/unit/resource/apt_update_spec.rb +0 -18
- data/spec/unit/resource/archive_file_spec.rb +2 -11
- data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
- data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
- data/spec/unit/resource/cron_d_spec.rb +6 -48
- data/spec/unit/resource/cron_spec.rb +4 -10
- data/spec/unit/resource/gem_package_spec.rb +3 -3
- data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
- data/spec/unit/resource/link_spec.rb +0 -4
- data/spec/unit/resource/locale_spec.rb +0 -34
- data/spec/unit/resource/ohai_spec.rb +56 -2
- data/spec/unit/resource/plist_spec.rb +130 -0
- data/spec/unit/resource/powershell_script_spec.rb +0 -5
- data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
- data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
- data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
- data/spec/unit/resource/service_spec.rb +4 -0
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/user_ulimit_spec.rb +53 -0
- data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
- data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +6 -47
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +4 -1
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_reporter_spec.rb +1 -5
- data/spec/unit/resource_spec.rb +11 -4
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +0 -9
- data/spec/unit/win32/security_spec.rb +3 -4
- data/tasks/rspec.rb +1 -1
- metadata +110 -75
- data/lib/chef/dsl/core.rb +0 -52
- data/lib/chef/knife/cookbook_site_share.rb +0 -41
- data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
- data/lib/chef/provider/apt_preference.rb +0 -93
- data/lib/chef/provider/apt_repository.rb +0 -358
- data/lib/chef/provider/apt_update.rb +0 -79
- data/lib/chef/provider/log.rb +0 -43
- data/lib/chef/provider/mdadm.rb +0 -85
- data/lib/chef/provider/ohai.rb +0 -45
- data/lib/chef/resource/git.rb +0 -37
- data/spec/functional/resource/windows_font_spec.rb +0 -49
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -20,10 +20,11 @@ require_relative "../resource"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class MacosUserDefaults < Chef::Resource
|
23
|
+
unified_mode true
|
24
|
+
|
23
25
|
# align with apple's marketing department
|
24
|
-
resource_name :macos_userdefaults
|
25
|
-
provides(:mac_os_x_userdefaults) { true }
|
26
26
|
provides(:macos_userdefaults) { true }
|
27
|
+
provides(:mac_os_x_userdefaults) { true }
|
27
28
|
|
28
29
|
description "Use the macos_userdefaults resource to manage the macOS user defaults system. The properties of this resource are passed to the defaults command, and the parameters follow the convention of that command. See the defaults(1) man page for details on how the tool works."
|
29
30
|
introduced "14.0"
|
@@ -61,9 +62,9 @@ class Chef
|
|
61
62
|
desired_state: false,
|
62
63
|
skip_docs: true
|
63
64
|
|
64
|
-
|
65
|
-
|
66
|
-
|
65
|
+
# coerce various ways of representing a boolean into either 0 (false) or 1 (true)
|
66
|
+
# which is what the defaults CLI expects. Why? Well defaults itself accepts a few
|
67
|
+
# different formats, but when you do a read command it all comes back as 1 or 0.
|
67
68
|
def coerce_booleans(val)
|
68
69
|
return 1 if [true, "TRUE", "1", "true", "YES", "yes"].include?(val)
|
69
70
|
return 0 if [false, "FALSE", "0", "false", "NO", "no"].include?(val)
|
@@ -106,7 +107,9 @@ class Chef
|
|
106
107
|
cmd << "-#{type}" if type
|
107
108
|
cmd << value
|
108
109
|
|
109
|
-
|
110
|
+
# FIXME: this should use cmd directly as an array argument, but then the quoting
|
111
|
+
# of individual args above needs to be removed as well.
|
112
|
+
execute cmd.join(" ") do
|
110
113
|
user new_resource.user unless new_resource.user.nil?
|
111
114
|
end
|
112
115
|
end
|
@@ -21,9 +21,17 @@ require_relative "package"
|
|
21
21
|
class Chef
|
22
22
|
class Resource
|
23
23
|
class MacportsPackage < Chef::Resource::Package
|
24
|
-
|
24
|
+
unified_mode true
|
25
|
+
provides :macports_package
|
25
26
|
|
26
|
-
description "Use the macports_package resource to manage packages for the macOS platform."
|
27
|
+
description "Use the macports_package resource to manage packages for the macOS platform using the MacPorts package management system."
|
28
|
+
|
29
|
+
property :package_name, String,
|
30
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
31
|
+
identity: true
|
32
|
+
|
33
|
+
property :version, String,
|
34
|
+
description: "The version of a package to be installed or upgraded."
|
27
35
|
end
|
28
36
|
end
|
29
37
|
end
|
data/lib/chef/resource/mdadm.rb
CHANGED
@@ -22,7 +22,9 @@ require_relative "../resource"
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
24
24
|
class Mdadm < Chef::Resource
|
25
|
-
|
25
|
+
unified_mode true
|
26
|
+
|
27
|
+
provides :mdadm
|
26
28
|
|
27
29
|
description "Use the mdadm resource to manage RAID devices in a Linux environment using the mdadm utility. The mdadm resource"\
|
28
30
|
" will create and assemble an array, but it will not create the config file that is used to persist the array upon"\
|
@@ -57,11 +59,69 @@ class Chef
|
|
57
59
|
description: "The path to a file in which a write-intent bitmap is stored."
|
58
60
|
|
59
61
|
property :raid_device, String,
|
60
|
-
|
62
|
+
name_property: true,
|
61
63
|
description: "An optional property to specify the name of the RAID device if it differs from the resource block's name."
|
62
64
|
|
63
65
|
property :layout, String,
|
64
66
|
description: "The RAID5 parity algorithm. Possible values: left-asymmetric (or la), left-symmetric (or ls), right-asymmetric (or ra), or right-symmetric (or rs)."
|
67
|
+
|
68
|
+
action_class do
|
69
|
+
def load_current_resource
|
70
|
+
@current_resource = Chef::Resource::Mdadm.new(new_resource.name)
|
71
|
+
current_resource.raid_device(new_resource.raid_device)
|
72
|
+
logger.trace("#{new_resource} checking for software raid device #{current_resource.raid_device}")
|
73
|
+
|
74
|
+
device_not_found = 4
|
75
|
+
mdadm = shell_out!("mdadm", "--detail", "--test", new_resource.raid_device, returns: [0, device_not_found])
|
76
|
+
exists = (mdadm.status == 0)
|
77
|
+
current_resource.exists(exists)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
action :create do
|
82
|
+
unless current_resource.exists
|
83
|
+
converge_by("create RAID device #{new_resource.raid_device}") do
|
84
|
+
command = "yes | mdadm --create #{new_resource.raid_device} --level #{new_resource.level}"
|
85
|
+
command << " --chunk=#{new_resource.chunk}" unless new_resource.level == 1
|
86
|
+
command << " --metadata=#{new_resource.metadata}"
|
87
|
+
command << " --bitmap=#{new_resource.bitmap}" if new_resource.bitmap
|
88
|
+
command << " --layout=#{new_resource.layout}" if new_resource.layout
|
89
|
+
command << " --raid-devices #{new_resource.devices.length} #{new_resource.devices.join(" ")}"
|
90
|
+
logger.trace("#{new_resource} mdadm command: #{command}")
|
91
|
+
shell_out!(command)
|
92
|
+
logger.info("#{new_resource} created raid device (#{new_resource.raid_device})")
|
93
|
+
end
|
94
|
+
else
|
95
|
+
logger.trace("#{new_resource} raid device already exists, skipping create (#{new_resource.raid_device})")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
action :assemble do
|
100
|
+
unless current_resource.exists
|
101
|
+
converge_by("assemble RAID device #{new_resource.raid_device}") do
|
102
|
+
command = "yes | mdadm --assemble #{new_resource.raid_device} #{new_resource.devices.join(" ")}"
|
103
|
+
logger.trace("#{new_resource} mdadm command: #{command}")
|
104
|
+
shell_out!(command)
|
105
|
+
logger.info("#{new_resource} assembled raid device (#{new_resource.raid_device})")
|
106
|
+
end
|
107
|
+
else
|
108
|
+
logger.trace("#{new_resource} raid device already exists, skipping assemble (#{new_resource.raid_device})")
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
action :stop do
|
113
|
+
if current_resource.exists
|
114
|
+
converge_by("stop RAID device #{new_resource.raid_device}") do
|
115
|
+
command = "yes | mdadm --stop #{new_resource.raid_device}"
|
116
|
+
logger.trace("#{new_resource} mdadm command: #{command}")
|
117
|
+
shell_out!(command)
|
118
|
+
logger.info("#{new_resource} stopped raid device (#{new_resource.raid_device})")
|
119
|
+
end
|
120
|
+
else
|
121
|
+
logger.trace("#{new_resource} raid device doesn't exist (#{new_resource.raid_device}) - not stopping")
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
65
125
|
end
|
66
126
|
end
|
67
127
|
end
|
data/lib/chef/resource/mount.rb
CHANGED
@@ -23,6 +23,9 @@ class Chef
|
|
23
23
|
class Resource
|
24
24
|
class Mount < Chef::Resource
|
25
25
|
description "Use the mount resource to manage a mounted file system."
|
26
|
+
unified_mode true
|
27
|
+
|
28
|
+
provides :mount
|
26
29
|
|
27
30
|
default_action :mount
|
28
31
|
allowed_actions :mount, :umount, :unmount, :remount, :enable, :disable
|
@@ -23,8 +23,8 @@ class Chef
|
|
23
23
|
class Resource
|
24
24
|
class MsuPackage < Chef::Resource::Package
|
25
25
|
include Chef::Mixin::Uris
|
26
|
+
unified_mode true
|
26
27
|
|
27
|
-
resource_name :msu_package
|
28
28
|
provides :msu_package
|
29
29
|
|
30
30
|
description "Use the msu_package resource to install Microsoft Update(MSU) packages on Microsoft Windows machines."
|
@@ -33,6 +33,18 @@ class Chef
|
|
33
33
|
allowed_actions :install, :remove
|
34
34
|
default_action :install
|
35
35
|
|
36
|
+
property :package_name, String,
|
37
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
38
|
+
identity: true
|
39
|
+
|
40
|
+
# This is the same property as the main package resource except it has the skip docs set to true
|
41
|
+
# This resource abuses the package resource by storing the versions of all the cabs in the MSU file
|
42
|
+
# in the version attribute from load current value even though those aren't technically the versio of the
|
43
|
+
# msu. Since the user wouldn't actually set this we don't want it on the docs site.
|
44
|
+
property :version, [String, Array],
|
45
|
+
skip_docs: true,
|
46
|
+
description: "The version of a package to be installed or upgraded."
|
47
|
+
|
36
48
|
property :source, String,
|
37
49
|
description: "The local file path or URL for the MSU package.",
|
38
50
|
coerce: (proc do |s|
|
@@ -20,18 +20,16 @@ require_relative "../dist"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class NotifyGroup < Chef::Resource
|
23
|
-
resource_name :notify_group
|
24
23
|
provides :notify_group
|
25
24
|
|
26
25
|
unified_mode true
|
27
26
|
|
28
27
|
description "The notify_group resource does nothing, and always fires notifications which are set on it. Use it to DRY blocks of notifications that are common to multiple resources, and provide a single target for other resources to notify. Unlike most resources, its default action is :nothing."
|
29
28
|
introduced "15.8"
|
30
|
-
|
31
29
|
examples <<~DOC
|
32
30
|
Wire up a notification from a service resource to stop and start the service with a 60 second delay.
|
33
31
|
|
34
|
-
```
|
32
|
+
```ruby
|
35
33
|
service "crude" do
|
36
34
|
action [ :enable, :start ]
|
37
35
|
end
|
@@ -64,6 +62,13 @@ class Chef
|
|
64
62
|
new_resource.updated_by_last_action(true)
|
65
63
|
end
|
66
64
|
|
65
|
+
# This is deliberate. Users should be sending a single notification to a notify_group resource which then
|
66
|
+
# distributes multiple notifications. Having a notify_group run by default is unnecessary indirection and
|
67
|
+
# should be replaced by just running the resources in order. If resources need to be batch run multiple times
|
68
|
+
# per invocation then the resources themselves are not properly declarative idempotent resources, and the user
|
69
|
+
# is attempting to turn Chef into an imperative language using this construct and/or the batch of resources
|
70
|
+
# need to be turned into a custom resource.
|
71
|
+
#
|
67
72
|
default_action :nothing
|
68
73
|
end
|
69
74
|
end
|
data/lib/chef/resource/ohai.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
# Author:: Michael Leinartas (<mleinartas@gmail.com>)
|
3
3
|
# Author:: Tyler Cloke (<tyler@chef.io>)
|
4
4
|
# Copyright:: Copyright 2010-2016, Michael Leinartas
|
5
|
+
# Copyright:: Copyright (c) Chef Software, Inc.
|
5
6
|
# License:: Apache License, Version 2.0
|
6
7
|
#
|
7
8
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -19,13 +20,13 @@
|
|
19
20
|
|
20
21
|
require_relative "../resource"
|
21
22
|
require_relative "../dist"
|
23
|
+
require "ohai" unless defined?(Ohai::System)
|
22
24
|
|
23
25
|
class Chef
|
24
26
|
class Resource
|
25
27
|
class Ohai < Chef::Resource
|
26
28
|
unified_mode true
|
27
29
|
|
28
|
-
resource_name :ohai
|
29
30
|
provides :ohai
|
30
31
|
|
31
32
|
description "Use the ohai resource to reload the Ohai configuration on a node. This allows recipes that change system attributes (like a recipe that adds a user) to refer to those attributes later on during the #{Chef::Dist::CLIENT} run."
|
@@ -33,8 +34,23 @@ class Chef
|
|
33
34
|
property :plugin, String,
|
34
35
|
description: "The name of an Ohai plugin to be reloaded. If this property is not specified, #{Chef::Dist::PRODUCT} will reload all plugins."
|
35
36
|
|
36
|
-
|
37
|
-
|
37
|
+
def load_current_resource
|
38
|
+
true
|
39
|
+
end
|
40
|
+
|
41
|
+
action :reload do
|
42
|
+
converge_by("re-run ohai and merge results into node attributes") do
|
43
|
+
ohai = ::Ohai::System.new
|
44
|
+
|
45
|
+
# If new_resource.plugin is nil, ohai will reload all the plugins
|
46
|
+
# Otherwise it will only reload the specified plugin
|
47
|
+
# Note that any changes to plugins, or new plugins placed on
|
48
|
+
# the path are picked up by ohai.
|
49
|
+
ohai.all_plugins new_resource.plugin
|
50
|
+
node.automatic_attrs.merge! ohai.data
|
51
|
+
logger.info("#{new_resource} reloaded")
|
52
|
+
end
|
53
|
+
end
|
38
54
|
end
|
39
55
|
end
|
40
56
|
end
|
@@ -20,7 +20,8 @@ require_relative "../resource"
|
|
20
20
|
class Chef
|
21
21
|
class Resource
|
22
22
|
class OhaiHint < Chef::Resource
|
23
|
-
|
23
|
+
unified_mode true
|
24
|
+
|
24
25
|
provides(:ohai_hint) { true }
|
25
26
|
|
26
27
|
description "Use the ohai_hint resource to aid in configuration detection by passing hint data to Ohai."
|
@@ -33,6 +34,7 @@ class Chef
|
|
33
34
|
property :content, Hash,
|
34
35
|
description: "Values to include in the hint file."
|
35
36
|
|
37
|
+
# override compile_time property to default to true
|
36
38
|
property :compile_time, [TrueClass, FalseClass],
|
37
39
|
description: "Determines whether or not the resource is executed during the compile time phase.",
|
38
40
|
default: true, desired_state: false
|
@@ -83,17 +85,6 @@ class Chef
|
|
83
85
|
JSON.pretty_generate(content)
|
84
86
|
end
|
85
87
|
end
|
86
|
-
|
87
|
-
# this resource forces itself to run at compile_time
|
88
|
-
#
|
89
|
-
# @return [void]
|
90
|
-
def after_created
|
91
|
-
return unless compile_time
|
92
|
-
|
93
|
-
Array(action).each do |action|
|
94
|
-
run_action(action)
|
95
|
-
end
|
96
|
-
end
|
97
88
|
end
|
98
89
|
end
|
99
90
|
end
|
@@ -25,11 +25,19 @@ require_relative "../provider/package/openbsd"
|
|
25
25
|
class Chef
|
26
26
|
class Resource
|
27
27
|
class OpenbsdPackage < Chef::Resource::Package
|
28
|
-
|
28
|
+
unified_mode true
|
29
|
+
provides :openbsd_package
|
29
30
|
provides :package, os: "openbsd"
|
30
31
|
|
31
32
|
description "Use the openbsd_package resource to manage packages for the OpenBSD platform."
|
32
33
|
introduced "12.1"
|
34
|
+
|
35
|
+
property :package_name, String,
|
36
|
+
description: "An optional property to set the package name if it differs from the resource block's name.",
|
37
|
+
identity: true
|
38
|
+
|
39
|
+
property :version, String,
|
40
|
+
description: "The version of a package to be installed or upgraded."
|
33
41
|
end
|
34
42
|
end
|
35
43
|
end
|
@@ -23,11 +23,20 @@ class Chef
|
|
23
23
|
require_relative "../mixin/openssl_helper"
|
24
24
|
include Chef::Mixin::OpenSSLHelper
|
25
25
|
|
26
|
-
resource_name :openssl_dhparam
|
27
26
|
provides(:openssl_dhparam) { true }
|
28
27
|
|
29
28
|
description "Use the openssl_dhparam resource to generate dhparam.pem files. If a valid dhparam.pem file is found at the specified location, no new file will be created. If a file is found at the specified location but it is not a valid dhparam file, it will be overwritten."
|
30
29
|
introduced "14.0"
|
30
|
+
examples <<~DOC
|
31
|
+
Create a 1024bit dhparam file
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
openssl_dhparam '/etc/ssl_files/dhparam.pem' do
|
35
|
+
key_length 1024
|
36
|
+
action :create
|
37
|
+
end
|
38
|
+
```
|
39
|
+
DOC
|
31
40
|
|
32
41
|
property :path, String,
|
33
42
|
description: "An optional property for specifying the path to write the file to if it differs from the resource block's name.",
|
@@ -24,10 +24,32 @@ class Chef
|
|
24
24
|
require_relative "../mixin/openssl_helper"
|
25
25
|
include Chef::Mixin::OpenSSLHelper
|
26
26
|
|
27
|
-
|
27
|
+
provides :openssl_ec_private_key
|
28
28
|
|
29
29
|
description "Use the openssl_ec_private_key resource to generate an elliptic curve (EC) private key file. If a valid EC key file can be opened at the specified location, no new file will be created. If the EC key file cannot be opened, either because it does not exist or because the password to the EC key file does not match the password in the recipe, then it will be overwritten."
|
30
30
|
introduced "14.4"
|
31
|
+
examples <<~DOC
|
32
|
+
Generate a new ec privatekey with prime256v1 key curve and default des3 cipher
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
openssl_ec_private_key '/etc/ssl_files/eckey_prime256v1_des3.pem' do
|
36
|
+
key_curve 'prime256v1'
|
37
|
+
key_pass 'something'
|
38
|
+
action :create
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
Generate a new ec private key with prime256v1 key curve and aes-128-cbc cipher
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
openssl_ec_private_key '/etc/ssl_files/eckey_prime256v1_des3.pem' do
|
46
|
+
key_curve 'prime256v1'
|
47
|
+
key_cipher 'aes-128-cbc'
|
48
|
+
key_pass 'something'
|
49
|
+
action :create
|
50
|
+
end
|
51
|
+
```
|
52
|
+
DOC
|
31
53
|
|
32
54
|
property :path, String,
|
33
55
|
description: "An optional property for specifying the path to write the file to if it differs from the resource block's name.",
|
@@ -24,10 +24,30 @@ class Chef
|
|
24
24
|
require_relative "../mixin/openssl_helper"
|
25
25
|
include Chef::Mixin::OpenSSLHelper
|
26
26
|
|
27
|
-
|
27
|
+
provides :openssl_ec_public_key
|
28
28
|
|
29
29
|
description "Use the openssl_ec_public_key resource to generate elliptic curve (EC) public key files from a given EC private key."
|
30
30
|
introduced "14.4"
|
31
|
+
examples <<~DOC
|
32
|
+
Generate new ec public key from a private key on disk
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
openssl_ec_public_key '/etc/ssl_files/eckey_prime256v1_des3.pub' do
|
36
|
+
private_key_path '/etc/ssl_files/eckey_prime256v1_des3.pem'
|
37
|
+
private_key_pass 'something'
|
38
|
+
action :create
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
Generate new ec public key by passing in a private key
|
43
|
+
|
44
|
+
```ruby
|
45
|
+
openssl_ec_public_key '/etc/ssl_files/eckey_prime256v1_des3_2.pub' do
|
46
|
+
private_key_content "-----BEGIN EC PRIVATE KEY-----\nMHcCAQEEII2VAU9re44mAUzYPWCg+qqwdmP8CplsEg0b/DYPXLg2oAoGCCqGSM49\nAwEHoUQDQgAEKkpMCbIQ2C6Qlp/B+Odp1a9Y06Sm8yqPvCVIkWYP7M8PX5+RmoIv\njGBVf/+mVBx77ji3NpTilMUt2KPZ87lZ3w==\n-----END EC PRIVATE KEY-----\n"
|
47
|
+
action :create
|
48
|
+
end
|
49
|
+
```
|
50
|
+
DOC
|
31
51
|
|
32
52
|
property :path, String,
|
33
53
|
description: "An optional property for specifying the path to write the file to if it differs from the resource block's name.",
|
@@ -23,12 +23,31 @@ class Chef
|
|
23
23
|
require_relative "../mixin/openssl_helper"
|
24
24
|
include Chef::Mixin::OpenSSLHelper
|
25
25
|
|
26
|
-
resource_name :openssl_rsa_private_key
|
27
26
|
provides(:openssl_rsa_private_key) { true }
|
28
27
|
provides(:openssl_rsa_key) { true } # legacy cookbook resource name
|
29
28
|
|
30
29
|
description "Use the openssl_rsa_private_key resource to generate RSA private key files. If a valid RSA key file can be opened at the specified location, no new file will be created. If the RSA key file cannot be opened, either because it does not exist or because the password to the RSA key file does not match the password in the recipe, it will be overwritten."
|
31
30
|
introduced "14.0"
|
31
|
+
examples <<~DOC
|
32
|
+
Generate new 2048bit key with the default des3 cipher
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
openssl_rsa_private_key '/etc/ssl_files/rsakey_des3.pem' do
|
36
|
+
key_length 2048
|
37
|
+
action :create
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
41
|
+
Generate new 1024bit key with the aes-128-cbc cipher
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
openssl_rsa_key '/etc/ssl_files/rsakey_aes128cbc.pem' do
|
45
|
+
key_length 1024
|
46
|
+
key_cipher 'aes-128-cbc'
|
47
|
+
action :create
|
48
|
+
end
|
49
|
+
```
|
50
|
+
DOC
|
32
51
|
|
33
52
|
property :path, String,
|
34
53
|
description: "An optional property for specifying the path to write the file to if it differs from the resource block's name.",
|