chef 14.2.0 → 14.3.37
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +13 -12
- data/Gemfile +15 -0
- data/README.md +36 -40
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/chef-apply +0 -1
- data/bin/chef-client +1 -2
- data/bin/chef-shell +1 -6
- data/bin/chef-solo +1 -2
- data/bin/knife +1 -2
- data/chef-universal-mingw32.gemspec +2 -2
- data/chef.gemspec +1 -1
- data/distro/ruby_bin_folder/Chef.PowerShell.Wrapper.dll +0 -0
- data/distro/ruby_bin_folder/Chef.PowerShell.dll +0 -0
- data/distro/{powershell/chef → ruby_bin_folder}/Newtonsoft.Json.dll +0 -0
- data/lib/chef/api_client.rb +10 -10
- data/lib/chef/api_client/registration.rb +5 -5
- data/lib/chef/api_client_v1.rb +15 -15
- data/lib/chef/application.rb +1 -1
- data/lib/chef/application/apply.rb +56 -56
- data/lib/chef/application/client.rb +169 -170
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/knife.rb +79 -78
- data/lib/chef/application/solo.rb +120 -120
- data/lib/chef/application/windows_service.rb +21 -21
- data/lib/chef/application/windows_service_manager.rb +39 -39
- data/lib/chef/audit/audit_event_proxy.rb +6 -6
- data/lib/chef/audit/audit_reporter.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +15 -15
- data/lib/chef/audit/runner.rb +1 -1
- data/lib/chef/chef_class.rb +16 -8
- data/lib/chef/chef_fs/chef_fs_data_store.rb +8 -8
- data/lib/chef/chef_fs/config.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- 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/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/directory.rb +3 -3
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +3 -3
- data/lib/chef/chef_fs/knife.rb +6 -6
- data/lib/chef/chef_fs/parallelizer.rb +1 -1
- data/lib/chef/client.rb +3 -0
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/manifest_v0.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +61 -61
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +2 -2
- data/lib/chef/cookbook_loader.rb +3 -3
- data/lib/chef/cookbook_manifest.rb +5 -5
- data/lib/chef/cookbook_site_streaming_uploader.rb +5 -5
- data/lib/chef/cookbook_uploader.rb +2 -2
- data/lib/chef/cookbook_version.rb +2 -2
- data/lib/chef/data_bag.rb +3 -3
- data/lib/chef/data_bag_item.rb +2 -2
- data/lib/chef/deprecated.rb +110 -176
- data/lib/chef/dsl/audit.rb +1 -1
- data/lib/chef/dsl/definitions.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +5 -0
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/environment.rb +10 -10
- data/lib/chef/event_loggers/windows_eventlog.rb +21 -21
- data/lib/chef/exceptions.rb +3 -3
- data/lib/chef/file_cache.rb +18 -16
- data/lib/chef/formatters/base.rb +9 -10
- data/lib/chef/formatters/doc.rb +12 -16
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +51 -51
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +10 -10
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +13 -13
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +39 -39
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +16 -16
- data/lib/chef/formatters/indentable_output_stream.rb +4 -4
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +3 -3
- data/lib/chef/handler/json_file.rb +1 -1
- data/lib/chef/http/auth_credentials.rb +2 -2
- data/lib/chef/http/authenticator.rb +6 -6
- data/lib/chef/http/cookie_manager.rb +1 -1
- data/lib/chef/http/http_request.rb +3 -3
- data/lib/chef/http/json_input.rb +1 -1
- data/lib/chef/http/json_to_model_output.rb +1 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +9 -9
- data/lib/chef/knife.rb +5 -5
- data/lib/chef/knife/bootstrap.rb +116 -116
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/client_bulk_delete.rb +3 -3
- data/lib/chef/knife/client_create.rb +17 -17
- data/lib/chef/knife/client_delete.rb +3 -3
- data/lib/chef/knife/client_list.rb +3 -3
- data/lib/chef/knife/client_reregister.rb +3 -3
- data/lib/chef/knife/config_get.rb +126 -0
- data/lib/chef/knife/configure.rb +25 -25
- data/lib/chef/knife/cookbook_bulk_delete.rb +1 -1
- data/lib/chef/knife/cookbook_delete.rb +2 -2
- data/lib/chef/knife/cookbook_download.rb +11 -11
- data/lib/chef/knife/cookbook_list.rb +6 -6
- data/lib/chef/knife/cookbook_metadata.rb +7 -8
- data/lib/chef/knife/cookbook_metadata_from_file.rb +0 -1
- data/lib/chef/knife/cookbook_show.rb +16 -16
- data/lib/chef/knife/cookbook_site_download.rb +11 -10
- data/lib/chef/knife/cookbook_site_install.rb +24 -24
- data/lib/chef/knife/cookbook_site_list.rb +8 -8
- data/lib/chef/knife/cookbook_site_search.rb +6 -5
- data/lib/chef/knife/cookbook_site_share.rb +20 -19
- data/lib/chef/knife/cookbook_site_show.rb +6 -5
- data/lib/chef/knife/cookbook_site_unshare.rb +5 -5
- data/lib/chef/knife/cookbook_test.rb +8 -8
- data/lib/chef/knife/cookbook_upload.rb +32 -32
- data/lib/chef/knife/core/bootstrap_context.rb +7 -7
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/generic_presenter.rb +7 -7
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_presenter.rb +37 -37
- data/lib/chef/knife/core/status_presenter.rb +11 -11
- data/lib/chef/knife/data_bag_from_file.rb +4 -4
- data/lib/chef/knife/data_bag_list.rb +3 -3
- data/lib/chef/knife/data_bag_secret_options.rb +13 -13
- data/lib/chef/knife/delete.rb +29 -13
- data/lib/chef/knife/deps.rb +25 -9
- data/lib/chef/knife/diff.rb +30 -14
- data/lib/chef/knife/download.rb +39 -23
- data/lib/chef/knife/edit.rb +19 -3
- data/lib/chef/knife/environment_compare.rb +8 -8
- data/lib/chef/knife/environment_create.rb +3 -3
- data/lib/chef/knife/environment_from_file.rb +5 -3
- data/lib/chef/knife/environment_list.rb +3 -3
- data/lib/chef/knife/exec.rb +7 -7
- data/lib/chef/knife/key_create.rb +4 -4
- data/lib/chef/knife/key_create_base.rb +12 -12
- data/lib/chef/knife/key_edit.rb +5 -5
- data/lib/chef/knife/key_edit_base.rb +15 -15
- data/lib/chef/knife/key_list.rb +3 -3
- data/lib/chef/knife/key_list_base.rb +9 -9
- data/lib/chef/knife/list.rb +35 -19
- data/lib/chef/knife/node_edit.rb +4 -4
- data/lib/chef/knife/node_list.rb +3 -3
- data/lib/chef/knife/node_run_list_add.rb +6 -6
- data/lib/chef/knife/node_show.rb +6 -6
- data/lib/chef/knife/osc_user_create.rb +13 -13
- data/lib/chef/knife/osc_user_list.rb +3 -3
- data/lib/chef/knife/osc_user_reregister.rb +3 -3
- data/lib/chef/knife/raw.rb +32 -16
- data/lib/chef/knife/role_create.rb +3 -3
- data/lib/chef/knife/role_env_run_list_add.rb +4 -3
- data/lib/chef/knife/role_env_run_list_remove.rb +2 -2
- data/lib/chef/knife/role_env_run_list_replace.rb +1 -0
- data/lib/chef/knife/role_list.rb +3 -3
- data/lib/chef/knife/role_run_list_add.rb +4 -3
- data/lib/chef/knife/role_run_list_remove.rb +2 -2
- data/lib/chef/knife/role_run_list_replace.rb +1 -0
- data/lib/chef/knife/search.rb +23 -23
- data/lib/chef/knife/serve.rb +22 -6
- data/lib/chef/knife/show.rb +19 -3
- data/lib/chef/knife/ssh.rb +68 -68
- data/lib/chef/knife/ssl_check.rb +31 -31
- data/lib/chef/knife/ssl_fetch.rb +5 -5
- data/lib/chef/knife/status.rb +11 -11
- data/lib/chef/knife/upload.rb +41 -25
- data/lib/chef/knife/user_create.rb +28 -28
- data/lib/chef/knife/user_delete.rb +9 -9
- data/lib/chef/knife/user_edit.rb +9 -9
- data/lib/chef/knife/user_list.rb +3 -3
- data/lib/chef/knife/user_reregister.rb +12 -12
- data/lib/chef/knife/user_show.rb +9 -9
- data/lib/chef/knife/xargs.rb +52 -36
- data/lib/chef/log.rb +10 -8
- data/lib/chef/log/winevt.rb +21 -21
- data/lib/chef/mixin/api_version_request_handling.rb +6 -6
- data/lib/chef/mixin/deep_merge.rb +1 -1
- data/lib/chef/mixin/deprecation.rb +2 -2
- data/lib/chef/mixin/params_validate.rb +9 -9
- data/lib/chef/mixin/properties.rb +2 -2
- data/lib/chef/mixin/securable.rb +11 -11
- data/lib/chef/mixin/shell_out.rb +138 -82
- data/lib/chef/mixin/wide_string.rb +5 -23
- data/lib/chef/mixin/windows_env_helper.rb +1 -1
- data/lib/chef/mixin/xml_escape.rb +3 -3
- data/lib/chef/node.rb +15 -15
- data/lib/chef/node/attribute.rb +6 -6
- data/lib/chef/node/attribute_collections.rb +2 -2
- data/lib/chef/node/mixin/deep_merge_cache.rb +1 -1
- data/lib/chef/node/mixin/immutablize_array.rb +2 -2
- data/lib/chef/node/mixin/immutablize_hash.rb +2 -2
- data/lib/chef/node_map.rb +77 -3
- data/lib/chef/org.rb +8 -8
- data/lib/chef/policy_builder/expand_node_object.rb +1 -1
- data/lib/chef/powershell.rb +9 -7
- data/lib/chef/property.rb +14 -14
- data/lib/chef/provider/apt_update.rb +2 -2
- data/lib/chef/provider/cron.rb +3 -3
- data/lib/chef/provider/cron/unix.rb +2 -2
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +8 -8
- data/lib/chef/provider/execute.rb +1 -1
- data/lib/chef/provider/group/aix.rb +6 -6
- data/lib/chef/provider/group/dscl.rb +1 -1
- data/lib/chef/provider/group/gpasswd.rb +4 -4
- data/lib/chef/provider/group/groupadd.rb +3 -3
- data/lib/chef/provider/group/groupmod.rb +6 -6
- data/lib/chef/provider/group/pw.rb +4 -4
- data/lib/chef/provider/group/suse.rb +2 -2
- data/lib/chef/provider/group/usermod.rb +1 -1
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/ifconfig/aix.rb +1 -1
- data/lib/chef/provider/mdadm.rb +1 -1
- data/lib/chef/provider/mount/mount.rb +1 -1
- data/lib/chef/provider/mount/windows.rb +7 -7
- data/lib/chef/provider/package.rb +3 -18
- data/lib/chef/provider/package/apt.rb +4 -4
- data/lib/chef/provider/package/bff.rb +9 -9
- data/lib/chef/provider/package/chocolatey.rb +7 -7
- data/lib/chef/provider/package/dnf.rb +2 -2
- data/lib/chef/provider/package/dpkg.rb +6 -6
- data/lib/chef/provider/package/freebsd/base.rb +2 -2
- data/lib/chef/provider/package/freebsd/pkg.rb +6 -6
- data/lib/chef/provider/package/freebsd/pkgng.rb +5 -5
- data/lib/chef/provider/package/freebsd/port.rb +4 -4
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/ips.rb +6 -6
- data/lib/chef/provider/package/macports.rb +6 -6
- data/lib/chef/provider/package/msu.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +5 -5
- data/lib/chef/provider/package/pacman.rb +4 -4
- data/lib/chef/provider/package/paludis.rb +3 -3
- data/lib/chef/provider/package/portage.rb +5 -5
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rpm.rb +10 -10
- data/lib/chef/provider/package/rubygems.rb +4 -4
- data/lib/chef/provider/package/smartos.rb +4 -4
- data/lib/chef/provider/package/solaris.rb +9 -9
- data/lib/chef/provider/package/windows.rb +4 -3
- data/lib/chef/provider/package/yum.rb +2 -2
- data/lib/chef/provider/package/zypper.rb +4 -4
- data/lib/chef/provider/powershell_script.rb +73 -73
- data/lib/chef/provider/reboot.rb +4 -4
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_file/cache_control_data.rb +2 -2
- data/lib/chef/provider/remote_file/sftp.rb +1 -1
- data/lib/chef/provider/resource_update.rb +1 -1
- data/lib/chef/provider/route.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +3 -3
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/simple.rb +1 -0
- data/lib/chef/provider/service/solaris.rb +1 -1
- data/lib/chef/provider/service/systemd.rb +2 -2
- data/lib/chef/provider/service/windows.rb +17 -17
- data/lib/chef/provider/subversion.rb +3 -3
- data/lib/chef/provider/systemd_unit.rb +2 -2
- data/lib/chef/provider/template/content.rb +1 -1
- data/lib/chef/provider/user/aix.rb +6 -6
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/linux.rb +6 -6
- data/lib/chef/provider/user/pw.rb +5 -5
- data/lib/chef/provider/user/solaris.rb +6 -6
- data/lib/chef/provider/user/useradd.rb +7 -7
- data/lib/chef/provider/windows_env.rb +6 -6
- data/lib/chef/provider/windows_task.rb +22 -24
- data/lib/chef/resource.rb +26 -4
- data/lib/chef/resource/chef_handler.rb +2 -0
- data/lib/chef/resource/chocolatey_config.rb +83 -0
- data/lib/chef/resource/chocolatey_source.rb +95 -0
- data/lib/chef/resource/cron.rb +5 -5
- data/lib/chef/resource/dsc_script.rb +12 -11
- data/lib/chef/resource/execute.rb +1 -1
- data/lib/chef/resource/file/verification.rb +1 -1
- data/lib/chef/resource/freebsd_package.rb +3 -1
- data/lib/chef/resource/group.rb +2 -2
- data/lib/chef/resource/homebrew_package.rb +2 -1
- data/lib/chef/resource/homebrew_tap.rb +1 -1
- data/lib/chef/resource/hostname.rb +23 -7
- data/lib/chef/resource/http_request.rb +6 -3
- data/lib/chef/resource/ifconfig.rb +57 -17
- data/lib/chef/resource/ips_package.rb +3 -1
- data/lib/chef/resource/kernel_module.rb +129 -0
- data/lib/chef/resource/launchd.rb +205 -98
- data/lib/chef/resource/log.rb +7 -2
- data/lib/chef/resource/mdadm.rb +29 -8
- data/lib/chef/resource/ohai.rb +2 -0
- data/lib/chef/resource/ohai_hint.rb +5 -3
- data/lib/chef/resource/openssl_dhparam.rb +1 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +2 -0
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/portage_package.rb +2 -0
- data/lib/chef/resource/powershell_package.rb +2 -0
- data/lib/chef/resource/powershell_package_source.rb +165 -0
- data/lib/chef/resource/powershell_script.rb +2 -2
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/remote_directory.rb +3 -3
- data/lib/chef/resource/remote_file.rb +2 -2
- data/lib/chef/resource/resource_notification.rb +16 -16
- data/lib/chef/resource/rhsm_errata.rb +1 -1
- data/lib/chef/resource/rhsm_errata_level.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +4 -4
- data/lib/chef/resource/rhsm_repo.rb +2 -2
- data/lib/chef/resource/rhsm_subscription.rb +2 -2
- data/lib/chef/resource/script.rb +1 -1
- data/lib/chef/resource/service.rb +18 -18
- data/lib/chef/resource/ssh_known_hosts_entry.rb +146 -0
- data/lib/chef/resource/sudo.rb +4 -4
- data/lib/chef/resource/support/ssh_known_hosts.erb +3 -0
- data/lib/chef/resource/sysctl.rb +9 -5
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/user.rb +15 -15
- data/lib/chef/resource/windows_feature_dism.rb +10 -9
- data/lib/chef/resource/windows_feature_powershell.rb +24 -13
- data/lib/chef/resource/windows_script.rb +1 -1
- data/lib/chef/resource/windows_service.rb +2 -2
- data/lib/chef/resource/windows_task.rb +3 -3
- data/lib/chef/resource_definition.rb +1 -1
- data/lib/chef/resource_inspector.rb +1 -0
- data/lib/chef/resource_reporter.rb +4 -4
- data/lib/chef/resources.rb +5 -0
- data/lib/chef/role.rb +8 -8
- data/lib/chef/run_context.rb +8 -8
- data/lib/chef/run_list/run_list_expansion.rb +6 -6
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +3 -3
- data/lib/chef/run_status.rb +10 -10
- data/lib/chef/shell.rb +60 -60
- data/lib/chef/shell/ext.rb +151 -151
- data/lib/chef/shell/shell_session.rb +2 -2
- data/lib/chef/user.rb +11 -11
- data/lib/chef/user_v1.rb +26 -26
- data/lib/chef/util/backup.rb +2 -2
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/configuration_generator.rb +11 -11
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/file_edit.rb +14 -14
- data/lib/chef/util/powershell/cmdlet.rb +4 -4
- data/lib/chef/util/selinux.rb +2 -2
- data/lib/chef/util/windows/net_group.rb +1 -1
- data/lib/chef/util/windows/net_use.rb +3 -3
- data/lib/chef/util/windows/net_user.rb +12 -12
- data/lib/chef/util/windows/volume.rb +2 -2
- data/lib/chef/version.rb +3 -3
- data/lib/chef/version_constraint.rb +3 -3
- data/lib/chef/win32/api.rb +6 -6
- data/lib/chef/win32/api/error.rb +2 -2
- data/lib/chef/win32/api/file.rb +12 -12
- data/lib/chef/win32/api/net.rb +58 -58
- data/lib/chef/win32/registry.rb +8 -8
- data/lib/chef/win32/security.rb +6 -6
- data/lib/chef/win32/security/securable_object.rb +10 -10
- data/lib/chef/win32/unicode.rb +6 -0
- data/lib/chef/win32/version.rb +16 -16
- data/spec/functional/audit/rspec_formatter_spec.rb +1 -1
- data/spec/functional/audit/runner_spec.rb +1 -1
- data/spec/functional/dsl/reboot_pending_spec.rb +3 -3
- data/spec/functional/dsl/registry_helper_spec.rb +3 -3
- data/spec/functional/http/simple_spec.rb +1 -1
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +2 -2
- data/spec/functional/mixin/shell_out_spec.rb +8 -4
- data/spec/functional/rebooter_spec.rb +6 -6
- data/spec/functional/resource/aixinit_service_spec.rb +2 -2
- data/spec/functional/resource/apt_package_spec.rb +17 -17
- data/spec/functional/resource/bash_spec.rb +1 -1
- data/spec/functional/resource/bff_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +1 -1
- data/spec/functional/resource/dnf_package_spec.rb +7 -7
- data/spec/functional/resource/dsc_script_spec.rb +94 -94
- data/spec/functional/resource/execute_spec.rb +4 -4
- data/spec/functional/resource/file_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +19 -19
- data/spec/functional/resource/ifconfig_spec.rb +5 -5
- data/spec/functional/resource/link_spec.rb +1 -1
- data/spec/functional/resource/mount_spec.rb +2 -2
- data/spec/functional/resource/powershell_script_spec.rb +13 -13
- data/spec/functional/resource/reboot_spec.rb +3 -3
- data/spec/functional/resource/registry_spec.rb +82 -82
- data/spec/functional/resource/remote_file_spec.rb +2 -2
- data/spec/functional/resource/rpm_spec.rb +1 -1
- data/spec/functional/resource/template_spec.rb +5 -5
- data/spec/functional/resource/user/dscl_spec.rb +3 -3
- data/spec/functional/resource/windows_env_spec.rb +1 -1
- data/spec/functional/resource/windows_service_spec.rb +1 -1
- data/spec/functional/resource/windows_task_spec.rb +92 -38
- data/spec/functional/resource/yum_package_spec.rb +8 -8
- data/spec/functional/run_lock_spec.rb +4 -4
- data/spec/functional/shell_spec.rb +1 -1
- data/spec/functional/util/powershell/cmdlet_spec.rb +7 -7
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/crypto_spec.rb +9 -9
- data/spec/functional/win32/registry_spec.rb +66 -66
- data/spec/integration/client/client_spec.rb +219 -219
- data/spec/integration/client/exit_code_spec.rb +19 -19
- data/spec/integration/client/ipv6_spec.rb +36 -36
- data/spec/integration/knife/chef_fs_data_store_spec.rb +130 -130
- data/spec/integration/knife/chef_repo_path_spec.rb +418 -418
- data/spec/integration/knife/chef_repository_file_system_spec.rb +35 -35
- data/spec/integration/knife/chefignore_spec.rb +88 -88
- data/spec/integration/knife/client_bulk_delete_spec.rb +49 -49
- data/spec/integration/knife/client_create_spec.rb +5 -5
- data/spec/integration/knife/client_delete_spec.rb +13 -13
- data/spec/integration/knife/client_key_delete_spec.rb +2 -2
- data/spec/integration/knife/client_key_list_spec.rb +4 -4
- data/spec/integration/knife/client_list_spec.rb +8 -8
- data/spec/integration/knife/common_options_spec.rb +31 -31
- data/spec/integration/knife/config_get_spec.rb +183 -0
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +38 -38
- data/spec/integration/knife/cookbook_bulk_delete_spec.rb +14 -14
- data/spec/integration/knife/cookbook_download_spec.rb +12 -12
- data/spec/integration/knife/cookbook_list_spec.rb +8 -8
- data/spec/integration/knife/cookbook_show_spec.rb +81 -81
- data/spec/integration/knife/cookbook_upload_spec.rb +24 -24
- data/spec/integration/knife/data_bag_delete_spec.rb +8 -8
- data/spec/integration/knife/data_bag_from_file_spec.rb +47 -47
- data/spec/integration/knife/data_bag_list_spec.rb +4 -4
- data/spec/integration/knife/data_bag_show_spec.rb +7 -7
- data/spec/integration/knife/delete_spec.rb +593 -593
- data/spec/integration/knife/deps_spec.rb +185 -185
- data/spec/integration/knife/diff_spec.rb +116 -116
- data/spec/integration/knife/download_spec.rb +510 -510
- data/spec/integration/knife/environment_compare_spec.rb +15 -15
- data/spec/integration/knife/environment_from_file_spec.rb +59 -59
- data/spec/integration/knife/environment_list_spec.rb +4 -4
- data/spec/integration/knife/environment_show_spec.rb +25 -25
- data/spec/integration/knife/list_spec.rb +731 -731
- data/spec/integration/knife/node_bulk_delete_spec.rb +8 -8
- data/spec/integration/knife/node_delete_spec.rb +6 -6
- data/spec/integration/knife/node_environment_set_spec.rb +3 -3
- data/spec/integration/knife/node_from_file_spec.rb +16 -16
- data/spec/integration/knife/node_list_spec.rb +5 -5
- data/spec/integration/knife/raw_spec.rb +117 -117
- data/spec/integration/knife/role_bulk_delete_spec.rb +8 -8
- data/spec/integration/knife/role_delete_spec.rb +6 -6
- data/spec/integration/knife/role_from_file_spec.rb +42 -42
- data/spec/integration/knife/role_list_spec.rb +5 -5
- data/spec/integration/knife/role_show_spec.rb +9 -9
- data/spec/integration/knife/show_spec.rb +57 -57
- data/spec/integration/knife/upload_spec.rb +396 -396
- data/spec/integration/recipes/accumulator_spec.rb +2 -2
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +8 -8
- data/spec/integration/recipes/lwrp_spec.rb +12 -12
- data/spec/integration/recipes/notifies_spec.rb +167 -167
- data/spec/integration/recipes/notifying_block_spec.rb +2 -2
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +99 -99
- data/spec/integration/recipes/resource_load_spec.rb +8 -8
- data/spec/integration/solo/solo_spec.rb +40 -40
- data/spec/scripts/ssl-serve.rb +12 -12
- data/spec/spec_helper.rb +73 -73
- data/spec/stress/win32/file_spec.rb +2 -2
- data/spec/stress/win32/security_spec.rb +2 -2
- data/spec/support/platform_helpers.rb +1 -1
- data/spec/support/shared/context/client.rb +25 -25
- data/spec/support/shared/functional/securable_resource.rb +13 -13
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +6 -6
- data/spec/support/shared/functional/win32_service.rb +5 -5
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/app_server_support.rb +3 -3
- data/spec/support/shared/integration/integration_helper.rb +2 -2
- data/spec/support/shared/integration/knife_support.rb +9 -3
- data/spec/support/shared/unit/api_error_inspector.rb +6 -6
- data/spec/support/shared/unit/api_versioning.rb +2 -2
- data/spec/support/shared/unit/execute_resource.rb +2 -2
- data/spec/support/shared/unit/provider/file.rb +12 -12
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +34 -34
- data/spec/support/shared/unit/user_and_client_shared.rb +3 -3
- data/spec/tiny_server.rb +8 -8
- data/spec/unit/api_client/registration_spec.rb +30 -30
- data/spec/unit/api_client_spec.rb +6 -6
- data/spec/unit/api_client_v1_spec.rb +6 -6
- data/spec/unit/application/apply_spec.rb +4 -4
- data/spec/unit/application/client_spec.rb +11 -11
- data/spec/unit/application/knife_spec.rb +3 -3
- data/spec/unit/application/solo_spec.rb +5 -5
- data/spec/unit/application_spec.rb +11 -11
- data/spec/unit/audit/audit_event_proxy_spec.rb +48 -48
- data/spec/unit/audit/audit_reporter_spec.rb +51 -55
- data/spec/unit/audit/control_group_data_spec.rb +20 -20
- data/spec/unit/audit/runner_spec.rb +2 -2
- data/spec/unit/chef_class_spec.rb +120 -0
- data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb +3 -3
- data/spec/unit/chef_fs/diff_spec.rb +45 -45
- data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +2 -2
- data/spec/unit/chef_fs/file_system_spec.rb +8 -8
- data/spec/unit/chef_fs/parallelizer.rb +12 -12
- data/spec/unit/client_spec.rb +15 -15
- data/spec/unit/config_fetcher_spec.rb +23 -23
- data/spec/unit/config_spec.rb +2 -2
- data/spec/unit/cookbook/metadata_spec.rb +81 -81
- data/spec/unit/cookbook/synchronizer_spec.rb +171 -171
- data/spec/unit/cookbook_loader_spec.rb +10 -5
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +6 -6
- data/spec/unit/cookbook_uploader_spec.rb +8 -8
- data/spec/unit/cookbook_version_file_specificity_spec.rb +135 -135
- data/spec/unit/daemon_spec.rb +4 -4
- data/spec/unit/data_bag_item_spec.rb +3 -3
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector/resource_report_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +4 -3
- data/spec/unit/deprecated_spec.rb +18 -12
- data/spec/unit/dsl/audit_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +16 -16
- data/spec/unit/dsl/reboot_pending_spec.rb +1 -1
- data/spec/unit/environment_spec.rb +16 -16
- data/spec/unit/file_access_control_spec.rb +8 -8
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +26 -26
- data/spec/unit/formatters/error_description_spec.rb +39 -39
- data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +16 -16
- data/spec/unit/formatters/error_inspectors/cookbook_sync_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/node_load_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/registration_error_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/run_list_expansion_error_inspector_spec.rb +5 -5
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +4 -4
- data/spec/unit/handler/json_file_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +1 -1
- data/spec/unit/http/authenticator_spec.rb +17 -17
- data/spec/unit/http/ssl_policies_spec.rb +1 -1
- data/spec/unit/http/validate_content_length_spec.rb +2 -2
- data/spec/unit/key_spec.rb +12 -12
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +3 -3
- data/spec/unit/knife/client_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/client_delete_spec.rb +1 -1
- data/spec/unit/knife/client_reregister_spec.rb +1 -1
- data/spec/unit/knife/configure_client_spec.rb +4 -4
- data/spec/unit/knife/configure_spec.rb +1 -1
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/cookbook_delete_spec.rb +4 -4
- data/spec/unit/knife/cookbook_download_spec.rb +21 -21
- data/spec/unit/knife/cookbook_list_spec.rb +7 -7
- data/spec/unit/knife/cookbook_show_spec.rb +24 -24
- data/spec/unit/knife/cookbook_site_download_spec.rb +23 -23
- data/spec/unit/knife/cookbook_site_install_spec.rb +4 -4
- data/spec/unit/knife/cookbook_site_share_spec.rb +10 -10
- data/spec/unit/knife/cookbook_site_unshare_spec.rb +2 -2
- data/spec/unit/knife/cookbook_upload_spec.rb +19 -19
- data/spec/unit/knife/core/bootstrap_context_spec.rb +37 -37
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +20 -20
- data/spec/unit/knife/core/object_loader_spec.rb +1 -1
- data/spec/unit/knife/core/ui_spec.rb +55 -55
- data/spec/unit/knife/data_bag_create_spec.rb +2 -2
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/knife/data_bag_secret_options_spec.rb +5 -5
- data/spec/unit/knife/environment_from_file_spec.rb +1 -1
- data/spec/unit/knife/key_create_spec.rb +4 -4
- data/spec/unit/knife/key_delete_spec.rb +3 -3
- data/spec/unit/knife/key_edit_spec.rb +3 -3
- data/spec/unit/knife/key_list_spec.rb +3 -3
- data/spec/unit/knife/key_show_spec.rb +3 -3
- data/spec/unit/knife/node_delete_spec.rb +1 -1
- data/spec/unit/knife/node_edit_spec.rb +7 -7
- data/spec/unit/knife/node_from_file_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/osc_user_edit_spec.rb +1 -1
- data/spec/unit/knife/osc_user_reregister_spec.rb +1 -1
- data/spec/unit/knife/role_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/role_create_spec.rb +1 -1
- data/spec/unit/knife/role_delete_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/role_from_file_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_add_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/ssh_spec.rb +25 -25
- data/spec/unit/knife/ssl_check_spec.rb +23 -23
- data/spec/unit/knife/ssl_fetch_spec.rb +11 -11
- data/spec/unit/knife/user_delete_spec.rb +1 -1
- data/spec/unit/knife/user_reregister_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +26 -26
- data/spec/unit/log/syslog_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +4 -4
- data/spec/unit/mash_spec.rb +3 -3
- data/spec/unit/mixin/api_version_request_handling_spec.rb +16 -16
- data/spec/unit/mixin/checksum_spec.rb +1 -1
- data/spec/unit/mixin/enforce_ownership_and_permissions_spec.rb +8 -8
- data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +96 -96
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +27 -27
- data/spec/unit/mixin/shell_out_spec.rb +286 -132
- data/spec/unit/mixin/user_context_spec.rb +1 -1
- data/spec/unit/mixin/xml_escape_spec.rb +1 -1
- data/spec/unit/node/attribute_spec.rb +10 -10
- data/spec/unit/node/vivid_mash_spec.rb +3 -3
- data/spec/unit/node_map_spec.rb +71 -3
- data/spec/unit/node_spec.rb +15 -15
- data/spec/unit/org_spec.rb +2 -2
- data/spec/unit/platform/query_helpers_spec.rb +26 -26
- data/spec/unit/policy_builder/expand_node_object_spec.rb +4 -4
- data/spec/unit/policy_builder/policyfile_spec.rb +29 -29
- data/spec/unit/property_spec.rb +5 -5
- data/spec/unit/provider/apt_repository_spec.rb +19 -19
- data/spec/unit/provider/cookbook_file/content_spec.rb +1 -1
- data/spec/unit/provider/cookbook_file_spec.rb +1 -1
- data/spec/unit/provider/cron/unix_spec.rb +12 -12
- data/spec/unit/provider/cron_spec.rb +279 -279
- data/spec/unit/provider/dsc_resource_spec.rb +6 -6
- data/spec/unit/provider/execute_spec.rb +2 -2
- data/spec/unit/provider/file/content_spec.rb +1 -1
- data/spec/unit/provider/file_spec.rb +1 -1
- data/spec/unit/provider/git_spec.rb +123 -123
- data/spec/unit/provider/group/dscl_spec.rb +18 -18
- data/spec/unit/provider/group/gpasswd_spec.rb +7 -7
- data/spec/unit/provider/group/groupadd_spec.rb +7 -7
- data/spec/unit/provider/group/groupmod_spec.rb +13 -13
- data/spec/unit/provider/group/pw_spec.rb +4 -4
- data/spec/unit/provider/group/suse_spec.rb +2 -2
- data/spec/unit/provider/group/usermod_spec.rb +4 -4
- data/spec/unit/provider/group_spec.rb +3 -3
- data/spec/unit/provider/ifconfig/aix_spec.rb +17 -17
- data/spec/unit/provider/ifconfig/debian_spec.rb +16 -16
- data/spec/unit/provider/ifconfig_spec.rb +16 -16
- data/spec/unit/provider/launchd_spec.rb +52 -52
- data/spec/unit/provider/link_spec.rb +7 -7
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/mount/aix_spec.rb +39 -39
- data/spec/unit/provider/mount/mount_spec.rb +26 -26
- data/spec/unit/provider/mount/solaris_spec.rb +2 -2
- data/spec/unit/provider/mount/windows_spec.rb +6 -6
- data/spec/unit/provider/ohai_spec.rb +9 -9
- data/spec/unit/provider/osx_profile_spec.rb +1 -1
- data/spec/unit/provider/package/apt_spec.rb +186 -186
- data/spec/unit/provider/package/bff_spec.rb +36 -36
- data/spec/unit/provider/package/cab_spec.rb +58 -58
- data/spec/unit/provider/package/chocolatey_spec.rb +34 -34
- data/spec/unit/provider/package/dpkg_spec.rb +33 -33
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +35 -35
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +22 -22
- data/spec/unit/provider/package/freebsd/port_spec.rb +21 -21
- data/spec/unit/provider/package/homebrew_spec.rb +4 -4
- data/spec/unit/provider/package/ips_spec.rb +94 -94
- data/spec/unit/provider/package/macports_spec.rb +23 -23
- data/spec/unit/provider/package/msu_spec.rb +44 -44
- data/spec/unit/provider/package/openbsd_spec.rb +19 -19
- data/spec/unit/provider/package/pacman_spec.rb +50 -50
- data/spec/unit/provider/package/paludis_spec.rb +33 -33
- data/spec/unit/provider/package/portage_spec.rb +25 -25
- data/spec/unit/provider/package/powershell_spec.rb +98 -85
- data/spec/unit/provider/package/rpm_spec.rb +21 -21
- data/spec/unit/provider/package/rubygems_spec.rb +71 -71
- data/spec/unit/provider/package/smartos_spec.rb +21 -21
- data/spec/unit/provider/package/solaris_spec.rb +38 -38
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
- data/spec/unit/provider/package/windows_spec.rb +11 -4
- data/spec/unit/provider/package/zypper_spec.rb +42 -46
- data/spec/unit/provider/package_spec.rb +2 -2
- data/spec/unit/provider/powershell_script_spec.rb +1 -1
- data/spec/unit/provider/registry_key_spec.rb +22 -22
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +7 -7
- data/spec/unit/provider/remote_file/content_spec.rb +4 -4
- data/spec/unit/provider/remote_file/fetcher_spec.rb +5 -5
- data/spec/unit/provider/remote_file/ftp_spec.rb +1 -1
- data/spec/unit/provider/remote_file/http_spec.rb +1 -1
- data/spec/unit/provider/remote_file/local_file_spec.rb +2 -2
- data/spec/unit/provider/remote_file/network_file_spec.rb +3 -3
- data/spec/unit/provider/remote_file/sftp_spec.rb +2 -2
- data/spec/unit/provider/remote_file_spec.rb +1 -1
- data/spec/unit/provider/script_spec.rb +1 -1
- data/spec/unit/provider/service/aix_service_spec.rb +8 -8
- data/spec/unit/provider/service/aixinit_service_spec.rb +3 -3
- data/spec/unit/provider/service/arch_service_spec.rb +21 -21
- data/spec/unit/provider/service/debian_service_spec.rb +2 -2
- data/spec/unit/provider/service/freebsd_service_spec.rb +30 -30
- data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
- data/spec/unit/provider/service/init_service_spec.rb +14 -14
- data/spec/unit/provider/service/insserv_service_spec.rb +2 -2
- data/spec/unit/provider/service/invokercd_service_spec.rb +17 -17
- data/spec/unit/provider/service/macosx_spec.rb +59 -59
- data/spec/unit/provider/service/openbsd_service_spec.rb +6 -6
- data/spec/unit/provider/service/redhat_spec.rb +27 -27
- data/spec/unit/provider/service/simple_service_spec.rb +14 -14
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +19 -19
- data/spec/unit/provider/service/systemd_service_spec.rb +13 -13
- data/spec/unit/provider/service/upstart_service_spec.rb +5 -5
- data/spec/unit/provider/service/windows_spec.rb +38 -38
- data/spec/unit/provider/service_spec.rb +3 -3
- data/spec/unit/provider/subversion_spec.rb +13 -13
- data/spec/unit/provider/systemd_unit_spec.rb +10 -10
- data/spec/unit/provider/template/content_spec.rb +44 -44
- data/spec/unit/provider/template_spec.rb +2 -2
- data/spec/unit/provider/user/aix_spec.rb +5 -5
- data/spec/unit/provider/user/dscl_spec.rb +12 -12
- data/spec/unit/provider/user/pw_spec.rb +12 -12
- data/spec/unit/provider/user/solaris_spec.rb +6 -6
- data/spec/unit/provider/windows_env_spec.rb +2 -2
- data/spec/unit/provider/windows_task_spec.rb +16 -16
- data/spec/unit/provider/zypper_repository_spec.rb +7 -7
- data/spec/unit/provider_resolver_spec.rb +3 -3
- data/spec/unit/recipe_spec.rb +13 -13
- data/spec/unit/resource/chocolatey_config_spec.rb +98 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +102 -0
- data/spec/unit/resource/conditional_spec.rb +1 -1
- data/spec/unit/resource/cookbook_file_spec.rb +3 -3
- data/spec/unit/resource/dnf_package_spec.rb +3 -3
- data/spec/unit/resource/dsc_script_spec.rb +10 -10
- data/spec/unit/resource/execute_spec.rb +2 -2
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/file/verification_spec.rb +1 -1
- data/spec/unit/resource/file_spec.rb +3 -3
- data/spec/unit/resource/freebsd_package_spec.rb +5 -4
- data/spec/unit/resource/group_spec.rb +4 -4
- data/spec/unit/resource/kernel_module_spec.rb +48 -0
- data/spec/unit/resource/mount_spec.rb +13 -3
- data/spec/unit/resource/package_spec.rb +2 -2
- data/spec/unit/resource/powershell_package_source_spec.rb +219 -0
- data/spec/unit/resource/powershell_package_spec.rb +10 -1
- data/spec/unit/resource/powershell_script_spec.rb +8 -8
- data/spec/unit/resource/registry_key_spec.rb +19 -19
- data/spec/unit/resource/remote_file_spec.rb +2 -2
- data/spec/unit/resource/resource_notification_spec.rb +8 -8
- data/spec/unit/resource/service_spec.rb +3 -3
- data/spec/unit/resource/ssh_known_hosts_entry_spec.rb +55 -0
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/windows_feature_dism.rb +5 -5
- data/spec/unit/resource/windows_feature_powershell.rb +27 -6
- data/spec/unit/resource/yum_package_spec.rb +3 -3
- data/spec/unit/resource_collection/resource_set_spec.rb +6 -6
- data/spec/unit/resource_collection_spec.rb +5 -5
- data/spec/unit/resource_definition_spec.rb +2 -2
- data/spec/unit/resource_inspector_spec.rb +3 -3
- data/spec/unit/resource_reporter_spec.rb +24 -24
- data/spec/unit/resource_spec.rb +65 -31
- data/spec/unit/role_spec.rb +22 -22
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/run_list/run_list_item_spec.rb +3 -3
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +12 -12
- data/spec/unit/run_list_spec.rb +6 -6
- data/spec/unit/runner_spec.rb +4 -4
- data/spec/unit/scan_access_control_spec.rb +3 -3
- data/spec/unit/shell/model_wrapper_spec.rb +4 -4
- data/spec/unit/shell/shell_ext_spec.rb +4 -4
- data/spec/unit/shell/shell_session_spec.rb +28 -28
- data/spec/unit/user_spec.rb +2 -2
- data/spec/unit/user_v1_spec.rb +25 -25
- data/spec/unit/util/diff_spec.rb +1 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +4 -4
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +105 -105
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +16 -16
- data/spec/unit/util/file_edit_spec.rb +38 -38
- data/spec/unit/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/unit/util/selinux_spec.rb +10 -10
- data/spec/unit/win32/registry_spec.rb +3 -3
- data/spec/unit/windows_service_spec.rb +2 -2
- data/tasks/cbgb.rb +3 -3
- data/tasks/dependencies.rb +6 -8
- data/tasks/maintainers.rb +7 -7
- data/tasks/rspec.rb +2 -2
- metadata +20 -79
- data/acceptance/.shared/kitchen_acceptance/.kitchen.digitalocean.yml +0 -33
- data/acceptance/.shared/kitchen_acceptance/.kitchen.ec2.yml +0 -272
- data/acceptance/.shared/kitchen_acceptance/.kitchen.vagrant.yml +0 -57
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +0 -68
- data/acceptance/.shared/kitchen_acceptance/metadata.rb +0 -1
- data/acceptance/Gemfile +0 -19
- data/acceptance/Gemfile.lock +0 -266
- data/acceptance/README.md +0 -137
- data/acceptance/basics/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/basics/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/basics/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/basics/.kitchen.yml +0 -4
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +0 -19
- data/acceptance/basics/test/integration/chef-current-install/serverspec/spec_helper.rb +0 -6
- data/acceptance/basics/test/integration/helpers/serverspec/Gemfile +0 -8
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -2
- data/acceptance/data-collector/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/.gitignore +0 -16
- data/acceptance/data-collector/.acceptance/data-collector-test/Berksfile +0 -3
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/api.rb +0 -101
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/apigemfile +0 -3
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-both-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-client-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-no-endpoint.rb +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/client-rb-solo-mode.rb +0 -4
- data/acceptance/data-collector/.acceptance/data-collector-test/files/default/config.ru +0 -2
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +0 -7
- data/acceptance/data-collector/.acceptance/data-collector-test/recipes/default.rb +0 -44
- data/acceptance/data-collector/.kitchen.yml +0 -9
- data/acceptance/data-collector/Berksfile +0 -3
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +0 -208
- data/acceptance/data-collector/test/integration/helpers/serverspec/Gemfile +0 -8
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/metadata.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/omnitruck/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -61
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/cookbook_kitchen.rb +0 -43
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +0 -41
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/metadata.rb +0 -3
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/top-cookbooks/.gitignore +0 -1
- data/acceptance/top-cookbooks/.kitchen.chocolatey.yml +0 -6
- data/acceptance/top-cookbooks/.kitchen.iis.yml +0 -4
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-rhel.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-ubuntu.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.learn-the-basics-windows.yml +0 -7
- data/acceptance/top-cookbooks/.kitchen.powershell.yml +0 -4
- data/acceptance/top-cookbooks/.kitchen.sql_server.yml +0 -5
- data/acceptance/top-cookbooks/.kitchen.winbox.yml +0 -8
- data/acceptance/top-cookbooks/.kitchen.windows.yml +0 -38
- data/acceptance/trivial/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/metadata.rb +0 -2
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/trivial/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/trivial/.kitchen.yml +0 -7
- data/acceptance/trivial/test/integration/chef-current-install/inspec/chef_client_spec.rb +0 -5
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/.gitignore +0 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/metadata.rb +0 -2
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/destroy.rb +0 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/provision.rb +0 -1
- data/acceptance/windows-service/.acceptance/acceptance-cookbook/recipes/verify.rb +0 -1
- data/acceptance/windows-service/.kitchen.yml +0 -7
- data/acceptance/windows-service/test/integration/chef-windows-service/inspec/chef_windows_service_spec.rb +0 -58
- data/distro/powershell/chef/Chef.PowerShell.dll +0 -0
@@ -1,3 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
3
|
+
# you may not use this file except in compliance with the License.
|
4
|
+
# You may obtain a copy of the License at
|
5
|
+
#
|
6
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
7
|
+
#
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
11
|
+
# See the License for the specific language governing permissions and
|
12
|
+
# limitations under the License.
|
13
|
+
#
|
14
|
+
|
15
|
+
require "chef/resource"
|
16
|
+
|
1
17
|
class Chef
|
2
18
|
class Resource
|
3
19
|
# Sets the hostname and updates /etc/hosts on *nix systems
|
@@ -11,23 +27,23 @@ class Chef
|
|
11
27
|
introduced "14.0"
|
12
28
|
|
13
29
|
property :hostname, String,
|
14
|
-
description: "The hostname if different than the resource's name",
|
30
|
+
description: "The hostname if different than the resource's name.",
|
15
31
|
name_property: true
|
16
32
|
|
17
33
|
property :compile_time, [ TrueClass, FalseClass ],
|
18
|
-
description: "
|
34
|
+
description: "Whether the resource runs at compile time or not.",
|
19
35
|
default: true
|
20
36
|
|
21
37
|
property :ipaddress, String,
|
22
|
-
description: "The ip address to use when configuring the hosts file",
|
38
|
+
description: "The ip address to use when configuring the hosts file.",
|
23
39
|
default: lazy { node["ipaddress"] }
|
24
40
|
|
25
41
|
property :aliases, [ Array, nil ],
|
26
|
-
description: "An array of hostname aliases to use when configuring the hosts file",
|
42
|
+
description: "An array of hostname aliases to use when configuring the hosts file.",
|
27
43
|
default: nil
|
28
44
|
|
29
45
|
property :windows_reboot, [ TrueClass, FalseClass ],
|
30
|
-
description: "
|
46
|
+
description: "Whether Windows nodes will be rebooted upon changing the name so changes can take effect.",
|
31
47
|
default: true
|
32
48
|
|
33
49
|
action_class do
|
@@ -64,7 +80,7 @@ class Chef
|
|
64
80
|
end
|
65
81
|
|
66
82
|
action :set do
|
67
|
-
description "Sets the node's hostname"
|
83
|
+
description "Sets the node's hostname."
|
68
84
|
|
69
85
|
if node["platform_family"] != "windows"
|
70
86
|
ohai "reload hostname" do
|
@@ -116,7 +132,7 @@ class Chef
|
|
116
132
|
# this must come before other methods like /etc/hostname and /etc/sysconfig/network
|
117
133
|
declare_resource(:execute, "hostnamectl set-hostname #{new_resource.hostname}") do
|
118
134
|
notifies :reload, "ohai[reload hostname]"
|
119
|
-
not_if { shell_out!("hostnamectl status", { :
|
135
|
+
not_if { shell_out!("hostnamectl status", { returns: [0, 1] }).stdout =~ /Static hostname:\s*#{new_resource.hostname}\s*$/ }
|
120
136
|
end
|
121
137
|
when ::File.exist?("/etc/hostname")
|
122
138
|
# debian family uses /etc/hostname
|
@@ -32,8 +32,11 @@ class Chef
|
|
32
32
|
default_action :get
|
33
33
|
allowed_actions :get, :patch, :put, :post, :delete, :head, :options
|
34
34
|
|
35
|
-
property :url, String, identity: true
|
36
|
-
|
35
|
+
property :url, String, identity: true,
|
36
|
+
description: "The URL to which an HTTP request is sent."
|
37
|
+
|
38
|
+
property :headers, Hash, default: lazy { Hash.new },
|
39
|
+
description: "A Hash of custom headers."
|
37
40
|
|
38
41
|
def initialize(name, run_context = nil)
|
39
42
|
super
|
@@ -45,7 +48,7 @@ class Chef
|
|
45
48
|
set_or_return(
|
46
49
|
:message,
|
47
50
|
args,
|
48
|
-
:
|
51
|
+
kind_of: Object
|
49
52
|
)
|
50
53
|
end
|
51
54
|
|
@@ -35,23 +35,63 @@ class Chef
|
|
35
35
|
default_action :add
|
36
36
|
allowed_actions :add, :delete, :enable, :disable
|
37
37
|
|
38
|
-
property :target, String,
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
property :
|
43
|
-
|
44
|
-
|
45
|
-
property :
|
46
|
-
|
47
|
-
|
48
|
-
property :
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
property :
|
53
|
-
|
54
|
-
|
38
|
+
property :target, String,
|
39
|
+
name_property: true,
|
40
|
+
description: "The IP address that is to be assigned to the network interface. If not specified we'll use the resource's name."
|
41
|
+
|
42
|
+
property :hwaddr, String,
|
43
|
+
description: "The hardware address for the network interface."
|
44
|
+
|
45
|
+
property :mask, String,
|
46
|
+
description: "The decimal representation of the network mask. For example: 255.255.255.0."
|
47
|
+
|
48
|
+
property :family, String,
|
49
|
+
default: "inet", introduced: "14.0",
|
50
|
+
description: "Networking family option for Debian-based systems. For example: inet or inet6."
|
51
|
+
|
52
|
+
property :inet_addr, String,
|
53
|
+
description: "The Internet host address for the network interface."
|
54
|
+
|
55
|
+
property :bcast, String,
|
56
|
+
description: "The broadcast address for a network interface. On some platforms this property is not set using ifconfig, but instead is added to the startup configuration file for the network interface."
|
57
|
+
|
58
|
+
property :mtu, String,
|
59
|
+
description: "The maximum transmission unit (MTU) for the network interface."
|
60
|
+
|
61
|
+
property :metric, String,
|
62
|
+
description: "The routing metric for the interface."
|
63
|
+
|
64
|
+
property :device, String,
|
65
|
+
identity: true,
|
66
|
+
description: "The network interface to be configured."
|
67
|
+
|
68
|
+
property :onboot, String,
|
69
|
+
description: "Bring up the network interface on boot."
|
70
|
+
|
71
|
+
property :network, String,
|
72
|
+
description: "The address for the network interface."
|
73
|
+
|
74
|
+
property :bootproto, String,
|
75
|
+
description: "The boot protocol used by a network interface."
|
76
|
+
|
77
|
+
property :onparent, String,
|
78
|
+
description: "Bring up the network interface when its parent interface is brought up."
|
79
|
+
|
80
|
+
property :ethtool_opts, String,
|
81
|
+
introduced: "13.4",
|
82
|
+
description: "Options to be passed to ethtool(8). For example: -A eth0 autoneg off rx off tx off."
|
83
|
+
|
84
|
+
property :bonding_opts, String,
|
85
|
+
introduced: "13.4",
|
86
|
+
description: "Bonding options to pass via BONDING_OPTS on RHEL and CentOS. For example: mode=active-backup miimon=100."
|
87
|
+
|
88
|
+
property :master, String,
|
89
|
+
introduced: "13.4",
|
90
|
+
description: "Specifies the channel bonding interface to which the Ethernet interface is linked."
|
91
|
+
|
92
|
+
property :slave, String,
|
93
|
+
introduced: "13.4",
|
94
|
+
description: "When set to yes, this device is controlled by the channel bonding interface that is specified via the master property."
|
55
95
|
end
|
56
96
|
end
|
57
97
|
end
|
@@ -30,7 +30,9 @@ class Chef
|
|
30
30
|
|
31
31
|
allowed_actions :install, :remove, :upgrade
|
32
32
|
|
33
|
-
property :accept_license, [TrueClass, FalseClass],
|
33
|
+
property :accept_license, [TrueClass, FalseClass],
|
34
|
+
default: false, desired_state: false,
|
35
|
+
description: "Accept an end-user license agreement, automatically."
|
34
36
|
end
|
35
37
|
end
|
36
38
|
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
#
|
2
|
+
# Resource:: kernel_module
|
3
|
+
#
|
4
|
+
# The MIT License (MIT)
|
5
|
+
#
|
6
|
+
# Copyright 2016-2018, Shopify Inc.
|
7
|
+
# Copyright 2018, Chef Software, Inc.
|
8
|
+
|
9
|
+
require "chef/resource"
|
10
|
+
|
11
|
+
class Chef
|
12
|
+
class Resource
|
13
|
+
class KernelModule < Chef::Resource
|
14
|
+
preview_resource true
|
15
|
+
resource_name :kernel_module
|
16
|
+
|
17
|
+
description "Use the kernel_module resource to manage kernel modules on Linux systems. This resource can load, unload, blacklist, install, and uninstall modules."
|
18
|
+
introduced "14.3"
|
19
|
+
|
20
|
+
property :modname, String,
|
21
|
+
description: "The name of the kernel module.",
|
22
|
+
name_property: true, identity: true
|
23
|
+
|
24
|
+
property :load_dir, String,
|
25
|
+
description: "The directory to load modules from.",
|
26
|
+
default: "/etc/modules-load.d"
|
27
|
+
|
28
|
+
property :unload_dir, String,
|
29
|
+
description: "The modprobe.d directory.",
|
30
|
+
default: "/etc/modprobe.d"
|
31
|
+
|
32
|
+
action :install do
|
33
|
+
description "Load kernel module, and ensure it loads on reboot."
|
34
|
+
|
35
|
+
# load the module first before installing
|
36
|
+
new_resource.run_action(:load)
|
37
|
+
|
38
|
+
directory new_resource.load_dir do
|
39
|
+
recursive true
|
40
|
+
end
|
41
|
+
|
42
|
+
file "#{new_resource.load_dir}/#{new_resource.modname}.conf" do
|
43
|
+
content "#{new_resource.modname}\n"
|
44
|
+
notifies :run, "execute[update initramfs]"
|
45
|
+
end
|
46
|
+
|
47
|
+
execute "update initramfs" do
|
48
|
+
command initramfs_command
|
49
|
+
action :nothing
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
action :uninstall do
|
54
|
+
description "Unload a kernel module and remove module config, so it doesn't load on reboot."
|
55
|
+
|
56
|
+
file "#{new_resource.load_dir}/#{new_resource.modname}.conf" do
|
57
|
+
action :delete
|
58
|
+
notifies :run, "execute[update initramfs]"
|
59
|
+
end
|
60
|
+
|
61
|
+
file "#{new_resource.unload_dir}/blacklist_#{new_resource.modname}.conf" do
|
62
|
+
action :delete
|
63
|
+
notifies :run, "execute[update initramfs]"
|
64
|
+
end
|
65
|
+
|
66
|
+
execute "update initramfs" do
|
67
|
+
command initramfs_command
|
68
|
+
action :nothing
|
69
|
+
end
|
70
|
+
|
71
|
+
new_resource.run_action(:unload)
|
72
|
+
end
|
73
|
+
|
74
|
+
action :blacklist do
|
75
|
+
description "Blacklist a kernel module."
|
76
|
+
|
77
|
+
file "#{new_resource.unload_dir}/blacklist_#{new_resource.modname}.conf" do
|
78
|
+
content "blacklist #{new_resource.modname}"
|
79
|
+
notifies :run, "execute[update initramfs]"
|
80
|
+
end
|
81
|
+
|
82
|
+
execute "update initramfs" do
|
83
|
+
command initramfs_command
|
84
|
+
action :nothing
|
85
|
+
end
|
86
|
+
|
87
|
+
new_resource.run_action(:unload)
|
88
|
+
end
|
89
|
+
|
90
|
+
action :load do
|
91
|
+
description "Load a kernel module."
|
92
|
+
|
93
|
+
unless module_loaded?
|
94
|
+
converge_by("load kernel module #{new_resource.modname}") do
|
95
|
+
shell_out!("modprobe #{new_resource.modname}")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
action :unload do
|
101
|
+
description "Unload kernel module."
|
102
|
+
|
103
|
+
if module_loaded?
|
104
|
+
converge_by("unload kernel module #{new_resource.modname}") do
|
105
|
+
shell_out!("modprobe -r #{new_resource.modname}")
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
action_class do
|
111
|
+
# determine the correct command to regen the initramfs based on platform
|
112
|
+
# @return [String]
|
113
|
+
def initramfs_command
|
114
|
+
if platform_family?("debian")
|
115
|
+
"update-initramfs -u"
|
116
|
+
else
|
117
|
+
"dracut -f"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# see if the module is listed in /proc/modules or not
|
122
|
+
# @return [Boolean]
|
123
|
+
def module_loaded?
|
124
|
+
/^#{new_resource.modname}/.match?(::File.read("/proc/modules"))
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
@@ -30,16 +30,39 @@ class Chef
|
|
30
30
|
default_action :create
|
31
31
|
allowed_actions :create, :create_if_missing, :delete, :enable, :disable, :restart
|
32
32
|
|
33
|
-
property :label, String,
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
property :
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
property :
|
42
|
-
|
33
|
+
property :label, String,
|
34
|
+
identity: true, name_property: true,
|
35
|
+
description: "The unique identifier for the job."
|
36
|
+
|
37
|
+
property :backup, [Integer, FalseClass],
|
38
|
+
desired_state: false,
|
39
|
+
description: "The number of backups to be kept in /var/chef/backup. Set to false to prevent backups from being kept."
|
40
|
+
|
41
|
+
property :cookbook, String,
|
42
|
+
desired_state: false,
|
43
|
+
description: "The name of the cookbook in which the source files are located."
|
44
|
+
|
45
|
+
property :group, [String, Integer],
|
46
|
+
description: "When launchd is run as the root user, the group to run the job as. If the username property is specified and this property is not, this value is set to the default group for the user."
|
47
|
+
|
48
|
+
property :plist_hash, Hash,
|
49
|
+
introduced: "12.19",
|
50
|
+
description: "A Hash of key value pairs used to create the launchd property list."
|
51
|
+
|
52
|
+
property :mode, [String, Integer],
|
53
|
+
description: "A quoted 3-5 character string that defines the octal mode. For example: '755', '0755', or 00755."
|
54
|
+
|
55
|
+
property :owner, [String, Integer],
|
56
|
+
description: "A string or ID that identifies the group owner by user name, including fully qualified user names such as domain_user or user@domain. If this value is not specified, existing owners remain unchanged and new owner assignments use the current user (when necessary)."
|
57
|
+
|
58
|
+
property :path, String,
|
59
|
+
description: "The path to the directory. Using a fully qualified path is recommended, but is not always required."
|
60
|
+
|
61
|
+
property :source, String,
|
62
|
+
description: "The path to the launchd property list."
|
63
|
+
|
64
|
+
property :session_type, String,
|
65
|
+
description: "The type of launchd plist to be created. Possible values: system (default) or user."
|
43
66
|
|
44
67
|
# StartCalendarInterval has some gotchas so we coerce it to help sanity
|
45
68
|
# check. According to `man 5 launchd.plist`:
|
@@ -50,96 +73,180 @@ class Chef
|
|
50
73
|
# this means that an entry like:
|
51
74
|
# { "Hour"=>0, "Weekday"=>"6-7"}
|
52
75
|
# will not just run on midnight of Sat and Sun, rather it will run _every_ midnight.
|
53
|
-
property :start_calendar_interval, [Hash, Array],
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
76
|
+
property :start_calendar_interval, [Hash, Array],
|
77
|
+
description: "A Hash (similar to crontab) that defines the calendar frequency at which a job is started or an Array.",
|
78
|
+
coerce: proc { |type|
|
79
|
+
# Coerce into an array of hashes to make validation easier
|
80
|
+
array = if type.is_a?(Array)
|
81
|
+
type
|
82
|
+
else
|
83
|
+
[type]
|
84
|
+
end
|
85
|
+
|
86
|
+
# Check to make sure that our array only has hashes
|
87
|
+
unless array.all? { |obj| obj.is_a?(Hash) }
|
88
|
+
error_msg = "start_calendar_interval must be a single hash or an array of hashes!"
|
89
|
+
raise Chef::Exceptions::ValidationFailed, error_msg
|
90
|
+
end
|
91
|
+
|
92
|
+
# Make sure the hashes don't have any incorrect keys/values
|
93
|
+
array.each do |entry|
|
94
|
+
allowed_keys = %w{Minute Hour Day Weekday Month}
|
95
|
+
unless entry.keys.all? { |key| allowed_keys.include?(key) }
|
96
|
+
failed_keys = entry.keys.reject { |k| allowed_keys.include?(k) }.join(", ")
|
97
|
+
error_msg = "The following key(s): #{failed_keys} are invalid for start_calendar_interval, must be one of: #{allowed_keys.join(", ")}"
|
98
|
+
raise Chef::Exceptions::ValidationFailed, error_msg
|
99
|
+
end
|
100
|
+
|
101
|
+
unless entry.values.all? { |val| val.is_a?(Integer) }
|
102
|
+
failed_values = entry.values.reject { |val| val.is_a?(Integer) }.join(", ")
|
103
|
+
error_msg = "Invalid value(s) (#{failed_values}) for start_calendar_interval item. Values must be integers!"
|
104
|
+
raise Chef::Exceptions::ValidationFailed, error_msg
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
# Don't return array if we only have one entry
|
109
|
+
if array.size == 1
|
110
|
+
array.first
|
111
|
+
else
|
112
|
+
array
|
113
|
+
end
|
114
|
+
}
|
115
|
+
|
116
|
+
property :type, String,
|
117
|
+
description: "The type of resource. Possible values: daemon (default), agent.",
|
118
|
+
default: "daemon", coerce: proc { |type|
|
119
|
+
type = type ? type.downcase : "daemon"
|
120
|
+
types = %w{daemon agent}
|
121
|
+
|
122
|
+
unless types.include?(type)
|
123
|
+
error_msg = "type must be daemon or agent"
|
124
|
+
raise Chef::Exceptions::ValidationFailed, error_msg
|
125
|
+
end
|
126
|
+
type
|
127
|
+
}
|
101
128
|
|
102
129
|
# Apple LaunchD Keys
|
103
|
-
property :abandon_process_group, [ TrueClass, FalseClass ]
|
104
|
-
|
105
|
-
|
106
|
-
property :
|
107
|
-
|
108
|
-
|
109
|
-
property :
|
110
|
-
|
111
|
-
|
112
|
-
property :
|
113
|
-
|
114
|
-
|
115
|
-
property :
|
116
|
-
|
117
|
-
|
118
|
-
property :
|
119
|
-
|
120
|
-
|
121
|
-
property :
|
122
|
-
|
123
|
-
|
124
|
-
property :
|
125
|
-
|
126
|
-
|
127
|
-
property :
|
128
|
-
|
129
|
-
|
130
|
-
property :
|
131
|
-
|
132
|
-
|
133
|
-
property :
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
property :
|
138
|
-
|
139
|
-
|
140
|
-
property :
|
141
|
-
|
142
|
-
|
130
|
+
property :abandon_process_group, [ TrueClass, FalseClass ],
|
131
|
+
description: "If a job dies, all remaining processes with the same process ID may be kept running. Set to true to kill all remaining processes."
|
132
|
+
|
133
|
+
property :debug, [ TrueClass, FalseClass ],
|
134
|
+
description: "Sets the log mask to LOG_DEBUG for this job."
|
135
|
+
|
136
|
+
property :disabled, [ TrueClass, FalseClass ], default: false,
|
137
|
+
description: "Hints to launchctl to not submit this job to launchd."
|
138
|
+
|
139
|
+
property :enable_globbing, [ TrueClass, FalseClass ],
|
140
|
+
description: "Update program arguments before invocation."
|
141
|
+
|
142
|
+
property :enable_transactions, [ TrueClass, FalseClass ],
|
143
|
+
description: "Track in-progress transactions; if none, then send the SIGKILL signal."
|
144
|
+
|
145
|
+
property :environment_variables, Hash,
|
146
|
+
description: "Additional environment variables to set before running a job."
|
147
|
+
|
148
|
+
property :exit_timeout, Integer,
|
149
|
+
description: "The amount of time (in seconds) launchd waits before sending a SIGKILL signal."
|
150
|
+
|
151
|
+
property :hard_resource_limits, Hash,
|
152
|
+
description: "A Hash of resource limits to be imposed on a job."
|
153
|
+
|
154
|
+
property :inetd_compatibility, Hash,
|
155
|
+
description: "Specifies if a daemon expects to be run as if it were launched from inetd. Set to wait => true to pass standard input, output, and error file descriptors. Set to wait => false to call the accept system call on behalf of the job, and then pass standard input, output, and error file descriptors."
|
156
|
+
|
157
|
+
property :init_groups, [ TrueClass, FalseClass ],
|
158
|
+
description: "Specify if initgroups is called before running a job."
|
159
|
+
|
160
|
+
property :keep_alive, [ TrueClass, FalseClass, Hash ],
|
161
|
+
introduced: "12.14",
|
162
|
+
description: "Keep a job running continuously (true) or allow demand and conditions on the node to determine if the job keeps running (false)."
|
163
|
+
|
164
|
+
property :launch_only_once, [ TrueClass, FalseClass ],
|
165
|
+
description: "Specify if a job can be run only one time. Set this value to true if a job cannot be restarted without a full machine reboot."
|
166
|
+
|
167
|
+
property :ld_group, String,
|
168
|
+
description: "The group name."
|
169
|
+
|
170
|
+
property :limit_load_from_hosts, Array,
|
171
|
+
description: "An array of hosts to which this configuration file does not apply, i.e. 'apply this configuration file to all hosts not specified in this array'."
|
172
|
+
|
173
|
+
property :limit_load_to_hosts, Array,
|
174
|
+
description: "An array of hosts to which this configuration file applies."
|
175
|
+
|
176
|
+
property :limit_load_to_session_type, [ Array, String ],
|
177
|
+
description: "The session type(s) to which this configuration file applies."
|
178
|
+
|
179
|
+
property :low_priority_io, [ TrueClass, FalseClass ],
|
180
|
+
description: "Specify if the kernel on the node should consider this daemon to be low priority during file system I/O."
|
181
|
+
|
182
|
+
property :mach_services, Hash,
|
183
|
+
description: "Specify services to be registered with the bootstrap subsystem."
|
184
|
+
|
185
|
+
property :nice, Integer,
|
186
|
+
description: "The program scheduling priority value in the range -20 to 20."
|
187
|
+
|
188
|
+
property :on_demand, [ TrueClass, FalseClass ],
|
189
|
+
description: "Keep a job alive. Only applies to macOS version 10.4 (and earlier); use keep_alive instead for newer versions."
|
190
|
+
|
191
|
+
property :process_type, String,
|
192
|
+
description: "The intended purpose of the job: Adaptive, Background, Interactive, or Standard."
|
193
|
+
|
194
|
+
property :program, String,
|
195
|
+
description: "The first argument of execvp, typically the file name associated with the file to be executed. This value must be specified if program_arguments is not specified, and vice-versa."
|
196
|
+
|
197
|
+
property :program_arguments, Array,
|
198
|
+
description: "The second argument of execvp. If program is not specified, this property must be specified and will be handled as if it were the first argument."
|
199
|
+
|
200
|
+
property :queue_directories, Array,
|
201
|
+
description: "An array of non-empty directories which, if any are modified, will cause a job to be started."
|
202
|
+
|
203
|
+
property :root_directory, String,
|
204
|
+
description: "chroot to this directory, and then run the job."
|
205
|
+
|
206
|
+
property :run_at_load, [ TrueClass, FalseClass ],
|
207
|
+
description: "Launch a job once (at the time it is loaded)."
|
208
|
+
|
209
|
+
property :sockets, Hash,
|
210
|
+
description: "A Hash of on-demand sockets that notify launchd when a job should be run."
|
211
|
+
|
212
|
+
property :soft_resource_limits, Array,
|
213
|
+
description: "A Hash of resource limits to be imposed on a job."
|
214
|
+
|
215
|
+
property :standard_error_path, String,
|
216
|
+
description: "The file to which standard error (stderr) is sent."
|
217
|
+
|
218
|
+
property :standard_in_path, String,
|
219
|
+
description: "The file to which standard input (stdin) is sent."
|
220
|
+
|
221
|
+
property :standard_out_path, String,
|
222
|
+
description: "The file to which standard output (stdout) is sent."
|
223
|
+
|
224
|
+
property :start_interval, Integer,
|
225
|
+
description: "The frequency (in seconds) at which a job is started."
|
226
|
+
|
227
|
+
property :start_on_mount, [ TrueClass, FalseClass ],
|
228
|
+
description: "Start a job every time a file system is mounted."
|
229
|
+
|
230
|
+
property :throttle_interval, Integer,
|
231
|
+
description: "The frequency (in seconds) at which jobs are allowed to spawn."
|
232
|
+
|
233
|
+
property :time_out, Integer,
|
234
|
+
description: "The amount of time (in seconds) a job may be idle before it times out. If no value is specified, the default timeout value for launchd will be used."
|
235
|
+
|
236
|
+
property :umask, Integer,
|
237
|
+
description: "A decimal value to pass to umask before running a job."
|
238
|
+
|
239
|
+
property :username, String,
|
240
|
+
description: "When launchd is run as the root user, the user to run the job as."
|
241
|
+
|
242
|
+
property :wait_for_debugger, [ TrueClass, FalseClass ],
|
243
|
+
description: "Specify if launchd has a job wait for a debugger to attach before executing code."
|
244
|
+
|
245
|
+
property :watch_paths, Array,
|
246
|
+
description: "An array of paths which, if any are modified, will cause a job to be started."
|
247
|
+
|
248
|
+
property :working_directory, String,
|
249
|
+
description: "Chdir to this directory, and then run the job."
|
143
250
|
end
|
144
251
|
end
|
145
252
|
end
|