chef 16.1.16 → 16.18.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +32 -27
- data/README.md +5 -5
- data/Rakefile +35 -30
- data/bin/knife +1 -1
- data/chef-universal-mingw32.gemspec +5 -5
- data/chef.gemspec +32 -10
- data/lib/chef/action_collection.rb +5 -1
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application/apply.rb +19 -13
- data/lib/chef/application/base.rb +27 -24
- data/lib/chef/application/client.rb +17 -6
- data/lib/chef/application/exit_code.rb +13 -4
- data/lib/chef/application/knife.rb +22 -11
- data/lib/chef/application/solo.rb +2 -1
- data/lib/chef/application/windows_service.rb +39 -39
- data/lib/chef/application/windows_service_manager.rb +7 -7
- data/lib/chef/application.rb +33 -19
- data/lib/chef/{whitelist.rb → attribute_allowlist.rb} +11 -11
- data/lib/chef/{blacklist.rb → attribute_blocklist.rb} +9 -9
- data/lib/chef/chef_class.rb +0 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +55 -55
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -2
- data/lib/chef/chef_fs/file_pattern.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -5
- data/lib/chef/chef_fs/file_system/chef_server/organization_invites_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/chef_server/organization_members_entry.rb +8 -8
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +1 -0
- 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 +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +18 -18
- 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/knife.rb +2 -2
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/parallelizer.rb +0 -1
- data/lib/chef/chef_fs/path_utils.rb +1 -1
- data/lib/chef/client.rb +32 -59
- data/lib/chef/compliance/default_attributes.rb +97 -0
- data/lib/chef/compliance/fetcher/automate.rb +80 -0
- data/lib/chef/compliance/fetcher/chef_server.rb +134 -0
- data/lib/chef/compliance/reporter/automate.rb +201 -0
- data/lib/chef/compliance/reporter/chef_server_automate.rb +94 -0
- data/lib/chef/compliance/reporter/compliance_enforcer.rb +20 -0
- data/lib/chef/compliance/reporter/json_file.rb +19 -0
- data/lib/chef/compliance/runner.rb +269 -0
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +6 -2
- data/lib/chef/cookbook/metadata.rb +1 -1
- data/lib/chef/cookbook/remote_file_vendor.rb +1 -3
- data/lib/chef/cookbook/synchronizer.rb +2 -2
- data/lib/chef/cookbook/syntax_check.rb +1 -2
- data/lib/chef/cookbook_loader.rb +15 -29
- data/lib/chef/cookbook_manifest.rb +2 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +30 -11
- data/lib/chef/data_bag.rb +5 -6
- data/lib/chef/data_collector/config_validation.rb +22 -13
- data/lib/chef/data_collector/run_end_message.rb +15 -5
- data/lib/chef/data_collector/run_start_message.rb +1 -1
- data/lib/chef/data_collector.rb +7 -6
- data/lib/chef/deprecated.rb +27 -5
- data/lib/chef/deprecation/warnings.rb +2 -2
- data/lib/chef/digester.rb +4 -3
- data/lib/chef/dsl/chef_vault.rb +1 -1
- data/lib/chef/dsl/data_query.rb +2 -2
- data/lib/chef/dsl/platform_introspection.rb +10 -8
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +3 -3
- data/lib/chef/encrypted_data_bag_item.rb +3 -4
- data/lib/chef/environment.rb +6 -7
- data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
- data/lib/chef/exceptions.rb +16 -6
- data/lib/chef/file_access_control/windows.rb +12 -11
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/file_cache.rb +4 -4
- data/lib/chef/file_content_management/deploy/mv_unix.rb +1 -1
- data/lib/chef/file_content_management/tempfile.rb +10 -10
- data/lib/chef/formatters/doc.rb +7 -6
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +6 -5
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +3 -3
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +3 -3
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +9 -9
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +8 -8
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
- data/lib/chef/formatters/error_mapper.rb +2 -2
- data/lib/chef/formatters/indentable_output_stream.rb +2 -2
- data/lib/chef/formatters/minimal.rb +5 -4
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +28 -39
- data/lib/chef/handler/json_file.rb +1 -1
- data/lib/chef/handler.rb +2 -0
- data/lib/chef/http/auth_credentials.rb +5 -1
- data/lib/chef/http/authenticator.rb +4 -2
- data/lib/chef/http/basic_client.rb +4 -2
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +8 -6
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
- data/lib/chef/http/ssl_policies.rb +52 -15
- data/lib/chef/http.rb +38 -31
- data/lib/chef/json_compat.rb +4 -9
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +12 -12
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +9 -9
- data/lib/chef/knife/bootstrap/train_connector.rb +2 -1
- data/lib/chef/knife/bootstrap.rb +93 -40
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/client_create.rb +3 -3
- data/lib/chef/knife/config_get.rb +8 -96
- data/lib/chef/knife/config_get_profile.rb +9 -9
- data/lib/chef/knife/config_list.rb +139 -0
- data/lib/chef/knife/config_list_profiles.rb +8 -95
- data/lib/chef/knife/config_show.rb +127 -0
- data/lib/chef/knife/config_use.rb +61 -0
- data/lib/chef/knife/config_use_profile.rb +12 -17
- data/lib/chef/knife/configure.rb +5 -3
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_download.rb +1 -1
- data/lib/chef/knife/cookbook_metadata.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +29 -37
- data/lib/chef/knife/core/bootstrap_context.rb +3 -3
- data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
- data/lib/chef/knife/core/formatting_options.rb +49 -0
- data/lib/chef/knife/core/gem_glob_loader.rb +2 -2
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +3 -2
- data/lib/chef/knife/core/node_presenter.rb +0 -25
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -26
- data/lib/chef/knife/core/subcommand_loader.rb +20 -1
- data/lib/chef/knife/core/ui.rb +12 -3
- data/lib/chef/knife/core/windows_bootstrap_context.rb +51 -42
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/delete.rb +15 -15
- data/lib/chef/knife/exec.rb +4 -4
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_policy_set.rb +2 -2
- data/lib/chef/knife/node_run_list_add.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +2 -2
- data/lib/chef/knife/node_run_list_set.rb +1 -1
- data/lib/chef/knife/node_show.rb +4 -3
- data/lib/chef/knife/rehash.rb +3 -21
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/role_env_run_list_add.rb +1 -1
- data/lib/chef/knife/role_env_run_list_set.rb +1 -1
- data/lib/chef/knife/role_run_list_add.rb +1 -1
- data/lib/chef/knife/role_run_list_set.rb +1 -1
- data/lib/chef/knife/search.rb +2 -2
- data/lib/chef/knife/serve.rb +3 -3
- data/lib/chef/knife/ssh.rb +33 -12
- data/lib/chef/knife/ssl_check.rb +3 -3
- data/lib/chef/knife/status.rb +10 -13
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/knife/tag_create.rb +1 -1
- data/lib/chef/knife/tag_delete.rb +1 -1
- data/lib/chef/knife/user_create.rb +2 -2
- data/lib/chef/knife/xargs.rb +19 -19
- data/lib/chef/knife/yaml_convert.rb +1 -1
- data/lib/chef/knife.rb +9 -9
- data/lib/chef/local_mode.rb +2 -2
- data/lib/chef/log/syslog.rb +2 -2
- data/lib/chef/log/winevt.rb +2 -2
- data/lib/chef/log.rb +8 -3
- data/lib/chef/mixin/checksum.rb +5 -0
- data/{spec/functional/resource/base.rb → lib/chef/mixin/chef_utils_wiring.rb} +24 -12
- data/lib/chef/mixin/convert_to_class_name.rb +0 -56
- data/lib/chef/mixin/deep_merge.rb +35 -18
- data/{spec/unit/monkey_patches/uri_spec.rb → lib/chef/mixin/default_paths.rb} +11 -13
- data/lib/chef/mixin/openssl_helper.rb +32 -11
- data/lib/chef/mixin/path_sanity.rb +5 -4
- data/lib/chef/mixin/powershell_exec.rb +17 -22
- data/lib/chef/mixin/powershell_out.rb +12 -5
- data/lib/chef/mixin/properties.rb +2 -0
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +4 -188
- data/lib/chef/mixin/template.rb +4 -3
- data/lib/chef/mixin/unformatter.rb +1 -1
- data/lib/chef/mixin/uris.rb +4 -2
- data/lib/chef/mixin/versioned_api.rb +1 -2
- data/lib/chef/mixin/which.rb +6 -3
- data/lib/chef/mixins.rb +1 -0
- data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
- data/lib/chef/node/attribute.rb +22 -7
- data/lib/chef/node/attribute_collections.rb +2 -6
- data/lib/chef/node/mixin/deep_merge_cache.rb +4 -4
- data/lib/chef/node/mixin/immutablize_hash.rb +2 -0
- data/lib/chef/node.rb +43 -18
- data/lib/chef/node_map.rb +21 -18
- data/lib/chef/platform/query_helpers.rb +4 -4
- data/lib/chef/platform/service_helpers.rb +31 -28
- data/lib/chef/policy_builder/dynamic.rb +2 -0
- data/lib/chef/policy_builder/policyfile.rb +8 -3
- data/lib/chef/powershell.rb +10 -4
- data/lib/chef/property.rb +2 -2
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron/unix.rb +0 -2
- data/lib/chef/provider/cron.rb +9 -28
- data/lib/chef/provider/dsc_resource.rb +12 -24
- data/lib/chef/provider/dsc_script.rb +16 -20
- data/lib/chef/provider/execute.rb +2 -1
- data/lib/chef/provider/file.rb +5 -5
- data/lib/chef/provider/git.rb +22 -14
- data/lib/chef/provider/group/dscl.rb +3 -3
- data/lib/chef/provider/group/suse.rb +5 -5
- data/lib/chef/provider/group/windows.rb +13 -2
- data/lib/chef/provider/group.rb +14 -8
- data/lib/chef/provider/ifconfig/debian.rb +38 -22
- data/lib/chef/provider/ifconfig/redhat.rb +54 -18
- data/lib/chef/provider/ifconfig.rb +16 -19
- data/lib/chef/provider/launchd.rb +3 -13
- data/lib/chef/provider/link.rb +0 -9
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/linux.rb +67 -0
- data/lib/chef/provider/mount/mount.rb +41 -43
- data/lib/chef/provider/mount/solaris.rb +0 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/mount.rb +23 -3
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/apt.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +6 -6
- data/lib/chef/provider/package/dnf/dnf_helper.py +23 -6
- data/lib/chef/provider/package/dnf/python_helper.rb +6 -6
- data/lib/chef/provider/package/dnf.rb +39 -12
- data/lib/chef/provider/package/dpkg.rb +3 -12
- data/lib/chef/provider/package/freebsd/base.rb +3 -2
- data/lib/chef/provider/package/freebsd/pkgng.rb +4 -2
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/ips.rb +1 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +10 -2
- data/lib/chef/provider/package/rubygems.rb +25 -22
- data/lib/chef/provider/package/snap.rb +99 -34
- data/lib/chef/provider/package/solaris.rb +0 -2
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -10
- data/lib/chef/provider/package/windows.rb +12 -7
- data/lib/chef/provider/package/yum/rpm_utils.rb +1 -1
- data/lib/chef/provider/package/yum/yum_helper.py +4 -10
- data/lib/chef/provider/package/zypper.rb +99 -73
- data/lib/chef/provider/package.rb +53 -18
- data/lib/chef/provider/powershell_script.rb +40 -17
- data/lib/chef/provider/registry_key.rb +4 -3
- data/lib/chef/provider/remote_file/content.rb +3 -0
- data/lib/chef/provider/remote_file/ftp.rb +6 -4
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/remote_file/sftp.rb +6 -4
- data/lib/chef/provider/route.rb +4 -8
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +5 -4
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +7 -7
- data/lib/chef/provider/service/openbsd.rb +5 -8
- data/lib/chef/provider/service/redhat.rb +4 -4
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +11 -11
- data/lib/chef/provider/service.rb +2 -2
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/systemd_unit.rb +0 -2
- data/lib/chef/provider/template/content.rb +2 -1
- data/lib/chef/provider/template_finder.rb +2 -10
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +10 -10
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +29 -21
- data/lib/chef/provider/user/solaris.rb +1 -1
- data/lib/chef/provider/user/windows.rb +10 -3
- data/lib/chef/provider/user.rb +17 -9
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/yum_repository.rb +3 -3
- data/lib/chef/provider/zypper_repository.rb +33 -14
- data/lib/chef/provider.rb +1 -5
- data/lib/chef/provider_resolver.rb +1 -1
- data/lib/chef/providers.rb +1 -4
- data/lib/chef/pwsh.rb +71 -0
- data/lib/chef/recipe.rb +2 -2
- data/lib/chef/resource/alternatives.rb +1 -1
- data/lib/chef/resource/apt_package.rb +1 -1
- data/lib/chef/resource/apt_repository.rb +7 -15
- data/lib/chef/resource/archive_file.rb +28 -8
- data/lib/chef/resource/bash.rb +119 -2
- data/lib/chef/resource/batch.rb +5 -3
- data/lib/chef/resource/bff_package.rb +22 -0
- data/lib/chef/resource/breakpoint.rb +59 -2
- data/lib/chef/resource/build_essential.rb +7 -10
- data/lib/chef/resource/cab_package.rb +29 -0
- data/lib/chef/resource/chef_client_config.rb +313 -0
- data/lib/chef/resource/chef_client_cron.rb +36 -29
- data/lib/chef/resource/chef_client_launchd.rb +194 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +36 -21
- data/lib/chef/resource/chef_client_systemd_timer.rb +29 -22
- data/lib/chef/resource/chef_client_trusted_certificate.rb +102 -0
- data/lib/chef/resource/chef_gem.rb +58 -22
- data/lib/chef/resource/chef_handler.rb +149 -4
- data/lib/chef/resource/chef_sleep.rb +3 -3
- data/lib/chef/resource/chef_vault_secret.rb +14 -14
- data/lib/chef/resource/chocolatey_feature.rb +1 -2
- data/lib/chef/resource/cookbook_file.rb +2 -2
- data/lib/chef/resource/cron/_cron_shared.rb +99 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +9 -89
- data/lib/chef/resource/cron_access.rb +13 -5
- data/lib/chef/resource/csh.rb +2 -3
- data/lib/chef/resource/dmg_package.rb +2 -2
- data/lib/chef/resource/dnf_package.rb +2 -2
- data/lib/chef/resource/dsc_resource.rb +0 -1
- data/lib/chef/resource/dsc_script.rb +9 -2
- data/lib/chef/resource/execute.rb +486 -15
- data/lib/chef/resource/file.rb +5 -5
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +36 -3
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_cask.rb +16 -10
- data/lib/chef/resource/homebrew_package.rb +32 -3
- data/lib/chef/resource/homebrew_update.rb +110 -0
- data/lib/chef/resource/hostname.rb +27 -40
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +52 -5
- data/lib/chef/resource/kernel_module.rb +15 -2
- data/lib/chef/resource/ksh.rb +3 -3
- data/lib/chef/resource/launchd.rb +18 -17
- data/lib/chef/resource/locale.rb +4 -4
- data/lib/chef/resource/lwrp_base.rb +4 -5
- data/lib/chef/resource/macos_userdefaults.rb +176 -61
- data/lib/chef/resource/mdadm.rb +2 -2
- data/lib/chef/resource/mount.rb +9 -3
- data/lib/chef/resource/notify_group.rb +0 -1
- data/lib/chef/resource/ohai.rb +46 -3
- data/lib/chef/resource/ohai_hint.rb +33 -0
- data/lib/chef/resource/openssl_dhparam.rb +29 -5
- data/lib/chef/resource/openssl_ec_private_key.rb +8 -3
- data/lib/chef/resource/openssl_ec_public_key.rb +4 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +8 -3
- data/lib/chef/resource/openssl_rsa_public_key.rb +2 -0
- data/lib/chef/resource/openssl_x509_certificate.rb +49 -49
- data/lib/chef/resource/openssl_x509_crl.rb +22 -12
- data/lib/chef/resource/openssl_x509_request.rb +37 -36
- data/lib/chef/resource/osx_profile.rb +292 -6
- data/lib/chef/resource/perl.rb +2 -3
- data/lib/chef/resource/plist.rb +26 -11
- data/lib/chef/resource/powershell_package_source.rb +25 -24
- data/lib/chef/resource/powershell_script.rb +40 -41
- data/lib/chef/resource/python.rb +2 -3
- data/lib/chef/resource/reboot.rb +2 -2
- data/lib/chef/resource/registry_key.rb +93 -2
- data/lib/chef/resource/remote_directory.rb +1 -1
- data/lib/chef/resource/remote_file.rb +26 -10
- data/lib/chef/resource/rhsm_register.rb +39 -10
- data/lib/chef/resource/rhsm_subscription.rb +5 -5
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/ruby.rb +1 -6
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/scm/_scm.rb +2 -1
- data/lib/chef/resource/scm/git.rb +82 -1
- data/lib/chef/resource/scm/subversion.rb +14 -2
- data/lib/chef/resource/script.rb +2 -2
- data/lib/chef/resource/service.rb +5 -5
- data/lib/chef/resource/solaris_package.rb +0 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +18 -3
- data/lib/chef/resource/sudo.rb +32 -5
- data/lib/chef/resource/support/client.erb +68 -0
- 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 -1
- data/lib/chef/resource/support/ulimit.erb +1 -1
- data/lib/chef/resource/swap_file.rb +17 -0
- data/lib/chef/resource/sysctl.rb +6 -10
- data/lib/chef/resource/systemd_unit.rb +45 -4
- data/lib/chef/resource/template.rb +4 -4
- data/lib/chef/resource/timezone.rb +122 -68
- data/lib/chef/resource/user/windows_user.rb +5 -0
- data/lib/chef/resource/user_ulimit.rb +2 -1
- data/lib/chef/resource/windows_ad_join.rb +51 -13
- data/lib/chef/resource/windows_audit_policy.rb +232 -0
- data/lib/chef/resource/windows_auto_run.rb +13 -0
- data/lib/chef/resource/windows_certificate.rb +95 -39
- data/lib/chef/resource/windows_dfs_folder.rb +2 -0
- data/lib/chef/resource/windows_dfs_namespace.rb +2 -0
- data/lib/chef/resource/windows_dfs_server.rb +9 -4
- data/lib/chef/resource/windows_dns_record.rb +25 -5
- data/lib/chef/resource/windows_dns_zone.rb +12 -7
- data/lib/chef/resource/windows_env.rb +173 -0
- data/lib/chef/resource/windows_feature.rb +4 -0
- data/lib/chef/resource/windows_feature_dism.rb +10 -0
- data/lib/chef/resource/windows_feature_powershell.rb +14 -2
- data/lib/chef/resource/windows_firewall_profile.rb +196 -0
- data/lib/chef/resource/windows_firewall_rule.rb +14 -14
- data/lib/chef/resource/windows_font.rb +7 -5
- data/lib/chef/resource/windows_package.rb +30 -6
- data/lib/chef/resource/windows_pagefile.rb +5 -1
- data/lib/chef/resource/windows_path.rb +38 -0
- data/lib/chef/resource/windows_printer.rb +22 -21
- data/lib/chef/resource/windows_printer_port.rb +20 -17
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +98 -49
- data/lib/chef/resource/windows_service.rb +108 -0
- data/lib/chef/resource/windows_share.rb +23 -21
- data/lib/chef/resource/windows_shortcut.rb +3 -2
- data/lib/chef/resource/windows_task.rb +633 -32
- data/lib/chef/resource/windows_uac.rb +5 -1
- data/lib/chef/resource/windows_user_privilege.rb +111 -77
- data/lib/chef/resource/windows_workgroup.rb +11 -10
- data/lib/chef/resource/yum_package.rb +2 -2
- data/lib/chef/resource/yum_repository.rb +15 -10
- data/lib/chef/resource.rb +60 -27
- data/lib/chef/resource_collection/resource_set.rb +2 -6
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
- data/lib/chef/resource_inspector.rb +82 -70
- data/lib/chef/resource_reporter.rb +1 -3
- data/lib/chef/resources.rb +9 -3
- data/lib/chef/role.rb +3 -4
- data/lib/chef/run_context/cookbook_compiler.rb +21 -21
- data/lib/chef/run_context.rb +2 -2
- data/lib/chef/run_lock.rb +3 -3
- data/lib/chef/run_status.rb +2 -6
- data/lib/chef/search/query.rb +7 -6
- data/lib/chef/server_api.rb +0 -4
- data/lib/chef/server_api_versions.rb +4 -0
- data/lib/chef/shell/ext.rb +15 -15
- data/lib/chef/shell/shell_session.rb +4 -2
- data/lib/chef/shell.rb +63 -27
- data/lib/chef/train_transport.rb +5 -104
- data/lib/chef/util/backup.rb +2 -2
- data/lib/chef/util/diff.rb +16 -17
- data/lib/chef/util/dsc/configuration_generator.rb +53 -12
- data/lib/chef/util/dsc/lcm_output_parser.rb +4 -7
- data/lib/chef/util/dsc/local_configuration_manager.rb +18 -15
- data/lib/chef/util/dsc/resource_store.rb +5 -11
- data/lib/chef/util/powershell/ps_credential.rb +18 -14
- data/lib/chef/util/threaded_job_queue.rb +0 -2
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.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 +4 -0
- data/lib/chef/win32/api.rb +9 -2
- data/lib/chef/win32/crypto.rb +1 -1
- data/lib/chef/win32/file/version_info.rb +5 -5
- data/lib/chef/win32/file.rb +4 -4
- data/lib/chef/win32/registry.rb +4 -6
- data/lib/chef/win32/security/sid.rb +1 -1
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/unicode.rb +1 -1
- data/lib/chef/win32/version.rb +4 -2
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/data/rubygems.org/latest_specs.4.8.gz +0 -0
- data/spec/data/rubygems.org/nonexistent_gem +0 -0
- data/spec/data/rubygems.org/sexp_processor +0 -0
- data/spec/data/rubygems.org/sexp_processor-4.15.1.gemspec.rz +0 -0
- data/spec/data/shef-config.rb +1 -1
- data/spec/data/ssl/binary/chef-rspec-der.cert +0 -0
- data/spec/data/ssl/binary/chef-rspec-der.key +0 -0
- data/spec/data/ssl/chef-rspec.cert +15 -15
- data/spec/functional/assets/yumrepo-empty/repodata/01a3b-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/401dc-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/5dc1e-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/6bf96-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/7c365-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/dabe2-primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +55 -0
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
- data/spec/functional/knife/configure_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +5 -16
- data/spec/functional/mixin/powershell_out_spec.rb +11 -3
- data/spec/functional/resource/aix_service_spec.rb +11 -4
- data/spec/functional/resource/aixinit_service_spec.rb +9 -10
- data/spec/functional/resource/apt_package_spec.rb +4 -7
- data/spec/functional/resource/bash_spec.rb +3 -2
- data/spec/functional/resource/bff_spec.rb +3 -3
- data/spec/functional/resource/chocolatey_package_spec.rb +11 -3
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/cron_spec.rb +24 -6
- data/spec/functional/resource/dnf_package_spec.rb +323 -17
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +6 -10
- data/spec/functional/resource/execute_spec.rb +1 -1
- data/spec/functional/resource/git_spec.rb +23 -1
- data/spec/functional/resource/group_spec.rb +26 -10
- data/spec/functional/resource/ifconfig_spec.rb +9 -1
- data/spec/functional/resource/insserv_spec.rb +8 -8
- data/spec/functional/resource/link_spec.rb +30 -25
- data/spec/functional/resource/mount_spec.rb +19 -3
- data/spec/functional/resource/msu_package_spec.rb +9 -3
- data/spec/functional/resource/ohai_spec.rb +2 -10
- data/spec/functional/resource/powershell_package_source_spec.rb +107 -0
- data/spec/functional/resource/powershell_script_spec.rb +65 -22
- data/spec/functional/resource/remote_file_spec.rb +9 -15
- data/spec/functional/resource/rpm_spec.rb +3 -3
- data/spec/functional/resource/timezone_spec.rb +2 -0
- data/spec/functional/resource/user/dscl_spec.rb +1 -1
- data/spec/functional/resource/user/mac_user_spec.rb +1 -1
- data/spec/functional/resource/windows_certificate_spec.rb +206 -382
- data/spec/functional/resource/windows_firewall_rule_spec.rb +93 -0
- data/spec/functional/resource/windows_font_spec.rb +50 -0
- data/spec/functional/resource/windows_package_spec.rb +36 -11
- data/spec/functional/resource/windows_path_spec.rb +4 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -4
- data/spec/functional/resource/windows_service_spec.rb +4 -0
- data/spec/functional/resource/windows_share_spec.rb +103 -0
- data/spec/functional/resource/windows_task_spec.rb +27 -27
- data/spec/functional/resource/windows_user_privilege_spec.rb +1 -2
- data/spec/functional/resource/yum_package_spec.rb +16 -1
- data/spec/functional/resource/zypper_package_spec.rb +15 -1
- data/spec/functional/run_lock_spec.rb +26 -25
- data/spec/functional/shell_spec.rb +10 -6
- data/spec/functional/version_spec.rb +4 -4
- data/spec/functional/win32/crypto_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +8 -8
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +6 -5
- data/spec/integration/client/exit_code_spec.rb +3 -2
- data/spec/integration/client/fips_spec.rb +21 -0
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/compliance/compliance_spec.rb +82 -0
- data/spec/integration/knife/client_key_create_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +12 -12
- data/spec/integration/knife/config_list_spec.rb +220 -0
- data/spec/integration/knife/config_show_spec.rb +192 -0
- data/spec/integration/knife/config_use_spec.rb +198 -0
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/cookbook_upload_spec.rb +28 -1
- data/spec/integration/knife/data_bag_from_file_spec.rb +1 -1
- data/spec/integration/knife/delete_spec.rb +1 -1
- data/spec/integration/knife/diff_spec.rb +3 -1
- data/spec/integration/knife/download_spec.rb +5 -3
- data/spec/integration/knife/environment_from_file_spec.rb +1 -1
- data/spec/integration/knife/node_create_spec.rb +1 -1
- data/spec/integration/knife/node_environment_set_spec.rb +1 -1
- data/spec/integration/knife/node_from_file_spec.rb +1 -1
- data/spec/integration/knife/node_run_list_add_spec.rb +4 -4
- data/spec/integration/knife/node_run_list_remove_spec.rb +1 -1
- data/spec/integration/knife/node_run_list_set_spec.rb +1 -1
- data/spec/integration/knife/node_show_spec.rb +1 -1
- data/spec/integration/knife/role_from_file_spec.rb +1 -1
- data/spec/integration/knife/serve_spec.rb +5 -5
- data/spec/integration/knife/upload_spec.rb +8 -7
- data/spec/integration/ohai/ohai_spec.rb +61 -0
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +2 -2
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +2 -2
- data/spec/integration/recipes/notifying_block_spec.rb +1 -1
- data/spec/integration/recipes/provider_choice.rb +2 -2
- data/spec/integration/recipes/recipe_dsl_spec.rb +6 -1
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/recipes/resource_action_spec.rb +14 -0
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +2 -0
- data/spec/integration/recipes/resource_load_spec.rb +4 -2
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +1 -1
- data/spec/integration/solo/solo_spec.rb +5 -5
- data/spec/spec_helper.rb +30 -17
- data/spec/stress/win32/file_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +3 -22
- data/spec/support/lib/chef/resource/cat.rb +1 -1
- data/spec/support/lib/chef/resource/one_two_three_four.rb +1 -1
- data/spec/support/matchers/leak.rb +2 -2
- data/spec/support/mock/platform.rb +24 -16
- data/spec/support/platform_helpers.rb +36 -41
- data/spec/support/platforms/win32/spec_service.rb +2 -2
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +2 -2
- data/spec/support/shared/functional/file_resource.rb +20 -21
- data/spec/support/shared/functional/securable_resource.rb +109 -29
- data/spec/support/shared/functional/securable_resource_with_reporting.rb +0 -1
- data/spec/support/shared/functional/win32_service.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +5 -5
- data/spec/support/shared/integration/integration_helper.rb +22 -52
- data/spec/support/shared/integration/knife_support.rb +2 -9
- data/spec/support/shared/unit/application_dot_d.rb +5 -4
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/knife_shared.rb +1 -1
- data/spec/support/shared/unit/provider/file.rb +26 -8
- data/spec/support/shared/unit/script_resource.rb +10 -24
- data/spec/support/shared/unit/windows_script_resource.rb +16 -29
- data/spec/tiny_server.rb +0 -1
- data/spec/unit/application/client_spec.rb +2 -2
- data/spec/unit/application/exit_code_spec.rb +10 -0
- data/spec/unit/application/solo_spec.rb +4 -2
- data/spec/unit/application_spec.rb +15 -8
- data/spec/unit/chef_fs/config_spec.rb +3 -3
- data/spec/unit/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/spec/unit/chef_fs/diff_spec.rb +8 -8
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +2 -4
- data/spec/unit/chef_fs/{parallelizer.rb → parallelizer_spec.rb} +6 -2
- data/spec/unit/chef_fs/path_util_spec.rb +1 -1
- data/spec/unit/client_spec.rb +25 -5
- data/spec/unit/compliance/fetcher/automate_spec.rb +142 -0
- data/spec/unit/compliance/fetcher/chef_server_spec.rb +93 -0
- data/spec/unit/compliance/reporter/automate_spec.rb +427 -0
- data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +177 -0
- data/spec/unit/compliance/reporter/compliance_enforcer_spec.rb +48 -0
- data/spec/unit/compliance/runner_spec.rb +215 -0
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +28 -26
- data/spec/unit/cookbook_spec.rb +2 -2
- data/spec/unit/cookbook_version_spec.rb +52 -0
- data/spec/unit/daemon_spec.rb +1 -5
- data/spec/unit/data_bag_spec.rb +6 -3
- data/spec/unit/data_collector/config_validation_spec.rb +208 -0
- data/spec/unit/data_collector_spec.rb +100 -120
- data/spec/unit/decorator_spec.rb +23 -23
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +1 -0
- data/spec/unit/dsl/reboot_pending_spec.rb +2 -2
- data/spec/unit/environment_spec.rb +12 -8
- data/spec/unit/event_dispatch/dispatcher_spec.rb +3 -0
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +2 -2
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +11 -11
- data/spec/unit/guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +20 -2
- data/spec/unit/http/ssl_policies_spec.rb +125 -66
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap_spec.rb +69 -45
- data/spec/unit/knife/client_create_spec.rb +2 -2
- data/spec/unit/knife/configure_client_spec.rb +5 -5
- data/spec/unit/knife/configure_spec.rb +3 -3
- data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
- data/spec/unit/knife/cookbook_download_spec.rb +8 -8
- data/spec/unit/knife/cookbook_list_spec.rb +2 -2
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/cookbook_metadata_spec.rb +3 -3
- data/spec/unit/knife/cookbook_show_spec.rb +6 -7
- data/spec/unit/knife/cookbook_upload_spec.rb +7 -10
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/node_editor_spec.rb +1 -1
- data/spec/unit/knife/core/status_presenter_spec.rb +54 -0
- data/spec/unit/knife/core/ui_spec.rb +1 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +24 -15
- data/spec/unit/knife/data_bag_edit_spec.rb +1 -1
- data/spec/unit/knife/environment_compare_spec.rb +3 -3
- data/spec/unit/knife/ssh_spec.rb +2 -2
- data/spec/unit/knife/supermarket_download_spec.rb +8 -8
- data/spec/unit/knife/supermarket_list_spec.rb +3 -3
- data/spec/unit/knife/supermarket_search_spec.rb +1 -1
- data/spec/unit/knife/supermarket_share_spec.rb +6 -7
- data/spec/unit/knife/tag_create_spec.rb +1 -1
- data/spec/unit/knife/tag_delete_spec.rb +1 -1
- data/spec/unit/knife/user_create_spec.rb +1 -1
- data/spec/unit/log/syslog_spec.rb +6 -10
- data/spec/unit/log/winevt_spec.rb +21 -13
- data/spec/unit/lwrp_spec.rb +12 -9
- data/spec/unit/mixin/checksum_spec.rb +28 -0
- data/spec/unit/mixin/deep_merge_spec.rb +15 -0
- data/spec/unit/mixin/{path_sanity_spec.rb → default_paths_spec.rb} +14 -14
- data/spec/unit/mixin/openssl_helper_spec.rb +1 -8
- data/spec/unit/mixin/powershell_exec_spec.rb +43 -6
- data/spec/unit/mixin/powershell_out_spec.rb +16 -4
- data/spec/unit/mixin/powershell_type_coercions_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +2 -3
- data/spec/unit/mixin/shell_out_spec.rb +25 -26
- data/spec/unit/mixin/subclass_directive_spec.rb +2 -2
- data/spec/unit/mixin/template_spec.rb +30 -30
- data/spec/unit/mixin/unformatter_spec.rb +2 -2
- data/spec/unit/mixin/uris_spec.rb +1 -1
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/mixin/which.rb +9 -1
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +4 -4
- data/spec/unit/node/immutable_collections_spec.rb +8 -4
- data/spec/unit/node_spec.rb +103 -16
- data/spec/unit/platform/query_helpers_spec.rb +13 -14
- data/spec/unit/policy_builder/policyfile_spec.rb +11 -1
- data/spec/unit/property_spec.rb +6 -6
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron/unix_spec.rb +1 -1
- data/spec/unit/provider/cron_spec.rb +43 -49
- data/spec/unit/provider/dsc_resource_spec.rb +30 -63
- data/spec/unit/provider/dsc_script_spec.rb +11 -11
- data/spec/unit/provider/execute_spec.rb +1 -8
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/windows_spec.rb +6 -0
- data/spec/unit/provider/group_spec.rb +1 -1
- data/spec/unit/provider/ifconfig_spec.rb +0 -1
- data/spec/unit/provider/mdadm_spec.rb +1 -3
- data/spec/unit/provider/mount/linux_spec.rb +107 -0
- data/spec/unit/provider/mount/mount_spec.rb +73 -10
- data/spec/unit/provider/mount/solaris_spec.rb +1 -1
- data/spec/unit/provider/mount/windows_spec.rb +1 -0
- data/spec/unit/provider/mount_spec.rb +31 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +2 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +8 -2
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +1 -1
- data/spec/unit/provider/package/pacman_spec.rb +17 -20
- data/spec/unit/provider/package/powershell_spec.rb +162 -99
- data/spec/unit/provider/package/rubygems_spec.rb +50 -20
- data/spec/unit/provider/package/smartos_spec.rb +1 -1
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +3 -3
- data/spec/unit/provider/package/windows_spec.rb +30 -53
- data/spec/unit/provider/package/zypper_spec.rb +0 -25
- data/spec/unit/provider/package_spec.rb +2 -2
- data/spec/unit/provider/powershell_script_spec.rb +20 -44
- data/spec/unit/provider/remote_directory_spec.rb +9 -9
- data/spec/unit/provider/route_spec.rb +0 -2
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/service/arch_service_spec.rb +3 -2
- data/spec/unit/provider/service/debian_service_spec.rb +1 -1
- data/spec/unit/provider/service/gentoo_service_spec.rb +7 -7
- data/spec/unit/provider/service/macosx_spec.rb +6 -6
- data/spec/unit/provider/service/redhat_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider/service/windows_spec.rb +2 -6
- data/spec/unit/provider/subversion_spec.rb +0 -3
- data/spec/unit/provider/systemd_unit_spec.rb +29 -25
- data/spec/unit/provider/user/dscl_spec.rb +2 -2
- data/spec/unit/provider/user_spec.rb +7 -1
- data/spec/unit/provider/windows_env_spec.rb +22 -37
- data/spec/unit/provider/windows_path_spec.rb +6 -11
- data/spec/unit/provider/windows_task_spec.rb +7 -6
- data/spec/unit/provider/zypper_repository_spec.rb +60 -10
- data/spec/unit/provider_spec.rb +1 -0
- data/spec/unit/recipe_spec.rb +1 -1
- data/spec/unit/resource/archive_file_spec.rb +23 -2
- data/spec/unit/resource/batch_spec.rb +6 -6
- data/spec/unit/resource/breakpoint_spec.rb +1 -1
- data/spec/unit/resource/build_essential_spec.rb +0 -12
- data/spec/unit/resource/chef_client_config_spec.rb +137 -0
- data/spec/unit/resource/chef_client_cron_spec.rb +51 -14
- data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +43 -5
- data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +68 -0
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/execute_spec.rb +123 -118
- data/spec/unit/resource/file/verification_spec.rb +2 -1
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_cask_spec.rb +29 -11
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/ifconfig_spec.rb +2 -10
- data/spec/unit/resource/launchd_spec.rb +8 -0
- data/spec/unit/resource/macos_user_defaults_spec.rb +103 -2
- data/spec/unit/resource/mount_spec.rb +28 -5
- data/spec/unit/resource/osx_profile_spec.rb +299 -0
- data/spec/unit/resource/powershell_package_source_spec.rb +20 -20
- data/spec/unit/resource/powershell_script_spec.rb +15 -108
- data/spec/unit/resource/rhsm_register_spec.rb +56 -18
- data/spec/unit/resource/rhsm_subscription_spec.rb +50 -3
- data/spec/unit/resource/script_spec.rb +6 -1
- data/spec/unit/resource/service_spec.rb +2 -2
- data/spec/unit/resource/solaris_package_spec.rb +8 -10
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/timezone_spec.rb +64 -1
- data/spec/unit/{log_spec.rb → resource/user/windows_user_spec.rb} +16 -4
- data/spec/unit/resource/user_ulimit_spec.rb +14 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
- data/spec/unit/resource/windows_certificate_spec.rb +12 -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_powershell_spec.rb +30 -4
- data/spec/unit/resource/windows_firewall_profile_spec.rb +77 -0
- data/spec/unit/resource/windows_package_spec.rb +1 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +3 -3
- data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_inspector_spec.rb +10 -5
- data/spec/unit/resource_reporter_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +137 -3
- data/spec/unit/role_spec.rb +30 -28
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -1
- data/spec/unit/run_lock_spec.rb +6 -2
- data/spec/unit/runner_spec.rb +1 -2
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/server_api_spec.rb +43 -16
- data/spec/unit/shell/shell_ext_spec.rb +46 -3
- data/spec/unit/shell/shell_session_spec.rb +35 -64
- data/spec/unit/shell_spec.rb +18 -21
- data/spec/unit/train_transport_spec.rb +14 -13
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/diff_spec.rb +1 -15
- data/spec/unit/util/dsc/configuration_generator_spec.rb +80 -1
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +27 -35
- data/spec/unit/util/powershell/ps_credential_spec.rb +2 -2
- data/spec/unit/util/selinux_spec.rb +4 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/security_spec.rb +4 -3
- data/tasks/rspec.rb +2 -4
- metadata +172 -104
- data/lib/chef/dist.rb +0 -68
- data/lib/chef/monkey_patches/net_http.rb +0 -22
- data/lib/chef/provider/osx_profile.rb +0 -255
- data/lib/chef/provider/windows_env.rb +0 -210
- data/lib/chef/provider/windows_path.rb +0 -61
- data/lib/chef/provider/windows_task.rb +0 -635
- data/lib/chef/resource/cron.rb +0 -157
- data/lib/chef/util/powershell/cmdlet.rb +0 -173
- data/lib/chef/util/powershell/cmdlet_result.rb +0 -61
- data/spec/data/trusted_certs_empty/.gitkeep +0 -0
- data/spec/data/trusted_certs_empty/README.md +0 -1
- data/spec/functional/assets/yumrepo/repodata/4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo/repodata/bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo/repodata/c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz +0 -0
- data/spec/functional/util/powershell/cmdlet_spec.rb +0 -111
- data/spec/integration/knife/config_get_profile_spec.rb +0 -113
- data/spec/integration/knife/config_get_spec.rb +0 -191
- data/spec/integration/knife/config_list_profiles_spec.rb +0 -190
- data/spec/integration/knife/config_use_profile_spec.rb +0 -101
- data/spec/scripts/ssl-serve.rb +0 -47
- data/spec/support/mock/constant.rb +0 -52
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
- data/spec/unit/provider_resolver_spec.rb +0 -885
- data/spec/unit/resource/data/InstallHistory_with_CLT.plist +0 -92
- data/spec/unit/resource/data/InstallHistory_without_CLT.plist +0 -38
- data/spec/unit/util/powershell/cmdlet_spec.rb +0 -106
data/lib/chef/resource/reboot.rb
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "../resource"
|
20
|
-
|
20
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
21
21
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
@@ -36,7 +36,7 @@ class Chef
|
|
36
36
|
|
37
37
|
property :reason, String,
|
38
38
|
description: "A string that describes the reboot action.",
|
39
|
-
default: "Reboot by #{
|
39
|
+
default: "Reboot by #{ChefUtils::Dist::Infra::PRODUCT}"
|
40
40
|
|
41
41
|
property :delay_mins, Integer,
|
42
42
|
description: "The amount of time (in minutes) to delay a reboot request.",
|
@@ -27,7 +27,96 @@ class Chef
|
|
27
27
|
provides(:registry_key) { true }
|
28
28
|
|
29
29
|
description "Use the **registry_key** resource to create and delete registry keys in Microsoft Windows."
|
30
|
-
|
30
|
+
examples <<~'DOC'
|
31
|
+
**Create a registry key**
|
32
|
+
|
33
|
+
```ruby
|
34
|
+
registry_key 'HKEY_LOCAL_MACHINE\\path-to-key\\Policies\\System' do
|
35
|
+
values [{
|
36
|
+
name: 'EnableLUA',
|
37
|
+
type: :dword,
|
38
|
+
data: 0
|
39
|
+
}]
|
40
|
+
action :create
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
44
|
+
**Create a registry key with binary data: "\x01\x02\x03"**:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
registry_key 'HKEY_CURRENT_USER\ChefTest' do
|
48
|
+
values [{
|
49
|
+
:name => "test",
|
50
|
+
:type => :binary,
|
51
|
+
:data => [0, 1, 2].map(&:chr).join
|
52
|
+
}]
|
53
|
+
action :create
|
54
|
+
end
|
55
|
+
```
|
56
|
+
|
57
|
+
**Create 32-bit key in redirected wow6432 tree**
|
58
|
+
|
59
|
+
In 64-bit versions of Microsoft Windows, HKEY_LOCAL_MACHINE\SOFTWARE\Example is a re-directed key. In the following examples, because HKEY_LOCAL_MACHINE\SOFTWARE\Example is a 32-bit key, the output will be “Found 32-bit key” if they are run on a version of Microsoft Windows that is 64-bit:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\Example' do
|
63
|
+
architecture :i386
|
64
|
+
recursive true
|
65
|
+
action :create
|
66
|
+
end
|
67
|
+
```
|
68
|
+
|
69
|
+
**Set proxy settings to be the same as those used by Chef Infra Client**
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
proxy = URI.parse(Chef::Config[:http_proxy])
|
73
|
+
registry_key 'HKCU\Software\Microsoft\path\to\key\Internet Settings' do
|
74
|
+
values [{name: 'ProxyEnable', type: :reg_dword, data: 1},
|
75
|
+
{name: 'ProxyServer', data: "#{proxy.host}:#{proxy.port}"},
|
76
|
+
{name: 'ProxyOverride', type: :reg_string, data: <local>},
|
77
|
+
]
|
78
|
+
action :create
|
79
|
+
end
|
80
|
+
```
|
81
|
+
|
82
|
+
**Set the name of a registry key to "(Default)"**
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
registry_key 'Set (Default) value' do
|
86
|
+
key 'HKLM\Software\Test\Key\Path'
|
87
|
+
values [
|
88
|
+
{name: '', type: :string, data: 'test'},
|
89
|
+
]
|
90
|
+
action :create
|
91
|
+
end
|
92
|
+
```
|
93
|
+
|
94
|
+
**Delete a registry key value**
|
95
|
+
|
96
|
+
```ruby
|
97
|
+
registry_key 'HKEY_LOCAL_MACHINE\SOFTWARE\path\to\key\AU' do
|
98
|
+
values [{
|
99
|
+
name: 'NoAutoRebootWithLoggedOnUsers',
|
100
|
+
type: :dword,
|
101
|
+
data: ''
|
102
|
+
}]
|
103
|
+
action :delete
|
104
|
+
end
|
105
|
+
```
|
106
|
+
|
107
|
+
Note: If data: is not specified, you get an error: Missing data key in RegistryKey values hash
|
108
|
+
|
109
|
+
**Delete a registry key and its subkeys, recursively**
|
110
|
+
|
111
|
+
```ruby
|
112
|
+
registry_key 'HKCU\SOFTWARE\Policies\path\to\key\Themes' do
|
113
|
+
recursive true
|
114
|
+
action :delete_key
|
115
|
+
end
|
116
|
+
```
|
117
|
+
|
118
|
+
Note: Be careful when using the :delete_key action with the recursive attribute. This will delete the registry key, all of its values and all of the names, types, and data associated with them. This cannot be undone by Chef Infra Client.
|
119
|
+
DOC
|
31
120
|
|
32
121
|
state_attrs :values
|
33
122
|
|
@@ -72,6 +161,8 @@ class Chef
|
|
72
161
|
|
73
162
|
property :key, String, name_property: true
|
74
163
|
|
164
|
+
VALID_VALUE_HASH_KEYS = %i{name type data}.freeze
|
165
|
+
|
75
166
|
def values(arg = nil)
|
76
167
|
if not arg.nil?
|
77
168
|
if arg.is_a?(Hash)
|
@@ -89,7 +180,7 @@ class Chef
|
|
89
180
|
raise ArgumentError, "Missing name key in RegistryKey values hash" unless v.key?(:name)
|
90
181
|
|
91
182
|
v.each_key do |key|
|
92
|
-
raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless
|
183
|
+
raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless VALID_VALUE_HASH_KEYS.include?(key)
|
93
184
|
end
|
94
185
|
raise ArgumentError, "Type of name => #{v[:name]} should be string" unless v[:name].is_a?(String)
|
95
186
|
|
@@ -29,7 +29,7 @@ class Chef
|
|
29
29
|
|
30
30
|
provides :remote_directory
|
31
31
|
|
32
|
-
description "Use the **remote_directory** resource to incrementally transfer a directory from a cookbook to a node. The
|
32
|
+
description "Use the **remote_directory** resource to incrementally transfer a directory from a cookbook to a node. The directory that is copied from the cookbook should be located under `COOKBOOK_NAME/files/default/REMOTE_DIRECTORY`. The `remote_directory` resource will obey file specificity."
|
33
33
|
|
34
34
|
default_action :create
|
35
35
|
allowed_actions :create, :create_if_missing, :delete
|
@@ -22,6 +22,7 @@ require_relative "file"
|
|
22
22
|
require_relative "../provider/remote_file"
|
23
23
|
require_relative "../mixin/securable"
|
24
24
|
require_relative "../mixin/uris"
|
25
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
25
26
|
|
26
27
|
class Chef
|
27
28
|
class Resource
|
@@ -31,7 +32,7 @@ class Chef
|
|
31
32
|
|
32
33
|
provides :remote_file
|
33
34
|
|
34
|
-
description "Use the **remote_file** resource to transfer a file from a remote location using file specificity. This resource is similar to the file resource."
|
35
|
+
description "Use the **remote_file** resource to transfer a file from a remote location using file specificity. This resource is similar to the **file** resource. Note: Fetching files from the `files/` directory in a cookbook should be done with the **cookbook_file** resource."
|
35
36
|
|
36
37
|
def initialize(name, run_context = nil)
|
37
38
|
super
|
@@ -72,7 +73,8 @@ class Chef
|
|
72
73
|
end
|
73
74
|
end
|
74
75
|
|
75
|
-
property :checksum, String
|
76
|
+
property :checksum, String,
|
77
|
+
description: "Optional, see `use_conditional_get`. The SHA-256 checksum of the file. Use to prevent a file from being re-downloaded. When the local file matches the checksum, #{ChefUtils::Dist::Infra::PRODUCT} does not download it."
|
76
78
|
|
77
79
|
# Disable or enable ETag and Last Modified conditional GET. Equivalent to
|
78
80
|
# use_etag(true_or_false)
|
@@ -82,25 +84,39 @@ class Chef
|
|
82
84
|
use_last_modified(true_or_false)
|
83
85
|
end
|
84
86
|
|
85
|
-
property :use_etag, [ TrueClass, FalseClass ], default: true
|
87
|
+
property :use_etag, [ TrueClass, FalseClass ], default: true,
|
88
|
+
description: "Enable ETag headers. Set to false to disable ETag headers. To use this setting, `use_conditional_get` must also be set to true."
|
86
89
|
|
87
90
|
alias :use_etags :use_etag
|
88
91
|
|
89
|
-
property :use_last_modified, [ TrueClass, FalseClass ], default: true
|
92
|
+
property :use_last_modified, [ TrueClass, FalseClass ], default: true,
|
93
|
+
description: "Enable `If-Modified-Since` headers. Set to `false` to disable `If-Modified-Since` headers. To use this setting, `use_conditional_get` must also be set to `true`."
|
90
94
|
|
91
|
-
property :ftp_active_mode, [ TrueClass, FalseClass ], default: false
|
95
|
+
property :ftp_active_mode, [ TrueClass, FalseClass ], default: false,
|
96
|
+
description: "Whether #{ChefUtils::Dist::Infra::PRODUCT} uses active or passive FTP. Set to `true` to use active FTP."
|
92
97
|
|
93
|
-
property :headers, Hash, default: lazy { {} }
|
98
|
+
property :headers, Hash, default: lazy { {} },
|
99
|
+
description: "A Hash of custom HTTP headers."
|
94
100
|
|
95
101
|
property :show_progress, [ TrueClass, FalseClass ], default: false
|
96
102
|
|
97
|
-
property :
|
103
|
+
property :ssl_verify_mode, Symbol, equal_to: %i{verify_none verify_peer},
|
104
|
+
introduced: "16.2",
|
105
|
+
description: "Optional property to override SSL policy. If not specified, uses the SSL policy from `config.rb`."
|
98
106
|
|
99
|
-
property :
|
107
|
+
property :remote_user, String,
|
108
|
+
introduced: "13.4",
|
109
|
+
description: '**Windows only** The name of a user with access to the remote file specified by the source property. The user name may optionally be specified with a domain, such as: `domain\user` or `user@my.dns.domain.com` via Universal Principal Name (UPN) format. The domain may also be set using the `remote_domain` property. Note that this property is ignored if source is not a UNC path. If this property is specified, the `remote_password` property is required.'
|
100
110
|
|
101
|
-
property :
|
111
|
+
property :remote_domain, String,
|
112
|
+
introduced: "13.4",
|
113
|
+
description: "**Windows only** The domain of the user specified by the `remote_user` property. By default the resource will authenticate against the domain of the remote system, or as a local account if the remote system is not joined to a domain. If the remote system is not part of a domain, it is necessary to authenticate as a local user on the remote system by setting the domain to `.`, for example: remote_domain '.'. The domain may also be specified as part of the `remote_user` property."
|
102
114
|
|
103
|
-
property :
|
115
|
+
property :remote_password, String, sensitive: true,
|
116
|
+
introduced: "13.4",
|
117
|
+
description: "**Windows only** The password of the user specified by the `remote_user` property. This property is required if `remote_user` is specified and may only be specified if `remote_user` is specified. The `sensitive` property for this resource will automatically be set to `true` if `remote_password` is specified."
|
118
|
+
|
119
|
+
property :authentication, Symbol, equal_to: %i{remote local}, default: :remote
|
104
120
|
|
105
121
|
def after_created
|
106
122
|
validate_identity_platform(remote_user, remote_password, remote_domain)
|
@@ -16,7 +16,7 @@
|
|
16
16
|
#
|
17
17
|
|
18
18
|
require_relative "../resource"
|
19
|
-
|
19
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
20
20
|
require "shellwords" unless defined?(Shellwords)
|
21
21
|
|
22
22
|
class Chef
|
@@ -47,6 +47,10 @@ class Chef
|
|
47
47
|
property :password, String,
|
48
48
|
description: "The password to use when registering. This property is not applicable if using an activation key. If specified, username and environment are also required."
|
49
49
|
|
50
|
+
property :system_name, String,
|
51
|
+
description: "The name of the system to register, defaults to the hostname.",
|
52
|
+
introduced: "16.5"
|
53
|
+
|
50
54
|
property :auto_attach,
|
51
55
|
[TrueClass, FalseClass],
|
52
56
|
description: "If true, RHSM will attempt to automatically attach the host to applicable subscriptions. It is generally better to use an activation key with the subscriptions pre-defined.",
|
@@ -61,7 +65,7 @@ class Chef
|
|
61
65
|
default: false, desired_state: false
|
62
66
|
|
63
67
|
property :https_for_ca_consumer, [TrueClass, FalseClass],
|
64
|
-
description: "If true, #{
|
68
|
+
description: "If true, #{ChefUtils::Dist::Infra::PRODUCT} will fetch the katello-ca-consumer-latest.noarch.rpm from the satellite_host using HTTPS.",
|
65
69
|
default: false, desired_state: false,
|
66
70
|
introduced: "15.9"
|
67
71
|
|
@@ -89,12 +93,17 @@ class Chef
|
|
89
93
|
end
|
90
94
|
end
|
91
95
|
|
96
|
+
package flush_package_cache_name do
|
97
|
+
action :nothing
|
98
|
+
end
|
99
|
+
|
92
100
|
execute "Register to RHSM" do
|
93
101
|
sensitive new_resource.sensitive
|
94
102
|
command register_command
|
95
103
|
default_env true
|
96
104
|
action :run
|
97
105
|
not_if { registered_with_rhsm? } unless new_resource.force
|
106
|
+
notifies :flush_cache, "package[#{flush_package_cache_name}]", :immediately
|
98
107
|
end
|
99
108
|
|
100
109
|
if new_resource.install_katello_agent && !new_resource.satellite_host.nil?
|
@@ -105,11 +114,16 @@ class Chef
|
|
105
114
|
action :unregister do
|
106
115
|
description "Unregister the node from RHSM."
|
107
116
|
|
117
|
+
package flush_package_cache_name do
|
118
|
+
action :nothing
|
119
|
+
end
|
120
|
+
|
108
121
|
execute "Unregister from RHSM" do
|
109
122
|
command "subscription-manager unregister"
|
110
123
|
default_env true
|
111
124
|
action :run
|
112
125
|
only_if { registered_with_rhsm? }
|
126
|
+
notifies :flush_cache, "package[#{flush_package_cache_name}]", :immediately
|
113
127
|
notifies :run, "execute[Clean RHSM Config]", :immediately
|
114
128
|
end
|
115
129
|
|
@@ -121,24 +135,37 @@ class Chef
|
|
121
135
|
end
|
122
136
|
|
123
137
|
action_class do
|
138
|
+
#
|
139
|
+
# @return [String]
|
140
|
+
#
|
141
|
+
def flush_package_cache_name
|
142
|
+
"rhsm_register-#{new_resource.name}-flush_cache"
|
143
|
+
end
|
144
|
+
|
145
|
+
#
|
146
|
+
# @return [Symbol] dnf_package or yum_package depending on OS release
|
147
|
+
#
|
124
148
|
def package_resource
|
125
149
|
node["platform_version"].to_i >= 8 ? :dnf_package : :yum_package
|
126
150
|
end
|
127
151
|
|
152
|
+
#
|
153
|
+
# @return [Boolean] is the node registered with RHSM
|
154
|
+
#
|
128
155
|
def registered_with_rhsm?
|
129
|
-
|
130
|
-
cmd = Mixlib::ShellOut.new("subscription-manager status", env: { LANG: "en_US" })
|
131
|
-
cmd.run_command
|
132
|
-
!cmd.stdout.match(/Overall Status: Unknown/)
|
156
|
+
@registered ||= !shell_out("subscription-manager status").stdout.include?("Overall Status: Unknown")
|
133
157
|
end
|
134
158
|
|
159
|
+
#
|
160
|
+
# @return [Boolean] is katello-ca-consumer installed
|
161
|
+
#
|
135
162
|
def katello_cert_rpm_installed?
|
136
|
-
|
137
|
-
cmd = Mixlib::ShellOut.new("rpm -qa | grep katello-ca-consumer")
|
138
|
-
cmd.run_command
|
139
|
-
!cmd.stdout.match(/katello-ca-consumer/).nil?
|
163
|
+
shell_out("rpm -qa").stdout.include?("katello-ca-consumer")
|
140
164
|
end
|
141
165
|
|
166
|
+
#
|
167
|
+
# @return [String] The URI to fetch katello-ca-consumer-latest.noarch.rpm from
|
168
|
+
#
|
142
169
|
def ca_consumer_package_source
|
143
170
|
protocol = new_resource.https_for_ca_consumer ? "https" : "http"
|
144
171
|
"#{protocol}://#{new_resource.satellite_host}/pub/katello-ca-consumer-latest.noarch.rpm"
|
@@ -153,6 +180,7 @@ class Chef
|
|
153
180
|
|
154
181
|
command << new_resource.activation_key.map { |key| "--activationkey=#{Shellwords.shellescape(key)}" }
|
155
182
|
command << "--org=#{Shellwords.shellescape(new_resource.organization)}"
|
183
|
+
command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
|
156
184
|
command << "--force" if new_resource.force
|
157
185
|
|
158
186
|
return command.join(" ")
|
@@ -165,6 +193,7 @@ class Chef
|
|
165
193
|
command << "--username=#{Shellwords.shellescape(new_resource.username)}"
|
166
194
|
command << "--password=#{Shellwords.shellescape(new_resource.password)}"
|
167
195
|
command << "--environment=#{Shellwords.shellescape(new_resource.environment)}" if using_satellite_host?
|
196
|
+
command << "--name=#{Shellwords.shellescape(new_resource.system_name)}" if new_resource.system_name
|
168
197
|
command << "--auto-attach" if new_resource.auto_attach
|
169
198
|
command << "--force" if new_resource.force
|
170
199
|
|
@@ -34,11 +34,11 @@ class Chef
|
|
34
34
|
action :attach do
|
35
35
|
description "Attach the node to a subscription pool."
|
36
36
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
37
|
+
unless subscription_attached?(new_resource.pool_id)
|
38
|
+
converge_by("attach subscription pool #{new_resource.pool_id}") do
|
39
|
+
shell_out!("subscription-manager attach --pool=#{new_resource.pool_id}")
|
40
|
+
build_resource(:package, "rhsm_subscription-#{new_resource.pool_id}-flush_cache").run_action(:flush_cache)
|
41
|
+
end
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
data/lib/chef/resource/route.rb
CHANGED
@@ -43,7 +43,7 @@ class Chef
|
|
43
43
|
description: "The route metric value."
|
44
44
|
|
45
45
|
property :netmask, [String, nil],
|
46
|
-
description: "The decimal representation of the network mask. For example: 255.255.255.0
|
46
|
+
description: "The decimal representation of the network mask. For example: `255.255.255.0`."
|
47
47
|
|
48
48
|
property :gateway, [String, nil],
|
49
49
|
description: "The gateway for the route."
|
data/lib/chef/resource/ruby.rb
CHANGED
@@ -17,7 +17,6 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require_relative "script"
|
20
|
-
require_relative "../provider/script"
|
21
20
|
|
22
21
|
class Chef
|
23
22
|
class Resource
|
@@ -26,11 +25,7 @@ class Chef
|
|
26
25
|
|
27
26
|
provides :ruby
|
28
27
|
|
29
|
-
description "Use the **ruby** resource to execute scripts using the Ruby interpreter. This"
|
30
|
-
" resource may also use any of the actions and properties that are available"\
|
31
|
-
" to the execute resource. Commands that are executed with this resource are (by"\
|
32
|
-
" their nature) not idempotent, as they are typically unique to the environment"\
|
33
|
-
" in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
28
|
+
description "Use the **ruby** resource to execute scripts using the Ruby interpreter. This resource may also use any of the actions and properties that are available to the **execute** resource. Commands that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the environment in which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
|
34
29
|
|
35
30
|
def initialize(name, run_context = nil)
|
36
31
|
super
|
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
require_relative "../resource"
|
21
21
|
require_relative "../provider/ruby_block"
|
22
|
-
|
22
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
23
23
|
|
24
24
|
class Chef
|
25
25
|
class Resource
|
@@ -28,7 +28,7 @@ class Chef
|
|
28
28
|
|
29
29
|
provides :ruby_block, target_mode: true
|
30
30
|
|
31
|
-
description "Use the **ruby_block** resource to execute Ruby code during a #{
|
31
|
+
description "Use the **ruby_block** resource to execute Ruby code during a #{ChefUtils::Dist::Infra::PRODUCT} run. Ruby code in the `ruby_block` resource is evaluated with other resources during convergence, whereas Ruby code outside of a `ruby_block` resource is evaluated before other resources, as the recipe is compiled."
|
32
32
|
|
33
33
|
default_action :run
|
34
34
|
allowed_actions :create, :run
|
@@ -33,7 +33,8 @@ property :revision, String,
|
|
33
33
|
default: "HEAD"
|
34
34
|
|
35
35
|
property :user, [String, Integer],
|
36
|
-
description: "The system user that will own the checked-out code."
|
36
|
+
description: "The system user that will own the checked-out code.",
|
37
|
+
default_description: "`HOME` environment variable of the user running #{ChefUtils::Dist::Infra::CLIENT}"
|
37
38
|
|
38
39
|
property :group, [String, Integer],
|
39
40
|
description: "The system group that will own the checked-out code."
|
@@ -28,6 +28,87 @@ class Chef
|
|
28
28
|
provides :git
|
29
29
|
|
30
30
|
description "Use the **git** resource to manage source control resources that exist in a git repository. git version 1.6.5 (or higher) is required to use all of the functionality in the git resource."
|
31
|
+
examples <<~DOC
|
32
|
+
**Use the git mirror**
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
git '/opt/my_sources/couch' do
|
36
|
+
repository 'git://git.apache.org/couchdb.git'
|
37
|
+
revision 'master'
|
38
|
+
action :sync
|
39
|
+
end
|
40
|
+
```
|
41
|
+
|
42
|
+
**Use different branches**
|
43
|
+
|
44
|
+
To use different branches, depending on the environment of the node:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
branch_name = if node.chef_environment == 'QA'
|
48
|
+
'staging'
|
49
|
+
else
|
50
|
+
'master'
|
51
|
+
end
|
52
|
+
|
53
|
+
git '/home/user/deployment' do
|
54
|
+
repository 'git@github.com:git_site/deployment.git'
|
55
|
+
revision branch_name
|
56
|
+
action :sync
|
57
|
+
user 'user'
|
58
|
+
group 'test'
|
59
|
+
end
|
60
|
+
```
|
61
|
+
|
62
|
+
Where the `branch_name` variable is set to staging or master, depending on the environment of the node. Once this is determined, the `branch_name` variable is used to set the revision for the repository. If the git status command is used after running the example above, it will return the branch name as `deploy`, as this is the default value. Run Chef Infra Client in debug mode to verify that the correct branches are being checked out:
|
63
|
+
|
64
|
+
```
|
65
|
+
sudo chef-client -l debug
|
66
|
+
```
|
67
|
+
|
68
|
+
**Install an application from git using bash**
|
69
|
+
|
70
|
+
The following example shows how Bash can be used to install a plug-in for rbenv named ruby-build, which is located in git version source control. First, the application is synchronized, and then Bash changes its working directory to the location in which ruby-build is located, and then runs a command.
|
71
|
+
|
72
|
+
```ruby
|
73
|
+
git "#{Chef::Config[:file_cache_path]}/ruby-build" do
|
74
|
+
repository 'git://github.com/rbenv/ruby-build.git'
|
75
|
+
revision 'master'
|
76
|
+
action :sync
|
77
|
+
end
|
78
|
+
|
79
|
+
bash 'install_ruby_build' do
|
80
|
+
cwd "#{Chef::Config[:file_cache_path]}/ruby-build"
|
81
|
+
user 'rbenv'
|
82
|
+
group 'rbenv'
|
83
|
+
code <<-EOH
|
84
|
+
./install.sh
|
85
|
+
EOH
|
86
|
+
environment 'PREFIX' => '/usr/local'
|
87
|
+
end
|
88
|
+
```
|
89
|
+
|
90
|
+
**Notify a resource post-checkout**
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
git "#{Chef::Config[:file_cache_path]}/my_app" do
|
94
|
+
repository node['my_app']['git_repository']
|
95
|
+
revision node['my_app']['git_revision']
|
96
|
+
action :sync
|
97
|
+
notifies :run, 'bash[compile_my_app]', :immediately
|
98
|
+
end
|
99
|
+
```
|
100
|
+
|
101
|
+
**Pass in environment variables**
|
102
|
+
|
103
|
+
```ruby
|
104
|
+
git '/opt/my_sources/couch' do
|
105
|
+
repository 'git://git.apache.org/couchdb.git'
|
106
|
+
revision 'master'
|
107
|
+
environment 'VAR' => 'whatever'
|
108
|
+
action :sync
|
109
|
+
end
|
110
|
+
```
|
111
|
+
DOC
|
31
112
|
|
32
113
|
property :additional_remotes, Hash,
|
33
114
|
description: "A Hash of additional remotes that are added to the git repository configuration.",
|
@@ -41,7 +122,7 @@ class Chef
|
|
41
122
|
default: false
|
42
123
|
|
43
124
|
property :enable_checkout, [TrueClass, FalseClass],
|
44
|
-
description: "Check out a repo from master. Set to false when using the checkout_branch attribute to prevent the git resource from attempting to check out master from master
|
125
|
+
description: "Check out a repo from master. Set to `false` when using the `checkout_branch` attribute to prevent the git resource from attempting to check out `master` from `master`.",
|
45
126
|
default: true
|
46
127
|
|
47
128
|
property :remote, String,
|
@@ -17,7 +17,7 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
|
20
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
21
21
|
|
22
22
|
class Chef
|
23
23
|
class Resource
|
@@ -29,6 +29,18 @@ class Chef
|
|
29
29
|
provides :subversion
|
30
30
|
|
31
31
|
description "Use the **subversion** resource to manage source control resources that exist in a Subversion repository."
|
32
|
+
examples <<~DOC
|
33
|
+
**Get the latest version of an application**
|
34
|
+
|
35
|
+
```ruby
|
36
|
+
subversion 'CouchDB Edge' do
|
37
|
+
repository 'http://svn.apache.org/repos/asf/couchdb/trunk'
|
38
|
+
revision 'HEAD'
|
39
|
+
destination '/opt/my_sources/couch'
|
40
|
+
action :sync
|
41
|
+
end
|
42
|
+
```
|
43
|
+
DOC
|
32
44
|
|
33
45
|
allowed_actions :force_export
|
34
46
|
|
@@ -38,7 +50,7 @@ class Chef
|
|
38
50
|
default: "--no-auth-cache"
|
39
51
|
|
40
52
|
property :svn_info_args, [String, nil, FalseClass],
|
41
|
-
description: "Use when the `svn info` command is used by #{
|
53
|
+
description: "Use when the `svn info` command is used by #{ChefUtils::Dist::Infra::PRODUCT} and arguments need to be passed. The `svn_arguments` command does not work when the `svn info` command is used.",
|
42
54
|
coerce: proc { |v| v == false ? nil : v }, # coerce false to nil
|
43
55
|
default: "--no-auth-cache"
|
44
56
|
|
data/lib/chef/resource/script.rb
CHANGED
@@ -29,9 +29,9 @@ class Chef
|
|
29
29
|
identity_attr :name
|
30
30
|
|
31
31
|
description "Use the **script** resource to execute scripts using a specified interpreter, such as Bash, csh, Perl, Python, or Ruby."\
|
32
|
-
" This resource may also use any of the actions and properties that are available to the execute resource. Commands"\
|
32
|
+
" This resource may also use any of the actions and properties that are available to the **execute** resource. Commands"\
|
33
33
|
" that are executed with this resource are (by their nature) not idempotent, as they are typically unique to the"\
|
34
|
-
" environment in which they are run. Use not_if and only_if to guard this resource for idempotence."
|
34
|
+
" environment in which they are run. Use `not_if` and `only_if` to guard this resource for idempotence."
|
35
35
|
|
36
36
|
def initialize(name, run_context = nil)
|
37
37
|
super
|
@@ -20,13 +20,13 @@
|
|
20
20
|
require "chef-utils/dsl/service" unless defined?(ChefUtils::DSL::Service)
|
21
21
|
require_relative "../resource"
|
22
22
|
require "shellwords" unless defined?(Shellwords)
|
23
|
-
|
23
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
24
24
|
|
25
25
|
class Chef
|
26
26
|
class Resource
|
27
27
|
class Service < Chef::Resource
|
28
|
-
include
|
29
|
-
extend
|
28
|
+
include Chef::Platform::ServiceHelpers
|
29
|
+
extend Chef::Platform::ServiceHelpers
|
30
30
|
unified_mode true
|
31
31
|
|
32
32
|
provides :service, target_mode: true
|
@@ -39,7 +39,7 @@ class Chef
|
|
39
39
|
|
40
40
|
# this is a poor API please do not re-use this pattern
|
41
41
|
property :supports, Hash, default: { restart: nil, reload: nil, status: nil },
|
42
|
-
description: "A list of properties that controls how #{
|
42
|
+
description: "A list of properties that controls how #{ChefUtils::Dist::Infra::PRODUCT} is to attempt to manage a service: :restart, :reload, :status. For :restart, the init script or other service provider can use a restart command; if :restart is not specified, the #{ChefUtils::Dist::Infra::CLIENT} attempts to stop and then start a service. For :reload, the init script or other service provider can use a reload command. For :status, the init script or other service provider can use a status command to determine if the service is running; if :status is not specified, the #{ChefUtils::Dist::Infra::CLIENT} attempts to match the service_name against the process table as a regular expression, unless a pattern is specified as a parameter property. Default value: { restart: false, reload: false, status: false } for all platforms (except for the Red Hat platform family, which defaults to { restart: false, reload: false, status: true }.)",
|
43
43
|
coerce: proc { |x| x.is_a?(Array) ? x.each_with_object({}) { |i, m| m[i] = true } : x }
|
44
44
|
|
45
45
|
property :service_name, String,
|
@@ -82,7 +82,7 @@ class Chef
|
|
82
82
|
# specify overrides for the start_command, stop_command and
|
83
83
|
# restart_command properties.
|
84
84
|
property :init_command, String,
|
85
|
-
description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the #{
|
85
|
+
description: "The path to the init script that is associated with the service. Use init_command to prevent the need to specify overrides for the start_command, stop_command, and restart_command properties. When this property is not specified, the #{ChefUtils::Dist::Infra::PRODUCT} will use the default init command for the service provider being used.",
|
86
86
|
desired_state: false
|
87
87
|
|
88
88
|
# if the service is enabled or not
|
@@ -25,8 +25,6 @@ class Chef
|
|
25
25
|
unified_mode true
|
26
26
|
|
27
27
|
provides :solaris_package
|
28
|
-
provides :package, os: "solaris2", platform_family: "nexentacore"
|
29
|
-
provides :package, os: "solaris2", platform_family: "solaris2", platform_version: "<= 5.10"
|
30
28
|
|
31
29
|
description "Use the **solaris_package** resource to manage packages on the Solaris platform."
|
32
30
|
|