chef 16.3.38-universal-mingw32 → 16.5.64-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Rakefile +2 -2
- data/bin/knife +1 -1
- data/chef-universal-mingw32.gemspec +0 -1
- data/chef.gemspec +2 -1
- data/distro/templates/powershell/chef/chef.psm1.erb +18 -18
- data/ext/win32-eventlog/Rakefile +2 -2
- data/ext/win32-eventlog/chef-log.man.erb +4 -4
- data/lib/chef/action_collection.rb +4 -0
- data/lib/chef/api_client/registration.rb +2 -2
- data/lib/chef/application.rb +19 -17
- data/lib/chef/application/apply.rb +17 -12
- data/lib/chef/application/base.rb +26 -23
- data/lib/chef/application/client.rb +10 -4
- 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 +6 -6
- data/lib/chef/chef_class.rb +0 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +54 -54
- data/lib/chef/chef_fs/file_system/chef_server/acl_entry.rb +10 -10
- 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/chef_repository_file_system_cookbook_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +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.rb +0 -1
- data/lib/chef/client.rb +21 -22
- data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +2 -2
- data/lib/chef/cookbook_site_streaming_uploader.rb +13 -11
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/data_collector.rb +6 -5
- data/lib/chef/data_collector/config_validation.rb +22 -13
- data/lib/chef/data_collector/run_end_message.rb +13 -3
- data/lib/chef/data_collector/run_start_message.rb +1 -1
- data/lib/chef/deprecated.rb +1 -1
- data/lib/chef/deprecation/warnings.rb +2 -2
- data/lib/chef/digester.rb +2 -2
- 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 +9 -9
- data/lib/chef/encrypted_data_bag_item.rb +3 -4
- 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/environment.rb +4 -4
- data/lib/chef/event_loggers/windows_eventlog.rb +2 -2
- data/lib/chef/exceptions.rb +5 -5
- data/lib/chef/file_access_control/windows.rb +5 -1
- data/lib/chef/file_content_management/tempfile.rb +9 -9
- 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/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 +2 -2
- data/lib/chef/formatters/error_inspectors/run_list_expansion_error_inspector.rb +3 -3
- data/lib/chef/formatters/minimal.rb +5 -4
- data/lib/chef/handler.rb +2 -0
- data/lib/chef/http.rb +15 -13
- data/lib/chef/http/auth_credentials.rb +5 -1
- data/lib/chef/http/authenticator.rb +3 -1
- data/lib/chef/http/basic_client.rb +4 -2
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +7 -5
- data/lib/chef/http/socketless_chef_zero_client.rb +5 -2
- data/lib/chef/http/ssl_policies.rb +1 -1
- data/lib/chef/json_compat.rb +2 -2
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/bootstrap.rb +18 -16
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +3 -3
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +7 -7
- data/lib/chef/knife/client_create.rb +3 -3
- data/lib/chef/knife/config_get.rb +8 -97
- 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 -98
- 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 +9 -24
- data/lib/chef/knife/configure.rb +4 -2
- 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 +23 -23
- data/lib/chef/knife/core/bootstrap_context.rb +2 -2
- data/lib/chef/knife/core/generic_presenter.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +2 -2
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +42 -34
- data/lib/chef/knife/delete.rb +15 -15
- data/lib/chef/knife/exec.rb +4 -4
- data/lib/chef/knife/node_show.rb +2 -2
- data/lib/chef/knife/serve.rb +3 -3
- data/lib/chef/knife/ssh.rb +22 -7
- data/lib/chef/knife/ssl_check.rb +3 -3
- data/lib/chef/knife/status.rb +2 -2
- 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/local_mode.rb +2 -2
- data/lib/chef/log/syslog.rb +2 -2
- data/lib/chef/log/winevt.rb +2 -2
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/deep_merge.rb +35 -18
- data/lib/chef/mixin/openssl_helper.rb +4 -5
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/mixin/template.rb +2 -2
- data/lib/chef/mixin/uris.rb +2 -2
- data/lib/chef/mixin/versioned_api.rb +1 -2
- data/lib/chef/mixin/which.rb +1 -1
- data/lib/chef/monkey_patches/net_http.rb +4 -4
- data/lib/chef/monkey_patches/webrick-utils.rb +10 -10
- data/lib/chef/node/attribute.rb +2 -4
- data/lib/chef/node_map.rb +2 -2
- data/lib/chef/platform/service_helpers.rb +1 -1
- data/lib/chef/policy_builder/policyfile.rb +2 -2
- data/lib/chef/property.rb +1 -1
- data/lib/chef/provider.rb +0 -4
- data/lib/chef/provider/cron/unix.rb +0 -2
- data/lib/chef/provider/file.rb +2 -2
- data/lib/chef/provider/git.rb +5 -5
- data/lib/chef/provider/group.rb +0 -2
- data/lib/chef/provider/group/suse.rb +5 -5
- data/lib/chef/provider/ifconfig.rb +1 -4
- data/lib/chef/provider/launchd.rb +2 -2
- data/lib/chef/provider/mount.rb +0 -2
- data/lib/chef/provider/mount/linux.rb +63 -0
- data/lib/chef/provider/package.rb +0 -2
- data/lib/chef/provider/package/rubygems.rb +22 -19
- data/lib/chef/provider/package/snap.rb +1 -2
- data/lib/chef/provider/package/windows.rb +2 -2
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +12 -10
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +21 -5
- 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/sftp.rb +6 -4
- data/lib/chef/provider/route.rb +2 -6
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +1 -1
- data/lib/chef/provider/service/gentoo.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +4 -4
- data/lib/chef/provider/service/openbsd.rb +1 -4
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +10 -10
- data/lib/chef/provider/systemd_unit.rb +0 -2
- data/lib/chef/provider/template/content.rb +1 -0
- data/lib/chef/provider/template_finder.rb +2 -10
- data/lib/chef/provider/user/dscl.rb +5 -5
- data/lib/chef/provider/user/mac.rb +10 -10
- data/lib/chef/provider/windows_task.rb +1 -5
- data/lib/chef/provider/zypper_repository.rb +2 -3
- data/lib/chef/provider_resolver.rb +1 -1
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/recipe.rb +2 -2
- data/lib/chef/resource.rb +7 -11
- data/lib/chef/resource/apt_repository.rb +2 -11
- data/lib/chef/resource/bff_package.rb +22 -0
- data/lib/chef/resource/breakpoint.rb +57 -2
- data/lib/chef/resource/build_essential.rb +1 -1
- data/lib/chef/resource/cab_package.rb +29 -0
- data/lib/chef/resource/chef_client_cron.rb +32 -25
- data/lib/chef/resource/chef_client_launchd.rb +194 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +21 -18
- data/lib/chef/resource/chef_client_systemd_timer.rb +26 -19
- data/lib/chef/resource/chef_client_trusted_certificate.rb +101 -0
- data/lib/chef/resource/chef_gem.rb +10 -10
- data/lib/chef/resource/chef_handler.rb +148 -4
- data/lib/chef/resource/chef_sleep.rb +2 -2
- data/lib/chef/resource/chef_vault_secret.rb +14 -14
- data/lib/chef/resource/cookbook_file.rb +2 -2
- data/lib/chef/resource/cron/cron_d.rb +0 -1
- 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 +2 -2
- data/lib/chef/resource/execute.rb +8 -9
- data/lib/chef/resource/file.rb +4 -4
- data/lib/chef/resource/gem_package.rb +5 -5
- data/lib/chef/resource/homebrew_package.rb +3 -3
- data/lib/chef/resource/homebrew_update.rb +7 -7
- data/lib/chef/resource/hostname.rb +19 -19
- data/lib/chef/resource/launchd.rb +2 -1
- data/lib/chef/resource/locale.rb +2 -2
- data/lib/chef/resource/macos_userdefaults.rb +3 -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 +38 -35
- data/lib/chef/resource/openssl_x509_crl.rb +21 -10
- data/lib/chef/resource/openssl_x509_request.rb +37 -36
- data/lib/chef/resource/osx_profile.rb +292 -6
- data/lib/chef/resource/plist.rb +1 -1
- data/lib/chef/resource/powershell_package_source.rb +6 -6
- data/lib/chef/resource/powershell_script.rb +24 -30
- data/lib/chef/resource/reboot.rb +2 -2
- data/lib/chef/resource/remote_file.rb +3 -3
- data/lib/chef/resource/rhsm_register.rb +22 -10
- data/lib/chef/resource/ruby_block.rb +2 -2
- data/lib/chef/resource/scm/subversion.rb +2 -2
- data/lib/chef/resource/service.rb +3 -3
- data/lib/chef/resource/ssh_known_hosts_entry.rb +2 -2
- data/lib/chef/resource/sudo.rb +1 -1
- 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/sysctl.rb +6 -10
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +2 -2
- data/lib/chef/resource/timezone.rb +112 -73
- data/lib/chef/resource/windows_ad_join.rb +12 -3
- data/lib/chef/resource/windows_audit_policy.rb +3 -0
- data/lib/chef/resource/windows_auto_run.rb +2 -0
- data/lib/chef/resource/windows_certificate.rb +8 -4
- 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 +2 -0
- data/lib/chef/resource/windows_dns_record.rb +10 -7
- data/lib/chef/resource/windows_dns_zone.rb +12 -7
- data/lib/chef/resource/windows_feature.rb +2 -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 +24 -20
- data/lib/chef/resource/windows_firewall_rule.rb +5 -3
- data/lib/chef/resource/windows_font.rb +3 -1
- data/lib/chef/resource/windows_package.rb +28 -5
- data/lib/chef/resource/windows_pagefile.rb +4 -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_security_policy.rb +2 -0
- data/lib/chef/resource/windows_share.rb +5 -3
- data/lib/chef/resource/windows_shortcut.rb +2 -0
- data/lib/chef/resource/windows_uac.rb +2 -0
- data/lib/chef/resource/windows_user_privilege.rb +54 -53
- data/lib/chef/resource/windows_workgroup.rb +5 -6
- data/lib/chef/resource/yum_package.rb +2 -2
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -2
- data/lib/chef/resources.rb +3 -1
- data/lib/chef/role.rb +2 -2
- data/lib/chef/run_context.rb +2 -2
- data/lib/chef/run_context/cookbook_compiler.rb +21 -21
- data/lib/chef/run_lock.rb +2 -2
- data/lib/chef/run_status.rb +2 -6
- data/lib/chef/search/query.rb +4 -5
- data/lib/chef/server_api_versions.rb +4 -0
- data/lib/chef/shell.rb +32 -27
- data/lib/chef/shell/ext.rb +11 -11
- data/lib/chef/shell/shell_session.rb +2 -2
- data/lib/chef/train_transport.rb +5 -104
- data/lib/chef/util/backup.rb +1 -1
- data/lib/chef/util/diff.rb +14 -14
- data/lib/chef/util/powershell/cmdlet.rb +4 -2
- data/lib/chef/util/powershell/ps_credential.rb +18 -14
- data/lib/chef/util/threaded_job_queue.rb +0 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/crypto.rb +1 -1
- data/lib/chef/win32/file.rb +2 -2
- data/lib/chef/win32/file/version_info.rb +5 -5
- data/lib/chef/win32/registry.rb +1 -2
- data/spec/data/shef-config.rb +1 -1
- data/spec/data/ssl/chef-rspec.cert +15 -15
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -5
- data/spec/functional/resource/aix_service_spec.rb +2 -2
- data/spec/functional/resource/aixinit_service_spec.rb +8 -8
- data/spec/functional/resource/bff_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -1
- data/spec/functional/resource/dsc_resource_spec.rb +1 -1
- data/spec/functional/resource/dsc_script_spec.rb +0 -1
- data/spec/functional/resource/group_spec.rb +6 -6
- data/spec/functional/resource/insserv_spec.rb +5 -5
- data/spec/functional/resource/link_spec.rb +20 -20
- data/spec/functional/resource/powershell_script_spec.rb +4 -4
- data/spec/functional/resource/rpm_spec.rb +2 -2
- 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 +3 -3
- data/spec/functional/resource/windows_font_spec.rb +49 -0
- data/spec/functional/resource/windows_security_policy_spec.rb +0 -3
- data/spec/functional/resource/windows_task_spec.rb +13 -13
- data/spec/functional/run_lock_spec.rb +24 -24
- data/spec/functional/version_spec.rb +3 -3
- 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 +4 -4
- data/spec/integration/client/exit_code_spec.rb +3 -2
- data/spec/integration/client/ipv6_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/diff_spec.rb +3 -1
- data/spec/integration/knife/download_spec.rb +3 -1
- data/spec/integration/knife/serve_spec.rb +5 -5
- data/spec/integration/knife/upload_spec.rb +3 -1
- data/spec/integration/ohai/ohai_spec.rb +61 -0
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/solo/solo_spec.rb +5 -5
- data/spec/spec_helper.rb +12 -9
- data/spec/stress/win32/file_spec.rb +1 -1
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/matchers/leak.rb +2 -2
- data/spec/support/platform_helpers.rb +17 -35
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/directory_resource.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +20 -20
- data/spec/support/shared/functional/securable_resource.rb +108 -27
- data/spec/support/shared/functional/win32_service.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +3 -3
- data/spec/support/shared/integration/integration_helper.rb +22 -52
- data/spec/support/shared/unit/application_dot_d.rb +5 -3
- data/spec/support/shared/unit/script_resource.rb +6 -20
- data/spec/support/shared/unit/windows_script_resource.rb +15 -28
- 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_spec.rb +4 -6
- data/spec/unit/chef_fs/parallelizer_spec.rb +5 -1
- data/spec/unit/chef_fs/path_util_spec.rb +1 -1
- data/spec/unit/cookbook/synchronizer_spec.rb +2 -2
- data/spec/unit/cookbook_spec.rb +2 -2
- data/spec/unit/data_collector/config_validation_spec.rb +208 -0
- data/spec/unit/data_collector_spec.rb +28 -113
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/environment_spec.rb +7 -7
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/http/api_versions_spec.rb +19 -1
- data/spec/unit/knife/bootstrap_spec.rb +20 -20
- data/spec/unit/knife/cookbook_download_spec.rb +4 -4
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -1
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +3 -3
- data/spec/unit/knife/core/ui_spec.rb +1 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +21 -12
- data/spec/unit/knife/ssh_spec.rb +2 -2
- data/spec/unit/knife/supermarket_share_spec.rb +1 -1
- data/spec/unit/lwrp_spec.rb +3 -3
- data/spec/unit/mixin/deep_merge_spec.rb +15 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +1 -1
- data/spec/unit/mixin/powershell_exec_spec.rb +1 -1
- data/spec/unit/mixin/securable_spec.rb +2 -2
- data/spec/unit/mixin/template_spec.rb +30 -30
- 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 +5 -5
- data/spec/unit/provider/mount/linux_spec.rb +97 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +1 -1
- data/spec/unit/provider/package/powershell_spec.rb +1 -1
- data/spec/unit/provider/package/rubygems_spec.rb +4 -1
- data/spec/unit/provider/powershell_script_spec.rb +11 -4
- data/spec/unit/provider/remote_directory_spec.rb +9 -9
- data/spec/unit/provider/route_spec.rb +0 -2
- 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 +3 -3
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/upstart_service_spec.rb +3 -3
- data/spec/unit/provider_resolver_spec.rb +6 -6
- data/spec/unit/recipe_spec.rb +1 -1
- data/spec/unit/resource/batch_spec.rb +6 -6
- data/spec/unit/resource/chef_client_cron_spec.rb +35 -14
- data/spec/unit/resource/chef_client_launchd_spec.rb +127 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +36 -1
- data/spec/unit/resource/chef_client_trusted_certificate_spec.rb +54 -0
- data/spec/unit/resource/execute_spec.rb +113 -118
- data/spec/unit/resource/launchd_spec.rb +8 -0
- data/spec/unit/resource/osx_profile_spec.rb +299 -0
- data/spec/unit/resource/powershell_script_spec.rb +11 -29
- data/spec/unit/resource/rhsm_register_spec.rb +56 -18
- data/spec/unit/resource/script_spec.rb +6 -1
- data/spec/unit/resource/timezone_spec.rb +63 -0
- data/spec/unit/resource/windows_feature_powershell_spec.rb +30 -4
- data/spec/unit/resource/windows_uac_spec.rb +1 -1
- data/spec/unit/resource/windows_user_privilege_spec.rb +55 -0
- data/spec/unit/role_spec.rb +11 -11
- data/spec/unit/run_lock_spec.rb +5 -1
- data/spec/unit/runner_spec.rb +1 -2
- 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 +16 -19
- data/spec/unit/train_transport_spec.rb +14 -13
- data/spec/unit/util/selinux_spec.rb +2 -0
- data/tasks/rspec.rb +1 -3
- metadata +42 -33
- data/lib/chef/dist.rb +0 -68
- data/lib/chef/provider/osx_profile.rb +0 -255
- 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 -218
- data/spec/integration/knife/config_use_profile_spec.rb +0 -154
- data/spec/unit/provider/osx_profile_spec.rb +0 -255
@@ -17,39 +17,42 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
|
20
|
+
autoload :URI, "uri"
|
21
21
|
require_relative "../package"
|
22
22
|
require_relative "../../resource/package"
|
23
23
|
require_relative "../../mixin/get_source_from_package"
|
24
24
|
require_relative "../../mixin/which"
|
25
|
-
|
25
|
+
require "chef-utils/dist" unless defined?(ChefUtils::Dist)
|
26
26
|
|
27
27
|
# Class methods on Gem are defined in rubygems
|
28
|
-
|
28
|
+
autoload :Gem, "rubygems"
|
29
29
|
# Ruby 1.9's gem_prelude can interact poorly with loading the full rubygems
|
30
30
|
# explicitly like this. Make sure rubygems/specification is always last in this
|
31
31
|
# list
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
32
|
+
Gem.autoload :Version, "rubygems/version"
|
33
|
+
Gem.autoload :Dependency, "rubygems/dependency"
|
34
|
+
Gem.autoload :SpecFetcher, "rubygems/spec_fetcher"
|
35
|
+
Gem.autoload :Platform, "rubygems/platform"
|
36
|
+
Gem.autoload :Package, "rubygems/package"
|
37
|
+
Gem.autoload :DependencyInstaller, "rubygems/dependency_installer"
|
38
|
+
Gem.autoload :Uninstaller, "rubygems/uninstaller"
|
39
|
+
Gem.autoload :Specification, "rubygems/specification"
|
40
40
|
|
41
41
|
class Chef
|
42
42
|
class Provider
|
43
43
|
class Package
|
44
44
|
class Rubygems < Chef::Provider::Package
|
45
45
|
class GemEnvironment
|
46
|
-
# HACK: trigger gem config load early. Otherwise it can get lazy
|
47
|
-
# loaded during operations where we've set Gem.sources to an
|
48
|
-
# alternate value and overwrite it with the defaults.
|
49
|
-
Gem.configuration
|
50
|
-
|
51
46
|
DEFAULT_UNINSTALLER_OPTS = { ignore: true, executables: true }.freeze
|
52
47
|
|
48
|
+
def initialize(*args)
|
49
|
+
super
|
50
|
+
# HACK: trigger gem config load early. Otherwise it can get lazy
|
51
|
+
# loaded during operations where we've set Gem.sources to an
|
52
|
+
# alternate value and overwrite it with the defaults.
|
53
|
+
Gem.configuration
|
54
|
+
end
|
55
|
+
|
53
56
|
# The paths where rubygems should search for installed gems.
|
54
57
|
# Implemented by subclasses.
|
55
58
|
def gem_paths
|
@@ -188,7 +191,7 @@ class Chef
|
|
188
191
|
# Use the API that 'gem install' calls which does not pull down the rubygems universe
|
189
192
|
begin
|
190
193
|
rs = dependency_installer.resolve_dependencies gem_dependency.name, gem_dependency.requirement
|
191
|
-
rs.specs.
|
194
|
+
rs.specs.find { |s| s.name == gem_dependency.name }
|
192
195
|
rescue Gem::UnsatisfiableDependencyError
|
193
196
|
nil
|
194
197
|
end
|
@@ -401,8 +404,8 @@ class Chef
|
|
401
404
|
if new_resource.options && new_resource.options.is_a?(Hash)
|
402
405
|
msg = [
|
403
406
|
"Gem options must be passed to gem_package as a string instead of a hash when",
|
404
|
-
"using this installation of #{
|
405
|
-
"may only be used when installing a gem to the same Ruby installation that #{
|
407
|
+
"using this installation of #{ChefUtils::Dist::Infra::PRODUCT} because it runs with its own packaged Ruby. A hash",
|
408
|
+
"may only be used when installing a gem to the same Ruby installation that #{ChefUtils::Dist::Infra::PRODUCT} is",
|
406
409
|
"running under. See https://docs.chef.io/resources/gem_package/ for more information.",
|
407
410
|
"Error raised at #{new_resource} from #{new_resource.source_line}",
|
408
411
|
].join("\n")
|
@@ -20,7 +20,7 @@ require_relative "../package"
|
|
20
20
|
require_relative "../../resource/snap_package"
|
21
21
|
require_relative "../../mixin/shell_out"
|
22
22
|
require "socket" unless defined?(Socket)
|
23
|
-
require "json"
|
23
|
+
require "json" unless defined?(JSON)
|
24
24
|
|
25
25
|
class Chef
|
26
26
|
class Provider
|
@@ -218,7 +218,6 @@ class Chef
|
|
218
218
|
waiting = true
|
219
219
|
while waiting
|
220
220
|
result = get_change_id(id)
|
221
|
-
puts "STATUS: #{result["result"]["status"]}"
|
222
221
|
case result["result"]["status"]
|
223
222
|
when "Do", "Doing", "Undoing", "Undo"
|
224
223
|
# Continue
|
@@ -21,7 +21,7 @@ require_relative "../../resource/windows_package"
|
|
21
21
|
require_relative "../package"
|
22
22
|
require_relative "../../util/path_helper"
|
23
23
|
require_relative "../../mixin/checksum"
|
24
|
-
|
24
|
+
autoload :CGI, "cgi"
|
25
25
|
|
26
26
|
class Chef
|
27
27
|
class Provider
|
@@ -33,7 +33,7 @@ class Chef
|
|
33
33
|
provides :package, os: "windows"
|
34
34
|
provides :windows_package
|
35
35
|
|
36
|
-
|
36
|
+
autoload :RegistryUninstallEntry, ::File.expand_path("windows/registry_uninstall_entry.rb", __dir__)
|
37
37
|
|
38
38
|
def define_resource_requirements
|
39
39
|
if new_resource.checksum
|
@@ -17,7 +17,9 @@
|
|
17
17
|
# limitations under the License.
|
18
18
|
#
|
19
19
|
|
20
|
-
|
20
|
+
module Win32
|
21
|
+
autoload :Registry, File.expand_path("../../../monkey_patches/win32/registry", __dir__) if RUBY_PLATFORM.match?(/mswin|mingw32|windows/)
|
22
|
+
end
|
21
23
|
|
22
24
|
class Chef
|
23
25
|
class Provider
|
@@ -37,16 +39,16 @@ class Chef
|
|
37
39
|
begin
|
38
40
|
::Win32::Registry.open(hkey[0], UNINSTALL_SUBKEY, desired) do |reg|
|
39
41
|
reg.each_key do |key, _wtime|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
end
|
47
|
-
rescue ::Win32::Registry::Error => ex
|
48
|
-
logger.trace("Registry error opening key '#{key}' on node #{desired}: #{ex}")
|
42
|
+
|
43
|
+
entry = reg.open(key, desired)
|
44
|
+
display_name = read_registry_property(entry, "DisplayName")
|
45
|
+
if display_name.to_s.rstrip == package_name
|
46
|
+
quiet_uninstall_string = RegistryUninstallEntry.read_registry_property(entry, "QuietUninstallString")
|
47
|
+
entries.push(quiet_uninstall_string_key?(quiet_uninstall_string, hkey, key, entry))
|
49
48
|
end
|
49
|
+
rescue ::Win32::Registry::Error => ex
|
50
|
+
logger.trace("Registry error opening key '#{key}' on node #{desired}: #{ex}")
|
51
|
+
|
50
52
|
end
|
51
53
|
end
|
52
54
|
rescue ::Win32::Registry::Error => ex
|
@@ -31,21 +31,32 @@ class Chef
|
|
31
31
|
super()
|
32
32
|
end
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
# Set InputFormat to None as PowerShell will hang if STDIN is redirected
|
35
|
+
# http://connect.microsoft.com/PowerShell/feedback/details/572313/powershell-exe-can-hang-if-stdin-is-redirected
|
36
|
+
DEFAULT_FLAGS = "-NoLogo -NonInteractive -NoProfile -ExecutionPolicy Bypass -InputFormat None".freeze
|
37
37
|
|
38
|
+
def command
|
38
39
|
# Must use -File rather than -Command to launch the script
|
39
40
|
# file created by the base class that contains the script
|
40
41
|
# code -- otherwise, powershell.exe does not propagate the
|
41
42
|
# error status of a failed Windows process that ran at the
|
42
43
|
# end of the script, it gets changed to '1'.
|
43
44
|
#
|
44
|
-
|
45
|
+
[
|
46
|
+
%Q{"#{interpreter_path}"},
|
47
|
+
DEFAULT_FLAGS,
|
48
|
+
new_resource.flags,
|
49
|
+
%Q{-File "#{script_file_path}"},
|
50
|
+
].join(" ")
|
45
51
|
end
|
46
52
|
|
47
53
|
protected
|
48
54
|
|
55
|
+
def interpreter_path
|
56
|
+
# Powershell.exe is always in "v1.0" folder (for backwards compatibility)
|
57
|
+
Chef::Util::PathHelper.join(basepath, "WindowsPowerShell", "v1.0", interpreter)
|
58
|
+
end
|
59
|
+
|
49
60
|
def code
|
50
61
|
code = wrapper_script
|
51
62
|
logger.trace("powershell_script provider called with script code:\n\n#{new_resource.code}\n")
|
@@ -71,7 +82,12 @@ class Chef
|
|
71
82
|
# written to the file system at this point, which is required since
|
72
83
|
# the intent is to execute the code just written to it.
|
73
84
|
user_script_file.close
|
74
|
-
validation_command =
|
85
|
+
validation_command = [
|
86
|
+
%Q{"#{interpreter_path}"},
|
87
|
+
DEFAULT_FLAGS,
|
88
|
+
new_resource.flags,
|
89
|
+
%Q{-Command ". '#{user_script_file.path}'"},
|
90
|
+
].join(" ")
|
75
91
|
|
76
92
|
# Note that other script providers like bash allow syntax errors
|
77
93
|
# to be suppressed by setting 'returns' to a value that the
|
@@ -21,6 +21,9 @@ require "uri" unless defined?(URI)
|
|
21
21
|
require "tempfile" unless defined?(Tempfile)
|
22
22
|
require_relative "../../file_content_management/content_base"
|
23
23
|
require_relative "../../mixin/uris"
|
24
|
+
module Net
|
25
|
+
autoload :FTPError, "net/ftp"
|
26
|
+
end
|
24
27
|
|
25
28
|
class Chef
|
26
29
|
class Provider
|
@@ -16,10 +16,12 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
autoload :URI, "uri"
|
20
|
+
autoload :CGI, "cgi"
|
21
|
+
autoload :Tempfile, "tempfile"
|
22
|
+
module Net
|
23
|
+
autoload :FTP, "net/ftp"
|
24
|
+
end
|
23
25
|
require_relative "../remote_file"
|
24
26
|
require_relative "../../file_content_management/tempfile"
|
25
27
|
|
@@ -16,10 +16,12 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
autoload :URI, "uri"
|
20
|
+
autoload :CGI, "cgi"
|
21
|
+
autoload :Tempfile, "tempfile"
|
22
|
+
module Net
|
23
|
+
autoload :SFTP, "net/sftp"
|
24
|
+
end
|
23
25
|
require_relative "../remote_file"
|
24
26
|
require_relative "../../file_content_management/tempfile"
|
25
27
|
|
data/lib/chef/provider/route.rb
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
|
20
20
|
require_relative "../log"
|
21
21
|
require_relative "../provider"
|
22
|
-
|
22
|
+
autoload :IPAddr, "ipaddr"
|
23
23
|
|
24
24
|
class Chef
|
25
25
|
class Provider
|
@@ -169,11 +169,7 @@ class Chef
|
|
169
169
|
next unless resource.is_a? Chef::Resource::Route
|
170
170
|
|
171
171
|
# default to eth0
|
172
|
-
dev =
|
173
|
-
resource.device
|
174
|
-
else
|
175
|
-
"eth0"
|
176
|
-
end
|
172
|
+
dev = resource.device || "eth0"
|
177
173
|
|
178
174
|
conf[dev] = "" if conf[dev].nil?
|
179
175
|
case @action
|
@@ -32,7 +32,7 @@ class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def load_current_resource
|
35
|
-
raise Chef::Exceptions::Service, "Could not find /etc/rc.conf" unless ::File.
|
35
|
+
raise Chef::Exceptions::Service, "Could not find /etc/rc.conf" unless ::File.exist?("/etc/rc.conf")
|
36
36
|
raise Chef::Exceptions::Service, "No DAEMONS found in /etc/rc.conf" unless /DAEMONS=\((.*)\)/m.match?(::File.read("/etc/rc.conf"))
|
37
37
|
|
38
38
|
super
|
@@ -45,7 +45,7 @@ class Chef
|
|
45
45
|
shared_resource_requirements
|
46
46
|
requirements.assert(:all_actions) do |a|
|
47
47
|
update_rcd = "/usr/sbin/update-rc.d"
|
48
|
-
a.assertion { ::File.
|
48
|
+
a.assertion { ::File.exist? update_rcd }
|
49
49
|
a.failure_message Chef::Exceptions::Service, "#{update_rcd} does not exist!"
|
50
50
|
# no whyrun recovery - this is a base system component of debian
|
51
51
|
# distros and must be present
|
@@ -34,7 +34,7 @@ class Chef::Provider::Service::Gentoo < Chef::Provider::Service::Init
|
|
34
34
|
@current_resource.enabled(
|
35
35
|
Dir.glob("/etc/runlevels/**/#{Chef::Util::PathHelper.escape_glob_dir(@current_resource.service_name)}").any? do |file|
|
36
36
|
@found_script = true
|
37
|
-
exists = ::File.
|
37
|
+
exists = ::File.exist? file
|
38
38
|
readable = ::File.readable? file
|
39
39
|
logger.trace "#{@new_resource} exists: #{exists}, readable: #{readable}"
|
40
40
|
exists && readable
|
@@ -47,7 +47,7 @@ class Chef::Provider::Service::Gentoo < Chef::Provider::Service::Init
|
|
47
47
|
|
48
48
|
def define_resource_requirements
|
49
49
|
requirements.assert(:all_actions) do |a|
|
50
|
-
a.assertion { ::File.
|
50
|
+
a.assertion { ::File.exist?("/sbin/rc-update") }
|
51
51
|
a.failure_message Chef::Exceptions::Service, "/sbin/rc-update does not exist"
|
52
52
|
# no whyrun recovery -t his is a core component whose presence is
|
53
53
|
# unlikely to be affected by what we do in the course of a chef run
|
@@ -18,7 +18,7 @@
|
|
18
18
|
#
|
19
19
|
|
20
20
|
require "etc" unless defined?(Etc)
|
21
|
-
|
21
|
+
autoload :REXML, "rexml/document"
|
22
22
|
require_relative "../../resource/service"
|
23
23
|
require_relative "../../resource/macosx_service"
|
24
24
|
require_relative "simple"
|
@@ -47,7 +47,7 @@ class Chef
|
|
47
47
|
@current_resource = Chef::Resource::MacosxService.new(@new_resource.name)
|
48
48
|
@current_resource.service_name(@new_resource.service_name)
|
49
49
|
@plist_size = 0
|
50
|
-
@plist = @new_resource.plist
|
50
|
+
@plist = @new_resource.plist || find_service_plist
|
51
51
|
@service_label = find_service_label
|
52
52
|
# LaunchAgents should be loaded as the console user.
|
53
53
|
@console_user = @plist ? @plist.include?("LaunchAgents") : false
|
@@ -81,7 +81,7 @@ class Chef
|
|
81
81
|
end
|
82
82
|
|
83
83
|
requirements.assert(:all_actions) do |a|
|
84
|
-
a.assertion { ::File.
|
84
|
+
a.assertion { ::File.exist?(@plist.to_s) }
|
85
85
|
a.failure_message Chef::Exceptions::Service,
|
86
86
|
"Could not find plist for #{@new_resource}"
|
87
87
|
end
|
@@ -221,7 +221,7 @@ class Chef
|
|
221
221
|
return nil if @plist.nil?
|
222
222
|
|
223
223
|
# Plist must exist by this point
|
224
|
-
raise Chef::Exceptions::FileNotFound, "Cannot find #{@plist}!" unless ::File.
|
224
|
+
raise Chef::Exceptions::FileNotFound, "Cannot find #{@plist}!" unless ::File.exist?(@plist)
|
225
225
|
|
226
226
|
# Most services have the same internal label as the name of the
|
227
227
|
# plist file. However, there is no rule saying that *has* to be
|
@@ -16,7 +16,6 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require_relative "../../mixin/shell_out"
|
20
19
|
require_relative "init"
|
21
20
|
require_relative "../../resource/service"
|
22
21
|
|
@@ -27,8 +26,6 @@ class Chef
|
|
27
26
|
|
28
27
|
provides :service, os: "openbsd"
|
29
28
|
|
30
|
-
include Chef::Mixin::ShellOut
|
31
|
-
|
32
29
|
attr_reader :init_command, :rc_conf, :rc_conf_local, :enabled_state_found
|
33
30
|
|
34
31
|
RC_CONF_PATH = "/etc/rc.conf".freeze
|
@@ -132,7 +129,7 @@ class Chef
|
|
132
129
|
end
|
133
130
|
|
134
131
|
def update_rcl(value)
|
135
|
-
FileUtils.touch RC_CONF_LOCAL_PATH unless ::File.
|
132
|
+
FileUtils.touch RC_CONF_LOCAL_PATH unless ::File.exist? RC_CONF_LOCAL_PATH
|
136
133
|
::File.write(RC_CONF_LOCAL_PATH, value)
|
137
134
|
@rc_conf_local = value
|
138
135
|
end
|
@@ -56,7 +56,7 @@ class Chef
|
|
56
56
|
|
57
57
|
requirements.assert(:all_actions) do |a|
|
58
58
|
chkconfig_file = "/sbin/chkconfig"
|
59
|
-
a.assertion { ::File.
|
59
|
+
a.assertion { ::File.exist? chkconfig_file }
|
60
60
|
a.failure_message Chef::Exceptions::Service, "#{chkconfig_file} does not exist!"
|
61
61
|
end
|
62
62
|
|
@@ -80,7 +80,7 @@ class Chef
|
|
80
80
|
|
81
81
|
super
|
82
82
|
|
83
|
-
if ::File.
|
83
|
+
if ::File.exist?("/sbin/chkconfig")
|
84
84
|
chkconfig = shell_out!("/sbin/chkconfig --list #{current_resource.service_name}", returns: [0, 1])
|
85
85
|
unless run_levels.nil? || run_levels.empty?
|
86
86
|
all_levels_match = true
|
@@ -135,7 +135,7 @@ class Chef
|
|
135
135
|
end
|
136
136
|
end
|
137
137
|
# Get enabled/disabled state by reading job configuration file
|
138
|
-
if ::File.
|
138
|
+
if ::File.exist?("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}")
|
139
139
|
logger.trace("#{@new_resource} found #{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}")
|
140
140
|
::File.open("#{@upstart_job_dir}/#{@new_resource.service_name}#{@upstart_conf_suffix}", "r") do |file|
|
141
141
|
while line = file.gets
|
@@ -95,17 +95,17 @@ class Chef::Provider::Service::Windows < Chef::Provider::Service
|
|
95
95
|
shell_out!(@new_resource.start_command)
|
96
96
|
else
|
97
97
|
spawn_command_thread do
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
end
|
98
|
+
|
99
|
+
Win32::Service.start(@new_resource.service_name)
|
100
|
+
rescue SystemCallError => ex
|
101
|
+
if ex.errno == ERROR_SERVICE_LOGON_FAILED
|
102
|
+
logger.error ex.message
|
103
|
+
raise Chef::Exceptions::Service,
|
104
|
+
"Service #{@new_resource} did not start due to a logon failure (error #{ERROR_SERVICE_LOGON_FAILED}): possibly the specified user '#{@new_resource.run_as_user}' does not have the 'log on as a service' privilege, or the password is incorrect."
|
105
|
+
else
|
106
|
+
raise ex
|
108
107
|
end
|
108
|
+
|
109
109
|
end
|
110
110
|
wait_for_state(RUNNING)
|
111
111
|
end
|
@@ -18,7 +18,6 @@
|
|
18
18
|
|
19
19
|
require_relative "../provider"
|
20
20
|
require_relative "../mixin/which"
|
21
|
-
require_relative "../mixin/shell_out"
|
22
21
|
require_relative "../resource/file"
|
23
22
|
require_relative "../resource/file/verification/systemd_unit"
|
24
23
|
require "iniparse"
|
@@ -28,7 +27,6 @@ class Chef
|
|
28
27
|
class Provider
|
29
28
|
class SystemdUnit < Chef::Provider
|
30
29
|
include Chef::Mixin::Which
|
31
|
-
include Chef::Mixin::ShellOut
|
32
30
|
|
33
31
|
provides :systemd_unit
|
34
32
|
|