chef 17.10.95 → 18.1.0
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 +16 -8
- data/README.md +7 -7
- data/Rakefile +3 -22
- data/{chef-universal-mingw32.gemspec → chef-universal-mingw-ucrt.gemspec} +8 -7
- data/chef.gemspec +12 -5
- data/lib/chef/api_client_v1.rb +9 -1
- data/lib/chef/application/exit_code.rb +3 -3
- data/lib/chef/chef_fs/file_system.rb +21 -7
- data/lib/chef/client.rb +169 -17
- data/lib/chef/compliance/input.rb +1 -1
- data/lib/chef/compliance/profile.rb +1 -1
- data/lib/chef/compliance/profile_collection.rb +0 -1
- data/lib/chef/compliance/waiver.rb +1 -1
- data/lib/chef/cookbook/syntax_check.rb +2 -2
- data/lib/chef/dsl/reader_helpers.rb +1 -1
- data/lib/chef/dsl/rest_resource.rb +77 -0
- data/lib/chef/event_dispatch/base.rb +3 -0
- data/lib/chef/exceptions.rb +8 -0
- data/lib/chef/http/authenticator.rb +170 -3
- data/lib/chef/http/ssl_policies.rb +3 -3
- data/lib/chef/mixin/powershell_exec.rb +5 -28
- data/lib/chef/node/mixin/immutablize_array.rb +1 -0
- data/lib/chef/property.rb +13 -6
- data/lib/chef/provider/cron.rb +5 -1
- data/lib/chef/provider/group/windows.rb +1 -1
- data/lib/chef/provider/http_request.rb +11 -9
- data/lib/chef/provider/launchd.rb +1 -0
- data/lib/chef/provider/mount/linux.rb +5 -0
- data/lib/chef/provider/mount/mount.rb +8 -0
- data/lib/chef/provider/mount/windows.rb +1 -1
- data/lib/chef/provider/package/chocolatey.rb +1 -18
- data/lib/chef/provider/package/rubygems.rb +1 -1
- data/lib/chef/provider/package/snap.rb +1 -1
- data/lib/chef/provider/package/windows/msi.rb +2 -2
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
- data/lib/chef/provider/package/yum/yum_helper.py +5 -17
- data/lib/chef/provider/package/zypper/version.rb +60 -0
- data/lib/chef/provider/package/zypper.rb +47 -3
- data/lib/chef/provider/service/windows.rb +1 -1
- data/lib/chef/provider/user/aix.rb +5 -0
- data/lib/chef/provider/user/linux.rb +29 -0
- data/lib/chef/provider/user/mac.rb +1 -1
- data/lib/chef/provider/user.rb +46 -14
- data/lib/chef/provider/yum_repository.rb +13 -1
- data/lib/chef/provider.rb +1 -1
- data/lib/chef/recipe.rb +1 -1
- data/lib/chef/resource/_rest_resource.rb +389 -0
- data/lib/chef/resource/alternatives.rb +0 -1
- data/lib/chef/resource/apt_package.rb +2 -1
- data/lib/chef/resource/apt_preference.rb +0 -1
- data/lib/chef/resource/apt_repository.rb +0 -1
- data/lib/chef/resource/apt_update.rb +0 -1
- data/lib/chef/resource/archive_file.rb +0 -1
- data/lib/chef/resource/bash.rb +0 -1
- data/lib/chef/resource/batch.rb +0 -1
- data/lib/chef/resource/bff_package.rb +0 -1
- data/lib/chef/resource/breakpoint.rb +0 -1
- data/lib/chef/resource/build_essential.rb +0 -1
- data/lib/chef/resource/cab_package.rb +0 -1
- data/lib/chef/resource/chef_client_config.rb +12 -14
- data/lib/chef/resource/chef_client_cron.rb +1 -2
- data/lib/chef/resource/chef_client_launchd.rb +2 -2
- data/lib/chef/resource/chef_client_scheduled_task.rb +3 -3
- data/lib/chef/resource/chef_client_systemd_timer.rb +0 -1
- data/lib/chef/resource/chef_client_trusted_certificate.rb +0 -1
- data/lib/chef/resource/chef_gem.rb +0 -1
- data/lib/chef/resource/chef_handler.rb +0 -1
- data/lib/chef/resource/chef_sleep.rb +1 -3
- data/lib/chef/resource/chef_vault_secret.rb +0 -1
- data/lib/chef/resource/chocolatey_config.rb +0 -1
- data/lib/chef/resource/chocolatey_feature.rb +0 -1
- data/lib/chef/resource/chocolatey_package.rb +0 -1
- data/lib/chef/resource/chocolatey_source.rb +0 -1
- data/lib/chef/resource/cookbook_file.rb +0 -1
- data/lib/chef/resource/cron/_cron_shared.rb +0 -1
- data/lib/chef/resource/cron/cron.rb +0 -1
- data/lib/chef/resource/cron/cron_d.rb +15 -1
- data/lib/chef/resource/cron_access.rb +0 -1
- data/lib/chef/resource/csh.rb +0 -1
- data/lib/chef/resource/directory.rb +0 -1
- data/lib/chef/resource/dmg_package.rb +2 -1
- data/lib/chef/resource/dnf_package.rb +0 -1
- data/lib/chef/resource/dpkg_package.rb +0 -1
- data/lib/chef/resource/dsc_resource.rb +0 -1
- data/lib/chef/resource/dsc_script.rb +0 -1
- data/lib/chef/resource/execute.rb +0 -1
- data/lib/chef/resource/file.rb +0 -1
- data/lib/chef/resource/freebsd_package.rb +2 -1
- data/lib/chef/resource/gem_package.rb +2 -1
- data/lib/chef/resource/group.rb +25 -2
- data/lib/chef/resource/habitat/habitat_package.rb +0 -1
- data/lib/chef/resource/habitat/habitat_sup.rb +6 -7
- data/lib/chef/resource/habitat/habitat_sup_windows.rb +1 -1
- data/lib/chef/resource/habitat_config.rb +0 -1
- data/lib/chef/resource/habitat_install.rb +0 -1
- data/lib/chef/resource/habitat_service.rb +0 -1
- data/lib/chef/resource/habitat_user_toml.rb +0 -1
- data/lib/chef/resource/homebrew_cask.rb +0 -1
- data/lib/chef/resource/homebrew_package.rb +2 -1
- data/lib/chef/resource/homebrew_tap.rb +0 -1
- data/lib/chef/resource/homebrew_update.rb +0 -2
- data/lib/chef/resource/hostname.rb +0 -1
- data/lib/chef/resource/http_request.rb +0 -1
- data/lib/chef/resource/ifconfig.rb +0 -1
- data/lib/chef/resource/inspec_input.rb +0 -1
- data/lib/chef/resource/inspec_waiver.rb +0 -1
- data/lib/chef/resource/inspec_waiver_file_entry.rb +2 -3
- data/lib/chef/resource/ips_package.rb +0 -1
- data/lib/chef/resource/kernel_module.rb +0 -1
- data/lib/chef/resource/ksh.rb +0 -1
- data/lib/chef/resource/launchd.rb +3 -1
- data/lib/chef/resource/link.rb +0 -1
- data/lib/chef/resource/locale.rb +2 -6
- data/lib/chef/resource/log.rb +0 -1
- data/lib/chef/resource/lwrp_base.rb +0 -4
- data/lib/chef/resource/macos_userdefaults.rb +8 -13
- data/lib/chef/resource/macosx_service.rb +0 -1
- data/lib/chef/resource/macports_package.rb +2 -1
- data/lib/chef/resource/mdadm.rb +0 -1
- data/lib/chef/resource/mount.rb +0 -1
- data/lib/chef/resource/msu_package.rb +0 -1
- data/lib/chef/resource/notify_group.rb +0 -2
- data/lib/chef/resource/ohai.rb +0 -1
- data/lib/chef/resource/ohai_hint.rb +0 -1
- data/lib/chef/resource/openbsd_package.rb +2 -1
- data/lib/chef/resource/openssl_dhparam.rb +0 -2
- data/lib/chef/resource/openssl_ec_private_key.rb +0 -2
- data/lib/chef/resource/openssl_ec_public_key.rb +0 -2
- data/lib/chef/resource/openssl_rsa_private_key.rb +0 -2
- data/lib/chef/resource/openssl_rsa_public_key.rb +0 -2
- data/lib/chef/resource/openssl_x509_certificate.rb +0 -2
- data/lib/chef/resource/openssl_x509_crl.rb +0 -2
- data/lib/chef/resource/openssl_x509_request.rb +0 -2
- data/lib/chef/resource/osx_profile.rb +0 -1
- data/lib/chef/resource/package.rb +0 -1
- data/lib/chef/resource/pacman_package.rb +2 -1
- data/lib/chef/resource/paludis_package.rb +0 -1
- data/lib/chef/resource/perl.rb +0 -1
- data/lib/chef/resource/plist.rb +7 -3
- data/lib/chef/resource/portage_package.rb +2 -1
- data/lib/chef/resource/powershell_package.rb +0 -1
- data/lib/chef/resource/powershell_package_source.rb +0 -1
- data/lib/chef/resource/powershell_script.rb +0 -1
- data/lib/chef/resource/python.rb +0 -1
- data/lib/chef/resource/reboot.rb +0 -1
- data/lib/chef/resource/registry_key.rb +0 -1
- data/lib/chef/resource/remote_directory.rb +0 -1
- data/lib/chef/resource/remote_file.rb +0 -1
- data/lib/chef/resource/rhsm_errata.rb +0 -1
- data/lib/chef/resource/rhsm_errata_level.rb +0 -1
- data/lib/chef/resource/rhsm_register.rb +2 -4
- data/lib/chef/resource/rhsm_repo.rb +0 -1
- data/lib/chef/resource/rhsm_subscription.rb +0 -1
- data/lib/chef/resource/route.rb +0 -1
- data/lib/chef/resource/rpm_package.rb +2 -1
- data/lib/chef/resource/ruby.rb +0 -1
- data/lib/chef/resource/ruby_block.rb +0 -1
- data/lib/chef/resource/scm/_scm.rb +0 -2
- data/lib/chef/resource/scm/git.rb +0 -2
- data/lib/chef/resource/scm/subversion.rb +0 -2
- data/lib/chef/resource/script.rb +0 -1
- data/lib/chef/resource/selinux/common_helpers.rb +47 -0
- data/lib/chef/resource/selinux/selinux_debian.erb +18 -0
- data/lib/chef/resource/selinux/selinux_default.erb +15 -0
- data/lib/chef/resource/selinux_boolean.rb +101 -0
- data/lib/chef/resource/selinux_fcontext.rb +160 -0
- data/lib/chef/resource/selinux_install.rb +107 -0
- data/lib/chef/resource/selinux_module.rb +143 -0
- data/lib/chef/resource/selinux_permissive.rb +64 -0
- data/lib/chef/resource/selinux_port.rb +118 -0
- data/lib/chef/resource/selinux_state.rb +166 -0
- data/lib/chef/resource/service.rb +0 -1
- data/lib/chef/resource/smartos_package.rb +2 -1
- data/lib/chef/resource/snap_package.rb +2 -1
- data/lib/chef/resource/solaris_package.rb +2 -1
- data/lib/chef/resource/ssh_known_hosts_entry.rb +0 -1
- data/lib/chef/resource/sudo.rb +0 -1
- data/lib/chef/resource/support/client.erb +2 -2
- data/lib/chef/resource/swap_file.rb +0 -1
- data/lib/chef/resource/sysctl.rb +1 -2
- data/lib/chef/resource/systemd_unit.rb +0 -1
- data/lib/chef/resource/template.rb +0 -1
- data/lib/chef/resource/timezone.rb +0 -1
- data/lib/chef/resource/user/aix_user.rb +0 -1
- data/lib/chef/resource/user/linux_user.rb +0 -1
- data/lib/chef/resource/user/mac_user.rb +0 -1
- data/lib/chef/resource/user/pw_user.rb +0 -1
- data/lib/chef/resource/user/solaris_user.rb +0 -1
- data/lib/chef/resource/user/windows_user.rb +0 -1
- data/lib/chef/resource/user.rb +10 -1
- data/lib/chef/resource/user_ulimit.rb +0 -1
- data/lib/chef/resource/whyrun_safe_ruby_block.rb +0 -1
- data/lib/chef/resource/windows_ad_join.rb +0 -2
- data/lib/chef/resource/windows_audit_policy.rb +0 -2
- data/lib/chef/resource/windows_auto_run.rb +0 -1
- data/lib/chef/resource/windows_defender.rb +0 -1
- data/lib/chef/resource/windows_defender_exclusion.rb +0 -1
- data/lib/chef/resource/windows_dfs_folder.rb +0 -1
- data/lib/chef/resource/windows_dfs_namespace.rb +0 -1
- data/lib/chef/resource/windows_dfs_server.rb +0 -1
- 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 +0 -1
- data/lib/chef/resource/windows_feature.rb +0 -1
- data/lib/chef/resource/windows_feature_dism.rb +0 -1
- data/lib/chef/resource/windows_feature_powershell.rb +0 -1
- data/lib/chef/resource/windows_firewall_profile.rb +0 -2
- data/lib/chef/resource/windows_firewall_rule.rb +0 -1
- data/lib/chef/resource/windows_font.rb +2 -3
- data/lib/chef/resource/windows_package.rb +3 -4
- data/lib/chef/resource/windows_pagefile.rb +0 -2
- data/lib/chef/resource/windows_path.rb +0 -1
- data/lib/chef/resource/windows_printer.rb +0 -1
- data/lib/chef/resource/windows_printer_port.rb +0 -1
- data/lib/chef/resource/windows_script.rb +0 -2
- data/lib/chef/resource/windows_security_policy.rb +0 -1
- data/lib/chef/resource/windows_service.rb +0 -1
- data/lib/chef/resource/windows_share.rb +0 -1
- data/lib/chef/resource/windows_shortcut.rb +1 -2
- data/lib/chef/resource/windows_task.rb +0 -1
- data/lib/chef/resource/windows_uac.rb +0 -1
- data/lib/chef/resource/windows_update_settings.rb +0 -1
- data/lib/chef/resource/windows_user_privilege.rb +0 -1
- data/lib/chef/resource/windows_workgroup.rb +0 -1
- data/lib/chef/resource/yum_package.rb +2 -1
- data/lib/chef/resource/yum_repository.rb +4 -1
- data/lib/chef/resource/zypper_package.rb +2 -1
- data/lib/chef/resource/zypper_repository.rb +0 -1
- data/lib/chef/resource.rb +12 -5
- data/lib/chef/resources.rb +7 -0
- data/lib/chef/run_context.rb +3 -3
- data/lib/chef/secret_fetcher/azure_key_vault.rb +3 -3
- data/lib/chef/version.rb +1 -1
- data/lib/chef/win32/handle.rb +6 -7
- data/lib/chef/win32/registry.rb +7 -3
- data/spec/data/chef_guid +1 -0
- data/spec/data/nodes/mcwfhpowell.json +3 -0
- data/spec/data/rubygems.org/sexp_processor-info +2 -1
- data/spec/data/trusted_certs/example.crt +20 -29
- data/spec/data/trusted_certs/example_no_cn.crt +34 -30
- data/spec/data/trusted_certs/opscode.pem +54 -33
- data/spec/functional/assets/yumrepo-empty/repodata/01a3b489a465bcac22a43492163df43451dc6ce47d27f66de289756b91635523-filelists.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/401dc19bda88c82c403423fb835844d64345f7e95f5b9835888189c03834cc93-filelists.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/5dc1e6e73c84803f059bb3065e684e56adfc289a7e398946574d79dac6643945-primary.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/6bf9672d0862e8ef8b8ff05a2fd0208a922b1f5978e6589d87944c88259cb670-other.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/7c36572015e075add2b38b900837bcdbb8a504130ddff49b2351a7fc0affa3d4-other.sqlite.bz2 +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/dabe2ce5481d23de1f4f52bdcfee0f9af98316c9e0de2ce8123adeefa0dd08b9-primary.xml.gz +0 -0
- data/spec/functional/assets/yumrepo-empty/repodata/repomd.xml +55 -0
- data/spec/functional/resource/chocolatey_package_spec.rb +20 -32
- data/spec/functional/resource/dsc_script_spec.rb +1 -1
- data/spec/functional/resource/group_spec.rb +10 -6
- data/spec/functional/resource/link_spec.rb +8 -8
- data/spec/functional/resource/macos_userdefaults_spec.rb +4 -4
- data/spec/functional/resource/plist_spec.rb +25 -0
- data/spec/functional/resource/user/linux_user_spec.rb +127 -0
- data/spec/functional/resource/windows_certificate_spec.rb +1 -26
- data/spec/functional/resource/windows_font_spec.rb +12 -9
- data/spec/functional/resource/yum_package_spec.rb +17 -1
- data/spec/functional/resource/zypper_package_spec.rb +12 -0
- data/spec/functional/shell_spec.rb +1 -2
- data/spec/functional/version_spec.rb +1 -1
- data/spec/integration/client/client_spec.rb +82 -3
- data/spec/integration/client/exit_code_spec.rb +1 -1
- data/spec/integration/client/fips_spec.rb +20 -0
- data/spec/integration/client/ipv6_spec.rb +1 -1
- data/spec/integration/compliance/compliance_spec.rb +1 -1
- data/spec/integration/recipes/accumulator_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +1 -1
- data/spec/integration/recipes/lwrp_spec.rb +1 -1
- data/spec/integration/recipes/notifies_spec.rb +1 -1
- data/spec/integration/recipes/notifying_block_spec.rb +1 -1
- data/spec/integration/recipes/remote_directory.rb +1 -1
- data/spec/integration/recipes/unified_mode_spec.rb +1 -1
- data/spec/integration/recipes/use_partial_spec.rb +2 -1
- data/spec/integration/solo/solo_spec.rb +2 -2
- data/spec/spec_helper.rb +5 -0
- data/spec/support/platform_helpers.rb +8 -0
- data/spec/support/ruby_installer.rb +1 -1
- data/spec/support/shared/functional/windows_script.rb +2 -2
- data/spec/unit/application/client_spec.rb +0 -10
- data/spec/unit/chef_fs/file_system_spec.rb +2 -0
- data/spec/unit/client_spec.rb +57 -8
- data/spec/unit/compliance/reporter/chef_server_automate_spec.rb +1 -1
- data/spec/unit/cookbook/syntax_check_spec.rb +3 -0
- data/spec/unit/http/authenticator_spec.rb +68 -0
- data/spec/unit/mixin/powershell_exec_spec.rb +5 -5
- data/spec/unit/platform/query_helpers_spec.rb +2 -17
- data/spec/unit/property/validation_spec.rb +30 -0
- data/spec/unit/provider/cron_spec.rb +36 -0
- data/spec/unit/provider/http_request_spec.rb +60 -72
- data/spec/unit/provider/mount/linux_spec.rb +10 -0
- data/spec/unit/provider/package/chocolatey_spec.rb +3 -19
- data/spec/unit/provider/package/rubygems_spec.rb +1 -1
- data/spec/unit/provider/package/zypper_spec.rb +32 -0
- data/spec/unit/provider/user/linux_spec.rb +51 -11
- data/spec/unit/provider/user_spec.rb +24 -6
- data/spec/unit/resource/archive_file_spec.rb +1 -1
- data/spec/unit/resource/chef_client_cron_spec.rb +5 -0
- data/spec/unit/resource/chef_client_launchd_spec.rb +5 -0
- data/spec/unit/resource/chef_client_scheduled_task_spec.rb +5 -0
- data/spec/unit/resource/chef_client_systemd_timer_spec.rb +1 -1
- data/spec/unit/resource/cron_d_spec.rb +37 -1
- data/spec/unit/resource/macos_user_defaults_spec.rb +4 -4
- data/spec/unit/resource/rest_resource_spec.rb +381 -0
- data/spec/unit/resource/selinux_boolean_spec.rb +92 -0
- data/spec/unit/resource/selinux_fcontext_spec.rb +65 -0
- data/spec/unit/resource/selinux_install_spec.rb +60 -0
- data/spec/unit/resource/selinux_module_spec.rb +55 -0
- data/spec/unit/resource/selinux_permissive_spec.rb +39 -0
- data/spec/unit/resource/selinux_port_spec.rb +42 -0
- data/spec/unit/resource/selinux_state_spec.rb +46 -0
- data/spec/unit/resource/sysctl_spec.rb +2 -2
- data/spec/unit/resource/user/linux_user_spec.rb +42 -0
- data/spec/unit/resource/yum_repository_spec.rb +4 -0
- data/spec/unit/resource_spec.rb +0 -1
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +1 -1
- data/tasks/rspec.rb +1 -1
- metadata +107 -31
- /data/spec/functional/assets/chocolatey_feed/{test-A.1.0.0.nupkg → test-A.1.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-A.1.5.0.nupkg → test-A.1.5.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-A.2.0.0.nupkg → test-A.2.0.nupkg} +0 -0
- /data/spec/functional/assets/chocolatey_feed/{test-B.1.0.0.nupkg → test-B.1.0.nupkg} +0 -0
- /data/spec/functional/assets/yumrepo/repodata/{01a3b-filelists.sqlite.bz2 → 4632d67cb92636e7575d911c24f0e04d3505a944e97c483abe0c3e73a7c62d33-filelists.sqlite.bz2} +0 -0
- /data/spec/functional/assets/yumrepo/repodata/{6bf96-other.xml.gz → 74599b793e54d877323837d2d81a1c3c594c44e4335f9528234bb490f7b9b439-other.xml.gz} +0 -0
- /data/spec/functional/assets/yumrepo/repodata/{5dc1e-primary.sqlite.bz2 → a845d418f919d2115ab95a56b2c76f6825ad0d0bede49181a55c04f58995d057-primary.sqlite.bz2} +0 -0
- /data/spec/functional/assets/yumrepo/repodata/{7c365-other.sqlite.bz2 → af9b7cf9ef23bd7b43068d74a460f3b5d06753d638e58e4a0c9edc35bfb9cdc4-other.sqlite.bz2} +0 -0
- /data/spec/functional/assets/yumrepo/repodata/{401dc-filelists.xml.gz → bdb4f5f1492a3b9532f22c43110a81500dd744f23da0aec5c33b2a41317c737d-filelists.xml.gz} +0 -0
- /data/spec/functional/assets/yumrepo/repodata/{dabe2-primary.xml.gz → c10d1d34ce99e02f12ec96ef68360543ab1bb7c3cb81a4a2bf78df7d8597e9df-primary.xml.gz} +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "spec_helper"
|
|
19
|
+
|
|
20
|
+
describe Chef::Resource::SelinuxFcontext do
|
|
21
|
+
let(:node) { Chef::Node.new }
|
|
22
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
|
23
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
|
24
|
+
let(:resource) { Chef::Resource::SelinuxFcontext.new("fakey_fakerton", run_context) }
|
|
25
|
+
let(:provider) { resource.provider_for_action(:manage) }
|
|
26
|
+
let(:restoreconf) { double("shellout", stdout: "restorecon reset /var/www/html/index.html context unconfined_u:object_r:user_home_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0") }
|
|
27
|
+
|
|
28
|
+
it "sets file_spec proprty as name_property" do
|
|
29
|
+
expect(resource.file_spec).to eql("fakey_fakerton")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "sets the default action as :manage" do
|
|
33
|
+
expect(resource.action).to eql([:manage])
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "supports :manage, :addormodify, :add, :modify, :delete actions" do
|
|
37
|
+
expect { resource.action :manage }.not_to raise_error
|
|
38
|
+
expect { resource.action :addormodify }.not_to raise_error
|
|
39
|
+
expect { resource.action :add }.not_to raise_error
|
|
40
|
+
expect { resource.action :modify }.not_to raise_error
|
|
41
|
+
expect { resource.action :delete }.not_to raise_error
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it "checks 'a', 'f', 'd', 'c', 'b', 's', 'l', 'p' as valid file_type property values" do
|
|
45
|
+
expect { resource.file_type "a" }.not_to raise_error
|
|
46
|
+
expect { resource.file_type "f" }.not_to raise_error
|
|
47
|
+
expect { resource.file_type "d" }.not_to raise_error
|
|
48
|
+
expect { resource.file_type "c" }.not_to raise_error
|
|
49
|
+
expect { resource.file_type "b" }.not_to raise_error
|
|
50
|
+
expect { resource.file_type "s" }.not_to raise_error
|
|
51
|
+
expect { resource.file_type "l" }.not_to raise_error
|
|
52
|
+
expect { resource.file_type "p" }.not_to raise_error
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it "sets default value for file_type property to 'a'" do
|
|
56
|
+
expect(resource.file_type).to eql("a")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
describe "#relabel_files" do
|
|
60
|
+
it "returns verbose output with details of the file for which SELinux config is restored" do
|
|
61
|
+
allow(provider).to receive(:shell_out!).and_return(restoreconf)
|
|
62
|
+
expect(provider.relabel_files).to eql(restoreconf)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "spec_helper"
|
|
19
|
+
|
|
20
|
+
describe Chef::Resource::SelinuxInstall do
|
|
21
|
+
let(:node) { Chef::Node.new }
|
|
22
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
|
23
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
|
24
|
+
let(:resource) { Chef::Resource::SelinuxInstall.new("fakey_fakerton", run_context) }
|
|
25
|
+
let(:provider) { resource.provider_for_action(:install) }
|
|
26
|
+
|
|
27
|
+
it "sets the default action as :install" do
|
|
28
|
+
expect(resource.action).to eql([:install])
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "supports :install, :upgrade, :remove actions" do
|
|
32
|
+
expect { resource.action :install }.not_to raise_error
|
|
33
|
+
expect { resource.action :upgrade }.not_to raise_error
|
|
34
|
+
expect { resource.action :remove }.not_to raise_error
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "sets default packages on 'rhel', 'fedora', 'amazon' platforms" do
|
|
38
|
+
node.automatic_attrs[:platform_family] = "rhel"
|
|
39
|
+
expect(resource.packages).to eql(%w{make policycoreutils selinux-policy selinux-policy-targeted selinux-policy-devel libselinux-utils setools-console})
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "sets default packages on debian irrespective of platform_version" do
|
|
43
|
+
node.automatic_attrs[:platform_family] = "debian"
|
|
44
|
+
expect(resource.packages).to eql(%w{make policycoreutils selinux-basics selinux-policy-default selinux-policy-dev auditd setools})
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "sets default packages on ubuntu 18.04 platforms" do
|
|
48
|
+
node.automatic_attrs[:platform_family] = "debian"
|
|
49
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
|
50
|
+
node.automatic_attrs[:platform_version] = 18.04
|
|
51
|
+
expect(resource.packages).to eql(%w{make policycoreutils selinux selinux-basics selinux-policy-default selinux-policy-dev auditd setools})
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it "sets default packages on ubuntu platforms and versions other than 18.04" do
|
|
55
|
+
node.automatic_attrs[:platform_family] = "debian"
|
|
56
|
+
node.automatic_attrs[:platform] = "ubuntu"
|
|
57
|
+
node.automatic_attrs[:platform_version] = 20.04
|
|
58
|
+
expect(resource.packages).to eql(%w{make policycoreutils selinux-basics selinux-policy-default selinux-policy-dev auditd setools})
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#
|
|
2
|
+
#
|
|
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::SelinuxModule 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::SelinuxModule.new("fakey_fakerton", run_context) }
|
|
26
|
+
let(:provider) { resource.provider_for_action(:create) }
|
|
27
|
+
|
|
28
|
+
it "sets module_name property as name_property" do
|
|
29
|
+
expect(resource.module_name).to eql("fakey_fakerton")
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "sets default value for base_dir property" do
|
|
33
|
+
expect(resource.base_dir).to eql("/etc/selinux/local")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "sets the default action as :create" do
|
|
37
|
+
expect(resource.action).to eql([:create])
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it "supports :create, :delete, :install, :remove actions" do
|
|
41
|
+
expect { resource.action :create }.not_to raise_error
|
|
42
|
+
expect { resource.action :delete }.not_to raise_error
|
|
43
|
+
expect { resource.action :install }.not_to raise_error
|
|
44
|
+
expect { resource.action :remove }.not_to raise_error
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
describe "#selinux_module_filepath" do
|
|
48
|
+
it "returns selinux module file path based upon base_dir property and module_name property" do
|
|
49
|
+
resource.base_dir = "/opt/selinux"
|
|
50
|
+
resource.module_name = "my_module"
|
|
51
|
+
file_type = "te"
|
|
52
|
+
expect(provider.selinux_module_filepath(file_type)).to eql("/opt/selinux/my_module.te")
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "spec_helper"
|
|
19
|
+
|
|
20
|
+
describe Chef::Resource::SelinuxPermissive do
|
|
21
|
+
let(:node) { Chef::Node.new }
|
|
22
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
|
23
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
|
24
|
+
let(:resource) { Chef::Resource::SelinuxPermissive.new("fakey_fakerton", run_context) }
|
|
25
|
+
let(:provider) { resource.provider_for_action(:add) }
|
|
26
|
+
|
|
27
|
+
it "sets context property as name_property" do
|
|
28
|
+
expect(resource.context).to eql("fakey_fakerton")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "sets the default action as :add" do
|
|
32
|
+
expect(resource.action).to eql([:add])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "supports :add, :delete actions" do
|
|
36
|
+
expect { resource.action :add }.not_to raise_error
|
|
37
|
+
expect { resource.action :delete }.not_to raise_error
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "spec_helper"
|
|
19
|
+
|
|
20
|
+
describe Chef::Resource::SelinuxPort do
|
|
21
|
+
let(:node) { Chef::Node.new }
|
|
22
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
|
23
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
|
24
|
+
let(:resource) { Chef::Resource::SelinuxPort.new("5678", run_context) }
|
|
25
|
+
let(:provider) { resource.provider_for_action(:manage) }
|
|
26
|
+
|
|
27
|
+
it "sets port property as name_property" do
|
|
28
|
+
expect(resource.port).to eql("5678")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "sets the default action as :manage" do
|
|
32
|
+
expect(resource.action).to eql([:manage])
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "supports :manage, :addormodify, :add, :modify, :delete actions" do
|
|
36
|
+
expect { resource.action :manage }.not_to raise_error
|
|
37
|
+
expect { resource.action :addormodify }.not_to raise_error
|
|
38
|
+
expect { resource.action :add }.not_to raise_error
|
|
39
|
+
expect { resource.action :modify }.not_to raise_error
|
|
40
|
+
expect { resource.action :delete }.not_to raise_error
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright:: Copyright (c) Chef Software Inc.
|
|
3
|
+
# License:: Apache License, Version 2.0
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
require "spec_helper"
|
|
19
|
+
|
|
20
|
+
describe Chef::Resource::SelinuxState do
|
|
21
|
+
let(:node) { Chef::Node.new }
|
|
22
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
|
23
|
+
let(:run_context) { Chef::RunContext.new(node, {}, events) }
|
|
24
|
+
let(:resource) { Chef::Resource::SelinuxState.new("5678", run_context) }
|
|
25
|
+
let(:provider) { resource.provider_for_action(:enforcing) }
|
|
26
|
+
|
|
27
|
+
it "sets the default action as :enforcing" do
|
|
28
|
+
expect(resource.action).to eql([:enforcing])
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "sets default value for policy property for 'rhel', 'fedora', 'amazon' platforms" do
|
|
32
|
+
node.automatic_attrs[:platform_family] = "rhel"
|
|
33
|
+
expect(resource.policy).to eql("targeted")
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "supports :enforcing, :permissive, :disabled actions" do
|
|
37
|
+
expect { resource.action :enforcing }.not_to raise_error
|
|
38
|
+
expect { resource.action :permissive }.not_to raise_error
|
|
39
|
+
expect { resource.action :disabled }.not_to raise_error
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "sets default value for policy property for debian platforms" do
|
|
43
|
+
node.automatic_attrs[:platform_family] = "debian"
|
|
44
|
+
expect(resource.policy).to eql("default")
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -62,14 +62,14 @@ describe Chef::Resource::Sysctl do
|
|
|
62
62
|
context "when comment is a String" do
|
|
63
63
|
it "Returns content for use with a file resource" do
|
|
64
64
|
resource.comment("This sets foo / bar on our system")
|
|
65
|
-
expect(provider.contruct_sysctl_content).to eql("# This sets foo / bar on our system\nfoo = bar")
|
|
65
|
+
expect(provider.contruct_sysctl_content).to eql("# This sets foo / bar on our system\nfoo = bar\n")
|
|
66
66
|
end
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
context "when comment is an Array" do
|
|
70
70
|
it "Returns content for use with a file resource" do
|
|
71
71
|
resource.comment(["This sets foo / bar on our system", "We need for baz"])
|
|
72
|
-
expect(provider.contruct_sysctl_content).to eql("# This sets foo / bar on our system\n# We need for baz\nfoo = bar")
|
|
72
|
+
expect(provider.contruct_sysctl_content).to eql("# This sets foo / bar on our system\n# We need for baz\nfoo = bar\n")
|
|
73
73
|
end
|
|
74
74
|
end
|
|
75
75
|
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe Chef::Resource::User, "initialize" do
|
|
4
|
+
let(:resource) { Chef::Resource::User::LinuxUser.new("notarealuser") }
|
|
5
|
+
|
|
6
|
+
describe "inactive attribute" do
|
|
7
|
+
it "allows a string" do
|
|
8
|
+
resource.inactive "100"
|
|
9
|
+
expect(resource.inactive).to eql("100")
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "allows an integer" do
|
|
13
|
+
resource.inactive 100
|
|
14
|
+
expect(resource.inactive).to eql(100)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "does not allow a hash" do
|
|
18
|
+
expect { resource.inactive({ woot: "i found it" }) }.to raise_error(ArgumentError)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
describe "expire_date attribute" do
|
|
23
|
+
it "allows a string" do
|
|
24
|
+
resource.expire_date "100"
|
|
25
|
+
expect(resource.expire_date).to eql("100")
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "does not allow an integer" do
|
|
29
|
+
expect { resource.expire_date(90) }.to raise_error(ArgumentError)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
it "does not allow a hash" do
|
|
33
|
+
expect { resource.expire_date({ woot: "i found it" }) }.to raise_error(ArgumentError)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
%w{inactive expire_date}.each do |prop|
|
|
38
|
+
it "sets #{prop} to nil" do
|
|
39
|
+
expect(resource.send(prop)).to eql(nil)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -68,6 +68,10 @@ describe Chef::Resource::YumRepository do
|
|
|
68
68
|
expect(resource.make_cache).to eql(true)
|
|
69
69
|
end
|
|
70
70
|
|
|
71
|
+
it "makecache_fast property defaults to false" do
|
|
72
|
+
expect(resource.makecache_fast).to eql(false)
|
|
73
|
+
end
|
|
74
|
+
|
|
71
75
|
it "mode property defaults to '0644'" do
|
|
72
76
|
expect(resource.mode).to eql("0644")
|
|
73
77
|
end
|
data/spec/unit/resource_spec.rb
CHANGED
|
@@ -388,7 +388,6 @@ describe Chef::Resource do
|
|
|
388
388
|
resource.foo = "some value"
|
|
389
389
|
expect(resource.to_text).to match(/foo "\*#{sensitive_property_masked_value}\*"/)
|
|
390
390
|
end
|
|
391
|
-
|
|
392
391
|
it "suppresses that properties value irrespective of desired state (false) " do
|
|
393
392
|
resource_class = Class.new(Chef::Resource) {
|
|
394
393
|
property :suppressed_content, String, sensitive: true, desired_state: false
|
|
@@ -185,7 +185,7 @@ describe Chef::Util::DSC::LocalConfigurationManager do
|
|
|
185
185
|
context "when invalid dsc script is given" do
|
|
186
186
|
it "raises exception" do
|
|
187
187
|
configuration_document = "invalid-config"
|
|
188
|
-
expect { lcm.send(:run_configuration_cmdlet, configuration_document, true) }.to raise_error(
|
|
188
|
+
expect { lcm.send(:run_configuration_cmdlet, configuration_document, true) }.to raise_error(ChefPowerShell::PowerShellExceptions::PowerShellCommandFailed)
|
|
189
189
|
end
|
|
190
190
|
end
|
|
191
191
|
end
|
data/tasks/rspec.rb
CHANGED