chef 15.1.36-universal-mingw32 → 15.2.20-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/knife +0 -0
- data/ext/win32-eventlog/Rakefile +1 -1
- data/lib/chef.rb +1 -2
- data/lib/chef/action_collection.rb +8 -0
- data/lib/chef/api_client.rb +2 -2
- data/lib/chef/api_client/registration.rb +8 -7
- data/lib/chef/api_client_v1.rb +2 -1
- data/lib/chef/application.rb +1 -0
- data/lib/chef/application/apply.rb +1 -1
- data/lib/chef/application/base.rb +440 -0
- data/lib/chef/application/client.rb +6 -389
- data/lib/chef/application/solo.rb +11 -258
- data/lib/chef/application/windows_service.rb +3 -3
- data/lib/chef/application/windows_service_manager.rb +3 -3
- data/lib/chef/blacklist.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +15 -7
- data/lib/chef/chef_fs/command_line.rb +6 -1
- data/lib/chef/chef_fs/config.rb +3 -2
- data/lib/chef/chef_fs/data_handler/container_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/data_handler_base.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/policy_data_handler.rb +2 -2
- data/lib/chef/chef_fs/file_pattern.rb +13 -7
- data/lib/chef/chef_fs/file_system.rb +3 -2
- data/lib/chef/chef_fs/file_system/base_fs_object.rb +13 -6
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +8 -5
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_subdir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb +3 -2
- data/lib/chef/chef_fs/file_system/chef_server/environments_dir.rb +4 -2
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -0
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -0
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/memory/memory_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/acl.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/base_file.rb +2 -1
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +6 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +6 -4
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +6 -4
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +1 -0
- data/lib/chef/chef_fs/file_system/repository/directory.rb +5 -1
- data/lib/chef/chef_fs/file_system/repository/file_system_entry.rb +4 -2
- data/lib/chef/chef_fs/file_system_cache.rb +1 -0
- data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +2 -1
- data/lib/chef/chef_fs/path_utils.rb +3 -0
- data/lib/chef/client.rb +4 -2
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +6 -3
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -0
- data/lib/chef/cookbook/file_vendor.rb +1 -0
- data/lib/chef/cookbook/gem_installer.rb +1 -0
- data/lib/chef/cookbook/manifest_v0.rb +1 -0
- data/lib/chef/cookbook/metadata.rb +11 -9
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -2
- data/lib/chef/cookbook/synchronizer.rb +6 -4
- data/lib/chef/cookbook/syntax_check.rb +4 -0
- data/lib/chef/cookbook_loader.rb +1 -0
- data/lib/chef/cookbook_manifest.rb +4 -2
- data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
- data/lib/chef/cookbook_uploader.rb +2 -2
- data/lib/chef/cookbook_version.rb +10 -9
- data/lib/chef/data_bag.rb +2 -1
- data/lib/chef/data_bag_item.rb +6 -3
- data/lib/chef/data_collector.rb +16 -8
- data/lib/chef/data_collector/run_end_message.rb +2 -0
- data/lib/chef/decorator.rb +5 -6
- data/lib/chef/deprecated.rb +1 -0
- data/lib/chef/dsl/data_query.rb +1 -1
- data/lib/chef/dsl/declare_resource.rb +2 -0
- data/lib/chef/dsl/platform_introspection.rb +3 -1
- data/lib/chef/encrypted_data_bag_item.rb +7 -4
- data/lib/chef/encrypted_data_bag_item/assertions.rb +1 -1
- data/lib/chef/encrypted_data_bag_item/check_encrypted.rb +1 -0
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +4 -2
- data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -0
- data/lib/chef/environment.rb +7 -5
- data/lib/chef/event_dispatch/base.rb +86 -172
- data/lib/chef/event_dispatch/dispatcher.rb +2 -1
- data/lib/chef/event_loggers/base.rb +2 -1
- data/lib/chef/exceptions.rb +6 -7
- data/lib/chef/file_access_control/unix.rb +7 -4
- data/lib/chef/file_access_control/windows.rb +17 -8
- data/lib/chef/file_cache.rb +2 -1
- data/lib/chef/file_content_management/deploy.rb +2 -2
- data/lib/chef/formatters/base.rb +3 -4
- data/lib/chef/formatters/doc.rb +21 -33
- data/lib/chef/formatters/error_inspectors/cookbook_resolve_error_inspector.rb +3 -2
- data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -1
- data/lib/chef/formatters/indentable_output_stream.rb +3 -3
- data/lib/chef/formatters/minimal.rb +21 -42
- data/lib/chef/guard_interpreter/resource_guard_interpreter.rb +1 -1
- data/lib/chef/handler.rb +1 -2
- data/lib/chef/http.rb +23 -18
- data/lib/chef/http/api_versions.rb +1 -2
- data/lib/chef/http/auth_credentials.rb +1 -0
- data/lib/chef/http/basic_client.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -0
- data/lib/chef/http/json_output.rb +2 -1
- data/lib/chef/http/json_to_model_output.rb +1 -1
- data/lib/chef/http/remote_request_id.rb +1 -2
- data/lib/chef/http/socketless_chef_zero_client.rb +3 -2
- data/lib/chef/http/ssl_policies.rb +3 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +8 -6
- data/lib/chef/knife.rb +6 -5
- data/lib/chef/knife/bootstrap.rb +19 -12
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -0
- data/lib/chef/knife/bootstrap/client_builder.rb +1 -0
- data/lib/chef/knife/bootstrap/train_connector.rb +23 -17
- data/lib/chef/knife/client_bulk_delete.rb +4 -3
- data/lib/chef/knife/client_create.rb +13 -13
- data/lib/chef/knife/client_delete.rb +3 -3
- data/lib/chef/knife/config_get.rb +8 -8
- data/lib/chef/knife/config_list_profiles.rb +4 -4
- data/lib/chef/knife/cookbook_delete.rb +1 -1
- data/lib/chef/knife/cookbook_download.rb +12 -12
- data/lib/chef/knife/cookbook_show.rb +10 -10
- data/lib/chef/knife/cookbook_upload.rb +5 -5
- data/lib/chef/knife/core/bootstrap_context.rb +1 -1
- data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
- data/lib/chef/knife/core/gem_glob_loader.rb +2 -2
- data/lib/chef/knife/core/generic_presenter.rb +4 -4
- data/lib/chef/knife/core/node_presenter.rb +17 -17
- data/lib/chef/knife/core/object_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +3 -2
- data/lib/chef/knife/core/text_formatter.rb +4 -4
- data/lib/chef/knife/core/ui.rb +9 -5
- data/lib/chef/knife/data_bag_create.rb +1 -0
- data/lib/chef/knife/data_bag_from_file.rb +1 -1
- data/lib/chef/knife/data_bag_secret_options.rb +13 -13
- data/lib/chef/knife/data_bag_show.rb +2 -2
- data/lib/chef/knife/deps.rb +6 -6
- data/lib/chef/knife/edit.rb +2 -2
- data/lib/chef/knife/environment_compare.rb +1 -0
- data/lib/chef/knife/environment_from_file.rb +3 -3
- data/lib/chef/knife/key_create_base.rb +12 -12
- data/lib/chef/knife/key_edit_base.rb +15 -15
- data/lib/chef/knife/key_list.rb +3 -1
- data/lib/chef/knife/key_list_base.rb +9 -9
- data/lib/chef/knife/list.rb +5 -5
- data/lib/chef/knife/node_bulk_delete.rb +1 -0
- data/lib/chef/knife/node_edit.rb +1 -1
- data/lib/chef/knife/node_environment_set.rb +1 -2
- data/lib/chef/knife/node_run_list_add.rb +2 -2
- data/lib/chef/knife/node_run_list_remove.rb +2 -2
- data/lib/chef/knife/node_run_list_set.rb +2 -2
- data/lib/chef/knife/null.rb +1 -2
- data/lib/chef/knife/role_bulk_delete.rb +1 -0
- data/lib/chef/knife/role_env_run_list_add.rb +2 -2
- data/lib/chef/knife/role_env_run_list_set.rb +2 -2
- data/lib/chef/knife/role_run_list_add.rb +2 -2
- data/lib/chef/knife/role_run_list_set.rb +2 -2
- data/lib/chef/knife/search.rb +4 -4
- data/lib/chef/knife/ssh.rb +13 -9
- data/lib/chef/knife/supermarket_download.rb +1 -1
- data/lib/chef/knife/supermarket_install.rb +5 -5
- data/lib/chef/knife/supermarket_list.rb +1 -1
- data/lib/chef/knife/supermarket_share.rb +3 -2
- data/lib/chef/knife/supermarket_show.rb +1 -1
- data/lib/chef/knife/supermarket_unshare.rb +1 -0
- data/lib/chef/knife/tag_delete.rb +1 -1
- data/lib/chef/knife/xargs.rb +2 -2
- data/lib/chef/log/syslog.rb +2 -2
- data/lib/chef/log/winevt.rb +1 -2
- data/lib/chef/mash.rb +2 -2
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +1 -0
- data/lib/chef/mixin/convert_to_class_name.rb +2 -1
- data/lib/chef/mixin/create_path.rb +2 -2
- data/lib/chef/mixin/deep_merge.rb +5 -5
- data/lib/chef/mixin/get_source_from_package.rb +1 -0
- data/lib/chef/mixin/homebrew_user.rb +2 -1
- data/lib/chef/mixin/openssl_helper.rb +10 -6
- data/lib/chef/mixin/params_validate.rb +21 -13
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/powershell_type_coercions.rb +2 -2
- data/lib/chef/mixin/properties.rb +13 -10
- data/lib/chef/mixin/securable.rb +3 -3
- data/lib/chef/mixin/shell_out.rb +1 -0
- data/lib/chef/mixin/template.rb +2 -1
- data/lib/chef/mixin/user_context.rb +1 -1
- data/lib/chef/mixin/which.rb +1 -0
- data/lib/chef/mixin/windows_architecture_helper.rb +4 -4
- data/lib/chef/mixin/windows_env_helper.rb +2 -2
- data/lib/chef/monkey_patches/net_http.rb +1 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +6 -4
- data/lib/chef/node.rb +24 -17
- data/lib/chef/node/attribute.rb +122 -113
- data/lib/chef/node/attribute_collections.rb +1 -1
- data/lib/chef/node/common_api.rb +8 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node/mixin/immutablize_array.rb +142 -142
- data/lib/chef/node/mixin/immutablize_hash.rb +131 -131
- data/lib/chef/node_map.rb +18 -3
- data/lib/chef/null_logger.rb +8 -16
- data/lib/chef/org.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +3 -0
- data/lib/chef/platform/rebooter.rb +1 -1
- data/lib/chef/platform/service_helpers.rb +2 -2
- data/lib/chef/policy_builder/expand_node_object.rb +4 -4
- data/lib/chef/policy_builder/policyfile.rb +4 -4
- data/lib/chef/powershell.rb +2 -0
- data/lib/chef/property.rb +7 -4
- data/lib/chef/provider.rb +9 -12
- data/lib/chef/provider/apt_preference.rb +1 -2
- data/lib/chef/provider/apt_repository.rb +1 -2
- data/lib/chef/provider/apt_update.rb +2 -3
- data/lib/chef/provider/cookbook_file.rb +1 -0
- data/lib/chef/provider/cron.rb +6 -5
- data/lib/chef/provider/cron/unix.rb +1 -0
- data/lib/chef/provider/dsc_resource.rb +2 -3
- data/lib/chef/provider/dsc_script.rb +2 -2
- data/lib/chef/provider/execute.rb +1 -1
- data/lib/chef/provider/file.rb +5 -3
- data/lib/chef/provider/git.rb +4 -3
- data/lib/chef/provider/group.rb +7 -3
- data/lib/chef/provider/group/aix.rb +2 -0
- data/lib/chef/provider/group/dscl.rb +6 -3
- data/lib/chef/provider/group/groupadd.rb +1 -0
- data/lib/chef/provider/group/groupmod.rb +1 -1
- data/lib/chef/provider/group/pw.rb +3 -3
- data/lib/chef/provider/group/suse.rb +2 -2
- data/lib/chef/provider/group/usermod.rb +1 -0
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/http_request.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +12 -6
- data/lib/chef/provider/ifconfig/aix.rb +1 -0
- data/lib/chef/provider/ifconfig/debian.rb +1 -0
- data/lib/chef/provider/launchd.rb +16 -13
- data/lib/chef/provider/lwrp_base.rb +1 -2
- data/lib/chef/provider/mount.rb +1 -0
- data/lib/chef/provider/mount/aix.rb +6 -6
- data/lib/chef/provider/mount/mount.rb +5 -4
- data/lib/chef/provider/mount/solaris.rb +4 -4
- data/lib/chef/provider/package.rb +9 -6
- data/lib/chef/provider/package/apt.rb +4 -3
- data/lib/chef/provider/package/bff.rb +1 -0
- data/lib/chef/provider/package/cab.rb +4 -2
- data/lib/chef/provider/package/chocolatey.rb +5 -2
- data/lib/chef/provider/package/dnf.rb +1 -1
- data/lib/chef/provider/package/dnf/dnf_helper.py +15 -1
- data/lib/chef/provider/package/dnf/python_helper.rb +1 -0
- data/lib/chef/provider/package/dpkg.rb +4 -4
- data/lib/chef/provider/package/freebsd/base.rb +3 -2
- data/lib/chef/provider/package/freebsd/pkgng.rb +2 -2
- data/lib/chef/provider/package/homebrew.rb +1 -1
- data/lib/chef/provider/package/macports.rb +1 -0
- data/lib/chef/provider/package/msu.rb +3 -1
- data/lib/chef/provider/package/openbsd.rb +1 -1
- data/lib/chef/provider/package/paludis.rb +1 -0
- data/lib/chef/provider/package/portage.rb +2 -2
- data/lib/chef/provider/package/powershell.rb +3 -2
- data/lib/chef/provider/package/rpm.rb +1 -0
- data/lib/chef/provider/package/rubygems.rb +5 -3
- data/lib/chef/provider/package/smartos.rb +1 -0
- data/lib/chef/provider/package/snap.rb +5 -1
- data/lib/chef/provider/package/solaris.rb +2 -0
- data/lib/chef/provider/package/windows/exe.rb +5 -5
- data/lib/chef/provider/package/windows/msi.rb +8 -7
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -0
- data/lib/chef/provider/package/yum.rb +5 -2
- data/lib/chef/provider/package/yum/python_helper.rb +2 -1
- data/lib/chef/provider/package/zypper.rb +1 -1
- data/lib/chef/provider/reboot.rb +1 -1
- data/lib/chef/provider/registry_key.rb +2 -2
- data/lib/chef/provider/remote_directory.rb +1 -1
- data/lib/chef/provider/remote_file.rb +10 -9
- data/lib/chef/provider/remote_file/fetcher.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +1 -1
- data/lib/chef/provider/route.rb +4 -2
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +2 -1
- data/lib/chef/provider/service/debian.rb +12 -11
- data/lib/chef/provider/service/freebsd.rb +1 -1
- data/lib/chef/provider/service/openbsd.rb +7 -7
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +2 -1
- data/lib/chef/provider/service/systemd.rb +2 -2
- data/lib/chef/provider/service/upstart.rb +3 -2
- data/lib/chef/provider/service/windows.rb +7 -6
- data/lib/chef/provider/subversion.rb +4 -1
- data/lib/chef/provider/template.rb +1 -0
- data/lib/chef/provider/user.rb +5 -1
- data/lib/chef/provider/user/aix.rb +3 -0
- data/lib/chef/provider/user/dscl.rb +8 -3
- data/lib/chef/provider/user/linux.rb +1 -0
- data/lib/chef/provider/user/pw.rb +1 -0
- data/lib/chef/provider/user/solaris.rb +2 -0
- data/lib/chef/provider/user/windows.rb +2 -1
- data/lib/chef/provider/windows_env.rb +3 -0
- data/lib/chef/provider/windows_script.rb +1 -1
- data/lib/chef/provider/windows_task.rb +4 -3
- data/lib/chef/provider/yum_repository.rb +1 -2
- data/lib/chef/provider/zypper_repository.rb +2 -3
- data/lib/chef/recipe.rb +2 -1
- data/lib/chef/resource.rb +24 -15
- data/lib/chef/resource/apt_package.rb +9 -9
- data/lib/chef/resource/apt_preference.rb +9 -9
- data/lib/chef/resource/apt_repository.rb +86 -23
- data/lib/chef/resource/apt_update.rb +2 -2
- data/lib/chef/resource/archive_file.rb +13 -13
- data/lib/chef/resource/build_essential.rb +5 -4
- data/lib/chef/resource/cab_package.rb +9 -9
- data/lib/chef/resource/chef_gem.rb +4 -4
- data/lib/chef/resource/chef_handler.rb +8 -7
- data/lib/chef/resource/chocolatey_config.rb +3 -3
- data/lib/chef/resource/chocolatey_feature.rb +2 -2
- data/lib/chef/resource/chocolatey_package.rb +8 -8
- data/lib/chef/resource/chocolatey_source.rb +3 -3
- data/lib/chef/resource/cookbook_file.rb +4 -4
- data/lib/chef/resource/cron.rb +12 -12
- data/lib/chef/resource/cron_access.rb +2 -2
- data/lib/chef/resource/cron_d.rb +45 -38
- data/lib/chef/resource/directory.rb +2 -2
- data/lib/chef/resource/dmg_package.rb +26 -26
- data/lib/chef/resource/dnf_package.rb +20 -20
- data/lib/chef/resource/dpkg_package.rb +5 -5
- data/lib/chef/resource/dsc_resource.rb +7 -7
- data/lib/chef/resource/dsc_script.rb +9 -4
- data/lib/chef/resource/execute.rb +14 -14
- data/lib/chef/resource/file.rb +4 -4
- data/lib/chef/resource/file/verification.rb +2 -0
- data/lib/chef/resource/file/verification/systemd_unit.rb +1 -0
- data/lib/chef/resource/gem_package.rb +7 -7
- data/lib/chef/resource/git.rb +2 -2
- data/lib/chef/resource/group.rb +5 -5
- data/lib/chef/resource/homebrew_cask.rb +17 -17
- data/lib/chef/resource/homebrew_package.rb +1 -1
- data/lib/chef/resource/homebrew_tap.rb +18 -18
- data/lib/chef/resource/hostname.rb +11 -11
- data/lib/chef/resource/http_request.rb +1 -1
- data/lib/chef/resource/ifconfig.rb +26 -26
- data/lib/chef/resource/ips_package.rb +2 -2
- data/lib/chef/resource/kernel_module.rb +25 -7
- data/lib/chef/resource/launchd.rb +105 -105
- data/lib/chef/resource/link.rb +10 -10
- data/lib/chef/resource/locale.rb +20 -20
- data/lib/chef/resource/log.rb +4 -4
- data/lib/chef/resource/lwrp_base.rb +1 -0
- data/lib/chef/resource/macos_userdefaults.rb +17 -16
- data/lib/chef/resource/macosx_service.rb +1 -1
- data/lib/chef/resource/mdadm.rb +14 -14
- data/lib/chef/resource/mount.rb +24 -24
- data/lib/chef/resource/msu_package.rb +8 -8
- data/lib/chef/resource/ohai.rb +1 -1
- data/lib/chef/resource/ohai_hint.rb +7 -5
- data/lib/chef/resource/openssl_dhparam.rb +14 -14
- data/lib/chef/resource/openssl_ec_private_key.rb +16 -16
- data/lib/chef/resource/openssl_ec_public_key.rb +9 -9
- data/lib/chef/resource/openssl_rsa_private_key.rb +17 -17
- data/lib/chef/resource/openssl_rsa_public_key.rb +9 -9
- data/lib/chef/resource/openssl_x509_certificate.rb +34 -34
- data/lib/chef/resource/openssl_x509_crl.rb +17 -17
- data/lib/chef/resource/openssl_x509_request.rb +20 -20
- data/lib/chef/resource/osx_profile.rb +5 -5
- data/lib/chef/resource/package.rb +9 -9
- data/lib/chef/resource/paludis_package.rb +2 -2
- data/lib/chef/resource/powershell_package.rb +8 -8
- data/lib/chef/resource/powershell_package_source.rb +13 -13
- data/lib/chef/resource/reboot.rb +4 -4
- data/lib/chef/resource/registry_key.rb +5 -3
- data/lib/chef/resource/remote_directory.rb +20 -20
- data/lib/chef/resource/remote_file.rb +8 -7
- data/lib/chef/resource/resource_notification.rb +4 -3
- data/lib/chef/resource/rhsm_errata.rb +2 -2
- data/lib/chef/resource/rhsm_errata_level.rb +4 -4
- data/lib/chef/resource/rhsm_register.rb +14 -14
- data/lib/chef/resource/rhsm_repo.rb +3 -3
- data/lib/chef/resource/rhsm_subscription.rb +2 -2
- data/lib/chef/resource/route.rb +11 -11
- data/lib/chef/resource/scm.rb +18 -18
- data/lib/chef/resource/service.rb +27 -27
- data/lib/chef/resource/snap_package.rb +4 -4
- data/lib/chef/resource/ssh_known_hosts_entry.rb +19 -19
- data/lib/chef/resource/subversion.rb +10 -10
- data/lib/chef/resource/sudo.rb +38 -37
- data/lib/chef/resource/swap_file.rb +9 -9
- data/lib/chef/resource/sysctl.rb +20 -17
- data/lib/chef/resource/systemd_unit.rb +12 -12
- data/lib/chef/resource/template.rb +8 -8
- data/lib/chef/resource/timezone.rb +3 -2
- data/lib/chef/resource/user.rb +19 -19
- data/lib/chef/resource/user/dscl_user.rb +2 -2
- data/lib/chef/resource/user/windows_user.rb +2 -2
- data/lib/chef/resource/windows_ad_join.rb +17 -16
- data/lib/chef/resource/windows_auto_run.rb +8 -8
- data/lib/chef/resource/windows_certificate.rb +13 -13
- data/lib/chef/resource/windows_dfs_folder.rb +13 -12
- data/lib/chef/resource/windows_dfs_namespace.rb +18 -18
- data/lib/chef/resource/windows_dfs_server.rb +12 -12
- data/lib/chef/resource/windows_dns_record.rb +8 -8
- data/lib/chef/resource/windows_dns_zone.rb +6 -6
- data/lib/chef/resource/windows_env.rb +6 -6
- data/lib/chef/resource/windows_feature.rb +12 -12
- data/lib/chef/resource/windows_feature_dism.rb +20 -19
- data/lib/chef/resource/windows_feature_powershell.rb +24 -22
- data/lib/chef/resource/windows_firewall_rule.rb +34 -34
- data/lib/chef/resource/windows_font.rb +4 -4
- data/lib/chef/resource/windows_package.rb +5 -5
- data/lib/chef/resource/windows_pagefile.rb +9 -8
- data/lib/chef/resource/windows_path.rb +2 -2
- data/lib/chef/resource/windows_printer.rb +15 -15
- data/lib/chef/resource/windows_printer_port.rb +14 -14
- data/lib/chef/resource/windows_script.rb +1 -1
- data/lib/chef/resource/windows_service.rb +16 -16
- data/lib/chef/resource/windows_share.rb +27 -24
- data/lib/chef/resource/windows_shortcut.rb +7 -7
- data/lib/chef/resource/windows_task.rb +53 -51
- data/lib/chef/resource/windows_uac.rb +15 -15
- data/lib/chef/resource/windows_workgroup.rb +15 -14
- data/lib/chef/resource/yum_package.rb +24 -24
- data/lib/chef/resource/yum_repository.rb +44 -44
- data/lib/chef/resource/zypper_package.rb +9 -9
- data/lib/chef/resource/zypper_repository.rb +30 -30
- data/lib/chef/resource_builder.rb +1 -0
- data/lib/chef/resource_collection.rb +6 -4
- data/lib/chef/resource_collection/resource_collection_serialization.rb +4 -3
- data/lib/chef/resource_collection/resource_list.rb +5 -3
- data/lib/chef/resource_collection/resource_set.rb +12 -8
- data/lib/chef/resource_collection/stepable_iterator.rb +1 -0
- data/lib/chef/resource_definition.rb +5 -3
- data/lib/chef/resource_definition_list.rb +1 -1
- data/lib/chef/resource_inspector.rb +1 -1
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/role.rb +9 -7
- data/lib/chef/run_context.rb +5 -5
- data/lib/chef/run_context/cookbook_compiler.rb +5 -1
- data/lib/chef/run_list.rb +5 -4
- data/lib/chef/run_list/run_list_expansion.rb +3 -2
- data/lib/chef/run_list/run_list_item.rb +5 -5
- data/lib/chef/run_list/versioned_recipe_list.rb +1 -1
- data/lib/chef/run_status.rb +1 -1
- data/lib/chef/runner.rb +2 -4
- data/lib/chef/search/query.rb +3 -3
- data/lib/chef/shell/ext.rb +2 -2
- data/lib/chef/shell/model_wrapper.rb +2 -1
- data/lib/chef/shell/shell_session.rb +1 -1
- data/lib/chef/train_transport.rb +3 -3
- data/lib/chef/user.rb +6 -6
- data/lib/chef/user_v1.rb +13 -11
- data/lib/chef/util/diff.rb +5 -2
- data/lib/chef/util/dsc/configuration_generator.rb +6 -6
- data/lib/chef/util/dsc/lcm_output_parser.rb +2 -2
- data/lib/chef/util/dsc/local_configuration_manager.rb +2 -2
- data/lib/chef/util/dsc/resource_store.rb +2 -2
- data/lib/chef/util/file_edit.rb +1 -0
- data/lib/chef/util/powershell/cmdlet.rb +1 -1
- data/lib/chef/util/threaded_job_queue.rb +1 -1
- data/lib/chef/util/windows/logon_session.rb +5 -5
- data/lib/chef/util/windows/net_use.rb +2 -2
- data/lib/chef/util/windows/net_user.rb +3 -2
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/version_constraint.rb +1 -1
- data/lib/chef/whitelist.rb +1 -1
- data/lib/chef/win32/api/crypto.rb +11 -11
- data/lib/chef/win32/api/error.rb +4 -4
- data/lib/chef/win32/api/file.rb +38 -38
- data/lib/chef/win32/api/installer.rb +3 -3
- data/lib/chef/win32/api/memory.rb +4 -4
- data/lib/chef/win32/api/net.rb +38 -38
- data/lib/chef/win32/api/process.rb +2 -2
- data/lib/chef/win32/api/psapi.rb +1 -1
- data/lib/chef/win32/api/registry.rb +3 -3
- data/lib/chef/win32/api/security.rb +87 -87
- data/lib/chef/win32/api/synchronization.rb +5 -5
- data/lib/chef/win32/api/system.rb +7 -7
- data/lib/chef/win32/api/unicode.rb +3 -3
- data/lib/chef/win32/eventlog.rb +2 -2
- data/lib/chef/win32/file.rb +5 -2
- data/lib/chef/win32/file/info.rb +1 -0
- data/lib/chef/win32/file/version_info.rb +15 -14
- data/lib/chef/win32/memory.rb +1 -1
- data/lib/chef/win32/net.rb +8 -4
- data/lib/chef/win32/registry.rb +6 -1
- data/lib/chef/win32/security.rb +7 -2
- data/lib/chef/win32/security/acl.rb +2 -1
- data/lib/chef/win32/security/security_descriptor.rb +4 -2
- data/lib/chef/win32/security/sid.rb +11 -10
- data/lib/chef/win32/security/token.rb +3 -1
- data/lib/chef/win32/version.rb +3 -3
- data/spec/data/apt/chef-integration-test-1.0/debian/rules +0 -0
- data/spec/data/apt/chef-integration-test-1.1/debian/rules +0 -0
- data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -0
- data/spec/functional/assets/chefinittest +0 -0
- data/spec/functional/assets/testchefsubsys +0 -0
- data/spec/functional/dsl/reboot_pending_spec.rb +2 -2
- data/spec/functional/event_loggers/windows_eventlog_spec.rb +6 -4
- data/spec/functional/file_content_management/deploy_strategies_spec.rb +21 -21
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/knife/ssh_spec.rb +3 -3
- data/spec/functional/mixin/user_context_spec.rb +3 -1
- data/spec/functional/provider/remote_file/cache_control_data_spec.rb +0 -0
- data/spec/functional/rebooter_spec.rb +1 -1
- data/spec/functional/resource/aix_service_spec.rb +1 -1
- data/spec/functional/resource/aixinit_service_spec.rb +1 -1
- data/spec/functional/resource/chocolatey_package_spec.rb +2 -2
- data/spec/functional/resource/cookbook_file_spec.rb +1 -3
- data/spec/functional/resource/cron_spec.rb +1 -0
- data/spec/functional/resource/dnf_package_spec.rb +5 -5
- data/spec/functional/resource/dpkg_package_spec.rb +4 -4
- data/spec/functional/resource/dsc_resource_spec.rb +2 -1
- data/spec/functional/resource/dsc_script_spec.rb +7 -11
- data/spec/functional/resource/git_spec.rb +5 -5
- data/spec/functional/resource/group_spec.rb +15 -13
- data/spec/functional/resource/ifconfig_spec.rb +2 -2
- data/spec/functional/resource/link_spec.rb +2 -2
- data/spec/functional/resource/locale_spec.rb +4 -4
- data/spec/functional/resource/mount_spec.rb +3 -3
- data/spec/functional/resource/powershell_script_spec.rb +9 -8
- data/spec/functional/resource/reboot_spec.rb +1 -1
- data/spec/functional/resource/remote_file_spec.rb +2 -2
- data/spec/functional/resource/template_spec.rb +1 -1
- data/spec/functional/resource/user/windows_spec.rb +2 -2
- data/spec/functional/resource/windows_certificate_spec.rb +3 -3
- data/spec/functional/resource/windows_service_spec.rb +3 -3
- data/spec/functional/run_lock_spec.rb +3 -2
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/win32/security_spec.rb +12 -7
- data/spec/functional/win32/service_manager_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +79 -81
- data/spec/integration/client/exit_code_spec.rb +2 -2
- data/spec/integration/client/ipv6_spec.rb +2 -2
- data/spec/integration/knife/chef_fs_data_store_spec.rb +25 -25
- data/spec/integration/knife/chef_repo_path_spec.rb +4 -4
- data/spec/integration/knife/config_get_spec.rb +1 -1
- data/spec/integration/knife/config_list_profiles_spec.rb +2 -1
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/cookbook_download_spec.rb +1 -1
- data/spec/integration/knife/diff_spec.rb +2 -2
- data/spec/integration/knife/download_spec.rb +1 -1
- data/spec/integration/knife/redirection_spec.rb +1 -1
- data/spec/integration/knife/upload_spec.rb +2 -2
- data/spec/integration/recipes/accumulator_spec.rb +4 -4
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +5 -5
- data/spec/integration/recipes/lwrp_spec.rb +2 -2
- data/spec/integration/recipes/notifies_spec.rb +20 -20
- data/spec/integration/recipes/notifying_block_spec.rb +4 -4
- data/spec/integration/recipes/provider_choice.rb +1 -2
- data/spec/integration/recipes/recipe_dsl_spec.rb +9 -9
- data/spec/integration/recipes/remote_directory.rb +2 -2
- data/spec/integration/solo/solo_spec.rb +20 -20
- data/spec/spec_helper.rb +9 -11
- data/spec/stress/win32/security_spec.rb +1 -1
- data/spec/support/lib/chef/resource/zen_follower.rb +1 -1
- data/spec/support/lib/chef/resource/zen_master.rb +1 -1
- data/spec/support/mock/platform.rb +2 -2
- data/spec/support/platform_helpers.rb +14 -0
- data/spec/support/platforms/win32/spec_service.rb +6 -10
- data/spec/support/shared/functional/execute_resource.rb +4 -4
- data/spec/support/shared/functional/file_resource.rb +1 -3
- data/spec/support/shared/functional/http.rb +15 -39
- data/spec/support/shared/functional/securable_resource.rb +4 -8
- data/spec/support/shared/functional/win32_service.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +2 -1
- data/spec/support/shared/integration/app_server_support.rb +3 -4
- data/spec/support/shared/integration/integration_helper.rb +1 -0
- data/spec/support/shared/integration/knife_support.rb +5 -5
- data/spec/support/shared/unit/application_dot_d.rb +10 -4
- data/spec/support/shared/unit/file_system_support.rb +3 -2
- data/spec/support/shared/unit/platform_introspector.rb +12 -12
- data/spec/support/shared/unit/provider/file.rb +1 -1
- data/spec/support/shared/unit/script_resource.rb +1 -1
- data/spec/support/shared/unit/windows_script_resource.rb +1 -1
- data/spec/tiny_server.rb +1 -1
- data/spec/unit/api_client/registration_spec.rb +1 -1
- data/spec/unit/api_client_spec.rb +5 -5
- data/spec/unit/api_client_v1_spec.rb +6 -6
- data/spec/unit/application/client_spec.rb +8 -8
- data/spec/unit/application/exit_code_spec.rb +3 -2
- data/spec/unit/application/knife_spec.rb +1 -2
- data/spec/unit/chef_fs/config_spec.rb +3 -3
- data/spec/unit/chef_fs/file_system/repository/directory_spec.rb +1 -1
- data/spec/unit/chef_fs/parallelizer.rb +1 -1
- data/spec/unit/client_spec.rb +1 -1
- data/spec/unit/config_fetcher_spec.rb +1 -1
- data/spec/unit/cookbook/metadata_spec.rb +4 -4
- data/spec/unit/cookbook/synchronizer_spec.rb +4 -4
- data/spec/unit/cookbook_loader_spec.rb +10 -10
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +1 -2
- data/spec/unit/cookbook_version_file_specificity_spec.rb +9 -9
- data/spec/unit/data_bag_item_spec.rb +8 -8
- data/spec/unit/data_bag_spec.rb +1 -1
- data/spec/unit/data_collector_spec.rb +82 -0
- data/spec/unit/decorator_spec.rb +2 -2
- data/spec/unit/deprecated_spec.rb +2 -2
- data/spec/unit/dsl/data_query_spec.rb +3 -2
- data/spec/unit/dsl/declare_resource_spec.rb +1 -1
- data/spec/unit/dsl/platform_introspection_spec.rb +2 -2
- data/spec/unit/encrypted_data_bag_item/check_encrypted_spec.rb +2 -1
- data/spec/unit/encrypted_data_bag_item_spec.rb +2 -1
- data/spec/unit/environment_spec.rb +9 -9
- data/spec/unit/event_dispatch/dsl_spec.rb +1 -1
- data/spec/unit/file_content_management/deploy/mv_unix_spec.rb +3 -3
- data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +2 -2
- data/spec/unit/formatters/error_inspectors/resource_failure_inspector_spec.rb +3 -3
- data/spec/unit/guard_interpreter/resource_guard_interpreter_spec.rb +1 -1
- data/spec/unit/http/authenticator_spec.rb +3 -2
- data/spec/unit/http/json_input_spec.rb +1 -1
- data/spec/unit/key_spec.rb +7 -7
- data/spec/unit/knife/bootstrap/train_connector_spec.rb +13 -8
- data/spec/unit/knife/bootstrap_spec.rb +22 -16
- data/spec/unit/knife/client_bulk_delete_spec.rb +4 -4
- data/spec/unit/knife/configure_client_spec.rb +1 -1
- data/spec/unit/knife/configure_spec.rb +1 -1
- data/spec/unit/knife/cookbook_bulk_delete_spec.rb +1 -1
- data/spec/unit/knife/cookbook_delete_spec.rb +2 -2
- data/spec/unit/knife/cookbook_download_spec.rb +2 -2
- data/spec/unit/knife/cookbook_metadata_spec.rb +4 -4
- data/spec/unit/knife/cookbook_upload_spec.rb +4 -2
- data/spec/unit/knife/core/gem_glob_loader_spec.rb +4 -4
- data/spec/unit/knife/core/hashed_command_loader_spec.rb +4 -2
- data/spec/unit/knife/core/node_editor_spec.rb +8 -8
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +1 -2
- data/spec/unit/knife/data_bag_from_file_spec.rb +2 -1
- data/spec/unit/knife/data_bag_show_spec.rb +2 -1
- data/spec/unit/knife/key_create_spec.rb +1 -1
- data/spec/unit/knife/key_delete_spec.rb +3 -3
- data/spec/unit/knife/key_edit_spec.rb +4 -4
- data/spec/unit/knife/key_list_spec.rb +1 -1
- data/spec/unit/knife/key_show_spec.rb +3 -3
- data/spec/unit/knife/node_bulk_delete_spec.rb +3 -3
- data/spec/unit/knife/node_delete_spec.rb +2 -2
- data/spec/unit/knife/node_edit_spec.rb +1 -1
- data/spec/unit/knife/node_environment_set_spec.rb +6 -1
- data/spec/unit/knife/node_from_file_spec.rb +1 -1
- data/spec/unit/knife/node_policy_set_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/node_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/node_show_spec.rb +1 -1
- data/spec/unit/knife/raw_spec.rb +2 -2
- data/spec/unit/knife/role_bulk_delete_spec.rb +2 -2
- data/spec/unit/knife/role_create_spec.rb +1 -1
- data/spec/unit/knife/role_delete_spec.rb +1 -1
- data/spec/unit/knife/role_edit_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_env_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/role_from_file_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_add_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_clear_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_remove_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_replace_spec.rb +1 -1
- data/spec/unit/knife/role_run_list_set_spec.rb +1 -1
- data/spec/unit/knife/status_spec.rb +2 -1
- data/spec/unit/knife/supermarket_install_spec.rb +5 -4
- data/spec/unit/knife/supermarket_share_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +35 -34
- data/spec/unit/lwrp_spec.rb +19 -19
- data/spec/unit/mixin/homebrew_user_spec.rb +1 -1
- data/spec/unit/mixin/params_validate_spec.rb +10 -10
- data/spec/unit/mixin/properties_spec.rb +4 -4
- data/spec/unit/mixin/shell_out_spec.rb +3 -3
- data/spec/unit/mixin/template_spec.rb +4 -8
- data/spec/unit/mixin/unformatter_spec.rb +1 -2
- data/spec/unit/mixin/user_context_spec.rb +1 -2
- data/spec/unit/mixin/which.rb +2 -0
- data/spec/unit/mixin/windows_architecture_helper_spec.rb +3 -3
- data/spec/unit/node/attribute_spec.rb +12 -12
- data/spec/unit/node/immutable_collections_spec.rb +50 -50
- data/spec/unit/node/vivid_mash_spec.rb +4 -4
- data/spec/unit/node_spec.rb +12 -12
- data/spec/unit/org_spec.rb +3 -3
- data/spec/unit/policy_builder/policyfile_spec.rb +2 -2
- data/spec/unit/property/state_spec.rb +26 -25
- data/spec/unit/property/validation_spec.rb +14 -13
- data/spec/unit/property_spec.rb +11 -10
- data/spec/unit/provider/apt_update_spec.rb +6 -6
- data/spec/unit/provider/cron_spec.rb +1 -1
- data/spec/unit/provider/dsc_resource_spec.rb +6 -3
- data/spec/unit/provider/dsc_script_spec.rb +1 -1
- data/spec/unit/provider/git_spec.rb +38 -38
- data/spec/unit/provider/group/dscl_spec.rb +1 -1
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/group_spec.rb +2 -3
- data/spec/unit/provider/launchd_spec.rb +16 -8
- data/spec/unit/provider/link_spec.rb +22 -11
- data/spec/unit/provider/mount/mount_spec.rb +31 -31
- data/spec/unit/provider/mount/solaris_spec.rb +11 -11
- data/spec/unit/provider/ohai_spec.rb +1 -1
- data/spec/unit/provider/osx_profile_spec.rb +5 -7
- data/spec/unit/provider/package/apt_spec.rb +5 -5
- data/spec/unit/provider/package/bff_spec.rb +1 -1
- data/spec/unit/provider/package/cab_spec.rb +1 -1
- data/spec/unit/provider/package/chocolatey_spec.rb +8 -8
- data/spec/unit/provider/package/msu_spec.rb +1 -1
- data/spec/unit/provider/package/openbsd_spec.rb +14 -10
- data/spec/unit/provider/package/powershell_spec.rb +1 -1
- data/spec/unit/provider/package/smartos_spec.rb +2 -2
- data/spec/unit/provider/package/windows/exe_spec.rb +9 -9
- data/spec/unit/provider/package/windows/msi_spec.rb +7 -7
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum/yum_cache_spec.rb +1 -1
- data/spec/unit/provider/package/zypper_spec.rb +13 -4
- data/spec/unit/provider/powershell_script_spec.rb +12 -12
- data/spec/unit/provider/registry_key_spec.rb +1 -1
- data/spec/unit/provider/remote_directory_spec.rb +6 -6
- data/spec/unit/provider/route_spec.rb +11 -11
- data/spec/unit/provider/service/arch_service_spec.rb +11 -11
- data/spec/unit/provider/service/debian_service_spec.rb +2 -1
- data/spec/unit/provider/service/freebsd_service_spec.rb +23 -19
- data/spec/unit/provider/service/gentoo_service_spec.rb +2 -2
- data/spec/unit/provider/service/init_service_spec.rb +9 -9
- data/spec/unit/provider/service/invokercd_service_spec.rb +9 -9
- data/spec/unit/provider/service/macosx_spec.rb +1 -1
- data/spec/unit/provider/service/openbsd_service_spec.rb +15 -11
- data/spec/unit/provider/service/simple_service_spec.rb +5 -5
- data/spec/unit/provider/service/upstart_service_spec.rb +14 -14
- data/spec/unit/provider/service/windows_spec.rb +53 -35
- data/spec/unit/provider/subversion_spec.rb +8 -4
- data/spec/unit/provider/systemd_unit_spec.rb +146 -146
- data/spec/unit/provider/template/content_spec.rb +28 -28
- data/spec/unit/provider/windows_task_spec.rb +7 -2
- data/spec/unit/provider_resolver_spec.rb +2 -2
- data/spec/unit/provider_spec.rb +2 -4
- data/spec/unit/recipe_spec.rb +3 -3
- data/spec/unit/resource/batch_spec.rb +1 -1
- data/spec/unit/resource/cab_package_spec.rb +1 -1
- data/spec/unit/resource/chef_gem_spec.rb +1 -1
- data/spec/unit/resource/directory_spec.rb +1 -1
- data/spec/unit/resource/dnf_package_spec.rb +1 -1
- data/spec/unit/resource/dsc_resource_spec.rb +1 -1
- data/spec/unit/resource/file/verification_spec.rb +1 -2
- data/spec/unit/resource/file_spec.rb +1 -1
- data/spec/unit/resource/group_spec.rb +1 -1
- data/spec/unit/resource/kernel_module_spec.rb +1 -0
- data/spec/unit/resource/link_spec.rb +1 -1
- data/spec/unit/resource/locale_spec.rb +12 -12
- data/spec/unit/resource/osx_profile_spec.rb +2 -1
- data/spec/unit/resource/powershell_script_spec.rb +12 -7
- data/spec/unit/resource/registry_key_spec.rb +3 -3
- data/spec/unit/resource/rhsm_repo_spec.rb +6 -0
- data/spec/unit/resource/service_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/windows_env_spec.rb +1 -1
- data/spec/unit/resource/windows_service_spec.rb +7 -7
- data/spec/unit/resource/windows_task_spec.rb +2 -2
- data/spec/unit/resource/windows_uac_spec.rb +2 -2
- data/spec/unit/resource/yum_package_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_list_spec.rb +1 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +7 -7
- data/spec/unit/resource_collection/stepable_iterator_spec.rb +2 -2
- data/spec/unit/resource_collection_spec.rb +4 -4
- data/spec/unit/resource_definition_spec.rb +2 -2
- data/spec/unit/resource_inspector_spec.rb +1 -1
- data/spec/unit/resource_reporter_spec.rb +6 -4
- data/spec/unit/resource_spec.rb +21 -21
- data/spec/unit/role_spec.rb +2 -2
- data/spec/unit/run_context/cookbook_compiler_spec.rb +24 -24
- data/spec/unit/run_list/run_list_expansion_spec.rb +9 -6
- data/spec/unit/run_list_spec.rb +1 -1
- data/spec/unit/runner_spec.rb +3 -3
- data/spec/unit/search/query_spec.rb +3 -2
- data/spec/unit/shell/model_wrapper_spec.rb +1 -1
- data/spec/unit/shell/shell_session_spec.rb +8 -11
- data/spec/unit/shell_spec.rb +1 -2
- data/spec/unit/user_spec.rb +4 -4
- data/spec/unit/user_v1_spec.rb +3 -3
- data/spec/unit/util/backup_spec.rb +1 -1
- data/spec/unit/util/editor_spec.rb +1 -1
- data/spec/unit/util/powershell/ps_credential_spec.rb +3 -2
- data/spec/unit/util/threaded_job_queue_spec.rb +2 -2
- data/spec/unit/version_class_spec.rb +4 -4
- data/spec/unit/win32/registry_spec.rb +5 -5
- data/spec/unit/win32/security_spec.rb +2 -1
- data/tasks/bin/run_external_test +1 -1
- data/tasks/docs.rb +78 -61
- data/tasks/rspec.rb +1 -1
- metadata +5 -33
- data/lib/.DS_Store +0 -0
- data/lib/chef/.DS_Store +0 -0
- data/lib/chef/dsl/.DS_Store +0 -0
- data/lib/chef/knife/.DS_Store +0 -0
- data/lib/chef/mixin/.DS_Store +0 -0
- data/lib/chef/nil_argument.rb +0 -3
- data/lib/chef/provider/.DS_Store +0 -0
- data/lib/chef/provider/package/.DS_Store +0 -0
- data/lib/chef/provider/package/freebsd/.DS_Store +0 -0
- data/lib/chef/resource/.DS_Store +0 -0
- data/lib/chef/resource/file/.DS_Store +0 -0
- data/spec/.DS_Store +0 -0
- data/spec/data/.DS_Store +0 -0
- data/spec/data/cookbooks/.DS_Store +0 -0
- data/spec/data/cookbooks/java/.DS_Store +0 -0
- data/spec/data/cookbooks/java/files/.DS_Store +0 -0
- data/spec/data/mac_users/.DS_Store +0 -0
- data/spec/data/nodes/Tim.local.json +0 -3
- data/spec/data/nodes/Tims-MBP.local.json +0 -3
- data/spec/data/run_context/.DS_Store +0 -0
- data/spec/data/run_context/cookbooks/.DS_Store +0 -0
- data/spec/functional/.DS_Store +0 -0
- data/spec/functional/resource/.DS_Store +0 -0
- data/spec/functional/util/.DS_Store +0 -0
- data/spec/integration/.DS_Store +0 -0
- data/spec/stress/.DS_Store +0 -0
- data/spec/support/.DS_Store +0 -0
- data/spec/unit/.DS_Store +0 -0
- data/tasks/.DS_Store +0 -0
@@ -28,27 +28,27 @@ class Chef
|
|
28
28
|
introduced "15.0"
|
29
29
|
|
30
30
|
property :use_fqdn, [TrueClass, FalseClass],
|
31
|
-
|
32
|
-
|
31
|
+
description: "Indicates whether a DFS namespace server uses FQDNs in referrals. If this parameter has a value of true, the server uses FQDNs in referrals. If this parameter has a value of false, the server uses NetBIOS names.",
|
32
|
+
default: false
|
33
33
|
|
34
34
|
property :ldap_timeout_secs, Integer,
|
35
|
-
|
36
|
-
|
35
|
+
description: "",
|
36
|
+
default: 30
|
37
37
|
|
38
38
|
property :prefer_login_dc, [TrueClass, FalseClass],
|
39
|
-
|
40
|
-
|
39
|
+
description: "",
|
40
|
+
default: false
|
41
41
|
|
42
42
|
property :enable_site_costed_referrals, [TrueClass, FalseClass],
|
43
|
-
|
44
|
-
|
43
|
+
description: "",
|
44
|
+
default: false
|
45
45
|
|
46
46
|
property :sync_interval_secs, Integer,
|
47
|
-
|
48
|
-
|
47
|
+
description: "",
|
48
|
+
default: 3600
|
49
49
|
|
50
50
|
load_current_value do
|
51
|
-
ps_results = powershell_out("Get-DfsnServerConfiguration -ComputerName '#{ENV[
|
51
|
+
ps_results = powershell_out("Get-DfsnServerConfiguration -ComputerName '#{ENV["COMPUTERNAME"]}' | Select LdapTimeoutSec, PreferLogonDC, EnableSiteCostedReferrals, SyncIntervalSec, UseFqdn | ConvertTo-Json")
|
52
52
|
|
53
53
|
if ps_results.error?
|
54
54
|
raise "The dfs_server resource failed to fetch the current state via the Get-DfsnServerConfiguration PowerShell cmlet. Is the DFS Windows feature installed?"
|
@@ -68,7 +68,7 @@ class Chef
|
|
68
68
|
description "Configure DFS settings."
|
69
69
|
|
70
70
|
converge_if_changed do
|
71
|
-
powershell_out("Set-DfsnServerConfiguration -ComputerName '#{ENV[
|
71
|
+
powershell_out("Set-DfsnServerConfiguration -ComputerName '#{ENV["COMPUTERNAME"]}' EnableSiteCostedReferrals $#{new_resource.enable_site_costed_referrals} -UseFqdn $#{new_resource.use_fqdn} -LdapTimeoutSec #{new_resource.ldap_timeout_secs} -PreferLogonDC $#{new_resource.prefer_login_dc} -SyncIntervalSec #{new_resource.sync_interval_secs}")
|
72
72
|
end
|
73
73
|
end
|
74
74
|
end
|
@@ -28,20 +28,20 @@ class Chef
|
|
28
28
|
introduced "15.0"
|
29
29
|
|
30
30
|
property :record_name, String,
|
31
|
-
|
32
|
-
|
31
|
+
description: "An optional property to set the dns record name if it differs from the resource block's name.",
|
32
|
+
name_property: true
|
33
33
|
|
34
34
|
property :zone, String,
|
35
|
-
|
36
|
-
|
35
|
+
description: "The zone to create the record in.",
|
36
|
+
required: true
|
37
37
|
|
38
38
|
property :target, String,
|
39
|
-
|
40
|
-
|
39
|
+
description: "The target for the record.",
|
40
|
+
required: true
|
41
41
|
|
42
42
|
property :record_type, String,
|
43
|
-
|
44
|
-
|
43
|
+
description: "The type of record to create, can be either ARecord, CNAME or PTR.",
|
44
|
+
default: "ARecord", equal_to: %w{ARecord CNAME PTR}
|
45
45
|
|
46
46
|
action :create do
|
47
47
|
description "Creates and updates the DNS entry."
|
@@ -28,16 +28,16 @@ class Chef
|
|
28
28
|
introduced "15.0"
|
29
29
|
|
30
30
|
property :zone_name, String,
|
31
|
-
|
32
|
-
|
31
|
+
description: "An optional property to set the dns zone name if it differs from the resource block's name.",
|
32
|
+
name_property: true
|
33
33
|
|
34
34
|
property :replication_scope, String,
|
35
|
-
|
36
|
-
|
35
|
+
description: "The replication scope for the zone, required if server_type set to 'Domain'.",
|
36
|
+
default: "Domain"
|
37
37
|
|
38
38
|
property :server_type, String,
|
39
|
-
|
40
|
-
|
39
|
+
description: "The type of DNS server, Domain or Standalone.",
|
40
|
+
default: "Domain", equal_to: %w{Domain Standalone}
|
41
41
|
|
42
42
|
action :create do
|
43
43
|
description "Creates and updates a DNS Zone."
|
@@ -32,16 +32,16 @@ class Chef
|
|
32
32
|
allowed_actions :create, :delete, :modify
|
33
33
|
|
34
34
|
property :key_name, String,
|
35
|
-
|
36
|
-
|
35
|
+
description: "An optional property to set the name of the key that is to be created, deleted, or modified if it differs from the resource block's name.",
|
36
|
+
identity: true, name_property: true
|
37
37
|
|
38
38
|
property :value, String,
|
39
|
-
|
40
|
-
|
39
|
+
description: "The value of the environmental variable to set.",
|
40
|
+
required: true
|
41
41
|
|
42
42
|
property :delim, [ String, nil, false ],
|
43
|
-
|
44
|
-
|
43
|
+
description: "The delimiter that is used to separate multiple values for a single key.",
|
44
|
+
desired_state: false
|
45
45
|
|
46
46
|
property :user, String, default: "<System>"
|
47
47
|
end
|
@@ -28,28 +28,28 @@ class Chef
|
|
28
28
|
introduced "14.0"
|
29
29
|
|
30
30
|
property :feature_name, [Array, String],
|
31
|
-
|
32
|
-
|
31
|
+
description: "The name of the feature(s) or role(s) to install if they differ from the resource block's name. The same feature may have different names depending on the underlying installation method being used (ie DHCPServer vs DHCP; DNS-Server-Full-Role vs DNS).",
|
32
|
+
name_property: true
|
33
33
|
|
34
34
|
property :source, String,
|
35
|
-
|
35
|
+
description: "Specify a local repository for the feature install."
|
36
36
|
|
37
37
|
property :all, [TrueClass, FalseClass],
|
38
|
-
|
39
|
-
|
38
|
+
description: "Install all sub features.",
|
39
|
+
default: false
|
40
40
|
|
41
41
|
property :management_tools, [TrueClass, FalseClass],
|
42
|
-
|
43
|
-
|
42
|
+
description: "Install all applicable management tools for the roles, role services, or features (PowerShell-only).",
|
43
|
+
default: false
|
44
44
|
|
45
45
|
property :install_method, Symbol,
|
46
|
-
|
47
|
-
|
48
|
-
|
46
|
+
description: "The underlying installation method to use for feature installation. Specify ':windows_feature_dism' for DISM or ':windows_feature_powershell' for PowerShell.",
|
47
|
+
equal_to: %i{windows_feature_dism windows_feature_powershell windows_feature_servermanagercmd},
|
48
|
+
default: :windows_feature_dism
|
49
49
|
|
50
50
|
property :timeout, Integer,
|
51
|
-
|
52
|
-
|
51
|
+
description: "Specifies a timeout (in seconds) for the feature installation.",
|
52
|
+
default: 600
|
53
53
|
|
54
54
|
action :install do
|
55
55
|
description "Install a Windows role/feature"
|
@@ -29,20 +29,20 @@ class Chef
|
|
29
29
|
introduced "14.0"
|
30
30
|
|
31
31
|
property :feature_name, [Array, String],
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
description: "The name of the feature(s) or role(s) to install if they differ from the resource name.",
|
33
|
+
coerce: proc { |x| to_formatted_array(x) },
|
34
|
+
name_property: true
|
35
35
|
|
36
36
|
property :source, String,
|
37
|
-
|
37
|
+
description: "Specify a local repository for the feature install."
|
38
38
|
|
39
39
|
property :all, [TrueClass, FalseClass],
|
40
|
-
|
41
|
-
|
40
|
+
description: "Install all sub-features. When set to 'true', this is the equivalent of specifying the /All switch to dism.exe",
|
41
|
+
default: false
|
42
42
|
|
43
43
|
property :timeout, Integer,
|
44
|
-
|
45
|
-
|
44
|
+
description: "Specifies a timeout (in seconds) for the feature installation.",
|
45
|
+
default: 600
|
46
46
|
|
47
47
|
# @return [Array] lowercase the array unless we're on < Windows 2012
|
48
48
|
def to_formatted_array(x)
|
@@ -58,17 +58,18 @@ class Chef
|
|
58
58
|
reload_cached_dism_data unless node["dism_features_cache"]
|
59
59
|
fail_if_unavailable # fail if the features don't exist
|
60
60
|
|
61
|
-
logger.trace("Windows features needing installation: #{features_to_install.empty? ?
|
61
|
+
logger.trace("Windows features needing installation: #{features_to_install.empty? ? "none" : features_to_install.join(",")}")
|
62
62
|
unless features_to_install.empty?
|
63
|
-
message = "install Windows feature#{
|
63
|
+
message = "install Windows feature#{"s" if features_to_install.count > 1} #{features_to_install.join(",")}"
|
64
64
|
converge_by(message) do
|
65
|
-
install_command = "dism.exe /online /enable-feature #{features_to_install.map { |f| "/featurename:#{f}" }.join(
|
65
|
+
install_command = "dism.exe /online /enable-feature #{features_to_install.map { |f| "/featurename:#{f}" }.join(" ")} /norestart"
|
66
66
|
install_command << " /LimitAccess /Source:\"#{new_resource.source}\"" if new_resource.source
|
67
67
|
install_command << " /All" if new_resource.all
|
68
68
|
begin
|
69
69
|
shell_out!(install_command, returns: [0, 42, 127, 3010], timeout: new_resource.timeout)
|
70
70
|
rescue Mixlib::ShellOut::ShellCommandFailed => e
|
71
71
|
raise "Error 50 returned by DISM related to parent features, try setting the 'all' property to 'true' on the 'windows_feature_dism' resource." if required_parent_feature?(e.inspect)
|
72
|
+
|
72
73
|
raise e.message
|
73
74
|
end
|
74
75
|
|
@@ -82,12 +83,12 @@ class Chef
|
|
82
83
|
|
83
84
|
reload_cached_dism_data unless node["dism_features_cache"]
|
84
85
|
|
85
|
-
logger.trace("Windows features needing removal: #{features_to_remove.empty? ?
|
86
|
+
logger.trace("Windows features needing removal: #{features_to_remove.empty? ? "none" : features_to_remove.join(",")}")
|
86
87
|
unless features_to_remove.empty?
|
87
|
-
message = "remove Windows feature#{
|
88
|
+
message = "remove Windows feature#{"s" if features_to_remove.count > 1} #{features_to_remove.join(",")}"
|
88
89
|
|
89
90
|
converge_by(message) do
|
90
|
-
shell_out!("dism.exe /online /disable-feature #{features_to_remove.map { |f| "/featurename:#{f}" }.join(
|
91
|
+
shell_out!("dism.exe /online /disable-feature #{features_to_remove.map { |f| "/featurename:#{f}" }.join(" ")} /norestart", returns: [0, 42, 127, 3010], timeout: new_resource.timeout)
|
91
92
|
|
92
93
|
reload_cached_dism_data # Reload cached dism feature state
|
93
94
|
end
|
@@ -103,11 +104,11 @@ class Chef
|
|
103
104
|
|
104
105
|
fail_if_unavailable # fail if the features don't exist
|
105
106
|
|
106
|
-
logger.trace("Windows features needing deletion: #{features_to_delete.empty? ?
|
107
|
+
logger.trace("Windows features needing deletion: #{features_to_delete.empty? ? "none" : features_to_delete.join(",")}")
|
107
108
|
unless features_to_delete.empty?
|
108
|
-
message = "delete Windows feature#{
|
109
|
+
message = "delete Windows feature#{"s" if features_to_delete.count > 1} #{features_to_delete.join(",")} from the image"
|
109
110
|
converge_by(message) do
|
110
|
-
shell_out!("dism.exe /online /disable-feature #{features_to_delete.map { |f| "/featurename:#{f}" }.join(
|
111
|
+
shell_out!("dism.exe /online /disable-feature #{features_to_delete.map { |f| "/featurename:#{f}" }.join(" ")} /Remove /norestart", returns: [0, 42, 127, 3010], timeout: new_resource.timeout)
|
111
112
|
|
112
113
|
reload_cached_dism_data # Reload cached dism feature state
|
113
114
|
end
|
@@ -158,7 +159,7 @@ class Chef
|
|
158
159
|
|
159
160
|
# the difference of desired features to install to all features is what's not available
|
160
161
|
unavailable = (new_resource.feature_name - all_available)
|
161
|
-
raise "The Windows feature#{
|
162
|
+
raise "The Windows feature#{"s" if unavailable.count > 1} #{unavailable.join(",")} #{unavailable.count > 1 ? "are" : "is"} not available on this version of Windows. Run 'dism /online /Get-Features' to see the list of available feature names." unless unavailable.empty?
|
162
163
|
end
|
163
164
|
|
164
165
|
# run dism.exe to get a list of all available features and their state
|
@@ -189,7 +190,7 @@ class Chef
|
|
189
190
|
add_to_feature_mash("disabled", feature_details_raw)
|
190
191
|
end
|
191
192
|
end
|
192
|
-
logger.trace("The cache contains\n#{node[
|
193
|
+
logger.trace("The cache contains\n#{node["dism_features_cache"]}")
|
193
194
|
end
|
194
195
|
|
195
196
|
# parse the feature string and add the values to the appropriate array
|
@@ -31,24 +31,24 @@ class Chef
|
|
31
31
|
introduced "14.0"
|
32
32
|
|
33
33
|
property :feature_name, [Array, String],
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
description: "The name of the feature(s) or role(s) to install if they differ from the resource block's name.",
|
35
|
+
coerce: proc { |x| to_formatted_array(x) },
|
36
|
+
name_property: true
|
37
37
|
|
38
38
|
property :source, String,
|
39
|
-
|
39
|
+
description: "Specify a local repository for the feature install."
|
40
40
|
|
41
41
|
property :all, [TrueClass, FalseClass],
|
42
|
-
|
43
|
-
|
42
|
+
description: "Install all subfeatures. When set to 'true', this is the equivalent of specifying the '-InstallAllSubFeatures' switch with 'Add-WindowsFeature'.",
|
43
|
+
default: false
|
44
44
|
|
45
45
|
property :timeout, Integer,
|
46
|
-
|
47
|
-
|
46
|
+
description: "Specifies a timeout (in seconds) for the feature installation.",
|
47
|
+
default: 600
|
48
48
|
|
49
49
|
property :management_tools, [TrueClass, FalseClass],
|
50
|
-
|
51
|
-
|
50
|
+
description: "Install all applicable management tools for the roles, role services, or features.",
|
51
|
+
default: false
|
52
52
|
|
53
53
|
# Converts strings of features into an Array. Array objects are lowercased unless we're on < 8/2k12+.
|
54
54
|
# @return [Array] array of features
|
@@ -68,10 +68,10 @@ class Chef
|
|
68
68
|
fail_if_unavailable # fail if the features don't exist
|
69
69
|
fail_if_removed # fail if the features are in removed state
|
70
70
|
|
71
|
-
Chef::Log.debug("Windows features needing installation: #{features_to_install.empty? ?
|
71
|
+
Chef::Log.debug("Windows features needing installation: #{features_to_install.empty? ? "none" : features_to_install.join(",")}")
|
72
72
|
unless features_to_install.empty?
|
73
|
-
converge_by("install Windows feature#{
|
74
|
-
install_command = "#{install_feature_cmdlet} #{features_to_install.join(
|
73
|
+
converge_by("install Windows feature#{"s" if features_to_install.count > 1} #{features_to_install.join(",")}") do
|
74
|
+
install_command = "#{install_feature_cmdlet} #{features_to_install.join(",")}"
|
75
75
|
install_command << " -IncludeAllSubFeature" if new_resource.all
|
76
76
|
if older_than_win_2012_or_8? && (new_resource.source || new_resource.management_tools)
|
77
77
|
Chef::Log.warn("The 'source' and 'management_tools' properties are only available on Windows 8/2012 or greater. Skipping these properties!")
|
@@ -93,11 +93,11 @@ class Chef
|
|
93
93
|
|
94
94
|
reload_cached_powershell_data unless node["powershell_features_cache"]
|
95
95
|
|
96
|
-
Chef::Log.debug("Windows features needing removal: #{features_to_remove.empty? ?
|
96
|
+
Chef::Log.debug("Windows features needing removal: #{features_to_remove.empty? ? "none" : features_to_remove.join(",")}")
|
97
97
|
|
98
98
|
unless features_to_remove.empty?
|
99
|
-
converge_by("remove Windows feature#{
|
100
|
-
cmd = powershell_out!("#{remove_feature_cmdlet} #{features_to_remove.join(
|
99
|
+
converge_by("remove Windows feature#{"s" if features_to_remove.count > 1} #{features_to_remove.join(",")}") do
|
100
|
+
cmd = powershell_out!("#{remove_feature_cmdlet} #{features_to_remove.join(",")}", timeout: new_resource.timeout)
|
101
101
|
Chef::Log.info(cmd.stdout)
|
102
102
|
|
103
103
|
reload_cached_powershell_data # Reload cached powershell feature state
|
@@ -113,11 +113,11 @@ class Chef
|
|
113
113
|
|
114
114
|
fail_if_unavailable # fail if the features don't exist
|
115
115
|
|
116
|
-
Chef::Log.debug("Windows features needing deletion: #{features_to_delete.empty? ?
|
116
|
+
Chef::Log.debug("Windows features needing deletion: #{features_to_delete.empty? ? "none" : features_to_delete.join(",")}")
|
117
117
|
|
118
118
|
unless features_to_delete.empty?
|
119
|
-
converge_by("delete Windows feature#{
|
120
|
-
cmd = powershell_out!("Uninstall-WindowsFeature #{features_to_delete.join(
|
119
|
+
converge_by("delete Windows feature#{"s" if features_to_delete.count > 1} #{features_to_delete.join(",")} from the image") do
|
120
|
+
cmd = powershell_out!("Uninstall-WindowsFeature #{features_to_delete.join(",")} -Remove", timeout: new_resource.timeout)
|
121
121
|
Chef::Log.info(cmd.stdout)
|
122
122
|
|
123
123
|
reload_cached_powershell_data # Reload cached powershell feature state
|
@@ -132,6 +132,7 @@ class Chef
|
|
132
132
|
def powershell_version
|
133
133
|
cmd = powershell_out("$PSVersionTable.psversion.major")
|
134
134
|
return 1 if cmd.stdout.empty? # PowerShell 1.0 doesn't have a $PSVersionTable
|
135
|
+
|
135
136
|
Regexp.last_match(1).to_i if cmd.stdout =~ /^(\d+)/
|
136
137
|
rescue Errno::ENOENT
|
137
138
|
0 # zero as in nothing is installed
|
@@ -195,7 +196,7 @@ class Chef
|
|
195
196
|
|
196
197
|
# the difference of desired features to install to all features is what's not available
|
197
198
|
unavailable = (new_resource.feature_name - all_available)
|
198
|
-
raise "The Windows feature#{
|
199
|
+
raise "The Windows feature#{"s" if unavailable.count > 1} #{unavailable.join(",")} #{unavailable.count > 1 ? "are" : "is"} not available on this version of Windows. Run 'Get-WindowsFeature' to see the list of available feature names." unless unavailable.empty?
|
199
200
|
end
|
200
201
|
|
201
202
|
# run Get-WindowsFeature to get a list of all available features and their state
|
@@ -218,7 +219,7 @@ class Chef
|
|
218
219
|
add_to_feature_mash("disabled", feature_details_raw["Name"])
|
219
220
|
end
|
220
221
|
end
|
221
|
-
Chef::Log.debug("The powershell cache contains\n#{node[
|
222
|
+
Chef::Log.debug("The powershell cache contains\n#{node["powershell_features_cache"]}")
|
222
223
|
end
|
223
224
|
|
224
225
|
# fetch the list of available feature names and state in JSON and parse the JSON
|
@@ -245,11 +246,12 @@ class Chef
|
|
245
246
|
# @return [void]
|
246
247
|
def fail_if_removed
|
247
248
|
return if new_resource.source # if someone provides a source then all is well
|
249
|
+
|
248
250
|
if node["platform_version"].to_f > 6.2 # 2012R2 or later
|
249
251
|
return if registry_key_exists?('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing') && registry_value_exists?('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing', name: "LocalSourcePath") # if source is defined in the registry, still fine
|
250
252
|
end
|
251
253
|
removed = new_resource.feature_name & node["powershell_features_cache"]["removed"]
|
252
|
-
raise "The Windows feature#{
|
254
|
+
raise "The Windows feature#{"s" if removed.count > 1} #{removed.join(",")} #{removed.count > 1 ? "are" : "is"} removed from the host and cannot be installed." unless removed.empty?
|
253
255
|
end
|
254
256
|
|
255
257
|
# Fail unless we're on windows 8+ / 2012+ where deleting a feature is supported
|
@@ -30,62 +30,62 @@ class Chef
|
|
30
30
|
introduced "14.7"
|
31
31
|
|
32
32
|
property :rule_name, String,
|
33
|
-
|
34
|
-
|
33
|
+
name_property: true,
|
34
|
+
description: "An optional property to set the name of the firewall rule to assign if it differs from the resource block's name."
|
35
35
|
|
36
36
|
property :description, String,
|
37
|
-
|
38
|
-
|
37
|
+
default: "Firewall rule",
|
38
|
+
description: "The description to assign to the firewall rule."
|
39
39
|
|
40
40
|
property :local_address, String,
|
41
|
-
|
41
|
+
description: "The local address the firewall rule applies to."
|
42
42
|
|
43
43
|
property :local_port, [String, Integer, Array],
|
44
44
|
# split various formats of comma separated lists and provide a sorted array of strings to match PS output
|
45
|
-
|
46
|
-
|
45
|
+
coerce: proc { |d| d.is_a?(String) ? d.split(/\s*,\s*/).sort : Array(d).sort.map(&:to_s) },
|
46
|
+
description: "The local port the firewall rule applies to."
|
47
47
|
|
48
48
|
property :remote_address, String,
|
49
|
-
|
49
|
+
description: "The remote address the firewall rule applies to."
|
50
50
|
|
51
51
|
property :remote_port, [String, Integer, Array],
|
52
52
|
# split various formats of comma separated lists and provide a sorted array of strings to match PS output
|
53
|
-
|
54
|
-
|
53
|
+
coerce: proc { |d| d.is_a?(String) ? d.split(/\s*,\s*/).sort : Array(d).sort.map(&:to_s) },
|
54
|
+
description: "The remote port the firewall rule applies to."
|
55
55
|
|
56
56
|
property :direction, [Symbol, String],
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
default: :inbound, equal_to: %i{inbound outbound},
|
58
|
+
description: "The direction of the firewall rule. Direction means either inbound or outbound traffic.",
|
59
|
+
coerce: proc { |d| d.is_a?(String) ? d.downcase.to_sym : d }
|
60
60
|
|
61
61
|
property :protocol, String,
|
62
|
-
|
63
|
-
|
62
|
+
default: "TCP",
|
63
|
+
description: "The protocol the firewall rule applies to."
|
64
64
|
|
65
65
|
property :firewall_action, [Symbol, String],
|
66
|
-
|
67
|
-
|
68
|
-
|
66
|
+
default: :allow, equal_to: %i{allow block notconfigured},
|
67
|
+
description: "The action of the firewall rule.",
|
68
|
+
coerce: proc { |f| f.is_a?(String) ? f.downcase.to_sym : f }
|
69
69
|
|
70
70
|
property :profile, [Symbol, String],
|
71
|
-
|
72
|
-
|
73
|
-
|
71
|
+
default: :any, equal_to: %i{public private domain any notapplicable},
|
72
|
+
description: "The profile the firewall rule applies to.",
|
73
|
+
coerce: proc { |p| p.is_a?(String) ? p.downcase.to_sym : p }
|
74
74
|
|
75
75
|
property :program, String,
|
76
|
-
|
76
|
+
description: "The program the firewall rule applies to."
|
77
77
|
|
78
78
|
property :service, String,
|
79
|
-
|
79
|
+
description: "The service the firewall rule applies to."
|
80
80
|
|
81
81
|
property :interface_type, [Symbol, String],
|
82
|
-
|
83
|
-
|
84
|
-
|
82
|
+
default: :any, equal_to: %i{any wireless wired remoteaccess},
|
83
|
+
description: "The interface type the firewall rule applies to.",
|
84
|
+
coerce: proc { |i| i.is_a?(String) ? i.downcase.to_sym : i }
|
85
85
|
|
86
86
|
property :enabled, [TrueClass, FalseClass],
|
87
|
-
|
88
|
-
|
87
|
+
default: true,
|
88
|
+
description: "Whether or not to enable the firewall rule."
|
89
89
|
|
90
90
|
alias_method :localip, :local_address
|
91
91
|
alias_method :remoteip, :remote_address
|
@@ -120,10 +120,10 @@ class Chef
|
|
120
120
|
|
121
121
|
if current_resource
|
122
122
|
converge_if_changed :rule_name, :local_address, :local_port, :remote_address, :remote_port, :direction,
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
123
|
+
:protocol, :firewall_action, :profile, :program, :service, :interface_type, :enabled do
|
124
|
+
cmd = firewall_command("Set")
|
125
|
+
powershell_out!(cmd)
|
126
|
+
end
|
127
127
|
else
|
128
128
|
converge_by("create firewall rule #{new_resource.rule_name}") do
|
129
129
|
cmd = firewall_command("New")
|
@@ -152,9 +152,9 @@ class Chef
|
|
152
152
|
cmd << " -DisplayName '#{new_resource.rule_name}'" if cmdlet_type == "New"
|
153
153
|
cmd << " -Description '#{new_resource.description}'" if new_resource.description
|
154
154
|
cmd << " -LocalAddress '#{new_resource.local_address}'" if new_resource.local_address
|
155
|
-
cmd << " -LocalPort #{new_resource.local_port.join(
|
155
|
+
cmd << " -LocalPort #{new_resource.local_port.join(",")}" if new_resource.local_port
|
156
156
|
cmd << " -RemoteAddress '#{new_resource.remote_address}'" if new_resource.remote_address
|
157
|
-
cmd << " -RemotePort #{new_resource.remote_port.join(
|
157
|
+
cmd << " -RemotePort #{new_resource.remote_port.join(",")}" if new_resource.remote_port
|
158
158
|
cmd << " -Direction '#{new_resource.direction}'" if new_resource.direction
|
159
159
|
cmd << " -Protocol '#{new_resource.protocol}'" if new_resource.protocol
|
160
160
|
cmd << " -Action '#{new_resource.firewall_action}'" if new_resource.firewall_action
|