chef 12.18.31-universal-mingw32 → 12.19.33-universal-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +5 -4
- data/README.md +12 -13
- data/VERSION +1 -1
- data/acceptance/Gemfile +4 -4
- data/acceptance/Gemfile.lock +70 -69
- data/chef-universal-mingw32.gemspec +2 -3
- data/chef.gemspec +6 -6
- data/lib/chef/api_client.rb +8 -10
- 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 +3 -5
- data/lib/chef/application/knife.rb +2 -2
- data/lib/chef/application/windows_service.rb +29 -30
- data/lib/chef/application/windows_service_manager.rb +1 -1
- data/lib/chef/audit/audit_event_proxy.rb +2 -2
- data/lib/chef/audit/control_group_data.rb +1 -1
- data/lib/chef/chef_class.rb +1 -0
- data/lib/chef/chef_fs/chef_fs_data_store.rb +5 -7
- 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.rb +1 -1
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_dir.rb +5 -6
- data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +8 -10
- 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 +18 -24
- 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 +10 -12
- 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/parallelizer.rb +9 -11
- data/lib/chef/cookbook/cookbook_version_loader.rb +25 -31
- data/lib/chef/cookbook/metadata.rb +26 -26
- data/lib/chef/cookbook/syntax_check.rb +1 -1
- data/lib/chef/cookbook_version.rb +3 -3
- data/lib/chef/data_bag.rb +1 -1
- data/lib/chef/data_bag_item.rb +3 -3
- data/lib/chef/data_collector.rb +3 -4
- data/lib/chef/decorator.rb +1 -1
- data/lib/chef/deprecated.rb +30 -0
- data/lib/chef/dsl/audit.rb +2 -2
- data/lib/chef/dsl/declare_resource.rb +1 -1
- data/lib/chef/dsl/platform_introspection.rb +29 -31
- data/lib/chef/dsl/reboot_pending.rb +1 -1
- data/lib/chef/dsl/resources.rb +6 -8
- data/lib/chef/encrypted_data_bag_item.rb +2 -2
- data/lib/chef/environment.rb +9 -11
- data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
- data/lib/chef/exceptions.rb +4 -1
- 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_inspectors/api_error_formatting.rb +4 -5
- data/lib/chef/formatters/error_mapper.rb +6 -6
- data/lib/chef/http/api_versions.rb +50 -0
- data/lib/chef/http/validate_content_length.rb +2 -2
- data/lib/chef/json_compat.rb +6 -10
- data/lib/chef/key.rb +5 -5
- data/lib/chef/knife.rb +4 -4
- data/lib/chef/knife/cookbook_site_install.rb +2 -2
- 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/ui.rb +19 -25
- data/lib/chef/knife/data_bag_secret_options.rb +1 -1
- data/lib/chef/knife/deps.rb +32 -34
- data/lib/chef/knife/help.rb +1 -1
- data/lib/chef/knife/list.rb +1 -1
- data/lib/chef/knife/search.rb +2 -2
- data/lib/chef/knife/ssh.rb +37 -27
- data/lib/chef/knife/ssl_check.rb +1 -1
- data/lib/chef/knife/user_delete.rb +1 -1
- data/lib/chef/mash.rb +1 -1
- data/lib/chef/mixin/command.rb +2 -2
- 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 +3 -3
- data/lib/chef/mixin/securable.rb +1 -1
- data/lib/chef/mixin/shell_out.rb +23 -3
- data/lib/chef/mixin/unformatter.rb +2 -2
- data/lib/chef/mixin/uris.rb +4 -6
- data/lib/chef/mixin/versioned_api.rb +69 -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/monkey_patches/webrick-utils.rb +1 -1
- data/lib/chef/node.rb +8 -8
- data/lib/chef/node/attribute.rb +4 -4
- data/lib/chef/node/common_api.rb +5 -7
- data/lib/chef/org.rb +10 -12
- data/lib/chef/platform/provider_mapping.rb +7 -7
- data/lib/chef/platform/query_helpers.rb +1 -1
- data/lib/chef/policy_builder/policyfile.rb +1 -0
- data/lib/chef/property.rb +31 -0
- data/lib/chef/provider/batch.rb +1 -1
- data/lib/chef/provider/breakpoint.rb +1 -1
- data/lib/chef/provider/cookbook_file.rb +3 -3
- data/lib/chef/provider/cron.rb +38 -38
- data/lib/chef/provider/deploy.rb +81 -81
- data/lib/chef/provider/deploy/revision.rb +3 -5
- data/lib/chef/provider/directory.rb +32 -32
- data/lib/chef/provider/dsc_resource.rb +22 -6
- data/lib/chef/provider/env.rb +28 -28
- data/lib/chef/provider/env/windows.rb +1 -1
- data/lib/chef/provider/erl_call.rb +13 -13
- data/lib/chef/provider/execute.rb +5 -2
- data/lib/chef/provider/file.rb +49 -51
- data/lib/chef/provider/git.rb +55 -55
- data/lib/chef/provider/http_request.rb +36 -36
- data/lib/chef/provider/launchd.rb +2 -2
- data/lib/chef/provider/link.rb +50 -50
- data/lib/chef/provider/log.rb +2 -2
- data/lib/chef/provider/mdadm.rb +25 -25
- data/lib/chef/provider/mount/aix.rb +2 -2
- data/lib/chef/provider/mount/mount.rb +2 -2
- data/lib/chef/provider/ohai.rb +1 -1
- data/lib/chef/provider/osx_profile.rb +23 -23
- data/lib/chef/provider/package.rb +74 -56
- data/lib/chef/provider/package/aix.rb +55 -52
- data/lib/chef/provider/package/apt.rb +15 -13
- data/lib/chef/provider/package/cab.rb +49 -20
- data/lib/chef/provider/package/chocolatey.rb +9 -10
- data/lib/chef/provider/package/dnf.rb +20 -18
- 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/dpkg.rb +8 -9
- data/lib/chef/provider/package/easy_install.rb +22 -22
- 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 -23
- data/lib/chef/provider/package/macports.rb +23 -23
- data/lib/chef/provider/package/msu.rb +11 -11
- data/lib/chef/provider/package/openbsd.rb +25 -22
- data/lib/chef/provider/package/pacman.rb +16 -16
- data/lib/chef/provider/package/paludis.rb +26 -27
- data/lib/chef/provider/package/portage.rb +22 -22
- data/lib/chef/provider/package/powershell.rb +17 -17
- data/lib/chef/provider/package/rpm.rb +25 -25
- data/lib/chef/provider/package/rubygems.rb +60 -60
- data/lib/chef/provider/package/smartos.rb +16 -16
- data/lib/chef/provider/package/solaris.rb +44 -44
- data/lib/chef/provider/package/windows.rb +3 -3
- data/lib/chef/provider/package/windows/exe.rb +6 -6
- data/lib/chef/provider/package/windows/msi.rb +6 -6
- data/lib/chef/provider/package/yum.rb +318 -268
- 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/zypper.rb +11 -11
- data/lib/chef/provider/powershell_script.rb +15 -7
- data/lib/chef/provider/reboot.rb +10 -10
- data/lib/chef/provider/registry_key.rb +39 -39
- data/lib/chef/provider/remote_directory.rb +3 -3
- data/lib/chef/provider/remote_file.rb +3 -3
- data/lib/chef/provider/route.rb +1 -1
- data/lib/chef/provider/ruby_block.rb +3 -3
- data/lib/chef/provider/script.rb +42 -6
- data/lib/chef/provider/service.rb +49 -49
- data/lib/chef/provider/service/solaris.rb +1 -1
- data/lib/chef/provider/service/systemd.rb +1 -1
- data/lib/chef/provider/subversion.rb +39 -39
- data/lib/chef/provider/systemd_unit.rb +2 -0
- data/lib/chef/provider/template.rb +3 -3
- data/lib/chef/provider/user.rb +42 -42
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +4 -4
- data/lib/chef/resource.rb +27 -16
- data/lib/chef/resource/apt_repository.rb +0 -1
- data/lib/chef/resource/chef_gem.rb +1 -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 +70 -6
- data/lib/chef/resource/file/verification/systemd_unit.rb +67 -0
- data/lib/chef/resource/freebsd_package.rb +1 -1
- data/lib/chef/resource/gem_package.rb +1 -1
- data/lib/chef/resource/launchd.rb +13 -1
- data/lib/chef/resource/package.rb +2 -2
- data/lib/chef/resource/registry_key.rb +1 -1
- data/lib/chef/resource/yum_package.rb +12 -3
- data/lib/chef/resource/yum_repository.rb +0 -1
- data/lib/chef/resource_collection/resource_collection_serialization.rb +3 -3
- data/lib/chef/resource_collection/resource_set.rb +2 -2
- data/lib/chef/resource_reporter.rb +1 -1
- data/lib/chef/run_context.rb +3 -3
- data/lib/chef/run_list/run_list_item.rb +1 -1
- data/lib/chef/run_list/versioned_recipe_list.rb +6 -6
- data/lib/chef/server_api.rb +2 -0
- data/lib/chef/server_api_versions.rb +40 -0
- data/lib/chef/shell.rb +1 -1
- data/lib/chef/shell/ext.rb +3 -3
- data/lib/chef/shell/shell_session.rb +1 -1
- data/lib/chef/user.rb +9 -11
- data/lib/chef/user_v1.rb +9 -11
- 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 +11 -17
- 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.rb +4 -6
- data/lib/chef/win32/api/file.rb +25 -31
- data/lib/chef/win32/api/installer.rb +2 -2
- data/lib/chef/win32/file.rb +4 -6
- data/lib/chef/win32/registry.rb +9 -9
- data/lib/chef/win32/security.rb +2 -2
- data/lib/chef/win32/security/acl.rb +2 -2
- data/lib/chef/win32/unicode.rb +2 -2
- data/lib/chef/win32/version.rb +1 -1
- 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/functional/knife/ssh_spec.rb +5 -5
- data/spec/functional/resource/batch_spec.rb +5 -1
- data/spec/functional/resource/dsc_script_spec.rb +2 -4
- data/spec/functional/resource/execute_spec.rb +17 -0
- data/spec/functional/resource/user/dscl_spec.rb +2 -4
- data/spec/integration/client/client_spec.rb +33 -0
- data/spec/integration/recipes/recipe_dsl_spec.rb +58 -58
- data/spec/spec_helper.rb +4 -0
- data/spec/support/chef_helpers.rb +5 -7
- data/spec/support/platform_helpers.rb +6 -0
- data/spec/support/platforms/prof/gc.rb +4 -6
- data/spec/support/shared/context/client.rb +1 -1
- data/spec/support/shared/functional/execute_resource.rb +150 -0
- data/spec/support/shared/functional/windows_script.rb +74 -4
- data/spec/support/shared/unit/execute_resource.rb +37 -0
- data/spec/support/shared/unit/provider/file.rb +10 -0
- data/spec/unit/cookbook/cookbook_version_loader_spec.rb +9 -0
- data/spec/unit/cookbook/syntax_check_spec.rb +8 -2
- data/spec/unit/http/api_versions_spec.rb +69 -0
- data/spec/unit/knife/ssh_spec.rb +34 -36
- data/spec/unit/mixin/versioned_api_spec.rb +107 -0
- data/spec/unit/mixin/which.rb +160 -0
- data/spec/unit/platform_spec.rb +28 -1
- 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/execute_spec.rb +0 -1
- 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 +27 -27
- data/spec/unit/provider/package/cab_spec.rb +59 -5
- data/spec/unit/provider/package/dnf/python_helper_spec.rb +29 -0
- data/spec/unit/provider/package/dpkg_spec.rb +16 -16
- data/spec/unit/provider/package/easy_install_spec.rb +18 -18
- 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 +38 -38
- data/spec/unit/provider/package/solaris_spec.rb +15 -15
- data/spec/unit/provider/package/windows_spec.rb +2 -1
- data/spec/unit/provider/package/yum_spec.rb +51 -43
- data/spec/unit/provider/package/zypper_spec.rb +34 -34
- data/spec/unit/provider/package_spec.rb +8 -0
- 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/resource/dsc_resource_spec.rb +6 -0
- data/spec/unit/resource/execute_spec.rb +214 -0
- data/spec/unit/resource/file/verification/systemd_unit_spec.rb +103 -0
- data/spec/unit/resource/freebsd_package_spec.rb +2 -2
- data/spec/unit/resource/package_spec.rb +5 -0
- data/spec/unit/resource/yum_package_spec.rb +42 -1
- data/spec/unit/resource_reporter_spec.rb +1 -1
- data/spec/unit/resource_spec.rb +18 -0
- data/spec/unit/server_api_versions_spec.rb +44 -0
- 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/changelog.rb +1 -1
- data/tasks/dependencies.rb +20 -4
- metadata +39 -18
- data/lib/chef/monkey_patches/net-ssh-multi.rb +0 -141
@@ -68,7 +68,7 @@ describe Chef::Provider::Package::Freebsd::Port do
|
|
68
68
|
it "should check 'pkg_info' if system uses pkg_* tools" do
|
69
69
|
allow(@new_resource).to receive(:supports_pkgng?)
|
70
70
|
expect(@new_resource).to receive(:supports_pkgng?).and_return(false)
|
71
|
-
expect(@provider).to receive(:shell_out!).with(
|
71
|
+
expect(@provider).to receive(:shell_out!).with("pkg_info", "-E", "zsh*", env: nil, returns: [0, 1], timeout: 900).and_return(@pkg_info)
|
72
72
|
expect(@provider.current_installed_version).to eq("3.1.7")
|
73
73
|
end
|
74
74
|
|
@@ -76,8 +76,8 @@ describe Chef::Provider::Package::Freebsd::Port do
|
|
76
76
|
pkg_enabled = OpenStruct.new(:stdout => "yes\n")
|
77
77
|
[1000016, 1000000, 901503, 902506, 802511].each do |freebsd_version|
|
78
78
|
@node.automatic_attrs[:os_version] = freebsd_version
|
79
|
-
expect(@new_resource).to receive(:shell_out!).with("make -V WITH_PKGNG", env: nil).and_return(pkg_enabled)
|
80
|
-
expect(@provider).to receive(:shell_out!).with(
|
79
|
+
expect(@new_resource).to receive(:shell_out!).with("make", "-V", "WITH_PKGNG", env: nil).and_return(pkg_enabled)
|
80
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "zsh", env: nil, returns: [0, 70], timeout: 900).and_return(@pkg_info)
|
81
81
|
expect(@provider.current_installed_version).to eq("3.1.7")
|
82
82
|
end
|
83
83
|
end
|
@@ -85,7 +85,7 @@ describe Chef::Provider::Package::Freebsd::Port do
|
|
85
85
|
it "should check 'pkg info' if the freebsd version is greater than or equal to 1000017" do
|
86
86
|
freebsd_version = 1000017
|
87
87
|
@node.automatic_attrs[:os_version] = freebsd_version
|
88
|
-
expect(@provider).to receive(:shell_out!).with(
|
88
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "zsh", env: nil, returns: [0, 70], timeout: 900).and_return(@pkg_info)
|
89
89
|
expect(@provider.current_installed_version).to eq("3.1.7")
|
90
90
|
end
|
91
91
|
end
|
@@ -98,7 +98,7 @@ describe Chef::Provider::Package::Freebsd::Port do
|
|
98
98
|
it "should return candidate version if port exists" do
|
99
99
|
allow(::File).to receive(:exist?).with("/usr/ports/Makefile").and_return(true)
|
100
100
|
allow(@provider).to receive(:port_dir).and_return("/usr/ports/shells/zsh")
|
101
|
-
expect(@provider).to receive(:shell_out!).with("make -V PORTVERSION", cwd: "/usr/ports/shells/zsh", env: nil, returns: [0, 1], timeout: 900).
|
101
|
+
expect(@provider).to receive(:shell_out!).with("make", "-V", "PORTVERSION", cwd: "/usr/ports/shells/zsh", env: nil, returns: [0, 1], timeout: 900).
|
102
102
|
and_return(@port_version)
|
103
103
|
expect(@provider.candidate_version).to eq("5.0.5")
|
104
104
|
end
|
@@ -122,13 +122,13 @@ describe Chef::Provider::Package::Freebsd::Port do
|
|
122
122
|
|
123
123
|
it "should query system for path given just a name" do
|
124
124
|
whereis = OpenStruct.new(:stdout => "zsh: /usr/ports/shells/zsh\n")
|
125
|
-
expect(@provider).to receive(:shell_out!).with("whereis -s zsh", env: nil, timeout: 900).and_return(whereis)
|
125
|
+
expect(@provider).to receive(:shell_out!).with("whereis", "-s", "zsh", env: nil, timeout: 900).and_return(whereis)
|
126
126
|
expect(@provider.port_dir).to eq("/usr/ports/shells/zsh")
|
127
127
|
end
|
128
128
|
|
129
129
|
it "should raise exception if not found" do
|
130
130
|
whereis = OpenStruct.new(:stdout => "zsh:\n")
|
131
|
-
expect(@provider).to receive(:shell_out!).with("whereis -s zsh", env: nil, timeout: 900).and_return(whereis)
|
131
|
+
expect(@provider).to receive(:shell_out!).with("whereis", "-s", "zsh", env: nil, timeout: 900).and_return(whereis)
|
132
132
|
expect { @provider.port_dir }.to raise_error(Chef::Exceptions::Package, "Could not find port with the name zsh")
|
133
133
|
end
|
134
134
|
end
|
@@ -141,7 +141,7 @@ describe Chef::Provider::Package::Freebsd::Port do
|
|
141
141
|
it "should run make install in port directory" do
|
142
142
|
allow(@provider).to receive(:port_dir).and_return("/usr/ports/shells/zsh")
|
143
143
|
expect(@provider).to receive(:shell_out!).
|
144
|
-
with("make -DBATCH install clean", :timeout => 1800, :cwd => "/usr/ports/shells/zsh", :env => nil).
|
144
|
+
with("make", "-DBATCH", "install", "clean", :timeout => 1800, :cwd => "/usr/ports/shells/zsh", :env => nil).
|
145
145
|
and_return(@install_result)
|
146
146
|
@provider.install_package("zsh", "5.0.5")
|
147
147
|
end
|
@@ -155,7 +155,7 @@ describe Chef::Provider::Package::Freebsd::Port do
|
|
155
155
|
it "should run make deinstall in port directory" do
|
156
156
|
allow(@provider).to receive(:port_dir).and_return("/usr/ports/shells/zsh")
|
157
157
|
expect(@provider).to receive(:shell_out!).
|
158
|
-
with("make deinstall", :timeout => 300, :cwd => "/usr/ports/shells/zsh", :env => nil).
|
158
|
+
with("make", "deinstall", :timeout => 300, :cwd => "/usr/ports/shells/zsh", :env => nil).
|
159
159
|
and_return(@install_result)
|
160
160
|
@provider.remove_package("zsh", "5.0.5")
|
161
161
|
end
|
@@ -209,7 +209,7 @@ describe Chef::Provider::Package::Homebrew do
|
|
209
209
|
allow(provider.new_resource).to receive(:version).and_return("24.3")
|
210
210
|
allow(provider.current_resource).to receive(:version).and_return(nil)
|
211
211
|
allow(provider).to receive(:brew_info).and_return(uninstalled_brew_info)
|
212
|
-
expect(provider).to receive(:get_response_from_command).with("brew install
|
212
|
+
expect(provider).to receive(:get_response_from_command).with("brew", "install", nil, "emacs")
|
213
213
|
provider.install_package("emacs", "24.3")
|
214
214
|
end
|
215
215
|
|
@@ -221,9 +221,9 @@ describe Chef::Provider::Package::Homebrew do
|
|
221
221
|
end
|
222
222
|
|
223
223
|
it "uses options to the brew command if specified" do
|
224
|
-
|
224
|
+
new_resource.options "--cocoa"
|
225
225
|
allow(provider.current_resource).to receive(:version).and_return("24.3")
|
226
|
-
allow(provider).to receive(:get_response_from_command).with("brew install --cocoa emacs")
|
226
|
+
allow(provider).to receive(:get_response_from_command).with("brew", "install", "--cocoa", "emacs")
|
227
227
|
provider.install_package("emacs", "24.3")
|
228
228
|
end
|
229
229
|
end
|
@@ -232,7 +232,7 @@ describe Chef::Provider::Package::Homebrew do
|
|
232
232
|
it "uses brew upgrade to upgrade the package if it is installed" do
|
233
233
|
allow(provider.current_resource).to receive(:version).and_return("24")
|
234
234
|
allow(provider).to receive(:brew_info).and_return(installed_brew_info)
|
235
|
-
expect(provider).to receive(:get_response_from_command).with("brew upgrade
|
235
|
+
expect(provider).to receive(:get_response_from_command).with("brew", "upgrade", nil, "emacs")
|
236
236
|
provider.upgrade_package("emacs", "24.3")
|
237
237
|
end
|
238
238
|
|
@@ -246,15 +246,15 @@ describe Chef::Provider::Package::Homebrew do
|
|
246
246
|
it "uses brew install to install the package if it is not installed" do
|
247
247
|
allow(provider.current_resource).to receive(:version).and_return(nil)
|
248
248
|
allow(provider).to receive(:brew_info).and_return(uninstalled_brew_info)
|
249
|
-
expect(provider).to receive(:get_response_from_command).with("brew install
|
249
|
+
expect(provider).to receive(:get_response_from_command).with("brew", "install", nil, "emacs")
|
250
250
|
provider.upgrade_package("emacs", "24.3")
|
251
251
|
end
|
252
252
|
|
253
253
|
it "uses options to the brew command if specified" do
|
254
254
|
allow(provider.current_resource).to receive(:version).and_return("24")
|
255
255
|
allow(provider).to receive(:brew_info).and_return(installed_brew_info)
|
256
|
-
|
257
|
-
expect(provider).to receive(:get_response_from_command).with("brew upgrade --cocoa emacs")
|
256
|
+
new_resource.options "--cocoa"
|
257
|
+
expect(provider).to receive(:get_response_from_command).with("brew", "upgrade", [ "--cocoa" ], "emacs")
|
258
258
|
provider.upgrade_package("emacs", "24.3")
|
259
259
|
end
|
260
260
|
end
|
@@ -263,7 +263,7 @@ describe Chef::Provider::Package::Homebrew do
|
|
263
263
|
it "uninstalls the package with brew uninstall" do
|
264
264
|
allow(provider.current_resource).to receive(:version).and_return("24.3")
|
265
265
|
allow(provider).to receive(:brew_info).and_return(installed_brew_info)
|
266
|
-
expect(provider).to receive(:get_response_from_command).with("brew uninstall
|
266
|
+
expect(provider).to receive(:get_response_from_command).with("brew", "uninstall", nil, "emacs")
|
267
267
|
provider.remove_package("emacs", "24.3")
|
268
268
|
end
|
269
269
|
|
@@ -278,7 +278,7 @@ describe Chef::Provider::Package::Homebrew do
|
|
278
278
|
it "uninstalls the package with brew uninstall --force" do
|
279
279
|
allow(provider.current_resource).to receive(:version).and_return("24.3")
|
280
280
|
allow(provider).to receive(:brew_info).and_return(installed_brew_info)
|
281
|
-
expect(provider).to receive(:get_response_from_command).with("brew uninstall
|
281
|
+
expect(provider).to receive(:get_response_from_command).with("brew", "uninstall", "--force", nil, "emacs")
|
282
282
|
provider.purge_package("emacs", "24.3")
|
283
283
|
end
|
284
284
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
#
|
2
2
|
# Author:: Bryan McLellan <btm@chef.io>
|
3
|
-
# Copyright:: Copyright 2012-
|
3
|
+
# Copyright:: Copyright 2012-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");
|
@@ -26,9 +26,9 @@ describe Chef::Provider::Package::Ips do
|
|
26
26
|
@node = Chef::Node.new
|
27
27
|
@events = Chef::EventDispatch::Dispatcher.new
|
28
28
|
@run_context = Chef::RunContext.new(@node, {}, @events)
|
29
|
-
@new_resource = Chef::Resource::
|
30
|
-
@current_resource = Chef::Resource::
|
31
|
-
allow(Chef::Resource::
|
29
|
+
@new_resource = Chef::Resource::IpsPackage.new("crypto/gnupg", @run_context)
|
30
|
+
@current_resource = Chef::Resource::IpsPackage.new("crypto/gnupg", @run_context)
|
31
|
+
allow(Chef::Resource::IpsPackage).to receive(:new).and_return(@current_resource)
|
32
32
|
@provider = Chef::Provider::Package::Ips.new(@new_resource, @run_context)
|
33
33
|
end
|
34
34
|
|
@@ -41,7 +41,7 @@ installed on the system. Try specifying -r to query remotely:
|
|
41
41
|
|
42
42
|
crypto/gnupg
|
43
43
|
PKG_STATUS
|
44
|
-
|
44
|
+
OpenStruct.new(:stdout => stdout, :stdin => stdin, :stderr => stderr, :status => @status, :exitstatus => 1)
|
45
45
|
end
|
46
46
|
|
47
47
|
def remote_output
|
@@ -59,33 +59,33 @@ Packaging Date: April 1, 2012 05:55:52 PM
|
|
59
59
|
PKG_STATUS
|
60
60
|
stdin = StringIO.new
|
61
61
|
stderr = ""
|
62
|
-
|
62
|
+
OpenStruct.new(:stdout => stdout, :stdin => stdin, :stderr => stderr, :status => @status, :exitstatus => 0)
|
63
63
|
end
|
64
64
|
|
65
65
|
context "when loading current resource" do
|
66
66
|
it "should create a current resource with the name of the new_resource" do
|
67
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
68
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
69
|
-
expect(Chef::Resource::
|
67
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local_output)
|
68
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote_output)
|
69
|
+
expect(Chef::Resource::IpsPackage).to receive(:new).and_return(@current_resource)
|
70
70
|
@provider.load_current_resource
|
71
71
|
end
|
72
72
|
|
73
73
|
it "should set the current resources package name to the new resources package name" do
|
74
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
75
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
74
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local_output)
|
75
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote_output)
|
76
76
|
@provider.load_current_resource
|
77
77
|
expect(@current_resource.package_name).to eq(@new_resource.package_name)
|
78
78
|
end
|
79
79
|
|
80
80
|
it "should run pkg info with the package name" do
|
81
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
82
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
81
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local_output)
|
82
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote_output)
|
83
83
|
@provider.load_current_resource
|
84
84
|
end
|
85
85
|
|
86
86
|
it "should set the installed version to nil on the current resource if package state is not installed" do
|
87
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
88
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
87
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local_output)
|
88
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote_output)
|
89
89
|
@provider.load_current_resource
|
90
90
|
expect(@current_resource.version).to be_nil
|
91
91
|
end
|
@@ -107,31 +107,37 @@ Packaging Date: October 19, 2011 09:14:50 AM
|
|
107
107
|
Size: 8.07 MB
|
108
108
|
FMRI: pkg://solaris/crypto/gnupg@2.0.17,5.11-0.175.0.0.0.2.537:20111019T091450Z
|
109
109
|
INSTALLED
|
110
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
111
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
110
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local)
|
111
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote_output)
|
112
112
|
@provider.load_current_resource
|
113
113
|
expect(@current_resource.version).to eq("2.0.17")
|
114
114
|
end
|
115
115
|
|
116
116
|
it "should return the current resource" do
|
117
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
118
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
117
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local_output)
|
118
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote_output)
|
119
119
|
expect(@provider.load_current_resource).to eql(@current_resource)
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
123
123
|
context "when installing a package" do
|
124
124
|
it "should run pkg install with the package name and version" do
|
125
|
-
expect(@provider).to receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17", timeout: 900)
|
125
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "install", "-q", "crypto/gnupg@2.0.17", timeout: 900)
|
126
126
|
@provider.install_package("crypto/gnupg", "2.0.17")
|
127
127
|
end
|
128
128
|
|
129
129
|
it "should run pkg install with the package name and version and options if specified" do
|
130
|
-
expect(@provider).to receive(:shell_out).with("pkg --no-refresh install -q crypto/gnupg@2.0.17", timeout: 900)
|
131
|
-
|
130
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "--no-refresh", "install", "-q", "crypto/gnupg@2.0.17", timeout: 900)
|
131
|
+
@new_resource.options "--no-refresh"
|
132
132
|
@provider.install_package("crypto/gnupg", "2.0.17")
|
133
133
|
end
|
134
134
|
|
135
|
+
it "raises an error if package fails to install" do
|
136
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "--no-refresh", "install", "-q", "crypto/gnupg@2.0.17", timeout: 900).and_raise(Mixlib::ShellOut::ShellCommandFailed)
|
137
|
+
allow(@new_resource).to receive(:options).and_return("--no-refresh")
|
138
|
+
expect { @provider.install_package("crypto/gnupg", "2.0.17") }.to raise_error(Mixlib::ShellOut::ShellCommandFailed)
|
139
|
+
end
|
140
|
+
|
135
141
|
it "should not include the human-readable version in the candidate_version" do
|
136
142
|
remote = remote_output
|
137
143
|
remote.stdout = <<-PKG_STATUS
|
@@ -146,8 +152,8 @@ Packaging Date: April 1, 2012 05:55:52 PM
|
|
146
152
|
Size: 2.57 MB
|
147
153
|
FMRI: pkg://omnios/security/sudo@1.8.4.1,5.11-0.151002:20120401T175552Z
|
148
154
|
PKG_STATUS
|
149
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
150
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
155
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local_output)
|
156
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote)
|
151
157
|
@provider.load_current_resource
|
152
158
|
expect(@current_resource.version).to be_nil
|
153
159
|
expect(@provider.candidate_version).to eql("1.8.4.1")
|
@@ -187,8 +193,8 @@ Packaging Date: October 19, 2011 09:14:50 AM
|
|
187
193
|
FMRI: pkg://solaris/crypto/gnupg@2.0.18,5.11-0.175.0.0.0.2.537:20111019T091450Z
|
188
194
|
REMOTE
|
189
195
|
|
190
|
-
expect(@provider).to receive(:shell_out).with("pkg info
|
191
|
-
expect(@provider).to receive(:shell_out!).with("pkg info -r
|
196
|
+
expect(@provider).to receive(:shell_out).with("pkg", "info", @new_resource.package_name, timeout: 900).and_return(local)
|
197
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "info", "-r", @new_resource.package_name, timeout: 900).and_return(remote)
|
192
198
|
expect(@provider).to receive(:install_package).exactly(0).times
|
193
199
|
@provider.run_action(:install)
|
194
200
|
end
|
@@ -199,7 +205,7 @@ REMOTE
|
|
199
205
|
end
|
200
206
|
|
201
207
|
it "should run pkg install with the --accept flag" do
|
202
|
-
expect(@provider).to receive(:shell_out).with("pkg install -q --accept crypto/gnupg@2.0.17", timeout: 900)
|
208
|
+
expect(@provider).to receive(:shell_out).with("pkg", "install", "-q", "--accept", "crypto/gnupg@2.0.17", timeout: 900).and_return(local_output)
|
203
209
|
@provider.install_package("crypto/gnupg", "2.0.17")
|
204
210
|
end
|
205
211
|
end
|
@@ -207,20 +213,20 @@ REMOTE
|
|
207
213
|
|
208
214
|
context "when upgrading a package" do
|
209
215
|
it "should run pkg install with the package name and version" do
|
210
|
-
expect(@provider).to receive(:shell_out).with("pkg install -q crypto/gnupg@2.0.17", timeout: 900)
|
216
|
+
expect(@provider).to receive(:shell_out).with("pkg", "install", "-q", "crypto/gnupg@2.0.17", timeout: 900).and_return(local_output)
|
211
217
|
@provider.upgrade_package("crypto/gnupg", "2.0.17")
|
212
218
|
end
|
213
219
|
end
|
214
220
|
|
215
221
|
context "when uninstalling a package" do
|
216
222
|
it "should run pkg uninstall with the package name and version" do
|
217
|
-
expect(@provider).to receive(:shell_out!).with("pkg uninstall -q crypto/gnupg@2.0.17", timeout: 900)
|
223
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "uninstall", "-q", "crypto/gnupg@2.0.17", timeout: 900)
|
218
224
|
@provider.remove_package("crypto/gnupg", "2.0.17")
|
219
225
|
end
|
220
226
|
|
221
227
|
it "should run pkg uninstall with the package name and version and options if specified" do
|
222
|
-
expect(@provider).to receive(:shell_out!).with("pkg --no-refresh uninstall -q crypto/gnupg@2.0.17", timeout: 900)
|
223
|
-
|
228
|
+
expect(@provider).to receive(:shell_out!).with("pkg", "--no-refresh", "uninstall", "-q", "crypto/gnupg@2.0.17", timeout: 900)
|
229
|
+
@new_resource.options "--no-refresh"
|
224
230
|
@provider.remove_package("crypto/gnupg", "2.0.17")
|
225
231
|
end
|
226
232
|
end
|
@@ -105,7 +105,7 @@ EOF
|
|
105
105
|
it "should run the port install command with the correct version" do
|
106
106
|
expect(@current_resource).to receive(:version).and_return("4.1.6")
|
107
107
|
@provider.current_resource = @current_resource
|
108
|
-
expect(@provider).to receive(:shell_out!).with("port install zsh @4.2.7", timeout: 900)
|
108
|
+
expect(@provider).to receive(:shell_out!).with("port", "install", "zsh", "@4.2.7", timeout: 900)
|
109
109
|
|
110
110
|
@provider.install_package("zsh", "4.2.7")
|
111
111
|
end
|
@@ -122,7 +122,7 @@ EOF
|
|
122
122
|
expect(@current_resource).to receive(:version).and_return("4.1.6")
|
123
123
|
@provider.current_resource = @current_resource
|
124
124
|
allow(@new_resource).to receive(:options).and_return("-f")
|
125
|
-
expect(@provider).to receive(:shell_out!).with("port -f install zsh @4.2.7", timeout: 900)
|
125
|
+
expect(@provider).to receive(:shell_out!).with("port", "-f", "install", "zsh", "@4.2.7", timeout: 900)
|
126
126
|
|
127
127
|
@provider.install_package("zsh", "4.2.7")
|
128
128
|
end
|
@@ -130,36 +130,36 @@ EOF
|
|
130
130
|
|
131
131
|
describe "purge_package" do
|
132
132
|
it "should run the port uninstall command with the correct version" do
|
133
|
-
expect(@provider).to receive(:shell_out!).with("port uninstall zsh @4.2.7", timeout: 900)
|
133
|
+
expect(@provider).to receive(:shell_out!).with("port", "uninstall", "zsh", "@4.2.7", timeout: 900)
|
134
134
|
@provider.purge_package("zsh", "4.2.7")
|
135
135
|
end
|
136
136
|
|
137
137
|
it "should purge the currently active version if no explicit version is passed in" do
|
138
|
-
expect(@provider).to receive(:shell_out!).with("port uninstall zsh", timeout: 900)
|
138
|
+
expect(@provider).to receive(:shell_out!).with("port", "uninstall", "zsh", timeout: 900)
|
139
139
|
@provider.purge_package("zsh", nil)
|
140
140
|
end
|
141
141
|
|
142
142
|
it "should add options to the port command when specified" do
|
143
143
|
allow(@new_resource).to receive(:options).and_return("-f")
|
144
|
-
expect(@provider).to receive(:shell_out!).with("port -f uninstall zsh @4.2.7", timeout: 900)
|
144
|
+
expect(@provider).to receive(:shell_out!).with("port", "-f", "uninstall", "zsh", "@4.2.7", timeout: 900)
|
145
145
|
@provider.purge_package("zsh", "4.2.7")
|
146
146
|
end
|
147
147
|
end
|
148
148
|
|
149
149
|
describe "remove_package" do
|
150
150
|
it "should run the port deactivate command with the correct version" do
|
151
|
-
expect(@provider).to receive(:shell_out!).with("port deactivate zsh @4.2.7", timeout: 900)
|
151
|
+
expect(@provider).to receive(:shell_out!).with("port", "deactivate", "zsh", "@4.2.7", timeout: 900)
|
152
152
|
@provider.remove_package("zsh", "4.2.7")
|
153
153
|
end
|
154
154
|
|
155
155
|
it "should remove the currently active version if no explicit version is passed in" do
|
156
|
-
expect(@provider).to receive(:shell_out!).with("port deactivate zsh", timeout: 900)
|
156
|
+
expect(@provider).to receive(:shell_out!).with("port", "deactivate", "zsh", timeout: 900)
|
157
157
|
@provider.remove_package("zsh", nil)
|
158
158
|
end
|
159
159
|
|
160
160
|
it "should add options to the port command when specified" do
|
161
161
|
allow(@new_resource).to receive(:options).and_return("-f")
|
162
|
-
expect(@provider).to receive(:shell_out!).with("port -f deactivate zsh @4.2.7", timeout: 900)
|
162
|
+
expect(@provider).to receive(:shell_out!).with("port", "-f", "deactivate", "zsh", "@4.2.7", timeout: 900)
|
163
163
|
@provider.remove_package("zsh", "4.2.7")
|
164
164
|
end
|
165
165
|
end
|
@@ -169,7 +169,7 @@ EOF
|
|
169
169
|
expect(@current_resource).to receive(:version).at_least(:once).and_return("4.1.6")
|
170
170
|
@provider.current_resource = @current_resource
|
171
171
|
|
172
|
-
expect(@provider).to receive(:shell_out!).with("port upgrade zsh @4.2.7", timeout: 900)
|
172
|
+
expect(@provider).to receive(:shell_out!).with("port", "upgrade", "zsh", "@4.2.7", timeout: 900)
|
173
173
|
|
174
174
|
@provider.upgrade_package("zsh", "4.2.7")
|
175
175
|
end
|
@@ -195,7 +195,7 @@ EOF
|
|
195
195
|
expect(@current_resource).to receive(:version).at_least(:once).and_return("4.1.6")
|
196
196
|
@provider.current_resource = @current_resource
|
197
197
|
|
198
|
-
expect(@provider).to receive(:shell_out!).with("port -f upgrade zsh @4.2.7", timeout: 900)
|
198
|
+
expect(@provider).to receive(:shell_out!).with("port", "-f", "upgrade", "zsh", "@4.2.7", timeout: 900)
|
199
199
|
|
200
200
|
@provider.upgrade_package("zsh", "4.2.7")
|
201
201
|
end
|
@@ -45,17 +45,17 @@ describe Chef::Provider::Package::Openbsd do
|
|
45
45
|
|
46
46
|
context "when not already installed" do
|
47
47
|
before do
|
48
|
-
allow(provider).to receive(:shell_out!).with("pkg_info -e
|
48
|
+
allow(provider).to receive(:shell_out!).with("pkg_info", "-e", "#{name}->0", anything()).and_return(instance_double("shellout", :stdout => ""))
|
49
49
|
end
|
50
50
|
|
51
51
|
context "when there is a single candidate" do
|
52
52
|
|
53
53
|
context "when source is not provided" do
|
54
54
|
it "should run the installation command" do
|
55
|
-
expect(provider).to receive(:shell_out!).with("pkg_info -I
|
55
|
+
expect(provider).to receive(:shell_out!).with("pkg_info", "-I", name, anything()).and_return(
|
56
56
|
instance_double("shellout", :stdout => "#{name}-#{version}\n"))
|
57
57
|
expect(provider).to receive(:shell_out!).with(
|
58
|
-
"pkg_add -r #{name}-#{version}",
|
58
|
+
"pkg_add", "-r", "#{name}-#{version}",
|
59
59
|
{ :env => { "PKG_PATH" => "http://ftp.OpenBSD.org/pub/OpenBSD/5.5/packages/amd64/" }, timeout: 900 }
|
60
60
|
) { OpenStruct.new :status => true }
|
61
61
|
provider.run_action(:install)
|
@@ -69,7 +69,7 @@ describe Chef::Provider::Package::Openbsd do
|
|
69
69
|
|
70
70
|
context "if no version is specified" do
|
71
71
|
it "should raise an exception" do
|
72
|
-
expect(provider).to receive(:shell_out!).with("pkg_info -I
|
72
|
+
expect(provider).to receive(:shell_out!).with("pkg_info", "-I", name, anything()).and_return(
|
73
73
|
instance_double("shellout", :stdout => "#{name}-#{version}-#{flavor_a}\n#{name}-#{version}-#{flavor_b}\n"))
|
74
74
|
expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package, /multiple matching candidates/)
|
75
75
|
end
|
@@ -83,11 +83,11 @@ describe Chef::Provider::Package::Openbsd do
|
|
83
83
|
|
84
84
|
context "if no version is specified" do
|
85
85
|
it "should run the installation command" do
|
86
|
-
expect(provider).to receive(:shell_out!).with("pkg_info -e
|
87
|
-
expect(provider).to receive(:shell_out!).with("pkg_info -I
|
86
|
+
expect(provider).to receive(:shell_out!).with("pkg_info", "-e", "#{package_name}->0", anything()).and_return(instance_double("shellout", :stdout => ""))
|
87
|
+
expect(provider).to receive(:shell_out!).with("pkg_info", "-I", name, anything()).and_return(
|
88
88
|
instance_double("shellout", :stdout => "#{name}-#{version}-#{flavor}\n"))
|
89
89
|
expect(provider).to receive(:shell_out!).with(
|
90
|
-
"pkg_add -r #{name}-#{version}-#{flavor}",
|
90
|
+
"pkg_add", "-r", "#{name}-#{version}-#{flavor}",
|
91
91
|
{ env: { "PKG_PATH" => "http://ftp.OpenBSD.org/pub/OpenBSD/5.5/packages/amd64/" }, timeout: 900 }
|
92
92
|
) { OpenStruct.new :status => true }
|
93
93
|
provider.run_action(:install)
|
@@ -98,12 +98,12 @@ describe Chef::Provider::Package::Openbsd do
|
|
98
98
|
|
99
99
|
context "if a version is specified" do
|
100
100
|
it "should use the flavor from the version" do
|
101
|
-
expect(provider).to receive(:shell_out!).with("pkg_info -I
|
101
|
+
expect(provider).to receive(:shell_out!).with("pkg_info", "-I", "#{name}-#{version}-#{flavor_b}", anything()).and_return(
|
102
102
|
instance_double("shellout", :stdout => "#{name}-#{version}-#{flavor_a}\n"))
|
103
103
|
|
104
104
|
new_resource.version("#{version}-#{flavor_b}")
|
105
105
|
expect(provider).to receive(:shell_out!).with(
|
106
|
-
"pkg_add -r #{name}-#{version}-#{flavor_b}",
|
106
|
+
"pkg_add", "-r", "#{name}-#{version}-#{flavor_b}",
|
107
107
|
{ env: { "PKG_PATH" => "http://ftp.OpenBSD.org/pub/OpenBSD/5.5/packages/amd64/" }, timeout: 900 }
|
108
108
|
) { OpenStruct.new :status => true }
|
109
109
|
provider.run_action(:install)
|
@@ -123,7 +123,7 @@ describe Chef::Provider::Package::Openbsd do
|
|
123
123
|
end
|
124
124
|
it "should run the command to delete the installed package" do
|
125
125
|
expect(@provider).to receive(:shell_out!).with(
|
126
|
-
"pkg_delete
|
126
|
+
"pkg_delete", @name, env: nil, timeout: 900
|
127
127
|
) { OpenStruct.new :status => true }
|
128
128
|
@provider.remove_package(@name, nil)
|
129
129
|
end
|