chef 12.18.31 → 13.0.118
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 +15 -11
- data/README.md +13 -13
- data/Rakefile +1 -19
- data/VERSION +1 -1
- data/acceptance/.shared/kitchen_acceptance/libraries/kitchen.rb +1 -1
- data/acceptance/Gemfile +8 -5
- data/acceptance/Gemfile.lock +90 -81
- data/acceptance/basics/test/integration/chef-current-install/serverspec/chef_client_spec.rb +1 -1
- data/acceptance/data-collector/.acceptance/data-collector-test/metadata.rb +1 -1
- data/acceptance/data-collector/test/integration/default/serverspec/default_spec.rb +4 -0
- data/acceptance/top-cookbooks/.acceptance/acceptance-cookbook/libraries/top_cookbooks.rb +9 -8
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +8 -7
- data/lib/chef/api_client.rb +8 -15
- data/lib/chef/api_client_v1.rb +9 -11
- data/lib/chef/application/apply.rb +8 -10
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/exit_code.rb +11 -82
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/solo.rb +0 -1
- data/lib/chef/application/windows_service.rb +36 -37
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/application.rb +15 -25
- data/lib/chef/audit/audit_event_proxy.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +1 -1
- data/lib/chef/blacklist.rb +81 -0
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +6 -8
- data/lib/chef/chef_fs/command_line.rb +15 -16
- data/lib/chef/chef_fs/data_handler/client_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/container_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/cookbook_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/environment_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/node_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/organization_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/role_data_handler.rb +1 -1
- data/lib/chef/chef_fs/data_handler/user_data_handler.rb +1 -1
- data/lib/chef/chef_fs/file_pattern.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/chef_server_root_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +6 -2
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +18 -32
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/chef_server/data_bags_dir.rb +8 -10
- data/lib/chef/chef_fs/file_system/chef_server/nodes_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +28 -30
- data/lib/chef/chef_fs/file_system/chef_server/policy_group_entry.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +27 -29
- data/lib/chef/chef_fs/file_system/chef_server/rest_list_entry.rb +29 -26
- data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +5 -1
- data/lib/chef/chef_fs/file_system/memory/memory_file.rb +1 -1
- data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +10 -12
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +13 -16
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +9 -13
- data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +2 -0
- data/lib/chef/chef_fs/file_system/repository/cookbooks_dir.rb +1 -1
- data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -0
- data/lib/chef/chef_fs/file_system.rb +1 -1
- data/lib/chef/chef_fs/parallelizer.rb +9 -11
- data/lib/chef/client.rb +47 -11
- data/lib/chef/config_fetcher.rb +4 -4
- data/lib/chef/constants.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +26 -115
- data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
- data/lib/chef/cookbook/gem_installer.rb +10 -6
- data/lib/chef/cookbook/manifest_v0.rb +68 -0
- data/lib/chef/cookbook/manifest_v2.rb +41 -0
- data/lib/chef/cookbook/metadata.rb +25 -134
- data/lib/chef/cookbook/remote_file_vendor.rb +3 -3
- data/lib/chef/cookbook/synchronizer.rb +24 -21
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_manifest.rb +91 -65
- data/lib/chef/cookbook_site_streaming_uploader.rb +7 -9
- data/lib/chef/cookbook_uploader.rb +1 -1
- data/lib/chef/cookbook_version.rb +69 -157
- data/lib/chef/data_bag.rb +1 -7
- data/lib/chef/data_bag_item.rb +5 -10
- data/lib/chef/data_collector/messages.rb +2 -0
- data/lib/chef/data_collector/resource_report.rb +32 -4
- data/lib/chef/data_collector.rb +3 -4
- data/lib/chef/decorator/unchain.rb +0 -16
- data/lib/chef/decorator.rb +1 -1
- data/lib/chef/deprecated.rb +53 -19
- data/lib/chef/dsl/audit.rb +2 -2
- data/lib/chef/dsl/declare_resource.rb +11 -17
- data/lib/chef/dsl/platform_introspection.rb +29 -31
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -4
- data/lib/chef/dsl/resources.rb +4 -13
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/environment.rb +9 -16
- data/lib/chef/event_dispatch/base.rb +16 -0
- data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
- data/lib/chef/exceptions.rb +6 -10
- data/lib/chef/file_access_control/unix.rb +14 -14
- data/lib/chef/file_access_control/windows.rb +1 -1
- data/lib/chef/formatters/error_description.rb +18 -1
- data/lib/chef/formatters/error_inspectors/api_error_formatting.rb +4 -5
- data/lib/chef/formatters/error_mapper.rb +6 -6
- data/lib/chef/guard_interpreter/default_guard_interpreter.rb +4 -2
- data/lib/chef/http/api_versions.rb +54 -0
- data/lib/chef/http/authenticator.rb +15 -6
- data/lib/chef/http/json_output.rb +4 -1
- data/lib/chef/http/socketless_chef_zero_client.rb +1 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/http.rb +39 -0
- data/lib/chef/json_compat.rb +7 -103
- data/lib/chef/key.rb +5 -10
- data/lib/chef/knife/bootstrap/templates/chef-full.erb +6 -6
- data/lib/chef/knife/bootstrap.rb +6 -0
- data/lib/chef/knife/configure.rb +1 -3
- data/lib/chef/knife/configure_client.rb +1 -3
- data/lib/chef/knife/cookbook_create.rb +1 -434
- data/lib/chef/knife/cookbook_download.rb +3 -4
- data/lib/chef/knife/cookbook_show.rb +7 -3
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- data/lib/chef/knife/core/bootstrap_context.rb +8 -7
- data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
- data/lib/chef/knife/core/gem_glob_loader.rb +1 -1
- data/lib/chef/knife/core/status_presenter.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +2 -32
- data/lib/chef/knife/core/ui.rb +20 -27
- data/lib/chef/knife/data_bag_create.rb +6 -4
- data/lib/chef/knife/data_bag_secret_options.rb +1 -1
- data/lib/chef/knife/deps.rb +32 -34
- data/lib/chef/knife/edit.rb +1 -1
- data/lib/chef/knife/help.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/search.rb +9 -20
- data/lib/chef/knife/ssh.rb +62 -36
- data/lib/chef/knife/ssl_check.rb +1 -1
- data/lib/chef/knife/user_delete.rb +1 -1
- data/lib/chef/knife/xargs.rb +1 -1
- data/lib/chef/knife.rb +6 -7
- data/lib/chef/mash.rb +1 -1
- data/lib/chef/mixin/create_path.rb +3 -5
- data/lib/chef/mixin/from_file.rb +2 -2
- data/lib/chef/mixin/get_source_from_package.rb +2 -2
- data/lib/chef/mixin/notifying_block.rb +7 -9
- data/lib/chef/mixin/params_validate.rb +9 -8
- data/lib/chef/mixin/path_sanity.rb +17 -19
- data/lib/chef/mixin/securable.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +33 -29
- data/lib/chef/mixin/unformatter.rb +2 -2
- data/lib/chef/mixin/uris.rb +4 -6
- data/lib/chef/mixin/versioned_api.rb +84 -0
- data/lib/chef/mixin/which.rb +25 -8
- data/lib/chef/mixin/windows_architecture_helper.rb +2 -2
- data/lib/chef/mixin/xml_escape.rb +3 -5
- data/lib/chef/mixins.rb +0 -1
- data/lib/chef/monkey_patches/webrick-utils.rb +1 -1
- data/lib/chef/node/attribute.rb +9 -32
- data/lib/chef/node/attribute_collections.rb +1 -19
- data/lib/chef/node/common_api.rb +5 -7
- data/lib/chef/node/immutable_collections.rb +42 -38
- data/lib/chef/node/mixin/immutablize_array.rb +1 -1
- data/lib/chef/node/mixin/immutablize_hash.rb +1 -1
- data/lib/chef/node.rb +21 -20
- data/lib/chef/node_map.rb +2 -5
- data/lib/chef/org.rb +10 -17
- data/lib/chef/platform/provider_mapping.rb +2 -169
- data/lib/chef/platform/query_helpers.rb +1 -1
- data/lib/chef/platform/rebooter.rb +1 -2
- data/lib/chef/policy_builder/expand_node_object.rb +3 -29
- data/lib/chef/policy_builder/policyfile.rb +8 -6
- data/lib/chef/property.rb +66 -80
- data/lib/chef/provider/apt_repository.rb +6 -10
- data/lib/chef/provider/apt_update.rb +1 -7
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/breakpoint.rb +2 -2
- data/lib/chef/provider/cookbook_file.rb +3 -9
- data/lib/chef/provider/cron.rb +42 -60
- data/lib/chef/provider/deploy/revision.rb +3 -5
- data/lib/chef/provider/deploy.rb +82 -88
- data/lib/chef/provider/directory.rb +33 -37
- data/lib/chef/provider/dsc_resource.rb +23 -11
- data/lib/chef/provider/dsc_script.rb +1 -5
- data/lib/chef/provider/env/windows.rb +5 -1
- data/lib/chef/provider/env.rb +32 -30
- data/lib/chef/provider/erl_call.rb +15 -47
- data/lib/chef/provider/execute.rb +7 -8
- data/lib/chef/provider/file.rb +49 -61
- data/lib/chef/provider/git.rb +56 -60
- data/lib/chef/provider/group.rb +1 -7
- data/lib/chef/provider/http_request.rb +37 -41
- data/lib/chef/provider/ifconfig/redhat.rb +1 -1
- data/lib/chef/provider/ifconfig.rb +0 -6
- data/lib/chef/provider/launchd.rb +6 -2
- data/lib/chef/provider/link.rb +51 -55
- data/lib/chef/provider/log.rb +3 -7
- data/lib/chef/provider/lwrp_base.rb +0 -9
- data/lib/chef/provider/mdadm.rb +25 -33
- data/lib/chef/provider/mount/aix.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +2 -2
- data/lib/chef/provider/mount.rb +1 -5
- data/lib/chef/provider/noop.rb +1 -1
- data/lib/chef/provider/ohai.rb +1 -7
- data/lib/chef/provider/osx_profile.rb +24 -29
- data/lib/chef/provider/package/aix.rb +55 -53
- data/lib/chef/provider/package/apt.rb +15 -13
- data/lib/chef/provider/package/cab.rb +48 -20
- data/lib/chef/provider/package/chocolatey.rb +9 -10
- data/lib/chef/provider/package/dnf/dnf_helper.py +1 -1
- data/lib/chef/provider/package/dnf/python_helper.rb +63 -26
- data/lib/chef/provider/package/dnf/version.rb +1 -1
- data/lib/chef/provider/package/dnf.rb +21 -19
- data/lib/chef/provider/package/dpkg.rb +8 -9
- data/lib/chef/provider/package/freebsd/base.rb +10 -10
- data/lib/chef/provider/package/freebsd/pkg.rb +15 -15
- data/lib/chef/provider/package/freebsd/pkgng.rb +13 -15
- data/lib/chef/provider/package/freebsd/port.rb +7 -7
- data/lib/chef/provider/package/homebrew.rb +11 -10
- data/lib/chef/provider/package/ips.rb +18 -24
- data/lib/chef/provider/package/macports.rb +23 -23
- data/lib/chef/provider/package/msu.rb +11 -12
- data/lib/chef/provider/package/openbsd.rb +25 -22
- data/lib/chef/provider/package/pacman.rb +16 -17
- data/lib/chef/provider/package/paludis.rb +26 -27
- data/lib/chef/provider/package/portage.rb +22 -23
- data/lib/chef/provider/package/powershell.rb +17 -17
- data/lib/chef/provider/package/rpm.rb +25 -26
- data/lib/chef/provider/package/rubygems.rb +64 -62
- data/lib/chef/provider/package/smartos.rb +16 -16
- data/lib/chef/provider/package/solaris.rb +44 -45
- data/lib/chef/provider/package/windows/exe.rb +6 -6
- data/lib/chef/provider/package/windows/msi.rb +7 -7
- data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +9 -3
- data/lib/chef/provider/package/windows.rb +3 -3
- data/lib/chef/provider/package/yum/rpm_utils.rb +34 -34
- data/lib/chef/provider/package/yum/yum_cache.rb +12 -12
- data/lib/chef/provider/package/yum.rb +319 -269
- data/lib/chef/provider/package/zypper.rb +10 -20
- data/lib/chef/provider/package.rb +71 -63
- data/lib/chef/provider/powershell_script.rb +15 -7
- data/lib/chef/provider/reboot.rb +10 -14
- data/lib/chef/provider/registry_key.rb +39 -43
- data/lib/chef/provider/remote_directory.rb +3 -15
- data/lib/chef/provider/remote_file.rb +3 -9
- data/lib/chef/provider/route.rb +1 -7
- data/lib/chef/provider/ruby_block.rb +4 -8
- data/lib/chef/provider/script.rb +42 -6
- data/lib/chef/provider/service/aix.rb +1 -5
- data/lib/chef/provider/service/debian.rb +15 -21
- data/lib/chef/provider/service/freebsd.rb +0 -1
- data/lib/chef/provider/service/gentoo.rb +0 -1
- data/lib/chef/provider/service/init.rb +0 -1
- data/lib/chef/provider/service/insserv.rb +2 -2
- data/lib/chef/provider/service/openbsd.rb +0 -1
- data/lib/chef/provider/service/redhat.rb +2 -2
- data/lib/chef/provider/service/simple.rb +0 -5
- data/lib/chef/provider/service/solaris.rb +5 -4
- data/lib/chef/provider/service/systemd.rb +1 -1
- data/lib/chef/provider/service/upstart.rb +10 -12
- data/lib/chef/provider/service/windows.rb +1 -5
- data/lib/chef/provider/service.rb +51 -58
- data/lib/chef/provider/subversion.rb +40 -46
- data/lib/chef/provider/systemd_unit.rb +2 -0
- data/lib/chef/provider/template/content.rb +24 -1
- data/lib/chef/provider/template.rb +3 -9
- data/lib/chef/provider/user/dscl.rb +3 -3
- data/lib/chef/provider/user/linux.rb +6 -5
- data/lib/chef/provider/user/pw.rb +4 -10
- data/lib/chef/provider/user/solaris.rb +2 -2
- data/lib/chef/provider/user/useradd.rb +5 -5
- data/lib/chef/provider/user.rb +43 -59
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
- data/lib/chef/provider/windows_task.rb +418 -0
- data/lib/chef/provider/yum_repository.rb +3 -6
- data/lib/chef/provider.rb +63 -115
- data/lib/chef/provider_resolver.rb +8 -34
- data/lib/chef/providers.rb +1 -1
- data/lib/chef/recipe.rb +9 -1
- data/lib/chef/resource/action_class.rb +13 -17
- data/lib/chef/resource/apt_repository.rb +0 -1
- data/lib/chef/resource/apt_update.rb +3 -1
- data/lib/chef/resource/chef_gem.rb +4 -11
- data/lib/chef/resource/chocolatey_package.rb +4 -1
- data/lib/chef/resource/dnf_package.rb +6 -3
- data/lib/chef/resource/dsc_resource.rb +9 -1
- data/lib/chef/resource/execute.rb +66 -19
- data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
- data/lib/chef/resource/file/verification.rb +2 -7
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +16 -2
- data/lib/chef/resource/launchd.rb +3 -3
- data/lib/chef/resource/lwrp_base.rb +0 -2
- data/lib/chef/resource/mount.rb +5 -12
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/powershell_script.rb +1 -1
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/script.rb +8 -34
- data/lib/chef/resource/service.rb +15 -13
- data/lib/chef/resource/systemd_unit.rb +5 -0
- data/lib/chef/resource/user/aix_user.rb +1 -1
- data/lib/chef/resource/user/dscl_user.rb +1 -1
- data/lib/chef/resource/user/linux_user.rb +1 -10
- data/lib/chef/resource/user/pw_user.rb +1 -1
- data/lib/chef/resource/user/solaris_user.rb +1 -1
- data/lib/chef/resource/user/windows_user.rb +1 -1
- data/lib/chef/resource/user.rb +1 -19
- data/lib/chef/resource/windows_package.rb +4 -1
- data/lib/chef/resource/windows_task.rb +237 -0
- data/lib/chef/resource/yum_package.rb +13 -4
- data/lib/chef/resource/yum_repository.rb +0 -1
- data/lib/chef/resource/zypper_package.rb +2 -0
- data/lib/chef/resource.rb +90 -202
- data/lib/chef/resource_builder.rb +1 -65
- data/lib/chef/resource_collection/resource_collection_serialization.rb +11 -4
- data/lib/chef/resource_collection/resource_list.rb +6 -0
- data/lib/chef/resource_collection/resource_set.rb +44 -17
- data/lib/chef/resource_collection.rb +10 -0
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/resource_resolver.rb +1 -25
- data/lib/chef/resources.rb +1 -1
- data/lib/chef/role.rb +0 -6
- data/lib/chef/run_context/cookbook_compiler.rb +49 -5
- data/lib/chef/run_context.rb +4 -25
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +14 -12
- data/lib/chef/search/query.rb +26 -31
- data/lib/chef/server_api.rb +2 -0
- data/lib/chef/{resource/easy_install_package.rb → server_api_versions.rb} +18 -10
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/shell/shell_session.rb +14 -4
- data/lib/chef/shell.rb +32 -7
- data/lib/chef/user.rb +9 -16
- data/lib/chef/user_v1.rb +9 -16
- data/lib/chef/util/diff.rb +1 -1
- data/lib/chef/util/dsc/lcm_output_parser.rb +1 -1
- data/lib/chef/util/selinux.rb +1 -1
- data/lib/chef/util/windows/net_group.rb +18 -30
- data/lib/chef/util/windows/net_use.rb +7 -11
- data/lib/chef/util/windows/net_user.rb +12 -18
- data/lib/chef/util/windows/volume.rb +9 -15
- data/lib/chef/version.rb +1 -1
- data/lib/chef/version_class.rb +1 -1
- data/lib/chef/win32/api/file.rb +25 -31
- data/lib/chef/win32/api/installer.rb +2 -2
- data/lib/chef/win32/api.rb +4 -6
- data/lib/chef/win32/file.rb +4 -6
- data/lib/chef/win32/registry.rb +9 -9
- data/lib/chef/win32/security/acl.rb +2 -2
- data/lib/chef/win32/security/sid.rb +5 -0
- data/lib/chef/win32/security.rb +2 -2
- data/lib/chef/win32/unicode.rb +2 -2
- data/lib/chef/win32/version.rb +1 -1
- data/lib/chef.rb +1 -2
- data/spec/data/cookbooks/openldap/templates/default/openldap_nested_variable_stuff.erb +1 -0
- data/spec/data/lwrp/providers/buck_passer.rb +1 -1
- data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
- data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
- data/spec/data/lwrp/providers/inline_compiler.rb +0 -2
- data/spec/data/lwrp/resources/buck_passer.rb +5 -0
- data/spec/data/lwrp/resources/buck_passer_2.rb +3 -0
- data/spec/data/lwrp/resources/embedded_resource_accesses_providers_scope.rb +3 -0
- data/spec/data/lwrp/resources/inline_compiler.rb +3 -0
- data/spec/data/lwrp/resources/monkey_name_printer.rb +5 -0
- data/spec/data/lwrp/resources/paint_drying_watcher.rb +3 -0
- data/spec/data/lwrp/resources/thumb_twiddler.rb +3 -0
- data/spec/data/prefer_metadata_json/metadata.json +51 -0
- data/spec/data/prefer_metadata_json/metadata.rb +6 -0
- data/spec/data/prefer_metadata_json/recipes/default.rb +0 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes/default.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_attr/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_attr/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipe.rb +3 -0
- data/spec/data/root_alias_cookbooks/dup_recipe/recipes/default.rb +3 -0
- data/spec/data/root_alias_cookbooks/simple/attributes.rb +1 -0
- data/spec/data/root_alias_cookbooks/simple/metadata.rb +2 -0
- data/spec/data/root_alias_cookbooks/simple/recipe.rb +3 -0
- data/spec/data/shef-config.rb +11 -10
- data/spec/functional/knife/ssh_spec.rb +34 -6
- data/spec/functional/rebooter_spec.rb +1 -0
- data/spec/functional/resource/bash_spec.rb +11 -45
- data/spec/functional/resource/batch_spec.rb +5 -1
- data/spec/functional/resource/cron_spec.rb +2 -2
- data/spec/functional/resource/dsc_script_spec.rb +2 -4
- data/spec/functional/resource/execute_spec.rb +17 -0
- data/spec/functional/resource/link_spec.rb +3 -3
- data/spec/functional/resource/template_spec.rb +33 -0
- data/spec/functional/resource/user/dscl_spec.rb +2 -4
- data/spec/functional/root_alias_spec.rb +78 -0
- data/spec/functional/shell_spec.rb +38 -40
- data/spec/integration/client/client_spec.rb +109 -16
- data/spec/integration/client/exit_code_spec.rb +1 -105
- data/spec/integration/knife/chef_repository_file_system_spec.rb +0 -97
- data/spec/integration/knife/cookbook_download_spec.rb +0 -24
- data/spec/integration/knife/cookbook_show_spec.rb +12 -23
- data/spec/integration/knife/deps_spec.rb +5 -9
- data/spec/integration/knife/search_node_spec.rb +39 -0
- data/spec/integration/knife/serve_spec.rb +58 -22
- data/spec/integration/knife/upload_spec.rb +3 -11
- data/spec/integration/recipes/lwrp_inline_resources_spec.rb +7 -11
- data/spec/integration/recipes/notifies_spec.rb +60 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +76 -226
- data/spec/integration/recipes/resource_action_spec.rb +37 -30
- data/spec/spec_helper.rb +7 -0
- data/spec/support/chef_helpers.rb +5 -7
- data/spec/support/platform_helpers.rb +10 -3
- data/spec/support/platforms/prof/gc.rb +4 -6
- data/spec/support/shared/context/client.rb +9 -2
- data/spec/support/shared/functional/execute_resource.rb +150 -0
- data/spec/support/shared/functional/windows_script.rb +74 -4
- data/spec/support/shared/integration/knife_support.rb +1 -1
- data/spec/support/shared/unit/execute_resource.rb +37 -9
- data/spec/support/shared/unit/provider/file.rb +10 -0
- data/spec/support/shared/unit/script_resource.rb +1 -9
- data/spec/unit/application/exit_code_spec.rb +4 -89
- data/spec/unit/application_spec.rb +39 -29
- data/spec/unit/chef_fs/file_system/operation_failed_error_spec.rb +1 -1
- data/spec/unit/client_spec.rb +72 -31
- data/spec/unit/config_fetcher_spec.rb +2 -2
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +31 -19
- data/spec/unit/cookbook/file_vendor_spec.rb +20 -9
- data/spec/unit/cookbook/gem_installer_spec.rb +85 -0
- data/spec/unit/cookbook/manifest_v0_spec.rb +133 -0
- data/spec/unit/cookbook/manifest_v2_spec.rb +70 -0
- data/spec/unit/cookbook/metadata_spec.rb +29 -108
- data/spec/unit/cookbook/synchronizer_spec.rb +5 -6
- data/spec/unit/cookbook/syntax_check_spec.rb +9 -2
- data/spec/unit/cookbook_loader_spec.rb +17 -19
- data/spec/unit/cookbook_manifest_spec.rb +12 -44
- data/spec/unit/cookbook_site_streaming_uploader_spec.rb +0 -4
- data/spec/unit/cookbook_spec.rb +10 -14
- data/spec/unit/cookbook_uploader_spec.rb +1 -1
- data/spec/unit/cookbook_version_file_specificity_spec.rb +55 -28
- data/spec/unit/cookbook_version_spec.rb +19 -128
- data/spec/unit/data_bag_item_spec.rb +4 -0
- data/spec/unit/data_collector/messages_spec.rb +137 -0
- data/spec/unit/data_collector/resource_report_spec.rb +145 -0
- data/spec/unit/deprecation_spec.rb +0 -14
- data/spec/unit/encrypted_data_bag_item_spec.rb +6 -6
- data/spec/unit/formatters/error_description_spec.rb +52 -7
- data/spec/unit/http/api_versions_spec.rb +79 -0
- data/spec/unit/http/authenticator_spec.rb +20 -0
- data/spec/unit/http/socketless_chef_zero_client_spec.rb +2 -1
- data/spec/unit/json_compat_spec.rb +0 -32
- data/spec/unit/knife/bootstrap_spec.rb +34 -0
- data/spec/unit/knife/configure_client_spec.rb +0 -2
- data/spec/unit/knife/cookbook_create_spec.rb +1 -220
- data/spec/unit/knife/cookbook_download_spec.rb +46 -28
- data/spec/unit/knife/cookbook_show_spec.rb +42 -9
- data/spec/unit/knife/core/bootstrap_context_spec.rb +17 -0
- data/spec/unit/knife/core/cookbook_scm_repo_spec.rb +1 -1
- data/spec/unit/knife/core/subcommand_loader_spec.rb +0 -6
- data/spec/unit/knife/core/ui_spec.rb +21 -11
- data/spec/unit/knife/data_bag_create_spec.rb +65 -45
- data/spec/unit/knife/ssh_spec.rb +34 -36
- data/spec/unit/knife_spec.rb +2 -2
- data/spec/unit/lwrp_spec.rb +38 -127
- data/spec/unit/mixin/path_sanity_spec.rb +7 -7
- data/spec/unit/mixin/shell_out_spec.rb +18 -84
- data/spec/unit/mixin/versioned_api_spec.rb +128 -0
- data/spec/unit/mixin/which.rb +160 -0
- data/spec/unit/node/attribute_spec.rb +65 -33
- data/spec/unit/node/immutable_collections_spec.rb +104 -1
- data/spec/unit/node_map_spec.rb +1 -23
- data/spec/unit/node_spec.rb +81 -98
- data/spec/unit/policy_builder/expand_node_object_spec.rb +2 -27
- data/spec/unit/policy_builder/policyfile_spec.rb +12 -12
- data/spec/unit/property/validation_spec.rb +51 -69
- data/spec/unit/property_spec.rb +105 -125
- data/spec/unit/provider/apt_repository_spec.rb +33 -27
- data/spec/unit/provider/cron_spec.rb +15 -39
- data/spec/unit/provider/deploy_spec.rb +1 -1
- data/spec/unit/provider/directory_spec.rb +10 -0
- data/spec/unit/provider/dsc_resource_spec.rb +175 -0
- data/spec/unit/provider/erl_call_spec.rb +5 -13
- data/spec/unit/provider/execute_spec.rb +3 -14
- data/spec/unit/provider/launchd_spec.rb +2 -2
- data/spec/unit/provider/package/aix_spec.rb +22 -22
- data/spec/unit/provider/package/apt_spec.rb +37 -27
- data/spec/unit/provider/package/cab_spec.rb +59 -5
- data/{lib-backcompat/chef/chef_fs/file_system/repository/file_system_root_dir.rb → spec/unit/provider/package/dnf/python_helper_spec.rb} +10 -15
- data/spec/unit/provider/package/dpkg_spec.rb +16 -16
- data/spec/unit/provider/package/freebsd/pkg_spec.rb +15 -15
- data/spec/unit/provider/package/freebsd/pkgng_spec.rb +9 -9
- data/spec/unit/provider/package/freebsd/port_spec.rb +9 -9
- data/spec/unit/provider/package/homebrew_spec.rb +9 -9
- data/spec/unit/provider/package/ips_spec.rb +37 -31
- data/spec/unit/provider/package/macports_spec.rb +10 -10
- data/spec/unit/provider/package/openbsd_spec.rb +10 -10
- data/spec/unit/provider/package/pacman_spec.rb +6 -6
- data/spec/unit/provider/package/paludis_spec.rb +7 -7
- data/spec/unit/provider/package/portage_spec.rb +6 -7
- data/spec/unit/provider/package/rpm_spec.rb +23 -23
- data/spec/unit/provider/package/rubygems_spec.rb +135 -46
- data/spec/unit/provider/package/solaris_spec.rb +15 -15
- data/spec/unit/provider/package/windows/msi_spec.rb +1 -1
- data/spec/unit/provider/package/windows/registry_uninstall_entry_spec.rb +25 -0
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum_spec.rb +58 -50
- data/spec/unit/provider/package/zypper_spec.rb +54 -97
- data/spec/unit/provider/package_spec.rb +8 -0
- data/spec/unit/provider/powershell_script_spec.rb +14 -4
- data/spec/unit/provider/remote_file/sftp_spec.rb +3 -3
- data/spec/unit/provider/route_spec.rb +7 -1
- data/spec/unit/provider/script_spec.rb +49 -6
- data/spec/unit/provider/service/debian_service_spec.rb +14 -20
- data/spec/unit/provider/service/solaris_smf_service_spec.rb +37 -1
- data/spec/unit/provider/service/upstart_service_spec.rb +12 -25
- data/spec/unit/provider/subversion_spec.rb +2 -2
- data/spec/unit/provider/user/linux_spec.rb +5 -43
- data/spec/unit/provider/user/pw_spec.rb +7 -27
- data/spec/unit/provider/windows_task_spec.rb +392 -0
- data/spec/unit/provider_resolver_spec.rb +0 -1
- data/spec/unit/provider_spec.rb +10 -3
- data/spec/unit/recipe_spec.rb +3 -172
- data/spec/unit/resource/chef_gem_spec.rb +16 -62
- data/spec/unit/resource/conditional_spec.rb +4 -4
- data/spec/unit/resource/cookbook_file_spec.rb +2 -2
- data/spec/unit/resource/cron_spec.rb +1 -1
- data/spec/unit/resource/deploy_spec.rb +4 -4
- data/spec/unit/resource/directory_spec.rb +2 -2
- data/spec/unit/resource/dsc_resource_spec.rb +6 -0
- data/spec/unit/resource/env_spec.rb +1 -1
- data/spec/unit/resource/execute_spec.rb +215 -1
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
- data/spec/unit/resource/file/verification_spec.rb +8 -14
- data/spec/unit/resource/file_spec.rb +3 -3
- data/spec/unit/resource/freebsd_package_spec.rb +2 -2
- data/spec/unit/resource/group_spec.rb +2 -2
- data/spec/unit/resource/ifconfig_spec.rb +1 -1
- data/spec/unit/resource/link_spec.rb +2 -2
- data/spec/unit/resource/mdadm_spec.rb +1 -1
- data/spec/unit/resource/mount_spec.rb +3 -3
- data/spec/unit/resource/ohai_spec.rb +1 -1
- data/spec/unit/resource/package_spec.rb +14 -4
- data/spec/unit/resource/registry_key_spec.rb +2 -2
- data/spec/unit/resource/remote_directory_spec.rb +2 -2
- data/spec/unit/resource/remote_file_spec.rb +2 -2
- data/spec/unit/resource/route_spec.rb +1 -1
- data/spec/unit/resource/scm_spec.rb +2 -2
- data/spec/unit/resource/script_spec.rb +1 -1
- data/spec/unit/resource/service_spec.rb +25 -5
- data/spec/unit/resource/systemd_unit_spec.rb +1 -1
- data/spec/unit/resource/template_spec.rb +2 -2
- data/spec/unit/resource/user_spec.rb +6 -6
- data/spec/unit/resource/windows_task_spec.rb +213 -0
- data/spec/unit/resource/yum_package_spec.rb +42 -1
- data/spec/unit/resource_collection/resource_set_spec.rb +46 -1
- data/spec/unit/resource_collection_spec.rb +4 -3
- data/spec/unit/resource_reporter_spec.rb +6 -6
- data/spec/unit/resource_spec.rb +55 -71
- data/spec/unit/run_context/cookbook_compiler_spec.rb +1 -3
- data/spec/unit/run_list/versioned_recipe_list_spec.rb +7 -4
- data/spec/unit/runner_spec.rb +10 -28
- data/spec/unit/search/query_spec.rb +32 -34
- data/spec/unit/server_api_versions_spec.rb +44 -0
- data/spec/unit/shell/shell_session_spec.rb +33 -2
- data/spec/unit/util/selinux_spec.rb +3 -14
- data/spec/unit/win32/error_spec.rb +67 -0
- data/spec/unit/win32/security_spec.rb +66 -0
- data/tasks/bundle.rb +36 -52
- data/tasks/changelog.rb +1 -1
- data/tasks/dependencies.rb +54 -52
- data/tasks/version.rb +41 -0
- metadata +91 -76
- data/lib/chef/deprecation/mixin/template.rb +0 -48
- data/lib/chef/deprecation/provider/cookbook_file.rb +0 -54
- data/lib/chef/deprecation/provider/file.rb +0 -198
- data/lib/chef/deprecation/provider/remote_directory.rb +0 -52
- data/lib/chef/deprecation/provider/remote_file.rb +0 -85
- data/lib/chef/deprecation/provider/template.rb +0 -63
- data/lib/chef/dsl/method_missing.rb +0 -75
- data/lib/chef/knife/cookbook_site_vendor.rb +0 -46
- data/lib/chef/knife/core/custom_manifest_loader.rb +0 -69
- data/lib/chef/mixin/command/unix.rb +0 -220
- data/lib/chef/mixin/command/windows.rb +0 -71
- data/lib/chef/mixin/command.rb +0 -194
- data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
- data/lib/chef/provider/package/easy_install.rb +0 -135
- data/lib/chef/rest.rb +0 -210
- data/lib/chef/shell_out.rb +0 -13
- data/lib/chef/tasks/chef_repo.rake +0 -200
- data/lib-backcompat/chef/chef_fs/file_system/acl_entry.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/already_exists_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/chef_repository_file_system_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/chef_server_root_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/cookbook_frozen_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/default_environment_cannot_be_modified_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/file_system_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/must_delete_recursively_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/not_found_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_failed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/operation_not_allowed_error.rb +0 -20
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_acls_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_client_keys_dir.rb +0 -5
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_entry.rb +0 -6
- data/lib-backcompat/chef/chef_fs/file_system/repository/chef_repository_file_system_policies_dir.rb +0 -5
- data/spec/functional/rest_spec.rb +0 -95
- data/spec/unit/knife/core/custom_manifest_loader_spec.rb +0 -41
- data/spec/unit/lib_backcompat_spec.rb +0 -34
- data/spec/unit/mixin/command_spec.rb +0 -107
- data/spec/unit/platform_spec.rb +0 -242
- data/spec/unit/provider/package/easy_install_spec.rb +0 -114
- data/spec/unit/resource/easy_install_package_spec.rb +0 -39
- data/spec/unit/rest/auth_credentials_spec.rb +0 -292
- data/spec/unit/rest_spec.rb +0 -753
- data/spec/unit/shell_out_spec.rb +0 -18
- data/tasks/bin/bundle-platform +0 -20
- data/tasks/bin/bundle-platform.bat +0 -2
- data/tasks/bin/bundler_patch.rb +0 -27
- data/tasks/bin/gem-version-diff +0 -37
- data/tasks/bundle_util.rb +0 -110
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Jacob (<adam@chef.io>)
|
|
3
|
-
# Copyright:: Copyright 2008-
|
|
3
|
+
# Copyright:: Copyright 2008-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -38,14 +38,14 @@ describe Chef::Provider::Package::Zypper do
|
|
|
38
38
|
allow(provider).to receive(:`).and_return("2.0")
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
def shell_out_expectation(command, options
|
|
42
|
-
options ||=
|
|
43
|
-
expect(provider).to receive(:shell_out).with(command, options)
|
|
41
|
+
def shell_out_expectation(*command, **options)
|
|
42
|
+
options[:timeout] ||= 900
|
|
43
|
+
expect(provider).to receive(:shell_out).with(*command, **options)
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
def shell_out_expectation!(command, options
|
|
47
|
-
options ||=
|
|
48
|
-
expect(provider).to receive(:shell_out!).with(command, options)
|
|
46
|
+
def shell_out_expectation!(*command, **options)
|
|
47
|
+
options[:timeout] ||= 900
|
|
48
|
+
expect(provider).to receive(:shell_out!).with(*command, **options)
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
describe "when loading the current package state" do
|
|
@@ -61,7 +61,7 @@ describe Chef::Provider::Package::Zypper do
|
|
|
61
61
|
|
|
62
62
|
it "should run zypper info with the package name" do
|
|
63
63
|
shell_out_expectation!(
|
|
64
|
-
"zypper --non-interactive info
|
|
64
|
+
"zypper", "--non-interactive", "info", new_resource.package_name
|
|
65
65
|
).and_return(status)
|
|
66
66
|
provider.load_current_resource
|
|
67
67
|
end
|
|
@@ -111,25 +111,31 @@ describe Chef::Provider::Package::Zypper do
|
|
|
111
111
|
|
|
112
112
|
describe "install_package" do
|
|
113
113
|
it "should run zypper install with the package name and version" do
|
|
114
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
|
|
115
114
|
shell_out_expectation!(
|
|
116
|
-
"zypper --non-interactive install --auto-agree-with-licenses emacs=1.0"
|
|
115
|
+
"zypper", "--non-interactive", "install", "--auto-agree-with-licenses", "emacs=1.0"
|
|
117
116
|
)
|
|
118
117
|
provider.install_package(["emacs"], ["1.0"])
|
|
119
118
|
end
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
|
|
120
|
+
it "should run zypper install with gpg checks" do
|
|
122
121
|
shell_out_expectation!(
|
|
123
|
-
"zypper --non-interactive
|
|
122
|
+
"zypper", "--non-interactive", "install", "--auto-agree-with-licenses", "emacs=1.0"
|
|
124
123
|
)
|
|
125
124
|
provider.install_package(["emacs"], ["1.0"])
|
|
126
125
|
end
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
|
|
127
|
+
it "setting the property should disable gpg checks" do
|
|
128
|
+
new_resource.gpg_check false
|
|
129
|
+
shell_out_expectation!(
|
|
130
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "install", "--auto-agree-with-licenses", "emacs=1.0"
|
|
130
131
|
)
|
|
132
|
+
provider.install_package(["emacs"], ["1.0"])
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it "setting the config variable should disable gpg checks" do
|
|
136
|
+
Chef::Config[:zypper_check_gpg] = false
|
|
131
137
|
shell_out_expectation!(
|
|
132
|
-
"zypper --non-interactive --no-gpg-checks install
|
|
138
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "install", "--auto-agree-with-licenses", "emacs=1.0"
|
|
133
139
|
)
|
|
134
140
|
provider.install_package(["emacs"], ["1.0"])
|
|
135
141
|
end
|
|
@@ -137,31 +143,22 @@ describe Chef::Provider::Package::Zypper do
|
|
|
137
143
|
|
|
138
144
|
describe "upgrade_package" do
|
|
139
145
|
it "should run zypper update with the package name and version" do
|
|
140
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
|
|
141
146
|
shell_out_expectation!(
|
|
142
|
-
"zypper --non-interactive install --auto-agree-with-licenses emacs=1.0"
|
|
147
|
+
"zypper", "--non-interactive", "install", "--auto-agree-with-licenses", "emacs=1.0"
|
|
143
148
|
)
|
|
144
149
|
provider.upgrade_package(["emacs"], ["1.0"])
|
|
145
150
|
end
|
|
146
|
-
it "should run zypper update without gpg checks" do
|
|
147
|
-
|
|
151
|
+
it "should run zypper update without gpg checks when setting the property" do
|
|
152
|
+
new_resource.gpg_check false
|
|
148
153
|
shell_out_expectation!(
|
|
149
|
-
"zypper --non-interactive --no-gpg-checks install
|
|
154
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "install", "--auto-agree-with-licenses", "emacs=1.0"
|
|
150
155
|
)
|
|
151
156
|
provider.upgrade_package(["emacs"], ["1.0"])
|
|
152
157
|
end
|
|
153
|
-
it "should
|
|
154
|
-
|
|
155
|
-
/All packages will be installed without gpg signature checks/
|
|
156
|
-
)
|
|
158
|
+
it "should run zypper update without gpg checks when setting the config variable" do
|
|
159
|
+
Chef::Config[:zypper_check_gpg] = false
|
|
157
160
|
shell_out_expectation!(
|
|
158
|
-
"zypper --non-interactive --no-gpg-checks install
|
|
159
|
-
)
|
|
160
|
-
provider.upgrade_package(["emacs"], ["1.0"])
|
|
161
|
-
end
|
|
162
|
-
it "should run zypper upgrade without gpg checks" do
|
|
163
|
-
shell_out_expectation!(
|
|
164
|
-
"zypper --non-interactive --no-gpg-checks install " + "--auto-agree-with-licenses emacs=1.0"
|
|
161
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "install", "--auto-agree-with-licenses", "emacs=1.0"
|
|
165
162
|
)
|
|
166
163
|
provider.upgrade_package(["emacs"], ["1.0"])
|
|
167
164
|
end
|
|
@@ -171,9 +168,8 @@ describe Chef::Provider::Package::Zypper do
|
|
|
171
168
|
|
|
172
169
|
context "when package version is not explicitly specified" do
|
|
173
170
|
it "should run zypper remove with the package name" do
|
|
174
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
|
|
175
171
|
shell_out_expectation!(
|
|
176
|
-
"zypper --non-interactive remove emacs"
|
|
172
|
+
"zypper", "--non-interactive", "remove", "emacs"
|
|
177
173
|
)
|
|
178
174
|
provider.remove_package(["emacs"], [nil])
|
|
179
175
|
end
|
|
@@ -181,25 +177,22 @@ describe Chef::Provider::Package::Zypper do
|
|
|
181
177
|
|
|
182
178
|
context "when package version is explicitly specified" do
|
|
183
179
|
it "should run zypper remove with the package name" do
|
|
184
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
|
|
185
180
|
shell_out_expectation!(
|
|
186
|
-
"zypper --non-interactive remove emacs=1.0"
|
|
181
|
+
"zypper", "--non-interactive", "remove", "emacs=1.0"
|
|
187
182
|
)
|
|
188
183
|
provider.remove_package(["emacs"], ["1.0"])
|
|
189
184
|
end
|
|
190
185
|
it "should run zypper remove without gpg checks" do
|
|
191
|
-
|
|
186
|
+
new_resource.gpg_check false
|
|
192
187
|
shell_out_expectation!(
|
|
193
|
-
"zypper --non-interactive --no-gpg-checks remove emacs=1.0"
|
|
188
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "remove", "emacs=1.0"
|
|
194
189
|
)
|
|
195
190
|
provider.remove_package(["emacs"], ["1.0"])
|
|
196
191
|
end
|
|
197
|
-
it "should
|
|
198
|
-
|
|
199
|
-
/All packages will be installed without gpg signature checks/
|
|
200
|
-
)
|
|
192
|
+
it "should run zypper remove without gpg checks when the config is false" do
|
|
193
|
+
Chef::Config[:zypper_check_gpg] = false
|
|
201
194
|
shell_out_expectation!(
|
|
202
|
-
|
|
195
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "remove", "emacs=1.0"
|
|
203
196
|
)
|
|
204
197
|
provider.remove_package(["emacs"], ["1.0"])
|
|
205
198
|
end
|
|
@@ -209,23 +202,21 @@ describe Chef::Provider::Package::Zypper do
|
|
|
209
202
|
describe "purge_package" do
|
|
210
203
|
it "should run remove with the name and version and --clean-deps" do
|
|
211
204
|
shell_out_expectation!(
|
|
212
|
-
"zypper --non-interactive
|
|
205
|
+
"zypper", "--non-interactive", "remove", "--clean-deps", "emacs=1.0"
|
|
213
206
|
)
|
|
214
207
|
provider.purge_package(["emacs"], ["1.0"])
|
|
215
208
|
end
|
|
216
209
|
it "should run zypper purge without gpg checks" do
|
|
217
|
-
|
|
210
|
+
new_resource.gpg_check false
|
|
218
211
|
shell_out_expectation!(
|
|
219
|
-
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0"
|
|
212
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "remove", "--clean-deps", "emacs=1.0"
|
|
220
213
|
)
|
|
221
214
|
provider.purge_package(["emacs"], ["1.0"])
|
|
222
215
|
end
|
|
223
|
-
it "should
|
|
224
|
-
|
|
225
|
-
/All packages will be installed without gpg signature checks/
|
|
226
|
-
)
|
|
216
|
+
it "should run zypper purge without gpg checks when the config is false" do
|
|
217
|
+
Chef::Config[:zypper_check_gpg] = false
|
|
227
218
|
shell_out_expectation!(
|
|
228
|
-
"zypper --non-interactive --no-gpg-checks remove --clean-deps emacs=1.0"
|
|
219
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "remove", "--clean-deps", "emacs=1.0"
|
|
229
220
|
)
|
|
230
221
|
provider.purge_package(["emacs"], ["1.0"])
|
|
231
222
|
end
|
|
@@ -233,31 +224,15 @@ describe Chef::Provider::Package::Zypper do
|
|
|
233
224
|
|
|
234
225
|
describe "lock_package" do
|
|
235
226
|
it "should run zypper addlock with the package name" do
|
|
236
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
|
|
237
227
|
shell_out_expectation!(
|
|
238
|
-
"zypper --non-interactive addlock emacs"
|
|
228
|
+
"zypper", "--non-interactive", "addlock", "emacs"
|
|
239
229
|
)
|
|
240
230
|
provider.lock_package(["emacs"], [nil])
|
|
241
231
|
end
|
|
242
232
|
it "should run zypper addlock without gpg checks" do
|
|
243
|
-
|
|
233
|
+
new_resource.gpg_check false
|
|
244
234
|
shell_out_expectation!(
|
|
245
|
-
"zypper --non-interactive --no-gpg-checks addlock emacs"
|
|
246
|
-
)
|
|
247
|
-
provider.lock_package(["emacs"], [nil])
|
|
248
|
-
end
|
|
249
|
-
it "should warn about gpg checks on zypper addlock" do
|
|
250
|
-
expect(Chef::Log).to receive(:warn).with(
|
|
251
|
-
/All packages will be installed without gpg signature checks/
|
|
252
|
-
)
|
|
253
|
-
shell_out_expectation!(
|
|
254
|
-
"zypper --non-interactive --no-gpg-checks addlock emacs"
|
|
255
|
-
)
|
|
256
|
-
provider.lock_package(["emacs"], [nil])
|
|
257
|
-
end
|
|
258
|
-
it "should run zypper addlock without gpg checks" do
|
|
259
|
-
shell_out_expectation!(
|
|
260
|
-
"zypper --non-interactive --no-gpg-checks addlock emacs"
|
|
235
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "addlock", "emacs"
|
|
261
236
|
)
|
|
262
237
|
provider.lock_package(["emacs"], [nil])
|
|
263
238
|
end
|
|
@@ -265,31 +240,15 @@ describe Chef::Provider::Package::Zypper do
|
|
|
265
240
|
|
|
266
241
|
describe "unlock_package" do
|
|
267
242
|
it "should run zypper removelock with the package name" do
|
|
268
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(true)
|
|
269
|
-
shell_out_expectation!(
|
|
270
|
-
"zypper --non-interactive removelock emacs"
|
|
271
|
-
)
|
|
272
|
-
provider.unlock_package(["emacs"], [nil])
|
|
273
|
-
end
|
|
274
|
-
it "should run zypper removelock without gpg checks" do
|
|
275
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
|
|
276
|
-
shell_out_expectation!(
|
|
277
|
-
"zypper --non-interactive --no-gpg-checks removelock emacs"
|
|
278
|
-
)
|
|
279
|
-
provider.unlock_package(["emacs"], [nil])
|
|
280
|
-
end
|
|
281
|
-
it "should warn about gpg checks on zypper removelock" do
|
|
282
|
-
expect(Chef::Log).to receive(:warn).with(
|
|
283
|
-
/All packages will be installed without gpg signature checks/
|
|
284
|
-
)
|
|
285
243
|
shell_out_expectation!(
|
|
286
|
-
"zypper --non-interactive
|
|
244
|
+
"zypper", "--non-interactive", "removelock", "emacs"
|
|
287
245
|
)
|
|
288
246
|
provider.unlock_package(["emacs"], [nil])
|
|
289
247
|
end
|
|
290
248
|
it "should run zypper removelock without gpg checks" do
|
|
249
|
+
new_resource.gpg_check false
|
|
291
250
|
shell_out_expectation!(
|
|
292
|
-
"zypper --non-interactive --no-gpg-checks removelock emacs"
|
|
251
|
+
"zypper", "--non-interactive", "--no-gpg-checks", "removelock", "emacs"
|
|
293
252
|
)
|
|
294
253
|
provider.unlock_package(["emacs"], [nil])
|
|
295
254
|
end
|
|
@@ -303,7 +262,7 @@ describe Chef::Provider::Package::Zypper do
|
|
|
303
262
|
describe "install_package" do
|
|
304
263
|
it "should run zypper install with the package name and version" do
|
|
305
264
|
shell_out_expectation!(
|
|
306
|
-
"zypper
|
|
265
|
+
"zypper", "install", "--auto-agree-with-licenses", "-y", "emacs"
|
|
307
266
|
)
|
|
308
267
|
provider.install_package(["emacs"], ["1.0"])
|
|
309
268
|
end
|
|
@@ -312,7 +271,7 @@ describe Chef::Provider::Package::Zypper do
|
|
|
312
271
|
describe "upgrade_package" do
|
|
313
272
|
it "should run zypper update with the package name and version" do
|
|
314
273
|
shell_out_expectation!(
|
|
315
|
-
"zypper
|
|
274
|
+
"zypper", "install", "--auto-agree-with-licenses", "-y", "emacs"
|
|
316
275
|
)
|
|
317
276
|
provider.upgrade_package(["emacs"], ["1.0"])
|
|
318
277
|
end
|
|
@@ -321,7 +280,7 @@ describe Chef::Provider::Package::Zypper do
|
|
|
321
280
|
describe "remove_package" do
|
|
322
281
|
it "should run zypper remove with the package name" do
|
|
323
282
|
shell_out_expectation!(
|
|
324
|
-
"zypper
|
|
283
|
+
"zypper", "remove", "-y", "emacs"
|
|
325
284
|
)
|
|
326
285
|
provider.remove_package(["emacs"], ["1.0"])
|
|
327
286
|
end
|
|
@@ -330,17 +289,15 @@ describe Chef::Provider::Package::Zypper do
|
|
|
330
289
|
|
|
331
290
|
describe "when installing multiple packages" do # https://github.com/chef/chef/issues/3570
|
|
332
291
|
it "should install an array of package names and versions" do
|
|
333
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
|
|
334
292
|
shell_out_expectation!(
|
|
335
|
-
"zypper --non-interactive
|
|
293
|
+
"zypper", "--non-interactive", "install", "--auto-agree-with-licenses", "emacs=1.0", "vim=2.0"
|
|
336
294
|
)
|
|
337
295
|
provider.install_package(%w{emacs vim}, ["1.0", "2.0"])
|
|
338
296
|
end
|
|
339
297
|
|
|
340
298
|
it "should remove an array of package names and versions" do
|
|
341
|
-
allow(Chef::Config).to receive(:[]).with(:zypper_check_gpg).and_return(false)
|
|
342
299
|
shell_out_expectation!(
|
|
343
|
-
"zypper --non-interactive
|
|
300
|
+
"zypper", "--non-interactive", "remove", "emacs=1.0", "vim=2.0"
|
|
344
301
|
)
|
|
345
302
|
provider.remove_package(%w{emacs vim}, ["1.0", "2.0"])
|
|
346
303
|
end
|
|
@@ -517,6 +517,10 @@ describe "Subclass with use_multipackage_api" do
|
|
|
517
517
|
end
|
|
518
518
|
|
|
519
519
|
context "#a_to_s utility for subclasses" do
|
|
520
|
+
before(:each) do
|
|
521
|
+
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
|
522
|
+
end
|
|
523
|
+
|
|
520
524
|
it "converts varargs of strings to a single string" do
|
|
521
525
|
expect(provider.send(:a_to_s, "a", nil, "b", "", "c", " ", "d e", "f-g")).to eq("a b c d e f-g")
|
|
522
526
|
end
|
|
@@ -906,6 +910,10 @@ describe "Chef::Provider::Package - Multi" do
|
|
|
906
910
|
end
|
|
907
911
|
|
|
908
912
|
describe "shell_out helpers" do
|
|
913
|
+
before(:each) do
|
|
914
|
+
Chef::Config[:treat_deprecation_warnings_as_errors] = false
|
|
915
|
+
end
|
|
916
|
+
|
|
909
917
|
[ :shell_out_with_timeout, :shell_out_with_timeout! ].each do |method|
|
|
910
918
|
stubbed_method = method == :shell_out_with_timeout! ? :shell_out! : :shell_out
|
|
911
919
|
[ %w{command arg1 arg2}, "command arg1 arg2" ].each do |command|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#
|
|
2
2
|
# Author:: Adam Edwards (<adamed@chef.io>)
|
|
3
|
-
# Copyright:: Copyright 2013-
|
|
3
|
+
# Copyright:: Copyright 2013-2017, Chef Software Inc.
|
|
4
4
|
# License:: Apache License, Version 2.0
|
|
5
5
|
#
|
|
6
6
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -30,10 +30,20 @@ describe Chef::Provider::PowershellScript, "action_run" do
|
|
|
30
30
|
node
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
# code block is mandatory for the powershell provider
|
|
34
|
+
let(:code) { "" }
|
|
35
|
+
|
|
36
|
+
let(:events) { Chef::EventDispatch::Dispatcher.new }
|
|
37
|
+
|
|
38
|
+
let(:run_context) { run_context = Chef::RunContext.new(node, {}, events) }
|
|
39
|
+
|
|
40
|
+
let(:new_resource) do
|
|
36
41
|
new_resource = Chef::Resource::PowershellScript.new("run some powershell code", run_context)
|
|
42
|
+
new_resource.code code
|
|
43
|
+
new_resource
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
let(:provider) do
|
|
37
47
|
Chef::Provider::PowershellScript.new(new_resource, run_context)
|
|
38
48
|
end
|
|
39
49
|
|
|
@@ -117,7 +117,7 @@ describe Chef::Provider::RemoteFile::SFTP do
|
|
|
117
117
|
end
|
|
118
118
|
|
|
119
119
|
context "and the URI specifies an alternate port" do
|
|
120
|
-
let(:uri) { URI.parse("
|
|
120
|
+
let(:uri) { URI.parse("sftp://conan:cthu1hu@opscode.com:8021/seattle.txt") }
|
|
121
121
|
|
|
122
122
|
it "should connect on an alternate port when one is provided" do
|
|
123
123
|
expect(Net::SFTP).to receive(:start).with("opscode.com:8021", "conan", :password => "cthu1hu")
|
|
@@ -127,10 +127,10 @@ describe Chef::Provider::RemoteFile::SFTP do
|
|
|
127
127
|
end
|
|
128
128
|
|
|
129
129
|
context "and the uri specifies a nested path" do
|
|
130
|
-
let(:uri) { URI.parse("
|
|
130
|
+
let(:uri) { URI.parse("sftp://conan:cthu1hu@opscode.com/the/whole/path/seattle.txt") }
|
|
131
131
|
|
|
132
132
|
it "should fetch the file from the correct path" do
|
|
133
|
-
expect(sftp).to receive(:download!).with("the/whole/path/seattle.txt", "/tmp/somedir/remote-file-sftp-backend-spec-test")
|
|
133
|
+
expect(sftp).to receive(:download!).with("/the/whole/path/seattle.txt", "/tmp/somedir/remote-file-sftp-backend-spec-test")
|
|
134
134
|
fetcher.fetch
|
|
135
135
|
end
|
|
136
136
|
end
|
|
@@ -230,13 +230,19 @@ describe Chef::Provider::Route do
|
|
|
230
230
|
@run_context.resource_collection << Chef::Resource::Route.new("192.168.1.0/24 via 192.168.0.1")
|
|
231
231
|
@run_context.resource_collection << Chef::Resource::Route.new("192.168.2.0/24 via 192.168.0.1")
|
|
232
232
|
@run_context.resource_collection << Chef::Resource::Route.new("192.168.3.0/24 via 192.168.0.1")
|
|
233
|
+
@run_context.resource_collection << Chef::Resource::Route.new("Complex Route").tap do |r|
|
|
234
|
+
r.target "192.168.4.0"
|
|
235
|
+
r.gateway "192.168.0.1"
|
|
236
|
+
r.netmask "255.255.255.0"
|
|
237
|
+
end
|
|
233
238
|
|
|
234
239
|
@provider.action = :add
|
|
235
240
|
@provider.generate_config
|
|
236
|
-
expect(route_file.string.split("\n").size).to eq(
|
|
241
|
+
expect(route_file.string.split("\n").size).to eq(4)
|
|
237
242
|
expect(route_file.string).to match(/^192\.168\.1\.0\/24 via 192\.168\.0\.1$/)
|
|
238
243
|
expect(route_file.string).to match(/^192\.168\.2\.0\/24 via 192\.168\.0\.1$/)
|
|
239
244
|
expect(route_file.string).to match(/^192\.168\.3\.0\/24 via 192\.168\.0\.1$/)
|
|
245
|
+
expect(route_file.string).to match(/^192\.168\.4\.0\/24 via 192\.168\.0\.1$/)
|
|
240
246
|
end
|
|
241
247
|
end
|
|
242
248
|
end
|
|
@@ -56,12 +56,55 @@ describe Chef::Provider::Script, "action_run" do
|
|
|
56
56
|
end
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
-
context "
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
context "when configuring the script file's security" do
|
|
60
|
+
context "when not running on Windows" do
|
|
61
|
+
before do
|
|
62
|
+
allow(::Chef::Platform).to receive(:windows?).and_return(false)
|
|
63
|
+
end
|
|
64
|
+
context "#set_owner_and_group" do
|
|
65
|
+
it "sets the owner and group for the script file" do
|
|
66
|
+
new_resource.user "toor"
|
|
67
|
+
new_resource.group "wheel"
|
|
68
|
+
expect(FileUtils).to receive(:chown).with("toor", "wheel", tempfile.path)
|
|
69
|
+
provider.set_owner_and_group
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
context "when running on Windows" do
|
|
75
|
+
before do
|
|
76
|
+
allow(::Chef::Platform).to receive(:windows?).and_return(true)
|
|
77
|
+
expect(new_resource.user).to eq(nil)
|
|
78
|
+
stub_const("Chef::ReservedNames::Win32::API::Security::GENERIC_READ", 1)
|
|
79
|
+
stub_const("Chef::ReservedNames::Win32::API::Security::GENERIC_EXECUTE", 4)
|
|
80
|
+
stub_const("Chef::ReservedNames::Win32::Security", Class.new)
|
|
81
|
+
stub_const("Chef::ReservedNames::Win32::Security::SecurableObject", Class.new)
|
|
82
|
+
stub_const("Chef::ReservedNames::Win32::Security::SID", Class.new)
|
|
83
|
+
stub_const("Chef::ReservedNames::Win32::Security::ACE", Class.new)
|
|
84
|
+
stub_const("Chef::ReservedNames::Win32::Security::ACL", Class.new)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
context "when an alternate user is not specified" do
|
|
88
|
+
it "does not attempt to set the script file's security descriptor" do
|
|
89
|
+
expect(provider).to receive(:grant_alternate_user_read_access)
|
|
90
|
+
expect(Chef::ReservedNames::Win32::Security::SecurableObject).not_to receive(:new)
|
|
91
|
+
provider.set_owner_and_group
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
context "when an alternate user is specified" do
|
|
96
|
+
let(:security_descriptor) { instance_double("Chef::ReservedNames::Win32::Security::SecurityDescriptor", :dacl => []) }
|
|
97
|
+
let(:securable_object) { instance_double("Chef::ReservedNames::Win32::Security::SecurableObject", :security_descriptor => security_descriptor, :dacl= => nil) }
|
|
98
|
+
it "sets the script file's security descriptor" do
|
|
99
|
+
new_resource.user("toor")
|
|
100
|
+
expect(Chef::ReservedNames::Win32::Security::SecurableObject).to receive(:new).and_return(securable_object)
|
|
101
|
+
expect(Chef::ReservedNames::Win32::Security::SID).to receive(:from_account).and_return(nil)
|
|
102
|
+
expect(Chef::ReservedNames::Win32::Security::ACE).to receive(:access_allowed).and_return(nil)
|
|
103
|
+
expect(Chef::ReservedNames::Win32::Security::ACL).to receive(:create).and_return(nil)
|
|
104
|
+
expect(securable_object).to receive(:dacl=)
|
|
105
|
+
provider.set_owner_and_group
|
|
106
|
+
end
|
|
107
|
+
end
|
|
65
108
|
end
|
|
66
109
|
end
|
|
67
110
|
|
|
@@ -59,11 +59,10 @@ describe Chef::Provider::Service::Debian do
|
|
|
59
59
|
/etc/rc6.d/K20chef
|
|
60
60
|
UPDATE_RC_D_SUCCESS
|
|
61
61
|
|
|
62
|
-
@stdout =
|
|
63
|
-
@stderr =
|
|
64
|
-
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
|
|
62
|
+
@stdout = result
|
|
63
|
+
@stderr = ""
|
|
64
|
+
@status = double("Status", :exitstatus => 0, :stdout => @stdout, :stderr => @stderr)
|
|
65
65
|
allow(@provider).to receive(:shell_out!).and_return(@status)
|
|
66
|
-
allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
|
|
67
66
|
end
|
|
68
67
|
|
|
69
68
|
it "says the service is enabled" do
|
|
@@ -80,13 +79,9 @@ describe Chef::Provider::Service::Debian do
|
|
|
80
79
|
context "when update-rc.d shows init isn't linked to rc*.d/" do
|
|
81
80
|
before do
|
|
82
81
|
allow(@provider).to receive(:assert_update_rcd_available)
|
|
83
|
-
@
|
|
84
|
-
@
|
|
85
|
-
" Removing any system startup links for /etc/init.d/chef ...")
|
|
86
|
-
@stderr = StringIO.new
|
|
87
|
-
@status = double("Status", :exitstatus => 0, :stdout => @stdout)
|
|
82
|
+
@stdout = " Removing any system startup links for /etc/init.d/chef ..."
|
|
83
|
+
@status = double("Status", :exitstatus => 0, :stdout => @stdout, stderr: "")
|
|
88
84
|
allow(@provider).to receive(:shell_out!).and_return(@status)
|
|
89
|
-
allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
|
|
90
85
|
end
|
|
91
86
|
|
|
92
87
|
it "says the service is disabled" do
|
|
@@ -102,11 +97,12 @@ describe Chef::Provider::Service::Debian do
|
|
|
102
97
|
|
|
103
98
|
context "when update-rc.d fails" do
|
|
104
99
|
before do
|
|
105
|
-
@status = double("Status", :
|
|
106
|
-
allow(@provider).to receive(:
|
|
100
|
+
@status = double("Status", exitstatus: -1, stdout: "", stderr: "")
|
|
101
|
+
allow(@provider).to receive(:shell_out!).and_return(@status)
|
|
107
102
|
end
|
|
108
103
|
|
|
109
104
|
it "raises an error" do
|
|
105
|
+
@provider.load_current_resource
|
|
110
106
|
@provider.define_resource_requirements
|
|
111
107
|
expect do
|
|
112
108
|
@provider.process_resource_requirements
|
|
@@ -198,11 +194,10 @@ insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
|
|
|
198
194
|
before do
|
|
199
195
|
allow(@provider).to receive(:assert_update_rcd_available)
|
|
200
196
|
|
|
201
|
-
@stdout =
|
|
202
|
-
@stderr =
|
|
203
|
-
@status = double("Status", :
|
|
197
|
+
@stdout = expected_results["linked"]["stdout"]
|
|
198
|
+
@stderr = expected_results["linked"]["stderr"]
|
|
199
|
+
@status = double("Status", exitstatus: 0, stdout: @stdout, stderr: @stderr)
|
|
204
200
|
allow(@provider).to receive(:shell_out!).and_return(@status)
|
|
205
|
-
allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
|
|
206
201
|
end
|
|
207
202
|
|
|
208
203
|
it "says the service is enabled" do
|
|
@@ -224,11 +219,10 @@ insserv: dryrun, not creating .depend.boot, .depend.start, and .depend.stop
|
|
|
224
219
|
context "when update-rc.d shows init isn't linked to rc*.d/" do
|
|
225
220
|
before do
|
|
226
221
|
allow(@provider).to receive(:assert_update_rcd_available)
|
|
227
|
-
@stdout =
|
|
228
|
-
@stderr =
|
|
229
|
-
@status = double("Status", :
|
|
222
|
+
@stdout = expected_results["not linked"]["stdout"]
|
|
223
|
+
@stderr = expected_results["not linked"]["stderr"]
|
|
224
|
+
@status = double("Status", exitstatus: 0, stdout: @stdout, stderr: @stderr)
|
|
230
225
|
allow(@provider).to receive(:shell_out!).and_return(@status)
|
|
231
|
-
allow(@provider).to receive(:popen4).and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
|
|
232
226
|
end
|
|
233
227
|
|
|
234
228
|
it "says the service is disabled" do
|
|
@@ -198,6 +198,33 @@ describe Chef::Provider::Service::Solaris do
|
|
|
198
198
|
end
|
|
199
199
|
end
|
|
200
200
|
|
|
201
|
+
describe "when enabling the service recursively" do
|
|
202
|
+
before(:each) do
|
|
203
|
+
@provider.current_resource = @current_resource
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
it "should call svcadm enable -s -r chef" do
|
|
207
|
+
@new_resource.options("-r")
|
|
208
|
+
expect(@provider).to receive(:shell_out!).with("/bin/svcs", "-l", "chef", { :returns => [0, 1] }).and_return(@enabled_svc_status)
|
|
209
|
+
expect(@provider).not_to receive(:shell_out!).with("/usr/sbin/svcadm", "clear", @current_resource.service_name)
|
|
210
|
+
expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm", "enable", "-s", "-r", @current_resource.service_name).and_return(@success)
|
|
211
|
+
@provider.load_current_resource
|
|
212
|
+
expect(@provider.enable_service).to be_truthy
|
|
213
|
+
expect(@current_resource.enabled).to be_truthy
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
it "should call svcadm enable -s -r -t chef when passed an array of options" do
|
|
217
|
+
@new_resource.options(["-r", "-t"])
|
|
218
|
+
expect(@provider).to receive(:shell_out!).with("/bin/svcs", "-l", "chef", { :returns => [0, 1] }).and_return(@enabled_svc_status)
|
|
219
|
+
expect(@provider).not_to receive(:shell_out!).with("/usr/sbin/svcadm", "clear", @current_resource.service_name)
|
|
220
|
+
expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm", "enable", "-s", "-r", "-t", @current_resource.service_name).and_return(@success)
|
|
221
|
+
@provider.load_current_resource
|
|
222
|
+
expect(@provider.enable_service).to be_truthy
|
|
223
|
+
expect(@current_resource.enabled).to be_truthy
|
|
224
|
+
end
|
|
225
|
+
|
|
226
|
+
end
|
|
227
|
+
|
|
201
228
|
describe "when disabling the service" do
|
|
202
229
|
before(:each) do
|
|
203
230
|
@provider.current_resource = @current_resource
|
|
@@ -215,7 +242,16 @@ describe Chef::Provider::Service::Solaris do
|
|
|
215
242
|
expect(@provider).to receive(:shell_out!).with("/bin/svcs", "-l", "chef", { :returns => [0, 1] }).and_return(@disabled_svc_status)
|
|
216
243
|
expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm", "disable", "-s", "chef").and_return(@success)
|
|
217
244
|
@provider.load_current_resource
|
|
218
|
-
expect(@provider.
|
|
245
|
+
expect(@provider.disable_service).to be_truthy
|
|
246
|
+
expect(@current_resource.enabled).to be_falsey
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
it "should call svcadm disable chef with options" do
|
|
250
|
+
@new_resource.options("-t")
|
|
251
|
+
expect(@provider).to receive(:shell_out!).with("/bin/svcs", "-l", "chef", { :returns => [0, 1] }).and_return(@disabled_svc_status)
|
|
252
|
+
expect(@provider).to receive(:shell_out!).with("/usr/sbin/svcadm", "disable", "-s", "-t", "chef").and_return(@success)
|
|
253
|
+
@provider.load_current_resource
|
|
254
|
+
expect(@provider.disable_service).to be_truthy
|
|
219
255
|
expect(@current_resource.enabled).to be_falsey
|
|
220
256
|
end
|
|
221
257
|
|