chef 15.11.3-universal-mingw32 → 16.1.16-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 -7
- data/README.md +1 -1
- data/Rakefile +44 -16
- data/chef.gemspec +6 -4
- data/distro/powershell/chef/chef.psm1 +3 -3
- data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
- data/lib/chef/action_collection.rb +16 -5
- data/lib/chef/application.rb +33 -54
- data/lib/chef/application/apply.rb +18 -1
- data/lib/chef/application/base.rb +8 -3
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_class.rb +4 -4
- 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/rest_list_entry.rb +6 -2
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +3 -3
- 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 +3 -3
- data/lib/chef/client.rb +16 -14
- data/lib/chef/config.rb +1 -1
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +1 -1
- data/lib/chef/cookbook/metadata.rb +45 -22
- 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 +38 -3
- data/lib/chef/data_collector.rb +1 -1
- data/lib/chef/data_collector/error_handlers.rb +1 -1
- data/lib/chef/data_collector/run_end_message.rb +7 -1
- data/lib/chef/decorator/lazy_array.rb +2 -2
- data/lib/chef/deprecated.rb +4 -0
- data/lib/chef/digester.rb +4 -4
- data/lib/chef/dist.rb +8 -0
- data/lib/chef/dsl/chef_vault.rb +84 -0
- data/lib/chef/dsl/declare_resource.rb +7 -5
- data/lib/chef/dsl/platform_introspection.rb +3 -2
- data/lib/chef/dsl/recipe.rb +7 -12
- data/lib/chef/dsl/universal.rb +3 -7
- 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/event_dispatch/base.rb +3 -0
- data/lib/chef/formatters/base.rb +1 -1
- data/lib/chef/formatters/doc.rb +1 -1
- data/lib/chef/formatters/indentable_output_stream.rb +7 -16
- data/lib/chef/http.rb +1 -1
- data/lib/chef/http/decompressor.rb +1 -1
- data/lib/chef/http/http_request.rb +3 -2
- data/lib/chef/json_compat.rb +1 -1
- data/lib/chef/key.rb +1 -1
- data/lib/chef/knife.rb +2 -4
- data/lib/chef/knife/acl_add.rb +57 -0
- data/lib/chef/knife/acl_base.rb +183 -0
- data/lib/chef/knife/acl_bulk_add.rb +78 -0
- data/lib/chef/knife/acl_bulk_remove.rb +83 -0
- data/lib/chef/knife/acl_remove.rb +62 -0
- data/lib/chef/knife/acl_show.rb +56 -0
- data/lib/chef/knife/bootstrap.rb +84 -90
- data/lib/chef/knife/bootstrap/chef_vault_handler.rb +2 -2
- data/lib/chef/knife/bootstrap/client_builder.rb +2 -2
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +11 -11
- data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +12 -12
- data/lib/chef/knife/core/bootstrap_context.rb +63 -60
- data/lib/chef/knife/core/generic_presenter.rb +4 -3
- data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
- data/lib/chef/knife/core/node_presenter.rb +2 -2
- data/lib/chef/knife/core/status_presenter.rb +5 -5
- data/lib/chef/knife/core/subcommand_loader.rb +1 -1
- data/lib/chef/knife/core/ui.rb +17 -1
- data/lib/chef/knife/core/windows_bootstrap_context.rb +44 -42
- data/lib/chef/knife/data_bag_secret_options.rb +18 -45
- data/lib/chef/knife/group_add.rb +55 -0
- data/lib/chef/knife/{cookbook_site_download.rb → group_create.rb} +21 -12
- data/lib/chef/knife/group_destroy.rb +53 -0
- data/lib/chef/knife/{cookbook_site_list.rb → group_list.rb} +14 -11
- data/lib/chef/knife/group_remove.rb +56 -0
- data/lib/chef/knife/{cookbook_site_install.rb → group_show.rb} +21 -12
- data/lib/chef/knife/key_create_base.rb +1 -1
- data/lib/chef/knife/key_edit_base.rb +1 -1
- data/lib/chef/knife/ssh.rb +12 -31
- data/lib/chef/knife/status.rb +3 -3
- data/lib/chef/knife/supermarket_download.rb +1 -2
- data/lib/chef/knife/supermarket_install.rb +2 -3
- data/lib/chef/knife/supermarket_list.rb +1 -2
- data/lib/chef/knife/supermarket_search.rb +1 -2
- data/lib/chef/knife/supermarket_share.rb +1 -2
- data/lib/chef/knife/supermarket_show.rb +1 -2
- data/lib/chef/knife/supermarket_unshare.rb +1 -2
- data/lib/chef/knife/{cookbook_site_show.rb → user_dissociate.rb} +15 -13
- data/lib/chef/knife/{cookbook_site_search.rb → user_invite_add.rb} +16 -13
- data/lib/chef/knife/user_invite_list.rb +34 -0
- data/lib/chef/knife/user_invite_rescind.rb +63 -0
- data/lib/chef/knife/yaml_convert.rb +91 -0
- data/lib/chef/mixin/api_version_request_handling.rb +1 -1
- data/lib/chef/mixin/checksum.rb +0 -1
- data/lib/chef/mixin/openssl_helper.rb +4 -4
- data/lib/chef/mixin/powershell_exec.rb +10 -1
- data/lib/chef/mixin/powershell_out.rb +1 -1
- data/lib/chef/mixin/properties.rb +16 -2
- data/lib/chef/mixin/shell_out.rb +1 -5
- data/lib/chef/monkey_patches/net_http.rb +0 -4
- data/lib/chef/node.rb +18 -6
- data/lib/chef/node/attribute.rb +2 -2
- data/lib/chef/node/immutable_collections.rb +1 -1
- data/lib/chef/node/mixin/immutablize_array.rb +4 -0
- data/lib/chef/node/mixin/immutablize_hash.rb +3 -0
- data/lib/chef/node_map.rb +5 -31
- data/lib/chef/platform/priority_map.rb +4 -4
- data/lib/chef/platform/query_helpers.rb +6 -34
- data/lib/chef/policy_builder/policyfile.rb +1 -1
- data/lib/chef/powershell.rb +14 -0
- data/lib/chef/property.rb +24 -6
- data/lib/chef/provider.rb +40 -6
- data/lib/chef/provider/cron.rb +2 -2
- data/lib/chef/provider/directory.rb +3 -3
- data/lib/chef/provider/dsc_resource.rb +1 -1
- data/lib/chef/provider/dsc_script.rb +1 -1
- data/lib/chef/provider/execute.rb +3 -9
- data/lib/chef/provider/file.rb +6 -6
- data/lib/chef/provider/git.rb +84 -27
- data/lib/chef/provider/group.rb +4 -4
- data/lib/chef/provider/http_request.rb +6 -6
- data/lib/chef/provider/ifconfig.rb +4 -4
- data/lib/chef/provider/launchd.rb +45 -64
- data/lib/chef/provider/link.rb +2 -2
- data/lib/chef/provider/mount.rb +5 -5
- data/lib/chef/provider/osx_profile.rb +7 -3
- data/lib/chef/provider/package.rb +2 -2
- data/lib/chef/provider/package/cab.rb +5 -6
- data/lib/chef/provider/package/chocolatey.rb +1 -3
- data/lib/chef/provider/package/dnf.rb +66 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +85 -26
- data/lib/chef/provider/package/dnf/python_helper.rb +79 -36
- data/lib/chef/provider/package/dnf/version.rb +5 -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 +107 -43
- data/lib/chef/provider/package/macports.rb +0 -2
- data/lib/chef/provider/package/msu.rb +4 -1
- data/lib/chef/provider/package/pacman.rb +25 -34
- data/lib/chef/provider/package/portage.rb +1 -0
- data/lib/chef/provider/package/powershell.rb +1 -1
- data/lib/chef/provider/package/rubygems.rb +30 -3
- data/lib/chef/provider/package/windows.rb +29 -53
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/yum.rb +1 -9
- data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
- data/lib/chef/provider/package/zypper.rb +0 -1
- data/lib/chef/provider/powershell_script.rb +5 -11
- data/lib/chef/provider/registry_key.rb +4 -4
- data/lib/chef/provider/remote_directory.rb +5 -5
- data/lib/chef/provider/remote_file/ftp.rb +3 -2
- data/lib/chef/provider/remote_file/local_file.rb +2 -1
- data/lib/chef/provider/remote_file/sftp.rb +3 -2
- data/lib/chef/provider/route.rb +5 -3
- data/lib/chef/provider/ruby_block.rb +1 -1
- data/lib/chef/provider/script.rb +2 -2
- data/lib/chef/provider/service.rb +8 -8
- data/lib/chef/provider/service/aixinit.rb +1 -1
- data/lib/chef/provider/service/arch.rb +1 -1
- data/lib/chef/provider/service/debian.rb +30 -28
- data/lib/chef/provider/service/macosx.rb +16 -10
- data/lib/chef/provider/service/systemd.rb +12 -12
- data/lib/chef/provider/service/upstart.rb +1 -1
- data/lib/chef/provider/service/windows.rb +5 -11
- data/lib/chef/provider/subversion.rb +25 -5
- data/lib/chef/provider/systemd_unit.rb +26 -25
- data/lib/chef/provider/user.rb +6 -6
- data/lib/chef/provider/user/aix.rb +1 -1
- data/lib/chef/provider/user/dscl.rb +6 -6
- data/lib/chef/provider/user/mac.rb +20 -15
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/provider/windows_env.rb +3 -3
- data/lib/chef/provider/windows_script.rb +2 -2
- data/lib/chef/provider/windows_task.rb +10 -10
- data/lib/chef/providers.rb +0 -6
- data/lib/chef/recipe.rb +36 -0
- data/lib/chef/resource.rb +44 -57
- data/lib/chef/resource/action_class.rb +24 -22
- data/lib/chef/resource/alternatives.rb +210 -0
- data/lib/chef/resource/apt_package.rb +33 -3
- data/lib/chef/resource/apt_preference.rb +103 -7
- data/lib/chef/resource/apt_repository.rb +357 -18
- data/lib/chef/resource/apt_update.rb +58 -5
- data/lib/chef/resource/archive_file.rb +6 -5
- data/lib/chef/resource/bash.rb +3 -1
- data/lib/chef/resource/batch.rb +1 -1
- data/lib/chef/resource/bff_package.rb +10 -2
- data/lib/chef/resource/breakpoint.rb +1 -2
- data/lib/chef/resource/build_essential.rb +49 -51
- data/lib/chef/resource/cab_package.rb +9 -2
- data/lib/chef/resource/chef_client_cron.rb +228 -0
- data/lib/chef/resource/chef_client_scheduled_task.rb +201 -0
- data/lib/chef/resource/chef_client_systemd_timer.rb +180 -0
- data/lib/chef/resource/chef_gem.rb +15 -18
- data/lib/chef/resource/chef_handler.rb +5 -4
- data/lib/chef/resource/chef_sleep.rb +7 -5
- data/lib/chef/resource/chef_vault_secret.rb +135 -0
- data/lib/chef/resource/chocolatey_config.rb +8 -4
- data/lib/chef/resource/chocolatey_feature.rb +7 -4
- data/lib/chef/resource/chocolatey_package.rb +7 -4
- data/lib/chef/resource/chocolatey_source.rb +7 -4
- data/lib/chef/resource/cookbook_file.rb +4 -3
- data/lib/chef/resource/cron.rb +34 -80
- data/lib/chef/resource/cron_access.rb +10 -6
- data/lib/chef/resource/cron_d.rb +44 -95
- data/lib/chef/resource/csh.rb +3 -1
- data/lib/chef/resource/directory.rb +3 -3
- data/lib/chef/resource/dmg_package.rb +22 -19
- data/lib/chef/resource/dnf_package.rb +3 -4
- data/lib/chef/resource/dpkg_package.rb +3 -2
- data/lib/chef/resource/dsc_resource.rb +6 -4
- data/lib/chef/resource/dsc_script.rb +3 -2
- data/lib/chef/resource/execute.rb +15 -14
- data/lib/chef/resource/file.rb +14 -9
- data/lib/chef/resource/freebsd_package.rb +3 -2
- data/lib/chef/resource/gem_package.rb +19 -11
- data/lib/chef/resource/group.rb +5 -2
- data/lib/chef/resource/helpers/cron_validations.rb +98 -0
- data/lib/chef/resource/homebrew_cask.rb +3 -2
- data/lib/chef/resource/homebrew_package.rb +5 -3
- data/lib/chef/resource/homebrew_tap.rb +3 -2
- data/lib/chef/resource/hostname.rb +26 -20
- data/lib/chef/resource/http_request.rb +1 -2
- data/lib/chef/resource/ifconfig.rb +8 -8
- data/lib/chef/resource/ips_package.rb +11 -3
- data/lib/chef/resource/kernel_module.rb +30 -30
- data/lib/chef/resource/ksh.rb +3 -1
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/link.rb +5 -27
- data/lib/chef/resource/locale.rb +60 -26
- data/lib/chef/resource/log.rb +13 -2
- data/lib/chef/resource/lwrp_base.rb +1 -1
- data/lib/chef/resource/macos_userdefaults.rb +18 -10
- data/lib/chef/resource/macosx_service.rb +3 -2
- data/lib/chef/resource/macports_package.rb +10 -2
- data/lib/chef/resource/mdadm.rb +63 -3
- data/lib/chef/resource/mount.rb +4 -1
- data/lib/chef/resource/msu_package.rb +19 -2
- data/lib/chef/resource/notify_group.rb +8 -3
- data/lib/chef/resource/ohai.rb +20 -4
- data/lib/chef/resource/ohai_hint.rb +4 -13
- data/lib/chef/resource/openbsd_package.rb +10 -2
- data/lib/chef/resource/openssl_dhparam.rb +11 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +24 -2
- data/lib/chef/resource/openssl_ec_public_key.rb +22 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +21 -2
- data/lib/chef/resource/openssl_rsa_public_key.rb +23 -2
- data/lib/chef/resource/openssl_x509_certificate.rb +38 -2
- data/lib/chef/resource/openssl_x509_crl.rb +13 -2
- data/lib/chef/resource/openssl_x509_request.rb +38 -2
- data/lib/chef/resource/osx_profile.rb +4 -3
- data/lib/chef/resource/package.rb +3 -2
- data/lib/chef/resource/pacman_package.rb +3 -2
- data/lib/chef/resource/paludis_package.rb +13 -4
- data/lib/chef/resource/perl.rb +3 -1
- data/lib/chef/resource/plist.rb +207 -0
- data/lib/chef/resource/portage_package.rb +14 -4
- data/lib/chef/resource/powershell_package.rb +2 -4
- data/lib/chef/resource/powershell_package_source.rb +4 -2
- data/lib/chef/resource/powershell_script.rb +8 -18
- data/lib/chef/resource/python.rb +3 -1
- data/lib/chef/resource/reboot.rb +1 -2
- data/lib/chef/resource/registry_key.rb +2 -3
- data/lib/chef/resource/remote_directory.rb +3 -1
- data/lib/chef/resource/remote_file.rb +3 -2
- data/lib/chef/resource/rhsm_errata.rb +1 -4
- data/lib/chef/resource/rhsm_errata_level.rb +1 -2
- data/lib/chef/resource/rhsm_register.rb +3 -3
- data/lib/chef/resource/rhsm_repo.rb +4 -3
- data/lib/chef/resource/rhsm_subscription.rb +5 -4
- data/lib/chef/resource/route.rb +6 -2
- data/lib/chef/resource/rpm_package.rb +13 -3
- data/lib/chef/resource/ruby.rb +3 -1
- data/lib/chef/resource/ruby_block.rb +2 -5
- data/lib/chef/resource/scm/_scm.rb +49 -0
- data/lib/chef/resource/{scm.rb → scm/git.rb} +16 -30
- data/lib/chef/resource/{subversion.rb → scm/subversion.rb} +10 -7
- data/lib/chef/resource/script.rb +7 -4
- data/lib/chef/resource/service.rb +7 -8
- data/lib/chef/resource/smartos_package.rb +10 -2
- data/lib/chef/resource/snap_package.rb +4 -2
- data/lib/chef/resource/solaris_package.rb +10 -2
- data/lib/chef/resource/ssh_known_hosts_entry.rb +6 -3
- data/lib/chef/resource/sudo.rb +11 -11
- data/lib/chef/resource/support/cron.d.erb +1 -1
- data/lib/chef/resource/support/cron_access.erb +1 -1
- data/lib/chef/resource/support/sudoer.erb +1 -2
- data/lib/chef/resource/support/ulimit.erb +41 -0
- data/lib/chef/resource/swap_file.rb +7 -5
- data/lib/chef/resource/sysctl.rb +63 -4
- data/lib/chef/resource/systemd_unit.rb +6 -4
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +8 -19
- data/lib/chef/resource/user.rb +3 -5
- data/lib/chef/resource/user/aix_user.rb +0 -2
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +0 -2
- data/lib/chef/resource/user/mac_user.rb +1 -1
- data/lib/chef/resource/user/pw_user.rb +0 -2
- data/lib/chef/resource/user/solaris_user.rb +0 -2
- data/lib/chef/resource/user/windows_user.rb +0 -2
- data/lib/chef/resource/user_ulimit.rb +116 -0
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
- data/lib/chef/resource/windows_ad_join.rb +20 -7
- data/lib/chef/resource/windows_auto_run.rb +2 -3
- data/lib/chef/resource/windows_certificate.rb +3 -3
- data/lib/chef/resource/windows_dfs_folder.rb +1 -2
- data/lib/chef/resource/windows_dfs_namespace.rb +1 -2
- data/lib/chef/resource/windows_dfs_server.rb +2 -3
- data/lib/chef/resource/windows_dns_record.rb +0 -1
- data/lib/chef/resource/windows_dns_zone.rb +0 -1
- data/lib/chef/resource/windows_env.rb +12 -4
- data/lib/chef/resource/windows_feature.rb +59 -4
- data/lib/chef/resource/windows_feature_dism.rb +24 -24
- data/lib/chef/resource/windows_feature_powershell.rb +44 -78
- data/lib/chef/resource/windows_firewall_rule.rb +121 -8
- data/lib/chef/resource/windows_font.rb +10 -2
- data/lib/chef/resource/windows_package.rb +76 -7
- data/lib/chef/resource/windows_pagefile.rb +31 -4
- data/lib/chef/resource/windows_path.rb +18 -2
- data/lib/chef/resource/windows_printer.rb +26 -7
- data/lib/chef/resource/windows_printer_port.rb +29 -2
- data/lib/chef/resource/windows_script.rb +3 -4
- data/lib/chef/resource/windows_security_policy.rb +119 -0
- data/lib/chef/resource/windows_service.rb +46 -32
- data/lib/chef/resource/windows_share.rb +22 -6
- data/lib/chef/resource/windows_shortcut.rb +13 -3
- data/lib/chef/resource/windows_task.rb +129 -16
- data/lib/chef/resource/windows_uac.rb +20 -2
- data/lib/chef/resource/windows_user_privilege.rb +199 -0
- data/lib/chef/resource/windows_workgroup.rb +19 -4
- data/lib/chef/resource/yum_package.rb +91 -7
- data/lib/chef/resource/yum_repository.rb +30 -12
- data/lib/chef/resource/zypper_package.rb +32 -5
- data/lib/chef/resource/zypper_repository.rb +19 -6
- data/lib/chef/resource_builder.rb +8 -0
- data/lib/chef/resource_inspector.rb +3 -2
- data/lib/chef/resource_resolver.rb +7 -14
- data/lib/chef/resources.rb +11 -3
- data/lib/chef/run_context/cookbook_compiler.rb +29 -5
- data/lib/chef/scan_access_control.rb +1 -1
- data/lib/chef/shell.rb +22 -0
- data/lib/chef/shell/ext.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 +1 -1
- data/lib/chef/win32/api/net.rb +1 -0
- data/lib/chef/win32/api/security.rb +6 -0
- data/lib/chef/win32/file.rb +1 -9
- data/lib/chef/win32/mutex.rb +1 -1
- data/lib/chef/win32/net.rb +1 -0
- data/lib/chef/win32/security.rb +40 -2
- data/lib/chef/win32/security/sid.rb +4 -4
- data/spec/functional/assets/inittest +8 -7
- data/spec/functional/knife/ssh_spec.rb +23 -19
- data/spec/functional/resource/cron_spec.rb +10 -29
- data/spec/functional/resource/dnf_package_spec.rb +441 -156
- data/spec/functional/resource/git_spec.rb +184 -134
- data/spec/functional/resource/insserv_spec.rb +1 -1
- data/spec/functional/resource/launchd_spec.rb +232 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/locale_spec.rb +13 -2
- data/spec/functional/resource/msu_package_spec.rb +5 -2
- data/spec/functional/resource/powershell_script_spec.rb +7 -68
- data/spec/functional/resource/remote_file_spec.rb +1 -1
- data/spec/functional/resource/windows_security_policy_spec.rb +90 -0
- data/spec/functional/resource/windows_task_spec.rb +4 -4
- data/spec/functional/resource/windows_user_privilege_spec.rb +193 -0
- data/spec/functional/run_lock_spec.rb +1 -1
- data/spec/functional/shell_spec.rb +1 -1
- data/spec/functional/util/powershell/cmdlet_spec.rb +1 -1
- data/spec/functional/version_spec.rb +1 -1
- data/spec/functional/win32/registry_spec.rb +0 -6
- data/spec/functional/win32/security_spec.rb +22 -0
- data/spec/integration/client/client_spec.rb +123 -2
- data/spec/integration/knife/cookbook_show_spec.rb +28 -26
- data/spec/integration/knife/data_bag_show_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +34 -6
- data/spec/integration/knife/redirection_spec.rb +2 -2
- data/spec/integration/knife/show_spec.rb +32 -3
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +3 -3
- data/spec/integration/recipes/noop_resource_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +49 -20
- data/spec/integration/recipes/notifying_block_spec.rb +8 -5
- data/spec/integration/recipes/provider_choice.rb +2 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +45 -143
- data/spec/integration/recipes/resource_action_spec.rb +16 -11
- data/spec/integration/recipes/resource_converge_if_changed_spec.rb +1 -1
- data/spec/integration/recipes/resource_load_spec.rb +133 -12
- data/spec/integration/recipes/use_partial_spec.rb +112 -0
- data/spec/integration/solo/solo_spec.rb +3 -3
- data/spec/spec_helper.rb +18 -3
- data/spec/support/chef_helpers.rb +2 -2
- data/spec/support/lib/chef/resource/zen_follower.rb +2 -0
- data/spec/support/platform_helpers.rb +2 -20
- data/spec/support/recipe_dsl_helper.rb +83 -0
- data/spec/support/shared/functional/http.rb +2 -2
- data/spec/support/shared/functional/windows_script.rb +3 -16
- data/spec/support/shared/integration/knife_support.rb +9 -6
- 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/apply_spec.rb +3 -0
- data/spec/unit/application/client_spec.rb +5 -1
- data/spec/unit/application_spec.rb +1 -2
- data/spec/unit/client_spec.rb +7 -5
- data/spec/unit/cookbook/gem_installer_spec.rb +2 -2
- data/spec/unit/cookbook/metadata_spec.rb +38 -19
- data/spec/unit/data_collector_spec.rb +39 -18
- data/spec/unit/file_access_control_spec.rb +1 -1
- data/spec/unit/json_compat_spec.rb +1 -1
- data/spec/unit/knife/bootstrap/chef_vault_handler_spec.rb +15 -15
- data/spec/unit/knife/bootstrap/client_builder_spec.rb +9 -9
- data/spec/unit/knife/bootstrap_spec.rb +20 -38
- data/spec/unit/knife/cookbook_show_spec.rb +1 -0
- data/spec/unit/knife/core/bootstrap_context_spec.rb +23 -43
- data/spec/unit/knife/core/ui_spec.rb +16 -0
- data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +9 -63
- data/spec/unit/knife/data_bag_secret_options_spec.rb +22 -14
- data/spec/unit/knife/ssh_spec.rb +8 -111
- data/spec/unit/knife/status_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +18 -0
- data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
- data/spec/unit/mixin/powershell_exec_spec.rb +10 -0
- data/spec/unit/mixin/shell_out_spec.rb +25 -31
- data/spec/unit/node/attribute_spec.rb +3 -3
- data/spec/unit/node_spec.rb +24 -0
- data/spec/unit/platform/query_helpers_spec.rb +0 -143
- data/spec/unit/property/state_spec.rb +12 -7
- data/spec/unit/property/validation_spec.rb +25 -1
- data/spec/unit/property_spec.rb +12 -9
- data/spec/unit/provider/apt_preference_spec.rb +14 -10
- data/spec/unit/provider/apt_repository_spec.rb +34 -36
- data/spec/unit/provider/apt_update_spec.rb +12 -11
- data/spec/unit/provider/cookbook_file_spec.rb +4 -4
- data/spec/unit/provider/cron_spec.rb +2 -2
- data/spec/unit/provider/directory_spec.rb +4 -15
- data/spec/unit/provider/file_spec.rb +4 -4
- data/spec/unit/provider/git_spec.rb +41 -1
- data/spec/unit/provider/group/groupadd_spec.rb +1 -1
- data/spec/unit/provider/launchd_spec.rb +8 -50
- data/spec/unit/provider/link_spec.rb +0 -1
- data/spec/unit/provider/log_spec.rb +3 -3
- data/spec/unit/provider/mdadm_spec.rb +3 -3
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +1 -1
- data/spec/unit/provider/package/homebrew_spec.rb +280 -174
- data/spec/unit/provider/package/pacman_spec.rb +65 -147
- data/spec/unit/provider/package/portage_spec.rb +2 -2
- data/spec/unit/provider/package/powershell_spec.rb +3 -2
- data/spec/unit/provider/package/rubygems_spec.rb +211 -26
- data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
- data/spec/unit/provider/powershell_script_spec.rb +21 -61
- data/spec/unit/provider/remote_file_spec.rb +3 -4
- data/spec/unit/provider/service/debian_service_spec.rb +34 -13
- data/spec/unit/provider/service/macosx_spec.rb +210 -214
- data/spec/unit/provider/service/systemd_service_spec.rb +23 -23
- data/spec/unit/provider/subversion_spec.rb +4 -2
- data/spec/unit/provider/template_spec.rb +3 -4
- data/spec/unit/provider/zypper_repository_spec.rb +17 -17
- data/spec/unit/provider_resolver_spec.rb +4 -4
- data/spec/unit/recipe_spec.rb +68 -0
- data/spec/unit/resource/alternatives_spec.rb +120 -0
- data/spec/unit/resource/apt_preference_spec.rb +0 -18
- data/spec/unit/resource/apt_repository_spec.rb +0 -18
- data/spec/unit/resource/apt_update_spec.rb +0 -18
- data/spec/unit/resource/chef_client_cron_spec.rb +119 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +102 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +70 -0
- data/spec/unit/resource/chef_vault_secret_spec.rb +40 -0
- data/spec/unit/resource/chocolatey_source_spec.rb +2 -1
- data/spec/unit/resource/cron_d_spec.rb +6 -48
- data/spec/unit/resource/cron_spec.rb +4 -10
- data/spec/unit/resource/gem_package_spec.rb +3 -3
- data/spec/unit/resource/helpers/cron_validations_spec.rb +77 -0
- data/spec/unit/resource/link_spec.rb +0 -4
- data/spec/unit/resource/locale_spec.rb +0 -34
- data/spec/unit/resource/msu_package_spec.rb +4 -0
- data/spec/unit/resource/ohai_spec.rb +56 -2
- data/spec/unit/resource/plist_spec.rb +130 -0
- data/spec/unit/resource/powershell_script_spec.rb +0 -5
- data/spec/unit/resource/{git_spec.rb → scm/git_spec.rb} +50 -2
- data/spec/unit/resource/{scm_spec.rb → scm/scm.rb} +1 -52
- data/spec/unit/resource/{subversion_spec.rb → scm/subversion_spec.rb} +2 -3
- data/spec/unit/resource/service_spec.rb +4 -0
- data/spec/unit/resource/user_spec.rb +2 -2
- data/spec/unit/resource/user_ulimit_spec.rb +53 -0
- data/spec/unit/resource/windows_feature_dism_spec.rb +2 -17
- data/spec/unit/resource/windows_feature_powershell_spec.rb +2 -17
- data/spec/unit/resource/windows_firewall_rule_spec.rb +88 -41
- data/spec/unit/resource/windows_package_spec.rb +14 -0
- data/spec/unit/resource/windows_service_spec.rb +9 -0
- data/spec/unit/resource_reporter_spec.rb +2 -6
- data/spec/unit/resource_spec.rb +10 -3
- data/spec/unit/run_lock_spec.rb +1 -1
- data/spec/unit/scan_access_control_spec.rb +1 -1
- data/spec/unit/search/query_spec.rb +1 -1
- data/spec/unit/win32/registry_spec.rb +1 -1
- data/tasks/rspec.rb +6 -14
- metadata +92 -37
- data/lib/chef/dsl/core.rb +0 -52
- data/lib/chef/knife/cookbook_site_share.rb +0 -41
- data/lib/chef/knife/cookbook_site_unshare.rb +0 -41
- data/lib/chef/provider/apt_preference.rb +0 -93
- data/lib/chef/provider/apt_repository.rb +0 -358
- data/lib/chef/provider/apt_update.rb +0 -79
- data/lib/chef/provider/log.rb +0 -43
- data/lib/chef/provider/mdadm.rb +0 -85
- data/lib/chef/provider/ohai.rb +0 -45
- data/lib/chef/resource/git.rb +0 -37
- data/spec/unit/provider/ohai_spec.rb +0 -84
@@ -19,9 +19,7 @@
|
|
19
19
|
|
20
20
|
require "spec_helper"
|
21
21
|
|
22
|
-
|
23
|
-
let(:resource) { Chef::Resource::Scm.new("fakey_fakerton") }
|
24
|
-
|
22
|
+
shared_examples_for "an SCM resource" do
|
25
23
|
it "the destination property is the name_property" do
|
26
24
|
expect(resource.destination).to eql("fakey_fakerton")
|
27
25
|
end
|
@@ -78,55 +76,6 @@ describe Chef::Resource::Scm do
|
|
78
76
|
expect(resource.group).to eq(23)
|
79
77
|
end
|
80
78
|
|
81
|
-
it "takes the depth as an integer for shallow clones" do
|
82
|
-
resource.depth 5
|
83
|
-
expect(resource.depth).to eq(5)
|
84
|
-
expect { resource.depth "five" }.to raise_error(ArgumentError)
|
85
|
-
end
|
86
|
-
|
87
|
-
it "defaults to nil depth for a full clone" do
|
88
|
-
expect(resource.depth).to be_nil
|
89
|
-
end
|
90
|
-
|
91
|
-
it "takes a boolean for #enable_submodules" do
|
92
|
-
resource.enable_submodules true
|
93
|
-
expect(resource.enable_submodules).to be_truthy
|
94
|
-
expect { resource.enable_submodules "lolz" }.to raise_error(ArgumentError)
|
95
|
-
end
|
96
|
-
|
97
|
-
it "defaults to not enabling submodules" do
|
98
|
-
expect(resource.enable_submodules).to be_falsey
|
99
|
-
end
|
100
|
-
|
101
|
-
it "takes a boolean for #enable_checkout" do
|
102
|
-
resource.enable_checkout true
|
103
|
-
expect(resource.enable_checkout).to be_truthy
|
104
|
-
expect { resource.enable_checkout "lolz" }.to raise_error(ArgumentError)
|
105
|
-
end
|
106
|
-
|
107
|
-
it "defaults to enabling checkout" do
|
108
|
-
expect(resource.enable_checkout).to be_truthy
|
109
|
-
end
|
110
|
-
|
111
|
-
it "takes a string for the remote" do
|
112
|
-
resource.remote "opscode"
|
113
|
-
expect(resource.remote).to eql("opscode")
|
114
|
-
expect { resource.remote 1337 }.to raise_error(ArgumentError)
|
115
|
-
end
|
116
|
-
|
117
|
-
it "defaults to ``origin'' for the remote" do
|
118
|
-
expect(resource.remote).to eq("origin")
|
119
|
-
end
|
120
|
-
|
121
|
-
it "takes a string for the ssh wrapper" do
|
122
|
-
resource.ssh_wrapper "with_ssh_fu"
|
123
|
-
expect(resource.ssh_wrapper).to eql("with_ssh_fu")
|
124
|
-
end
|
125
|
-
|
126
|
-
it "defaults to nil for the ssh wrapper" do
|
127
|
-
expect(resource.ssh_wrapper).to be_nil
|
128
|
-
end
|
129
|
-
|
130
79
|
it "defaults to nil for the environment" do
|
131
80
|
expect(resource.environment).to be_nil
|
132
81
|
end
|
@@ -17,6 +17,7 @@
|
|
17
17
|
#
|
18
18
|
|
19
19
|
require "spec_helper"
|
20
|
+
require_relative "scm"
|
20
21
|
|
21
22
|
describe Chef::Resource::Subversion do
|
22
23
|
static_provider_resolution(
|
@@ -28,9 +29,7 @@ describe Chef::Resource::Subversion do
|
|
28
29
|
|
29
30
|
let(:resource) { Chef::Resource::Subversion.new("fakey_fakerton") }
|
30
31
|
|
31
|
-
|
32
|
-
expect(resource).to be_a_kind_of(Chef::Resource::Scm)
|
33
|
-
end
|
32
|
+
it_behaves_like "an SCM resource"
|
34
33
|
|
35
34
|
it "the destination property is the name_property" do
|
36
35
|
expect(resource.destination).to eql("fakey_fakerton")
|
@@ -145,6 +145,10 @@ describe Chef::Resource::Service do
|
|
145
145
|
expect(resource.timeout).to eql(1)
|
146
146
|
end
|
147
147
|
|
148
|
+
it "defaults the timeout property to 900 (seconds)" do
|
149
|
+
expect(resource.timeout).to eql(900)
|
150
|
+
end
|
151
|
+
|
148
152
|
%w{enabled running}.each do |prop|
|
149
153
|
it "accepts true for #{prop} property" do
|
150
154
|
resource.send(prop, true)
|
@@ -21,8 +21,8 @@ require "spec_helper"
|
|
21
21
|
describe Chef::Resource::User, "initialize" do
|
22
22
|
let(:resource) { Chef::Resource::User.new("notarealuser") }
|
23
23
|
|
24
|
-
it "sets the resource_name to
|
25
|
-
expect(resource.resource_name).to eql(
|
24
|
+
it "sets the resource_name to nil" do
|
25
|
+
expect(resource.resource_name).to eql(nil)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "username property is the name property" do
|
@@ -0,0 +1,53 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Tim Smith (<tsmith@chef.io>)
|
3
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
4
|
+
# License:: Apache License, Version 2.0
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
require "spec_helper"
|
20
|
+
|
21
|
+
describe Chef::Resource::UserUlimit do
|
22
|
+
let(:node) { Chef::Node.new }
|
23
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
24
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
25
|
+
let(:resource) { Chef::Resource::UserUlimit.new("fakey_fakerton", run_context) }
|
26
|
+
|
27
|
+
it "the username property is the name_property" do
|
28
|
+
expect(resource.username).to eql("fakey_fakerton")
|
29
|
+
end
|
30
|
+
|
31
|
+
it "sets the default action as :create" do
|
32
|
+
expect(resource.action).to eql([:create])
|
33
|
+
end
|
34
|
+
|
35
|
+
it "coerces filename value to end in .conf" do
|
36
|
+
resource.filename("foo")
|
37
|
+
expect(resource.filename).to eql("foo.conf")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "if username is * then the filename defaults to 00_all_limits.conf" do
|
41
|
+
resource.username("*")
|
42
|
+
expect(resource.filename).to eql("00_all_limits.conf")
|
43
|
+
end
|
44
|
+
|
45
|
+
it "if username is NOT * then the filename defaults to USERNAME_limits.conf" do
|
46
|
+
expect(resource.filename).to eql("fakey_fakerton_limits.conf")
|
47
|
+
end
|
48
|
+
|
49
|
+
it "supports :create and :delete actions" do
|
50
|
+
expect { resource.action :create }.not_to raise_error
|
51
|
+
expect { resource.action :delete }.not_to raise_error
|
52
|
+
end
|
53
|
+
end
|
@@ -32,7 +32,6 @@ describe Chef::Resource::WindowsFeatureDism do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "the feature_name property is the name_property" do
|
35
|
-
node.automatic[:platform_version] = "6.2.9200"
|
36
35
|
expect(resource.feature_name).to eql(%w{snmp dhcp})
|
37
36
|
end
|
38
37
|
|
@@ -46,27 +45,13 @@ describe Chef::Resource::WindowsFeatureDism do
|
|
46
45
|
expect { resource.action :remove }.not_to raise_error
|
47
46
|
end
|
48
47
|
|
49
|
-
it "coerces comma separated lists of features to a lowercase array
|
50
|
-
node.automatic[:platform_version] = "6.2.9200"
|
48
|
+
it "coerces comma separated lists of features to a lowercase array" do
|
51
49
|
resource.feature_name "SNMP, DHCP"
|
52
50
|
expect(resource.feature_name).to eql(%w{snmp dhcp})
|
53
51
|
end
|
54
52
|
|
55
|
-
it "coerces a single feature as a String to a lowercase array
|
56
|
-
node.automatic[:platform_version] = "6.2.9200"
|
53
|
+
it "coerces a single feature as a String to a lowercase array" do
|
57
54
|
resource.feature_name "SNMP"
|
58
55
|
expect(resource.feature_name).to eql(["snmp"])
|
59
56
|
end
|
60
|
-
|
61
|
-
it "coerces comma separated lists of features to an array, but preserves case on < 2012" do
|
62
|
-
node.automatic[:platform_version] = "6.1.7601"
|
63
|
-
resource.feature_name "SNMP, DHCP"
|
64
|
-
expect(resource.feature_name).to eql(%w{SNMP DHCP})
|
65
|
-
end
|
66
|
-
|
67
|
-
it "coerces a single feature as a String to an array, but preserves case on < 2012" do
|
68
|
-
node.automatic[:platform_version] = "6.1.7601"
|
69
|
-
resource.feature_name "SNMP"
|
70
|
-
expect(resource.feature_name).to eql(["SNMP"])
|
71
|
-
end
|
72
57
|
end
|
@@ -32,7 +32,6 @@ describe Chef::Resource::WindowsFeaturePowershell do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "the feature_name property is the name_property" do
|
35
|
-
node.automatic[:platform_version] = "6.2.9200"
|
36
35
|
expect(resource.feature_name).to eql(%w{snmp dhcp})
|
37
36
|
end
|
38
37
|
|
@@ -46,27 +45,13 @@ describe Chef::Resource::WindowsFeaturePowershell do
|
|
46
45
|
expect { resource.action :remove }.not_to raise_error
|
47
46
|
end
|
48
47
|
|
49
|
-
it "coerces comma separated lists of features to a lowercase array
|
50
|
-
node.automatic[:platform_version] = "6.2.9200"
|
48
|
+
it "coerces comma separated lists of features to a lowercase array" do
|
51
49
|
resource.feature_name "SNMP, DHCP"
|
52
50
|
expect(resource.feature_name).to eql(%w{snmp dhcp})
|
53
51
|
end
|
54
52
|
|
55
|
-
it "coerces a single feature as a String to a lowercase array
|
56
|
-
node.automatic[:platform_version] = "6.2.9200"
|
53
|
+
it "coerces a single feature as a String to a lowercase array" do
|
57
54
|
resource.feature_name "SNMP"
|
58
55
|
expect(resource.feature_name).to eql(["snmp"])
|
59
56
|
end
|
60
|
-
|
61
|
-
it "coerces comma separated lists of features to an array, but preserves case on < 2012" do
|
62
|
-
node.automatic[:platform_version] = "6.1.7601"
|
63
|
-
resource.feature_name "SNMP, DHCP"
|
64
|
-
expect(resource.feature_name).to eql(%w{SNMP DHCP})
|
65
|
-
end
|
66
|
-
|
67
|
-
it "coerces a single feature as a String to an array, but preserves case on < 2012" do
|
68
|
-
node.automatic[:platform_version] = "6.1.7601"
|
69
|
-
resource.feature_name "SNMP"
|
70
|
-
expect(resource.feature_name).to eql(["SNMP"])
|
71
|
-
end
|
72
57
|
end
|
@@ -19,7 +19,7 @@ require "spec_helper"
|
|
19
19
|
|
20
20
|
describe Chef::Resource::WindowsFirewallRule do
|
21
21
|
let(:resource) { Chef::Resource::WindowsFirewallRule.new("rule") }
|
22
|
-
let(:provider) { resource.provider_for_action(:
|
22
|
+
let(:provider) { resource.provider_for_action(:create) }
|
23
23
|
|
24
24
|
it "has a resource name of :windows_firewall_rule" do
|
25
25
|
expect(resource.resource_name).to eql(:windows_firewall_rule)
|
@@ -48,6 +48,11 @@ describe Chef::Resource::WindowsFirewallRule do
|
|
48
48
|
expect(resource.description).to eql("firewall rule")
|
49
49
|
end
|
50
50
|
|
51
|
+
it "the group property accepts strings" do
|
52
|
+
resource.group("New group")
|
53
|
+
expect(resource.group).to eql("New group")
|
54
|
+
end
|
55
|
+
|
51
56
|
it "the local_address property accepts strings" do
|
52
57
|
resource.local_address("192.168.1.1")
|
53
58
|
expect(resource.local_address).to eql("192.168.1.1")
|
@@ -125,6 +130,16 @@ describe Chef::Resource::WindowsFirewallRule do
|
|
125
130
|
expect(resource.protocol).to eql("TCP")
|
126
131
|
end
|
127
132
|
|
133
|
+
it "the icmp_type property accepts strings" do
|
134
|
+
resource.icmp_type("Any")
|
135
|
+
expect(resource.icmp_type).to eql("Any")
|
136
|
+
end
|
137
|
+
|
138
|
+
it "the icmp_type property accepts integers" do
|
139
|
+
resource.icmp_type(8)
|
140
|
+
expect(resource.icmp_type).to eql(8)
|
141
|
+
end
|
142
|
+
|
128
143
|
it "the firewall_action property accepts :allow, :block and :notconfigured" do
|
129
144
|
resource.firewall_action(:allow)
|
130
145
|
expect(resource.firewall_action).to eql(:allow)
|
@@ -234,224 +249,256 @@ describe Chef::Resource::WindowsFirewallRule do
|
|
234
249
|
|
235
250
|
context "#new" do
|
236
251
|
it "build a minimal command" do
|
237
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
252
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
238
253
|
end
|
239
254
|
|
240
255
|
it "sets a description" do
|
241
256
|
resource.description("New description")
|
242
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Description 'New description' -Direction 'inbound' -Protocol 'TCP' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
257
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Description 'New description' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
258
|
+
end
|
259
|
+
|
260
|
+
it "sets a displayname" do
|
261
|
+
resource.displayname("New displayname")
|
262
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'New displayname' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
263
|
+
end
|
264
|
+
|
265
|
+
it "sets a group" do
|
266
|
+
resource.group("New groupname")
|
267
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Group 'New groupname' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
243
268
|
end
|
244
269
|
|
245
270
|
it "sets LocalAddress" do
|
246
271
|
resource.local_address("127.0.0.1")
|
247
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
272
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -LocalAddress '127.0.0.1' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
248
273
|
end
|
249
274
|
|
250
275
|
it "sets LocalPort" do
|
251
276
|
resource.local_port("80")
|
252
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
277
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -LocalPort '80' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
253
278
|
end
|
254
279
|
|
255
280
|
it "sets LocalPort with int" do
|
256
281
|
resource.local_port(80)
|
257
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
282
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -LocalPort '80' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
258
283
|
end
|
259
284
|
|
260
285
|
it "sets multiple LocalPorts" do
|
261
286
|
resource.local_port(%w{80 RPC})
|
262
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
287
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -LocalPort '80', 'RPC' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
263
288
|
end
|
264
289
|
|
265
290
|
it "sets RemoteAddress" do
|
266
291
|
resource.remote_address("8.8.8.8")
|
267
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
292
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -RemoteAddress '8.8.8.8' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
268
293
|
end
|
269
294
|
|
270
295
|
it "sets RemotePort" do
|
271
296
|
resource.remote_port("443")
|
272
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
297
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -RemotePort '443' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
273
298
|
end
|
274
299
|
|
275
300
|
it "sets RemotePort with int" do
|
276
301
|
resource.remote_port(443)
|
277
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
302
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -RemotePort '443' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
278
303
|
end
|
279
304
|
|
280
305
|
it "sets multiple RemotePorts" do
|
281
306
|
resource.remote_port(%w{443 445})
|
282
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
307
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -RemotePort '443', '445' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
283
308
|
end
|
284
309
|
|
285
310
|
it "sets Direction" do
|
286
311
|
resource.direction(:outbound)
|
287
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
312
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'outbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
288
313
|
end
|
289
314
|
|
290
315
|
it "sets Protocol" do
|
291
316
|
resource.protocol("UDP")
|
292
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
317
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'UDP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
318
|
+
end
|
319
|
+
|
320
|
+
it "sets ICMP Protocol with type 8" do
|
321
|
+
resource.protocol("ICMPv6")
|
322
|
+
resource.icmp_type(8)
|
323
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'ICMPv6' -IcmpType '8' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
293
324
|
end
|
294
325
|
|
295
326
|
it "sets Action" do
|
296
327
|
resource.firewall_action(:block)
|
297
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
328
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'block' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
298
329
|
end
|
299
330
|
|
300
331
|
it "sets Profile" do
|
301
332
|
resource.profile(:private)
|
302
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
333
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'private' -InterfaceType 'any' -Enabled 'true'")
|
303
334
|
end
|
304
335
|
|
305
336
|
it "sets multiple Profiles (must be comma-plus-space delimited for PowerShell to treat as an array)" do
|
306
337
|
resource.profile(%i{private public})
|
307
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
338
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'private', 'public' -InterfaceType 'any' -Enabled 'true'")
|
308
339
|
end
|
309
340
|
|
310
341
|
it "sets Program" do
|
311
342
|
resource.program("C:/calc.exe")
|
312
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
343
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -Program 'C:/calc.exe' -InterfaceType 'any' -Enabled 'true'")
|
313
344
|
end
|
314
345
|
|
315
346
|
it "sets Service" do
|
316
347
|
resource.service("Spooler")
|
317
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
348
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -Service 'Spooler' -InterfaceType 'any' -Enabled 'true'")
|
318
349
|
end
|
319
350
|
|
320
351
|
it "sets InterfaceType" do
|
321
352
|
resource.interface_type(:wired)
|
322
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
353
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'wired' -Enabled 'true'")
|
323
354
|
end
|
324
355
|
|
325
356
|
it "sets Enabled" do
|
326
357
|
resource.enabled(false)
|
327
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -
|
358
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule' -DisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'false'")
|
328
359
|
end
|
329
360
|
|
330
|
-
it "sets all properties" do
|
361
|
+
it "sets all properties UDP" do
|
331
362
|
resource.rule_name("test_rule_the_second")
|
363
|
+
resource.displayname("some cool display name")
|
332
364
|
resource.description("some other rule")
|
365
|
+
resource.group("new group")
|
333
366
|
resource.local_address("192.168.40.40")
|
334
367
|
resource.local_port("80")
|
335
368
|
resource.remote_address("8.8.4.4")
|
336
369
|
resource.remote_port("8081")
|
337
370
|
resource.direction(:outbound)
|
338
371
|
resource.protocol("UDP")
|
372
|
+
resource.icmp_type("Any")
|
339
373
|
resource.firewall_action(:notconfigured)
|
340
374
|
resource.profile(:domain)
|
341
375
|
resource.program('%WINDIR%\System32\lsass.exe')
|
342
376
|
resource.service("SomeService")
|
343
377
|
resource.interface_type(:remoteaccess)
|
344
378
|
resource.enabled(false)
|
345
|
-
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule_the_second' -DisplayName '
|
379
|
+
expect(provider.firewall_command("New")).to eql("New-NetFirewallRule -Name 'test_rule_the_second' -DisplayName 'some cool display name' -Group 'new group' -Description 'some other rule' -LocalAddress '192.168.40.40' -LocalPort '80' -RemoteAddress '8.8.4.4' -RemotePort '8081' -Direction 'outbound' -Protocol 'UDP' -IcmpType 'Any' -Action 'notconfigured' -Profile 'domain' -Program '%WINDIR%\\System32\\lsass.exe' -Service 'SomeService' -InterfaceType 'remoteaccess' -Enabled 'false'")
|
346
380
|
end
|
347
381
|
end
|
348
382
|
|
349
383
|
context "#set" do
|
350
384
|
it "build a minimal command" do
|
351
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
385
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
386
|
+
end
|
387
|
+
|
388
|
+
it "sets a displayname" do
|
389
|
+
resource.displayname("New displayname")
|
390
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'New displayname' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
352
391
|
end
|
353
392
|
|
354
393
|
it "sets a description" do
|
355
394
|
resource.description("New description")
|
356
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -Description 'New description' -Direction 'inbound' -Protocol 'TCP' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
395
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Description 'New description' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
357
396
|
end
|
358
397
|
|
359
398
|
it "sets LocalAddress" do
|
360
399
|
resource.local_address("127.0.0.1")
|
361
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
400
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -LocalAddress '127.0.0.1' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
362
401
|
end
|
363
402
|
|
364
403
|
it "sets LocalPort" do
|
365
404
|
resource.local_port("80")
|
366
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
405
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -LocalPort '80' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
367
406
|
end
|
368
407
|
|
369
408
|
it "sets LocalPort with int" do
|
370
409
|
resource.local_port(80)
|
371
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
410
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -LocalPort '80' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
372
411
|
end
|
373
412
|
|
374
413
|
it "sets multiple LocalPorts (must be comma-plus-space delimited for PowerShell to treat as an array)" do
|
375
414
|
resource.local_port(%w{80 8080})
|
376
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
415
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -LocalPort '80', '8080' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
377
416
|
end
|
378
417
|
|
379
418
|
it "sets RemoteAddress" do
|
380
419
|
resource.remote_address("8.8.8.8")
|
381
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
420
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -RemoteAddress '8.8.8.8' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
382
421
|
end
|
383
422
|
|
384
423
|
it "sets RemotePort" do
|
385
424
|
resource.remote_port("443")
|
386
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
425
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -RemotePort '443' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
387
426
|
end
|
388
427
|
|
389
428
|
it "sets RemotePort with int" do
|
390
429
|
resource.remote_port(443)
|
391
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
430
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -RemotePort '443' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
392
431
|
end
|
393
432
|
|
394
433
|
it "sets multiple RemotePorts (must be comma-plus-space delimited for PowerShell to treat as an array)" do
|
395
434
|
resource.remote_port(%w{443 445})
|
396
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
435
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -RemotePort '443', '445' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
397
436
|
end
|
398
437
|
|
399
438
|
it "sets Direction" do
|
400
439
|
resource.direction(:outbound)
|
401
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
440
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'outbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
402
441
|
end
|
403
442
|
|
404
443
|
it "sets Protocol" do
|
405
444
|
resource.protocol("UDP")
|
406
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
445
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'UDP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
446
|
+
end
|
447
|
+
|
448
|
+
it "sets ICMP Protocol with type 8" do
|
449
|
+
resource.protocol("ICMPv6")
|
450
|
+
resource.icmp_type(8)
|
451
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'ICMPv6' -IcmpType '8' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
407
452
|
end
|
408
453
|
|
409
454
|
it "sets Action" do
|
410
455
|
resource.firewall_action(:block)
|
411
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
456
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'block' -Profile 'any' -InterfaceType 'any' -Enabled 'true'")
|
412
457
|
end
|
413
458
|
|
414
459
|
it "sets Profile" do
|
415
460
|
resource.profile(:private)
|
416
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
461
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'private' -InterfaceType 'any' -Enabled 'true'")
|
417
462
|
end
|
418
463
|
|
419
464
|
it "sets Program" do
|
420
465
|
resource.program("C:/calc.exe")
|
421
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
466
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -Program 'C:/calc.exe' -InterfaceType 'any' -Enabled 'true'")
|
422
467
|
end
|
423
468
|
|
424
469
|
it "sets Service" do
|
425
470
|
resource.service("Spooler")
|
426
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
471
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -Service 'Spooler' -InterfaceType 'any' -Enabled 'true'")
|
427
472
|
end
|
428
473
|
|
429
474
|
it "sets InterfaceType" do
|
430
475
|
resource.interface_type(:wired)
|
431
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
476
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'wired' -Enabled 'true'")
|
432
477
|
end
|
433
478
|
|
434
479
|
it "sets Enabled" do
|
435
480
|
resource.enabled(false)
|
436
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -
|
481
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule' -NewDisplayName 'test_rule' -Direction 'inbound' -Protocol 'TCP' -IcmpType 'Any' -Action 'allow' -Profile 'any' -InterfaceType 'any' -Enabled 'false'")
|
437
482
|
end
|
438
483
|
|
439
484
|
it "sets all properties" do
|
440
485
|
resource.rule_name("test_rule_the_second")
|
441
486
|
resource.description("some other rule")
|
487
|
+
resource.displayname("some cool display name")
|
442
488
|
resource.local_address("192.168.40.40")
|
443
489
|
resource.local_port("80")
|
444
490
|
resource.remote_address("8.8.4.4")
|
445
491
|
resource.remote_port("8081")
|
446
492
|
resource.direction(:outbound)
|
447
493
|
resource.protocol("UDP")
|
494
|
+
resource.icmp_type("Any")
|
448
495
|
resource.firewall_action(:notconfigured)
|
449
496
|
resource.profile(:domain)
|
450
497
|
resource.program('%WINDIR%\System32\lsass.exe')
|
451
498
|
resource.service("SomeService")
|
452
499
|
resource.interface_type(:remoteaccess)
|
453
500
|
resource.enabled(false)
|
454
|
-
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule_the_second' -Description 'some other rule' -LocalAddress '192.168.40.40' -LocalPort '80' -RemoteAddress '8.8.4.4' -RemotePort '8081' -Direction 'outbound' -Protocol 'UDP' -Action 'notconfigured' -Profile 'domain' -Program '%WINDIR%\\System32\\lsass.exe' -Service 'SomeService' -InterfaceType 'remoteaccess' -Enabled 'false'")
|
501
|
+
expect(provider.firewall_command("Set")).to eql("Set-NetFirewallRule -Name 'test_rule_the_second' -NewDisplayName 'some cool display name' -Description 'some other rule' -LocalAddress '192.168.40.40' -LocalPort '80' -RemoteAddress '8.8.4.4' -RemotePort '8081' -Direction 'outbound' -Protocol 'UDP' -IcmpType 'Any' -Action 'notconfigured' -Profile 'domain' -Program '%WINDIR%\\System32\\lsass.exe' -Service 'SomeService' -InterfaceType 'remoteaccess' -Enabled 'false'")
|
455
502
|
end
|
456
503
|
end
|
457
504
|
end
|