chef 16.0.257-universal-mingw32 → 16.2.44-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 +3 -1
- data/README.md +3 -3
- data/Rakefile +44 -16
- data/chef.gemspec +4 -4
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/application/apply.rb +2 -2
- data/lib/chef/application/base.rb +1 -1
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/exit_code.rb +2 -2
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
- data/lib/chef/chef_fs/path_utils.rb +4 -4
- data/lib/chef/cookbook/chefignore.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +2 -2
- data/lib/chef/cookbook_loader.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +1 -1
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +7 -7
- data/lib/chef/data_bag.rb +4 -4
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +5 -1
- data/lib/chef/digester.rb +4 -4
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
- data/lib/chef/file_access_control.rb +1 -1
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
- data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
- data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
- data/lib/chef/http.rb +18 -3
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +1 -1
- data/lib/chef/http/json_output.rb +1 -1
- data/lib/chef/http/ssl_policies.rb +18 -0
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +2 -2
- data/lib/chef/knife/bootstrap.rb +13 -16
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
- data/lib/chef/knife/client_bulk_delete.rb +1 -1
- data/lib/chef/knife/config_get.rb +1 -1
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_presenter.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -3
- data/lib/chef/knife/data_bag_create.rb +1 -1
- data/lib/chef/knife/environment_compare.rb +1 -1
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/node_bulk_delete.rb +1 -1
- data/lib/chef/knife/node_run_list_remove.rb +1 -1
- data/lib/chef/knife/role_bulk_delete.rb +1 -1
- data/lib/chef/knife/ssh.rb +2 -2
- data/lib/chef/knife/supermarket_install.rb +1 -1
- data/lib/chef/knife/supermarket_share.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -1
- data/lib/chef/knife/{user_invite_recind.rb → user_invite_rescind.rb} +6 -6
- data/lib/chef/knife/yaml_convert.rb +2 -2
- data/lib/chef/log.rb +1 -1
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/create_path.rb +8 -8
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/properties.rb +4 -2
- data/lib/chef/mixin/securable.rb +2 -2
- data/lib/chef/mixin/shell_out.rb +1 -1
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +1 -1
- data/lib/chef/property.rb +2 -2
- data/lib/chef/provider.rb +3 -3
- data/lib/chef/provider/batch.rb +3 -10
- data/lib/chef/provider/cron.rb +2 -14
- data/lib/chef/provider/directory.rb +1 -1
- data/lib/chef/provider/execute.rb +3 -2
- data/lib/chef/provider/file.rb +1 -1
- data/lib/chef/provider/group/dscl.rb +2 -2
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +7 -7
- data/lib/chef/provider/launchd.rb +28 -32
- data/lib/chef/provider/mount/aix.rb +1 -1
- data/lib/chef/provider/mount/windows.rb +2 -2
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/package/cab.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -1
- data/lib/chef/provider/package/dpkg.rb +1 -1
- data/lib/chef/provider/package/freebsd/base.rb +2 -1
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/macports.rb +0 -2
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/portage.rb +3 -2
- data/lib/chef/provider/package/powershell.rb +6 -2
- data/lib/chef/provider/package/rubygems.rb +3 -3
- data/lib/chef/provider/package/snap.rb +96 -27
- data/lib/chef/provider/package/windows.rb +27 -52
- data/lib/chef/provider/package/windows/msi.rb +3 -3
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/package/yum.rb +1 -1
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/powershell_script.rb +11 -15
- data/lib/chef/provider/remote_directory.rb +2 -2
- data/lib/chef/provider/remote_file/http.rb +4 -1
- data/lib/chef/provider/script.rb +4 -75
- data/lib/chef/provider/service/arch.rb +2 -2
- data/lib/chef/provider/service/debian.rb +2 -2
- data/lib/chef/provider/service/macosx.rb +13 -2
- data/lib/chef/provider/service/openbsd.rb +4 -4
- data/lib/chef/provider/service/redhat.rb +1 -1
- data/lib/chef/provider/service/simple.rb +3 -3
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/subversion.rb +2 -2
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +7 -7
- data/lib/chef/provider/user/linux.rb +3 -3
- data/lib/chef/provider/user/mac.rb +15 -11
- data/lib/chef/provider/windows_script.rb +87 -25
- data/lib/chef/provider/windows_task.rb +5 -3
- data/lib/chef/provider/zypper_repository.rb +30 -10
- data/lib/chef/resource.rb +25 -14
- data/lib/chef/resource/alternatives.rb +65 -4
- data/lib/chef/resource/apt_package.rb +31 -2
- data/lib/chef/resource/apt_preference.rb +34 -5
- data/lib/chef/resource/apt_repository.rb +22 -15
- data/lib/chef/resource/apt_update.rb +6 -4
- data/lib/chef/resource/archive_file.rb +33 -12
- data/lib/chef/resource/bash.rb +1 -2
- data/lib/chef/resource/batch.rb +5 -3
- data/lib/chef/resource/bff_package.rb +1 -1
- data/lib/chef/resource/breakpoint.rb +1 -1
- data/lib/chef/resource/build_essential.rb +8 -4
- data/lib/chef/resource/cab_package.rb +1 -1
- data/lib/chef/resource/chef_client_cron.rb +12 -9
- data/lib/chef/resource/chef_client_scheduled_task.rb +22 -7
- data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
- data/lib/chef/resource/chef_gem.rb +6 -2
- data/lib/chef/resource/chef_handler.rb +3 -3
- data/lib/chef/resource/chef_sleep.rb +7 -4
- data/lib/chef/resource/chef_vault_secret.rb +4 -4
- data/lib/chef/resource/chocolatey_config.rb +5 -3
- data/lib/chef/resource/chocolatey_feature.rb +5 -3
- data/lib/chef/resource/chocolatey_package.rb +5 -3
- data/lib/chef/resource/chocolatey_source.rb +5 -3
- data/lib/chef/resource/cookbook_file.rb +3 -2
- data/lib/chef/resource/cron/_cron_shared.rb +98 -0
- data/lib/chef/resource/cron/cron.rb +46 -0
- data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +28 -94
- data/lib/chef/resource/cron_access.rb +17 -6
- data/lib/chef/resource/csh.rb +1 -2
- data/lib/chef/resource/directory.rb +1 -1
- data/lib/chef/resource/dmg_package.rb +18 -15
- data/lib/chef/resource/dnf_package.rb +1 -1
- data/lib/chef/resource/dpkg_package.rb +1 -1
- data/lib/chef/resource/execute.rb +479 -9
- data/lib/chef/resource/file.rb +11 -8
- data/lib/chef/resource/freebsd_package.rb +2 -2
- data/lib/chef/resource/gem_package.rb +6 -6
- data/lib/chef/resource/group.rb +1 -1
- data/lib/chef/resource/helpers/cron_validations.rb +6 -3
- data/lib/chef/resource/homebrew_cask.rb +1 -1
- data/lib/chef/resource/homebrew_package.rb +30 -1
- data/lib/chef/resource/homebrew_tap.rb +1 -1
- data/lib/chef/resource/homebrew_update.rb +107 -0
- data/lib/chef/resource/hostname.rb +11 -24
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +7 -7
- data/lib/chef/resource/ips_package.rb +1 -1
- data/lib/chef/resource/kernel_module.rb +15 -2
- data/lib/chef/resource/ksh.rb +1 -1
- data/lib/chef/resource/launchd.rb +5 -5
- data/lib/chef/resource/link.rb +4 -4
- data/lib/chef/resource/locale.rb +4 -4
- data/lib/chef/resource/log.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +15 -10
- data/lib/chef/resource/macosx_service.rb +1 -1
- data/lib/chef/resource/macports_package.rb +1 -1
- data/lib/chef/resource/mdadm.rb +1 -1
- data/lib/chef/resource/mount.rb +2 -2
- data/lib/chef/resource/msu_package.rb +2 -2
- data/lib/chef/resource/ohai.rb +1 -1
- data/lib/chef/resource/ohai_hint.rb +1 -1
- data/lib/chef/resource/openbsd_package.rb +1 -1
- data/lib/chef/resource/openssl_dhparam.rb +1 -1
- data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
- data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
- data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
- data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
- data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
- data/lib/chef/resource/openssl_x509_crl.rb +1 -1
- data/lib/chef/resource/openssl_x509_request.rb +1 -1
- data/lib/chef/resource/osx_profile.rb +1 -1
- data/lib/chef/resource/package.rb +1 -1
- data/lib/chef/resource/pacman_package.rb +1 -1
- data/lib/chef/resource/paludis_package.rb +1 -1
- data/lib/chef/resource/perl.rb +1 -2
- data/lib/chef/resource/plist.rb +24 -5
- data/lib/chef/resource/portage_package.rb +1 -1
- data/lib/chef/resource/powershell_package.rb +1 -1
- data/lib/chef/resource/powershell_package_source.rb +1 -1
- data/lib/chef/resource/powershell_script.rb +5 -3
- data/lib/chef/resource/python.rb +1 -2
- data/lib/chef/resource/reboot.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/remote_directory.rb +1 -1
- data/lib/chef/resource/remote_file.rb +26 -11
- data/lib/chef/resource/rhsm_errata.rb +1 -3
- data/lib/chef/resource/rhsm_errata_level.rb +1 -1
- data/lib/chef/resource/rhsm_register.rb +1 -2
- data/lib/chef/resource/rhsm_repo.rb +1 -2
- data/lib/chef/resource/rhsm_subscription.rb +1 -3
- data/lib/chef/resource/route.rb +1 -1
- data/lib/chef/resource/rpm_package.rb +5 -2
- data/lib/chef/resource/ruby.rb +1 -2
- data/lib/chef/resource/ruby_block.rb +1 -4
- data/lib/chef/resource/scm/_scm.rb +4 -3
- data/lib/chef/resource/scm/git.rb +2 -2
- data/lib/chef/resource/scm/subversion.rb +2 -2
- data/lib/chef/resource/script.rb +1 -1
- data/lib/chef/resource/service.rb +1 -1
- data/lib/chef/resource/smartos_package.rb +1 -1
- data/lib/chef/resource/snap_package.rb +1 -1
- data/lib/chef/resource/solaris_package.rb +1 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
- data/lib/chef/resource/sudo.rb +4 -4
- data/lib/chef/resource/swap_file.rb +2 -2
- data/lib/chef/resource/sysctl.rb +61 -2
- data/lib/chef/resource/systemd_unit.rb +2 -2
- data/lib/chef/resource/template.rb +1 -1
- data/lib/chef/resource/timezone.rb +1 -1
- data/lib/chef/resource/user.rb +2 -2
- data/lib/chef/resource/user_ulimit.rb +24 -22
- data/lib/chef/resource/windows_ad_join.rb +31 -2
- data/lib/chef/resource/windows_audit_policy.rb +227 -0
- data/lib/chef/resource/windows_auto_run.rb +13 -2
- data/lib/chef/resource/windows_certificate.rb +28 -2
- data/lib/chef/resource/windows_dfs_folder.rb +1 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
- data/lib/chef/resource/windows_dfs_server.rb +2 -2
- data/lib/chef/resource/windows_env.rb +10 -1
- data/lib/chef/resource/windows_feature.rb +57 -2
- data/lib/chef/resource/windows_feature_dism.rb +15 -2
- data/lib/chef/resource/windows_feature_powershell.rb +29 -2
- data/lib/chef/resource/windows_firewall_rule.rb +11 -7
- data/lib/chef/resource/windows_font.rb +13 -4
- data/lib/chef/resource/windows_package.rb +66 -6
- data/lib/chef/resource/windows_pagefile.rb +32 -4
- data/lib/chef/resource/windows_path.rb +18 -1
- data/lib/chef/resource/windows_printer.rb +26 -6
- data/lib/chef/resource/windows_printer_port.rb +29 -1
- data/lib/chef/resource/windows_script.rb +2 -16
- data/lib/chef/resource/windows_security_policy.rb +47 -16
- data/lib/chef/resource/windows_service.rb +1 -1
- data/lib/chef/resource/windows_share.rb +23 -3
- data/lib/chef/resource/windows_shortcut.rb +13 -3
- data/lib/chef/resource/windows_task.rb +143 -29
- data/lib/chef/resource/windows_uac.rb +20 -1
- data/lib/chef/resource/windows_user_privilege.rb +45 -3
- data/lib/chef/resource/windows_workgroup.rb +19 -3
- data/lib/chef/resource/yum_package.rb +88 -6
- data/lib/chef/resource/yum_repository.rb +36 -19
- data/lib/chef/resource/zypper_package.rb +29 -3
- data/lib/chef/resource/zypper_repository.rb +17 -5
- data/lib/chef/resource_inspector.rb +5 -4
- data/lib/chef/resources.rb +4 -2
- data/lib/chef/run_context/cookbook_compiler.rb +1 -1
- data/lib/chef/scan_access_control.rb +1 -1
- data/lib/chef/search/query.rb +1 -1
- data/lib/chef/shell/ext.rb +1 -1
- data/lib/chef/util/diff.rb +2 -2
- data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
- data/lib/chef/util/windows/net_user.rb +1 -1
- data/lib/chef/util/windows/volume.rb +1 -1
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/api.rb +2 -2
- data/lib/chef/win32/api/error.rb +3 -1
- data/lib/chef/win32/api/file.rb +18 -18
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/file.rb +1 -1
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/process.rb +2 -2
- data/lib/chef/win32/registry.rb +2 -2
- data/lib/chef/win32/security.rb +1 -1
- data/lib/chef/win32/security/sid.rb +4 -4
- 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/functional/resource/cron_spec.rb +10 -0
- data/spec/functional/resource/dnf_package_spec.rb +2 -2
- data/spec/functional/resource/git_spec.rb +6 -6
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/remote_file_spec.rb +3 -3
- 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_task_spec.rb +12 -12
- data/spec/integration/knife/raw_spec.rb +4 -4
- data/spec/integration/knife/redirection_spec.rb +2 -2
- data/spec/support/chef_helpers.rb +1 -1
- data/spec/support/platform_helpers.rb +1 -14
- data/spec/support/platforms/win32/spec_service.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +1 -1
- data/spec/support/shared/functional/file_resource.rb +1 -1
- data/spec/support/shared/functional/http.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +1 -1
- data/spec/support/shared/unit/mock_shellout.rb +1 -1
- data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
- data/spec/unit/application_spec.rb +7 -0
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/http/ssl_policies_spec.rb +20 -0
- data/spec/unit/knife/bootstrap_spec.rb +2 -2
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
- data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
- data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/shell_out_spec.rb +25 -31
- data/spec/unit/mixin/user_context_spec.rb +1 -9
- data/spec/unit/node/attribute_spec.rb +1 -1
- data/spec/unit/property_spec.rb +1 -1
- data/spec/unit/provider/apt_repository_spec.rb +27 -27
- data/spec/unit/provider/batch_spec.rb +130 -0
- data/spec/unit/provider/cron_spec.rb +9 -49
- data/spec/unit/provider/git_spec.rb +3 -3
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +8 -50
- data/spec/unit/provider/osx_profile_spec.rb +2 -2
- data/spec/unit/provider/package/msu_spec.rb +3 -3
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +96 -87
- data/spec/unit/provider/package/snap_spec.rb +1 -1
- data/spec/unit/provider/powershell_script_spec.rb +3 -45
- data/spec/unit/provider/script_spec.rb +20 -110
- data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
- data/spec/unit/provider/zypper_repository_spec.rb +75 -25
- data/spec/unit/provider_resolver_spec.rb +11 -11
- data/spec/unit/resource/archive_file_spec.rb +11 -2
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
- data/spec/unit/resource/cron_spec.rb +2 -2
- data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
- data/spec/unit/resource/homebrew_update_spec.rb +30 -0
- data/spec/unit/resource/powershell_script_spec.rb +10 -15
- data/spec/unit/resource/timezone_spec.rb +1 -1
- data/spec/unit/resource/windows_audit_policy_spec.rb +64 -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_package_spec.rb +10 -0
- data/spec/unit/resource/windows_task_spec.rb +1 -1
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_repository_spec.rb +21 -21
- data/spec/unit/resource_spec.rb +67 -1
- data/spec/unit/run_context_spec.rb +1 -1
- data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
- data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
- data/spec/unit/win32/registry_spec.rb +1 -1
- metadata +28 -27
- data/lib/chef/resource/cron.rb +0 -157
@@ -91,7 +91,7 @@ class Chef
|
|
91
91
|
old_services_list = rc_conf_local.match(/^pkg_scripts="(.*)"/)
|
92
92
|
old_services_list = old_services_list ? old_services_list[1].split(" ") : []
|
93
93
|
new_services_list = old_services_list + [new_resource.service_name]
|
94
|
-
if
|
94
|
+
if /^pkg_scripts="(.*)"/.match?(rc_conf_local)
|
95
95
|
new_rcl = rc_conf_local.sub(/^pkg_scripts="(.*)"/, "pkg_scripts=\"#{new_services_list.join(" ")}\"")
|
96
96
|
else
|
97
97
|
new_rcl = rc_conf_local + "\n" + "pkg_scripts=\"#{new_services_list.join(" ")}\"\n"
|
@@ -158,7 +158,7 @@ class Chef
|
|
158
158
|
result = false
|
159
159
|
var_name = builtin_service_enable_variable_name
|
160
160
|
if var_name
|
161
|
-
if
|
161
|
+
if /^#{Regexp.escape(var_name)}=(.*)/.match?(rc_conf)
|
162
162
|
result = true
|
163
163
|
end
|
164
164
|
end
|
@@ -170,7 +170,7 @@ class Chef
|
|
170
170
|
var_name = builtin_service_enable_variable_name
|
171
171
|
if var_name
|
172
172
|
if m = rc_conf.match(/^#{Regexp.escape(var_name)}=(.*)/)
|
173
|
-
unless
|
173
|
+
unless /"?[Nn][Oo]"?/.match?(m[1])
|
174
174
|
result = true
|
175
175
|
end
|
176
176
|
end
|
@@ -186,7 +186,7 @@ class Chef
|
|
186
186
|
if var_name
|
187
187
|
if m = rc_conf_local.match(/^#{Regexp.escape(var_name)}=(.*)/)
|
188
188
|
@enabled_state_found = true
|
189
|
-
unless
|
189
|
+
unless /"?[Nn][Oo]"?/.match?(m[1]) # e.g. looking for httpd_flags=NO
|
190
190
|
result = true
|
191
191
|
end
|
192
192
|
end
|
@@ -87,7 +87,7 @@ class Chef
|
|
87
87
|
chkconfig.stdout.split(/\s+/)[1..-1].each do |level|
|
88
88
|
index = level.split(":").first
|
89
89
|
status = level.split(":").last
|
90
|
-
if level
|
90
|
+
if CHKCONFIG_ON.match?(level)
|
91
91
|
@current_run_levels << index.to_i
|
92
92
|
all_levels_match = false unless run_levels.include?(index.to_i)
|
93
93
|
else
|
@@ -117,9 +117,9 @@ class Chef
|
|
117
117
|
logger.trace("#{@new_resource} is running")
|
118
118
|
end
|
119
119
|
rescue Mixlib::ShellOut::ShellCommandFailed, SystemCallError
|
120
|
-
|
121
|
-
|
122
|
-
|
120
|
+
# ShellOut sometimes throws different types of Exceptions than ShellCommandFailed.
|
121
|
+
# Temporarily catching different types of exceptions here until we get Shellout fixed.
|
122
|
+
# TODO: Remove the line before one we get the ShellOut fix.
|
123
123
|
@status_load_success = false
|
124
124
|
@current_resource.running false
|
125
125
|
nil
|
@@ -41,7 +41,7 @@ class Chef
|
|
41
41
|
|
42
42
|
# Upstart does more than start or stop a service, creating multiple 'states' [1] that a service can be in.
|
43
43
|
# In chef, when we ask a service to start, we expect it to have started before performing the next step
|
44
|
-
# since we have top down dependencies. Which is to say we may follow
|
44
|
+
# since we have top down dependencies. Which is to say we may follow with a resource next that requires
|
45
45
|
# that service to be running. According to [2] we can trust that sending a 'goal' such as start will not
|
46
46
|
# return until that 'goal' is reached, or some error has occurred.
|
47
47
|
#
|
@@ -122,7 +122,7 @@ class Chef
|
|
122
122
|
# If the specified revision is an integer, trust it.
|
123
123
|
def revision_int
|
124
124
|
@revision_int ||= begin
|
125
|
-
if new_resource.revision
|
125
|
+
if /^\d+$/.match?(new_resource.revision)
|
126
126
|
new_resource.revision
|
127
127
|
else
|
128
128
|
command = scm(:info, new_resource.repository, new_resource.svn_info_args, authentication, "-r#{new_resource.revision}")
|
@@ -211,7 +211,7 @@ class Chef
|
|
211
211
|
|
212
212
|
def scm(*args)
|
213
213
|
binary = svn_binary
|
214
|
-
binary = "\"#{binary}\"" if
|
214
|
+
binary = "\"#{binary}\"" if /\s/.match?(binary)
|
215
215
|
[binary, *args].compact.join(" ")
|
216
216
|
end
|
217
217
|
|
@@ -40,7 +40,7 @@ class Chef
|
|
40
40
|
shell_out!("userdel", userdel_options, new_resource.username)
|
41
41
|
end
|
42
42
|
|
43
|
-
# Aix does not support -r like other unix,
|
43
|
+
# Aix does not support -r like other unix, system account is created by adding to 'system' group
|
44
44
|
def useradd_options
|
45
45
|
opts = []
|
46
46
|
opts << "-g" << "system" if new_resource.system
|
@@ -28,7 +28,7 @@ class Chef
|
|
28
28
|
class User
|
29
29
|
#
|
30
30
|
# The most tricky bit of this provider is the way it deals with user passwords.
|
31
|
-
#
|
31
|
+
# macOS has different password shadow calculations based on the version.
|
32
32
|
# < 10.7 => password shadow calculation format SALTED-SHA1
|
33
33
|
# => stored in: /var/db/shadow/hash/#{guid}
|
34
34
|
# => shadow binary length 68 bytes
|
@@ -215,7 +215,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
215
215
|
next_uid_guess = base_uid
|
216
216
|
users_uids = run_dscl("list", "/Users", "uid")
|
217
217
|
while next_uid_guess < search_limit + base_uid
|
218
|
-
if users_uids
|
218
|
+
if users_uids&.match?(Regexp.new("#{Regexp.escape(next_uid_guess.to_s)}\n"))
|
219
219
|
next_uid_guess += 1
|
220
220
|
else
|
221
221
|
uid = next_uid_guess
|
@@ -291,7 +291,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
291
291
|
end
|
292
292
|
|
293
293
|
def validate_home_dir_specification!
|
294
|
-
unless
|
294
|
+
unless %r{^/}.match?(new_resource.home)
|
295
295
|
raise(Chef::Exceptions::InvalidHomeDirectory, "invalid path spec for User: '#{new_resource.username}', home directory: '#{new_resource.home}'")
|
296
296
|
end
|
297
297
|
end
|
@@ -382,7 +382,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
382
382
|
salt,
|
383
383
|
iterations,
|
384
384
|
128,
|
385
|
-
OpenSSL::Digest
|
385
|
+
OpenSSL::Digest.new("SHA512")
|
386
386
|
)
|
387
387
|
end
|
388
388
|
|
@@ -536,7 +536,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
536
536
|
|
537
537
|
# We flush the cache here in order to make sure that we read fresh information
|
538
538
|
# for the user.
|
539
|
-
shell_out("dscacheutil", "-flushcache") # FIXME: this is
|
539
|
+
shell_out("dscacheutil", "-flushcache") # FIXME: this is macOS version dependent
|
540
540
|
|
541
541
|
begin
|
542
542
|
user_plist_file = "#{USER_PLIST_DIRECTORY}/#{new_resource.username}.plist"
|
@@ -587,7 +587,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
587
587
|
result = shell_out("dscl", ".", "-#{args[0]}", args[1..-1])
|
588
588
|
return "" if ( args.first =~ /^delete/ ) && ( result.exitstatus != 0 )
|
589
589
|
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") unless result.exitstatus == 0
|
590
|
-
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") if
|
590
|
+
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") if /No such key: /.match?(result.stdout)
|
591
591
|
|
592
592
|
result.stdout
|
593
593
|
end
|
@@ -627,7 +627,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
|
|
627
627
|
salt,
|
628
628
|
current_resource.iterations,
|
629
629
|
128,
|
630
|
-
OpenSSL::Digest
|
630
|
+
OpenSSL::Digest.new("SHA512")
|
631
631
|
).unpack("H*").first == current_resource.password
|
632
632
|
end
|
633
633
|
|
@@ -96,7 +96,7 @@ class Chef
|
|
96
96
|
passwd_s = shell_out("passwd", "-S", new_resource.username, returns: [ 0, 1 ])
|
97
97
|
|
98
98
|
# checking "does not exist" has to come before exit code handling since centos and ubuntu differ in exit codes
|
99
|
-
if
|
99
|
+
if /does not exist/.match?(passwd_s.stderr)
|
100
100
|
return false if whyrun_mode?
|
101
101
|
|
102
102
|
raise Chef::Exceptions::User, "User #{new_resource.username} does not exist when checking lock status for #{new_resource}"
|
@@ -108,8 +108,8 @@ class Chef
|
|
108
108
|
# now the actual output parsing
|
109
109
|
@locked = nil
|
110
110
|
status_line = passwd_s.stdout.split(" ")
|
111
|
-
@locked = false if status_line[1]
|
112
|
-
@locked = true if status_line[1]
|
111
|
+
@locked = false if /^[PN]/.match?(status_line[1])
|
112
|
+
@locked = true if /^L/.match?(status_line[1])
|
113
113
|
|
114
114
|
raise Chef::Exceptions::User, "Cannot determine if user #{new_resource.username} is locked for #{new_resource}" if @locked.nil?
|
115
115
|
|
@@ -102,7 +102,7 @@ class Chef
|
|
102
102
|
shadow_hash_hex = user_plist[:shadow_hash][0]
|
103
103
|
return unless shadow_hash_hex && shadow_hash_hex != ""
|
104
104
|
|
105
|
-
# The password
|
105
|
+
# The password information is stored in the ShadowHashData key in the
|
106
106
|
# plist. However, parsing it is a bit tricky as the value is itself
|
107
107
|
# another encoded binary plist. We have to extract the encoded plist,
|
108
108
|
# decode it from hex to a binary plist and then convert the binary
|
@@ -116,6 +116,8 @@ class Chef
|
|
116
116
|
#
|
117
117
|
# eg:
|
118
118
|
#
|
119
|
+
# spellchecker: disable
|
120
|
+
#
|
119
121
|
# <array>
|
120
122
|
# <string>77687920 63616e27 74206170 706c6520 6275696c 6420636f 6e736973 74656e74 20746f6f 6c696e67</string>
|
121
123
|
# </array>
|
@@ -126,6 +128,8 @@ class Chef
|
|
126
128
|
# <data>AADKAAAKAA4LAA0MAAAAAAAAAAA=</data>
|
127
129
|
# </array>
|
128
130
|
#
|
131
|
+
# spellchecker: disable
|
132
|
+
#
|
129
133
|
begin
|
130
134
|
shadow_binary_plist = [shadow_hash_hex.delete(" ")].pack("H*")
|
131
135
|
shadow_xml_plist = shell_out("plutil", "-convert", "xml1", "-o", "-", "-", input: shadow_binary_plist).stdout
|
@@ -159,7 +163,7 @@ class Chef
|
|
159
163
|
# a problem. We'll check stderr and make sure we see that it finished
|
160
164
|
# correctly.
|
161
165
|
res = run_sysadminctl(cmd)
|
162
|
-
unless
|
166
|
+
unless /creating user/.match?(res.downcase)
|
163
167
|
raise Chef::Exceptions::User, "error when creating user: #{res}"
|
164
168
|
end
|
165
169
|
|
@@ -179,7 +183,7 @@ class Chef
|
|
179
183
|
end
|
180
184
|
|
181
185
|
if new_resource.manage_home
|
182
|
-
# "
|
186
|
+
# "sysadminctl -addUser" will create the home directory if it's
|
183
187
|
# the default /Users/<username>, otherwise it sets it in plist
|
184
188
|
# but does not create it. Here we'll ensure that it gets created
|
185
189
|
# if we've been given a directory that is not the default.
|
@@ -305,7 +309,7 @@ class Chef
|
|
305
309
|
# sysadminctl doesn't exit with a non-zero exit code if it encounters
|
306
310
|
# a problem. We'll check stderr and make sure we see that it finished
|
307
311
|
res = run_sysadminctl(cmd)
|
308
|
-
unless
|
312
|
+
unless /deleting record|not found/.match?(res.downcase)
|
309
313
|
raise Chef::Exceptions::User, "error deleting user: #{res}"
|
310
314
|
end
|
311
315
|
|
@@ -368,7 +372,7 @@ class Chef
|
|
368
372
|
next_uid_guess = base_uid
|
369
373
|
users_uids = run_dscl("list", "/Users", "uid")
|
370
374
|
while next_uid_guess < search_limit + base_uid
|
371
|
-
if users_uids
|
375
|
+
if users_uids&.match?(Regexp.new("#{Regexp.escape(next_uid_guess.to_s)}\n"))
|
372
376
|
next_uid_guess += 1
|
373
377
|
else
|
374
378
|
uid = next_uid_guess
|
@@ -426,7 +430,7 @@ class Chef
|
|
426
430
|
# sysadminctl doesn't exit with a non-zero exit code if it encounters
|
427
431
|
# a problem. We'll check stderr and make sure we see that it finished
|
428
432
|
res = run_sysadminctl(cmd)
|
429
|
-
unless res.downcase
|
433
|
+
unless /done/.match?(res.downcase)
|
430
434
|
raise Chef::Exceptions::User, "error when modifying SecureToken: #{res}"
|
431
435
|
end
|
432
436
|
|
@@ -491,7 +495,7 @@ class Chef
|
|
491
495
|
convert_to_binary(current_resource.salt),
|
492
496
|
current_resource.iterations.to_i,
|
493
497
|
128,
|
494
|
-
OpenSSL::Digest
|
498
|
+
OpenSSL::Digest.new("SHA512")
|
495
499
|
).unpack("H*")[0] != current_resource.password
|
496
500
|
end
|
497
501
|
|
@@ -517,7 +521,7 @@ class Chef
|
|
517
521
|
salt.string,
|
518
522
|
new_resource.iterations,
|
519
523
|
128,
|
520
|
-
OpenSSL::Digest
|
524
|
+
OpenSSL::Digest.new("SHA512")
|
521
525
|
)
|
522
526
|
)
|
523
527
|
end
|
@@ -554,7 +558,7 @@ class Chef
|
|
554
558
|
# 0x0A End of record denoted by \n
|
555
559
|
# 0x5C Escaping is denoted by \
|
556
560
|
# 0x3A Fields are separated by :
|
557
|
-
# 0x2C Values are
|
561
|
+
# 0x2C Values are separated by ,
|
558
562
|
# dsRecTypeStandard:Users The record type we're configuring
|
559
563
|
# 2 How many properties we're going to set
|
560
564
|
# dsAttrTypeStandard:RecordName Property 1: our users record name
|
@@ -598,7 +602,7 @@ class Chef
|
|
598
602
|
|
599
603
|
def run_sysadminctl(args)
|
600
604
|
# sysadminctl doesn't exit with a non-zero code when errors are encountered
|
601
|
-
# and
|
605
|
+
# and outputs everything to STDERR instead of STDOUT and STDERR. Therefore we'll
|
602
606
|
# return the STDERR and let the caller handle it.
|
603
607
|
shell_out!("sysadminctl", args).stderr
|
604
608
|
end
|
@@ -607,7 +611,7 @@ class Chef
|
|
607
611
|
result = shell_out("dscl", "-plist", ".", "-#{args[0]}", args[1..-1])
|
608
612
|
return "" if ( args.first =~ /^delete/ ) && ( result.exitstatus != 0 )
|
609
613
|
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") unless result.exitstatus == 0
|
610
|
-
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") if
|
614
|
+
raise(Chef::Exceptions::DsclCommandFailed, "dscl error: #{result.inspect}") if /No such key: /.match?(result.stdout)
|
611
615
|
|
612
616
|
result.stdout
|
613
617
|
end
|
@@ -18,57 +18,119 @@
|
|
18
18
|
|
19
19
|
require_relative "script"
|
20
20
|
require_relative "../mixin/windows_architecture_helper"
|
21
|
+
require_relative "../win32/security" if ChefUtils.windows?
|
22
|
+
require "tempfile" unless defined?(Tempfile)
|
21
23
|
|
22
24
|
class Chef
|
23
25
|
class Provider
|
24
26
|
class WindowsScript < Chef::Provider::Script
|
25
27
|
|
26
|
-
attr_reader :is_forced_32bit
|
27
|
-
|
28
28
|
protected
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
def initialize( new_resource, run_context, script_extension = "")
|
33
|
-
super( new_resource, run_context )
|
34
|
-
@script_extension = script_extension
|
30
|
+
attr_accessor :script_file_path
|
35
31
|
|
36
|
-
|
37
|
-
node_windows_architecture(run_context.node)
|
38
|
-
else
|
39
|
-
new_resource.architecture
|
40
|
-
end
|
41
|
-
|
42
|
-
@is_wow64 = wow64_architecture_override_required?(run_context.node, target_architecture)
|
32
|
+
include Chef::Mixin::WindowsArchitectureHelper
|
43
33
|
|
44
|
-
|
34
|
+
def target_architecture
|
35
|
+
@target_architecture ||= if new_resource.architecture.nil?
|
36
|
+
node_windows_architecture(run_context.node)
|
37
|
+
else
|
38
|
+
new_resource.architecture
|
39
|
+
end
|
45
40
|
end
|
46
41
|
|
47
|
-
|
42
|
+
def basepath
|
43
|
+
if forced_32bit_override_required?(run_context.node, target_architecture)
|
44
|
+
wow64_directory
|
45
|
+
else
|
46
|
+
run_context.node["kernel"]["os_info"]["system_directory"]
|
47
|
+
end
|
48
|
+
end
|
48
49
|
|
49
|
-
|
50
|
+
def with_wow64_redirection_disabled
|
50
51
|
wow64_redirection_state = nil
|
51
52
|
|
52
|
-
if
|
53
|
-
wow64_redirection_state = disable_wow64_file_redirection(
|
53
|
+
if wow64_architecture_override_required?(run_context.node, target_architecture)
|
54
|
+
wow64_redirection_state = disable_wow64_file_redirection(run_context.node)
|
54
55
|
end
|
55
56
|
|
56
57
|
begin
|
57
|
-
|
58
|
+
yield
|
58
59
|
rescue
|
59
60
|
raise
|
60
61
|
ensure
|
61
62
|
unless wow64_redirection_state.nil?
|
62
|
-
restore_wow64_file_redirection(
|
63
|
+
restore_wow64_file_redirection(run_context.node, wow64_redirection_state)
|
63
64
|
end
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
67
|
-
def
|
68
|
-
|
69
|
-
|
68
|
+
def command
|
69
|
+
"\"#{interpreter}\" #{flags} \"#{script_file_path}\""
|
70
|
+
end
|
71
|
+
|
72
|
+
def grant_alternate_user_read_access(file_path)
|
73
|
+
# Do nothing if an alternate user isn't specified -- the file
|
74
|
+
# will already have the correct permissions for the user as part
|
75
|
+
# of the default ACL behavior on Windows.
|
76
|
+
return if new_resource.user.nil?
|
77
|
+
|
78
|
+
# Duplicate the script file's existing DACL
|
79
|
+
# so we can add an ACE later
|
80
|
+
securable_object = Chef::ReservedNames::Win32::Security::SecurableObject.new(file_path)
|
81
|
+
aces = securable_object.security_descriptor.dacl.reduce([]) { |result, current| result.push(current) }
|
82
|
+
|
83
|
+
username = new_resource.user
|
84
|
+
|
85
|
+
if new_resource.domain
|
86
|
+
username = new_resource.domain + '\\' + new_resource.user
|
87
|
+
end
|
88
|
+
|
89
|
+
# Create an ACE that allows the alternate user read access to the script
|
90
|
+
# file so it can be read and executed.
|
91
|
+
user_sid = Chef::ReservedNames::Win32::Security::SID.from_account(username)
|
92
|
+
read_ace = Chef::ReservedNames::Win32::Security::ACE.access_allowed(user_sid, Chef::ReservedNames::Win32::API::Security::GENERIC_READ | Chef::ReservedNames::Win32::API::Security::GENERIC_EXECUTE, 0)
|
93
|
+
aces.push(read_ace)
|
94
|
+
acl = Chef::ReservedNames::Win32::Security::ACL.create(aces)
|
95
|
+
|
96
|
+
# This actually applies the modified DACL to the file
|
97
|
+
# Use parentheses to bypass RuboCop / ChefStyle warning
|
98
|
+
# about useless setter
|
99
|
+
(securable_object.dacl = acl)
|
100
|
+
end
|
101
|
+
|
102
|
+
def with_temp_script_file
|
103
|
+
Tempfile.open(["chef-script", script_extension]) do |script_file|
|
104
|
+
script_file.puts(code)
|
105
|
+
script_file.close
|
106
|
+
|
107
|
+
grant_alternate_user_read_access(script_file.path)
|
108
|
+
|
109
|
+
# This needs to be set here so that the call to #command in Execute works.
|
110
|
+
self.script_file_path = script_file.path
|
111
|
+
|
112
|
+
yield
|
113
|
+
|
114
|
+
self.script_file_path = nil
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def input
|
119
|
+
nil
|
120
|
+
end
|
121
|
+
|
122
|
+
public
|
123
|
+
|
124
|
+
action :run do
|
125
|
+
with_wow64_redirection_disabled do
|
126
|
+
with_temp_script_file do
|
127
|
+
super()
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
70
131
|
|
71
|
-
|
132
|
+
def script_extension
|
133
|
+
raise Chef::Exceptions::Override, "You must override #{__method__} in #{self}"
|
72
134
|
end
|
73
135
|
end
|
74
136
|
end
|
@@ -72,6 +72,7 @@ class Chef
|
|
72
72
|
6 => TaskScheduler::TASK_SIXTH,
|
73
73
|
7 => TaskScheduler::TASK_SEVENTH,
|
74
74
|
8 => TaskScheduler::TASK_EIGHTH,
|
75
|
+
# cspell:disable-next-line
|
75
76
|
9 => TaskScheduler::TASK_NINETH,
|
76
77
|
10 => TaskScheduler::TASK_TENTH,
|
77
78
|
11 => TaskScheduler::TASK_ELEVENTH,
|
@@ -93,6 +94,7 @@ class Chef
|
|
93
94
|
27 => TaskScheduler::TASK_TWENTY_SEVENTH,
|
94
95
|
28 => TaskScheduler::TASK_TWENTY_EIGHTH,
|
95
96
|
29 => TaskScheduler::TASK_TWENTY_NINTH,
|
97
|
+
# cspell:disable-next-line
|
96
98
|
30 => TaskScheduler::TASK_THIRTYETH,
|
97
99
|
31 => TaskScheduler::TASK_THIRTY_FIRST,
|
98
100
|
}.freeze
|
@@ -229,7 +231,7 @@ class Chef
|
|
229
231
|
|
230
232
|
private
|
231
233
|
|
232
|
-
#
|
234
|
+
# separated command arguments from :command property
|
233
235
|
def set_command_and_arguments
|
234
236
|
cmd, *args = Chef::Util::PathHelper.split_args(new_resource.command)
|
235
237
|
new_resource.command = cmd
|
@@ -424,7 +426,7 @@ class Chef
|
|
424
426
|
when TaskScheduler::AT_LOGON
|
425
427
|
# TODO: handle option for this trigger
|
426
428
|
when TaskScheduler::AT_SYSTEMSTART
|
427
|
-
|
429
|
+
# TODO: handle option for this trigger
|
428
430
|
end
|
429
431
|
end
|
430
432
|
|
@@ -577,7 +579,7 @@ class Chef
|
|
577
579
|
|
578
580
|
def logon_type
|
579
581
|
# Ref: https://msdn.microsoft.com/en-us/library/windows/desktop/aa383566(v=vs.85).aspx
|
580
|
-
# if nothing is passed as logon_type the TASK_LOGON_SERVICE_ACCOUNT is getting set as default so using that for
|
582
|
+
# if nothing is passed as logon_type the TASK_LOGON_SERVICE_ACCOUNT is getting set as default so using that for comparison.
|
581
583
|
user_id = new_resource.user.to_s
|
582
584
|
password = new_resource.password.to_s
|
583
585
|
if Chef::ReservedNames::Win32::Security::SID.service_account_user?(user_id)
|