chef 11.18.12 → 12.0.0.alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CONTRIBUTING.md +10 -0
- data/README.md +1 -1
- data/distro/common/html/_sources/index.txt +5 -2
- data/distro/common/html/_sources/knife_serve.txt +19 -0
- data/distro/common/html/_sources/knife_ssl_check.txt +2 -2
- data/distro/common/html/_sources/knife_ssl_fetch.txt +2 -2
- data/distro/common/html/_static/basic.css +1 -1
- data/distro/common/html/_static/doctools.js +1 -1
- data/distro/common/html/_static/searchtools.js +1 -1
- data/distro/common/html/_static/websupport.js +1 -1
- data/distro/common/html/ctl_chef_client.html +19 -9
- data/distro/common/html/ctl_chef_server.html +7 -1
- data/distro/common/html/ctl_chef_shell.html +3 -4
- data/distro/common/html/ctl_chef_solo.html +12 -7
- data/distro/common/html/index.html +19 -12
- data/distro/common/html/knife.html +1 -2
- data/distro/common/html/knife_bootstrap.html +16 -5
- data/distro/common/html/knife_client.html +8 -5
- data/distro/common/html/knife_common_options.html +11 -12
- data/distro/common/html/knife_configure.html +2 -3
- data/distro/common/html/knife_cookbook.html +16 -17
- data/distro/common/html/knife_cookbook_site.html +19 -18
- data/distro/common/html/knife_data_bag.html +6 -7
- data/distro/common/html/knife_delete.html +2 -3
- data/distro/common/html/knife_deps.html +2 -3
- data/distro/common/html/knife_diff.html +3 -4
- data/distro/common/html/knife_download.html +6 -7
- data/distro/common/html/knife_edit.html +0 -1
- data/distro/common/html/knife_environment.html +3 -4
- data/distro/common/html/knife_exec.html +0 -1
- data/distro/common/html/knife_index_rebuild.html +0 -1
- data/distro/common/html/knife_list.html +5 -6
- data/distro/common/html/knife_node.html +13 -6
- data/distro/common/html/knife_raw.html +0 -1
- data/distro/common/html/knife_recipe_list.html +0 -1
- data/distro/common/html/knife_role.html +1 -2
- data/distro/common/html/knife_search.html +2 -3
- data/distro/common/html/knife_serve.html +79 -0
- data/distro/common/html/knife_show.html +1 -2
- data/distro/common/html/knife_ssh.html +2 -3
- data/distro/common/html/knife_ssl_check.html +12 -9
- data/distro/common/html/knife_ssl_fetch.html +9 -10
- data/distro/common/html/knife_status.html +2 -3
- data/distro/common/html/knife_tag.html +0 -1
- data/distro/common/html/knife_upload.html +3 -4
- data/distro/common/html/knife_user.html +2 -3
- data/distro/common/html/knife_using.html +0 -1
- data/distro/common/html/knife_xargs.html +3 -4
- data/distro/common/html/search.html +0 -1
- data/distro/common/html/searchindex.js +1 -1
- data/lib/chef/api_client.rb +1 -1
- data/lib/chef/application.rb +24 -67
- data/lib/chef/application/client.rb +1 -1
- data/lib/chef/application/knife.rb +1 -1
- data/lib/chef/chef_fs/chef_fs_data_store.rb +2 -3
- data/lib/chef/chef_fs/command_line.rb +2 -3
- data/lib/chef/chef_fs/data_handler/group_data_handler.rb +1 -5
- data/lib/chef/chef_fs/file_system/acl_entry.rb +1 -2
- data/lib/chef/chef_fs/file_system/chef_repository_file_system_entry.rb +1 -2
- data/lib/chef/chef_fs/file_system/cookbooks_dir.rb +2 -2
- data/lib/chef/chef_fs/file_system/rest_list_dir.rb +2 -3
- data/lib/chef/chef_fs/file_system/rest_list_entry.rb +4 -5
- data/lib/chef/config.rb +26 -2
- data/lib/chef/config_fetcher.rb +1 -1
- data/lib/chef/cookbook/cookbook_version_loader.rb +4 -4
- data/lib/chef/cookbook/metadata.rb +1 -1
- data/lib/chef/cookbook/synchronizer.rb +50 -8
- data/lib/chef/cookbook_uploader.rb +9 -23
- data/lib/chef/cookbook_version.rb +3 -2
- data/lib/chef/data_bag.rb +1 -1
- data/lib/chef/data_bag_item.rb +1 -1
- data/lib/chef/dsl/recipe.rb +1 -14
- data/lib/chef/encrypted_data_bag_item/decryptor.rb +3 -3
- data/lib/chef/environment.rb +1 -1
- data/lib/chef/exceptions.rb +2 -24
- data/lib/chef/file_content_management/tempfile.rb +8 -1
- data/lib/chef/formatters/base.rb +0 -7
- data/lib/chef/http.rb +12 -19
- data/lib/chef/http/json_input.rb +12 -1
- data/lib/chef/json_compat.rb +45 -64
- data/lib/chef/knife.rb +2 -5
- data/lib/chef/knife/bootstrap.rb +2 -2
- data/lib/chef/knife/bootstrap/archlinux-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/centos5-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-aix.erb +2 -2
- data/lib/chef/knife/bootstrap/chef-full.erb +2 -2
- data/lib/chef/knife/bootstrap/fedora13-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-apt.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu10.04-gems.erb +2 -2
- data/lib/chef/knife/bootstrap/ubuntu12.04-gems.erb +2 -2
- data/lib/chef/knife/cookbook_site_download.rb +1 -1
- data/lib/chef/knife/cookbook_site_install.rb +10 -34
- data/lib/chef/knife/cookbook_site_list.rb +1 -1
- data/lib/chef/knife/cookbook_site_search.rb +1 -1
- data/lib/chef/knife/cookbook_site_share.rb +3 -3
- data/lib/chef/knife/cookbook_site_show.rb +3 -3
- data/lib/chef/knife/cookbook_site_unshare.rb +1 -1
- data/lib/chef/knife/cookbook_upload.rb +1 -1
- data/lib/chef/knife/core/subcommand_loader.rb +0 -24
- data/lib/chef/knife/core/ui.rb +8 -7
- data/lib/chef/knife/deps.rb +2 -3
- data/lib/chef/knife/serve.rb +2 -1
- data/lib/chef/local_mode.rb +105 -0
- data/lib/chef/mixin/file_class.rb +1 -4
- data/lib/chef/mixin/shell_out.rb +15 -0
- data/lib/chef/mixin/windows_architecture_helper.rb +0 -16
- data/lib/chef/node.rb +1 -1
- data/lib/chef/platform/query_helpers.rb +1 -5
- data/lib/chef/policy_builder/expand_node_object.rb +3 -0
- data/lib/chef/provider.rb +2 -0
- data/lib/chef/provider/cookbook_file.rb +0 -1
- data/lib/chef/provider/deploy.rb +0 -1
- data/lib/chef/provider/deploy/revision.rb +1 -1
- data/lib/chef/provider/env.rb +10 -25
- data/lib/chef/provider/env/windows.rb +23 -10
- data/lib/chef/provider/execute.rb +0 -3
- data/lib/chef/provider/file.rb +0 -3
- data/lib/chef/provider/git.rb +0 -6
- data/lib/chef/provider/group/dscl.rb +9 -27
- data/lib/chef/provider/group/gpasswd.rb +0 -3
- data/lib/chef/provider/group/groupmod.rb +0 -4
- data/lib/chef/provider/group/suse.rb +0 -3
- data/lib/chef/provider/group/usermod.rb +0 -3
- data/lib/chef/provider/link.rb +22 -5
- data/lib/chef/provider/log.rb +15 -4
- data/lib/chef/provider/mdadm.rb +0 -3
- data/lib/chef/provider/mount/mount.rb +0 -2
- data/lib/chef/provider/mount/solaris.rb +0 -2
- data/lib/chef/provider/package.rb +0 -1
- data/lib/chef/provider/package/apt.rb +0 -3
- data/lib/chef/provider/package/dpkg.rb +0 -1
- data/lib/chef/provider/package/easy_install.rb +0 -4
- data/lib/chef/provider/package/freebsd/base.rb +0 -3
- data/lib/chef/provider/package/freebsd/pkgng.rb +0 -2
- data/lib/chef/provider/package/freebsd/port.rb +0 -2
- data/lib/chef/provider/package/ips.rb +0 -3
- data/lib/chef/provider/package/paludis.rb +0 -5
- data/lib/chef/provider/package/portage.rb +0 -2
- data/lib/chef/provider/package/rpm.rb +2 -4
- data/lib/chef/provider/package/rubygems.rb +0 -4
- data/lib/chef/provider/package/smartos.rb +0 -3
- data/lib/chef/provider/package/windows/msi.rb +0 -2
- data/lib/chef/provider/package/yum.rb +0 -4
- data/lib/chef/provider/package/zypper.rb +0 -3
- data/lib/chef/provider/registry_key.rb +0 -2
- data/lib/chef/provider/remote_directory.rb +0 -1
- data/lib/chef/provider/remote_file.rb +0 -1
- data/lib/chef/provider/remote_file/cache_control_data.rb +1 -3
- data/lib/chef/provider/remote_file/content.rb +0 -1
- data/lib/chef/provider/remote_file/fetcher.rb +0 -2
- data/lib/chef/provider/remote_file/ftp.rb +0 -1
- data/lib/chef/provider/resource_update.rb +0 -3
- data/lib/chef/provider/service/freebsd.rb +0 -3
- data/lib/chef/provider/service/init.rb +0 -3
- data/lib/chef/provider/service/macosx.rb +0 -1
- data/lib/chef/provider/service/redhat.rb +0 -2
- data/lib/chef/provider/service/simple.rb +0 -3
- data/lib/chef/provider/service/solaris.rb +0 -3
- data/lib/chef/provider/service/systemd.rb +15 -14
- data/lib/chef/provider/service/windows.rb +0 -3
- data/lib/chef/provider/subversion.rb +0 -2
- data/lib/chef/provider/template.rb +0 -2
- data/lib/chef/provider/template/content.rb +0 -1
- data/lib/chef/provider/user/dscl.rb +156 -549
- data/lib/chef/provider/user/solaris.rb +0 -1
- data/lib/chef/provider/user/useradd.rb +0 -3
- data/lib/chef/provider/whyrun_safe_ruby_block.rb +1 -1
- data/lib/chef/providers.rb +0 -1
- data/lib/chef/resource.rb +1 -4
- data/lib/chef/resource/freebsd_package.rb +2 -10
- data/lib/chef/resource/lwrp_base.rb +1 -12
- data/lib/chef/resource/user.rb +0 -18
- data/lib/chef/resource_collection.rb +1 -1
- data/lib/chef/resource_reporter.rb +10 -10
- data/lib/chef/resources.rb +0 -1
- data/lib/chef/role.rb +3 -3
- data/lib/chef/run_list.rb +1 -1
- data/lib/chef/tasks/chef_repo.rake +131 -264
- data/lib/chef/user.rb +1 -1
- data/lib/chef/util/path_helper.rb +2 -2
- data/lib/chef/version.rb +9 -1
- data/lib/chef/win32/api/system.rb +0 -9
- data/spec/data/bootstrap/test-hints.erb +1 -1
- data/spec/data/bootstrap/test.erb +1 -1
- data/spec/functional/dsl/reboot_pending_spec.rb +53 -58
- data/spec/functional/knife/cookbook_delete_spec.rb +3 -3
- data/spec/functional/knife/exec_spec.rb +1 -1
- data/spec/functional/mixin/shell_out_spec.rb +48 -0
- data/spec/functional/resource/base.rb +0 -10
- data/spec/functional/resource/group_spec.rb +1 -5
- data/spec/functional/resource/link_spec.rb +8 -0
- data/spec/functional/resource/{user/useradd_spec.rb → user_spec.rb} +1 -1
- data/spec/integration/knife/chef_fs_data_store_spec.rb +3 -3
- data/spec/integration/knife/chef_repo_path_spec.rb +1 -6
- data/spec/integration/knife/chef_repository_file_system_spec.rb +1 -1
- data/spec/integration/knife/chefignore_spec.rb +1 -1
- data/spec/integration/knife/common_options_spec.rb +50 -3
- data/spec/integration/knife/cookbook_api_ipv6_spec.rb +1 -1
- data/spec/integration/knife/delete_spec.rb +1 -1
- data/spec/integration/knife/deps_spec.rb +1 -1
- data/spec/integration/knife/diff_spec.rb +3 -3
- data/spec/integration/knife/download_spec.rb +3 -3
- data/spec/integration/knife/list_spec.rb +1 -1
- data/spec/integration/knife/raw_spec.rb +1 -11
- data/spec/integration/knife/redirection_spec.rb +1 -1
- data/spec/integration/knife/serve_spec.rb +2 -2
- data/spec/integration/knife/show_spec.rb +1 -1
- data/spec/integration/knife/upload_spec.rb +9 -9
- data/spec/spec_helper.rb +0 -9
- data/spec/support/pedant/pedant_config.rb +2 -1
- data/spec/support/pedant/run_pedant.rb +2 -1
- data/spec/support/platform_helpers.rb +5 -24
- data/spec/support/shared/integration/integration_helper.rb +2 -1
- data/spec/support/shared/matchers.rb +17 -0
- data/spec/tiny_server.rb +1 -2
- data/spec/unit/api_client_spec.rb +3 -3
- data/spec/unit/application_spec.rb +9 -32
- data/spec/unit/config_fetcher_spec.rb +1 -1
- data/spec/unit/cookbook/metadata_spec.rb +3 -7
- data/spec/unit/cookbook/synchronizer_spec.rb +441 -226
- data/spec/unit/cookbook_loader_spec.rb +1 -1
- data/spec/unit/cookbook_uploader_spec.rb +160 -0
- data/spec/unit/cookbook_version_spec.rb +0 -4
- data/spec/unit/data_bag_item_spec.rb +1 -5
- data/spec/unit/data_bag_spec.rb +1 -5
- data/spec/unit/deprecation_spec.rb +1 -1
- data/spec/unit/dsl/recipe_spec.rb +12 -0
- data/spec/unit/encrypted_data_bag_item_spec.rb +7 -14
- data/spec/unit/environment_spec.rb +3 -7
- data/spec/unit/exceptions_spec.rb +0 -6
- data/spec/unit/http/json_input_spec.rb +128 -0
- data/spec/unit/json_compat_spec.rb +17 -58
- data/spec/unit/knife/client_create_spec.rb +3 -3
- data/spec/unit/knife/configure_client_spec.rb +6 -5
- data/spec/unit/knife/cookbook_delete_spec.rb +1 -1
- data/spec/unit/knife/cookbook_download_spec.rb +5 -5
- data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +1 -0
- data/spec/unit/knife/cookbook_metadata_spec.rb +1 -1
- data/spec/unit/knife/cookbook_site_download_spec.rb +10 -11
- data/spec/unit/knife/cookbook_site_install_spec.rb +116 -161
- data/spec/unit/knife/cookbook_site_share_spec.rb +8 -8
- data/spec/unit/knife/cookbook_upload_spec.rb +3 -2
- data/spec/unit/knife/core/bootstrap_context_spec.rb +3 -3
- data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -66
- data/spec/unit/knife/data_bag_from_file_spec.rb +2 -1
- data/spec/unit/knife/tag_create_spec.rb +3 -3
- data/spec/unit/knife/tag_delete_spec.rb +3 -3
- data/spec/unit/knife/user_create_spec.rb +1 -1
- data/spec/unit/knife_spec.rb +14 -14
- data/spec/unit/lwrp_spec.rb +1 -21
- data/spec/unit/mixin/shell_out_spec.rb +92 -0
- data/spec/unit/node_spec.rb +0 -4
- data/spec/unit/platform/query_helpers_spec.rb +0 -23
- data/spec/unit/provider/env/windows_spec.rb +34 -70
- data/spec/unit/provider/env_spec.rb +11 -76
- data/spec/unit/provider/group/dscl_spec.rb +1 -38
- data/spec/unit/provider/log_spec.rb +18 -0
- data/spec/unit/provider/package/rpm_spec.rb +0 -12
- data/spec/unit/provider/remote_file/cache_control_data_spec.rb +1 -1
- data/spec/unit/provider/service/systemd_service_spec.rb +44 -27
- data/spec/unit/provider/user/dscl_spec.rb +264 -660
- data/spec/unit/provider/user/useradd_spec.rb +0 -1
- data/spec/unit/provider/whyrun_safe_ruby_block_spec.rb +2 -2
- data/spec/unit/provider_spec.rb +12 -0
- data/spec/unit/recipe_spec.rb +0 -41
- data/spec/unit/resource_collection_spec.rb +1 -5
- data/spec/unit/resource_reporter_spec.rb +3 -51
- data/spec/unit/resource_spec.rb +3 -14
- data/spec/unit/rest_spec.rb +1 -4
- data/spec/unit/role_spec.rb +0 -10
- data/spec/unit/run_list_spec.rb +1 -5
- data/spec/unit/user_spec.rb +1 -5
- metadata +20 -100
- data/lib/chef/mixin/windows_env_helper.rb +0 -56
- data/lib/chef/provider/dsc_script.rb +0 -175
- data/lib/chef/resource/dsc_script.rb +0 -126
- data/lib/chef/streaming_cookbook_uploader.rb +0 -205
- data/lib/chef/util/dsc/configuration_generator.rb +0 -115
- data/lib/chef/util/dsc/lcm_output_parser.rb +0 -133
- data/lib/chef/util/dsc/local_configuration_manager.rb +0 -141
- data/lib/chef/util/dsc/resource_info.rb +0 -26
- data/lib/chef/util/powershell/cmdlet.rb +0 -136
- data/lib/chef/util/powershell/cmdlet_result.rb +0 -46
- data/spec/data/mac_users/10.7-8.plist.xml +0 -559
- data/spec/data/mac_users/10.7-8.shadow.xml +0 -11
- data/spec/data/mac_users/10.7.plist.xml +0 -559
- data/spec/data/mac_users/10.7.shadow.xml +0 -11
- data/spec/data/mac_users/10.8.plist.xml +0 -559
- data/spec/data/mac_users/10.8.shadow.xml +0 -21
- data/spec/data/mac_users/10.9.plist.xml +0 -560
- data/spec/data/mac_users/10.9.shadow.xml +0 -21
- data/spec/functional/provider/whyrun_safe_ruby_block_spec.rb +0 -51
- data/spec/functional/resource/dsc_script_spec.rb +0 -382
- data/spec/functional/resource/env_spec.rb +0 -182
- data/spec/functional/resource/user/dscl_spec.rb +0 -199
- data/spec/functional/util/powershell/cmdlet_spec.rb +0 -113
- data/spec/support/lib/chef/resource/zen_follower.rb +0 -46
- data/spec/support/shared/shared_examples.rb +0 -10
- data/spec/unit/chef_fs/data_handler/group_handler_spec.rb +0 -63
- data/spec/unit/formatters/base_spec.rb +0 -48
- data/spec/unit/provider/dsc_script_spec.rb +0 -174
- data/spec/unit/resource/dsc_script_spec.rb +0 -98
- data/spec/unit/util/dsc/configuration_generator_spec.rb +0 -171
- data/spec/unit/util/dsc/lcm_output_parser_spec.rb +0 -169
- data/spec/unit/util/dsc/local_configuration_manager_spec.rb +0 -139
- data/spec/unit/util/powershell/cmdlet_spec.rb +0 -106
data/lib/chef/user.rb
CHANGED
@@ -32,7 +32,7 @@ class Chef
|
|
32
32
|
Chef::Log.error(msg)
|
33
33
|
raise Chef::Exceptions::ValidationFailed, msg
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
if windows_max_length_exceeded?(path)
|
37
37
|
Chef::Log.debug("Path '#{path}' is longer than #{WIN_MAX_PATH}, prefixing with'\\\\?\\'")
|
38
38
|
path.insert(0, "\\\\?\\")
|
@@ -50,7 +50,7 @@ class Chef
|
|
50
50
|
return true
|
51
51
|
end
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
false
|
55
55
|
end
|
56
56
|
|
data/lib/chef/version.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
# Author:: Daniel DeLeo (<dan@opscode.com>)
|
2
3
|
# Copyright:: Copyright (c) 2010-2011 Opscode, Inc.
|
3
4
|
# License:: Apache License, Version 2.0
|
@@ -16,7 +17,14 @@
|
|
16
17
|
|
17
18
|
class Chef
|
18
19
|
CHEF_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__)))
|
19
|
-
VERSION = '
|
20
|
+
VERSION = '12.0.0.alpha.0'
|
20
21
|
end
|
21
22
|
|
23
|
+
#
|
22
24
|
# NOTE: the Chef::Version class is defined in version_class.rb
|
25
|
+
#
|
26
|
+
# NOTE: DO NOT Use the Chef::Version class on Chef::VERSIONs. The
|
27
|
+
# Chef::Version class is for _cookbooks_ only, and cannot handle
|
28
|
+
# pre-release chef-client versions like "10.14.0.rc.2". Please
|
29
|
+
# use Rubygem's Gem::Version class instead.
|
30
|
+
#
|
@@ -200,15 +200,6 @@ LRESULT WINAPI SendMessageTimeout(
|
|
200
200
|
safe_attach_function :SendMessageTimeoutW, [:HWND, :UINT, :WPARAM, :LPARAM, :UINT, :UINT, :PDWORD_PTR], :LRESULT
|
201
201
|
safe_attach_function :SendMessageTimeoutA, [:HWND, :UINT, :WPARAM, :LPARAM, :UINT, :UINT, :PDWORD_PTR], :LRESULT
|
202
202
|
|
203
|
-
=begin
|
204
|
-
DWORD WINAPI ExpandEnvironmentStrings(
|
205
|
-
_In_ LPCTSTR lpSrc,
|
206
|
-
_Out_opt_ LPTSTR lpDst,
|
207
|
-
_In_ DWORD nSize
|
208
|
-
);
|
209
|
-
=end
|
210
|
-
safe_attach_function :ExpandEnvironmentStringsW, [:pointer, :pointer, :DWORD], :DWORD
|
211
|
-
safe_attach_function :ExpandEnvironmentStringsA, [:pointer, :pointer, :DWORD], :DWORD
|
212
203
|
end
|
213
204
|
end
|
214
205
|
end
|
@@ -1 +1 @@
|
|
1
|
-
<%=
|
1
|
+
<%= first_boot.to_json %>
|
@@ -30,11 +30,11 @@ describe Chef::DSL::RebootPending, :windows_only do
|
|
30
30
|
ohai
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
34
|
-
registry.value_exists?('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager', { :name => 'PendingFileRenameOperations' }) ||
|
35
|
-
|
36
|
-
registry.key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootRequired') ||
|
37
|
-
|
33
|
+
def registry_safe?
|
34
|
+
!registry.value_exists?('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager', { :name => 'PendingFileRenameOperations' }) ||
|
35
|
+
!registry.key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired') ||
|
36
|
+
!registry.key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootRequired') ||
|
37
|
+
!registry.key_exists?('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile')
|
38
38
|
end
|
39
39
|
|
40
40
|
let(:node) { Chef::Node.new }
|
@@ -44,78 +44,73 @@ describe Chef::DSL::RebootPending, :windows_only do
|
|
44
44
|
let(:recipe) { Chef::Recipe.new("a windows cookbook", "the windows recipe", run_context) }
|
45
45
|
let(:registry) { Chef::Win32::Registry.new(run_context) }
|
46
46
|
|
47
|
-
|
48
|
-
describe "reboot_pending?" do
|
47
|
+
describe "reboot_pending?" do
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
expect(recipe.reboot_pending?).to be_false
|
54
|
-
end
|
55
|
-
end
|
49
|
+
context "when there is nothing to indicate a reboot is pending" do
|
50
|
+
it { expect(recipe.reboot_pending?).to be_false }
|
51
|
+
end
|
56
52
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
53
|
+
describe 'HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations' do
|
54
|
+
it "returns true if the registry value exists" do
|
55
|
+
pending "Found existing registry keys" unless registry_safe?
|
56
|
+
registry.set_value('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager',
|
57
|
+
{ :name => 'PendingFileRenameOperations', :type => :multi_string, :data => ['\??\C:\foo.txt|\??\C:\bar.txt'] })
|
62
58
|
|
63
|
-
|
64
|
-
|
59
|
+
expect(recipe.reboot_pending?).to be_true
|
60
|
+
end
|
65
61
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
end
|
62
|
+
after do
|
63
|
+
if registry_safe?
|
64
|
+
registry.delete_value('HKLM\SYSTEM\CurrentControlSet\Control\Session Manager', { :name => 'PendingFileRenameOperations' })
|
70
65
|
end
|
71
66
|
end
|
67
|
+
end
|
72
68
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
69
|
+
describe 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired' do
|
70
|
+
it "returns true if the registry key exists" do
|
71
|
+
pending "Found existing registry keys" unless registry_safe?
|
72
|
+
registry.create_key('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired', false)
|
77
73
|
|
78
|
-
|
79
|
-
|
74
|
+
expect(recipe.reboot_pending?).to be_true
|
75
|
+
end
|
80
76
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
end
|
77
|
+
after do
|
78
|
+
if registry_safe?
|
79
|
+
registry.delete_key('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired', false)
|
85
80
|
end
|
86
81
|
end
|
82
|
+
end
|
87
83
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
84
|
+
describe 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootRequired' do
|
85
|
+
it "returns true if the registry key exists" do
|
86
|
+
pending "Permissions are limited to 'TrustedInstaller' by default"
|
87
|
+
pending "Found existing registry keys" unless registry_safe?
|
88
|
+
registry.create_key('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootRequired', false)
|
93
89
|
|
94
|
-
|
95
|
-
|
90
|
+
expect(recipe.reboot_pending?).to be_true
|
91
|
+
end
|
96
92
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
end
|
93
|
+
after do
|
94
|
+
if registry_safe?
|
95
|
+
registry.delete_key('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootRequired', false)
|
101
96
|
end
|
102
97
|
end
|
98
|
+
end
|
103
99
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
100
|
+
describe 'HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile\Flags' do
|
101
|
+
it "returns true if the registry key exists" do
|
102
|
+
pending "Found existing registry keys" unless registry_safe?
|
103
|
+
registry.create_key('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile', true)
|
104
|
+
registry.set_value('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile',
|
105
|
+
{ :name => 'Flags', :type => :dword, :data => 3 })
|
110
106
|
|
111
|
-
|
112
|
-
|
107
|
+
expect(recipe.reboot_pending?).to be_true
|
108
|
+
end
|
113
109
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
end
|
110
|
+
after do
|
111
|
+
if registry_safe?
|
112
|
+
registry.delete_value('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile', { :name => 'Flags' })
|
113
|
+
registry.delete_key('HKLM\SOFTWARE\Microsoft\Updates\UpdateExeVolatile', false)
|
119
114
|
end
|
120
115
|
end
|
121
116
|
end
|
@@ -47,7 +47,7 @@ describe Chef::Knife::CookbookDelete do
|
|
47
47
|
Chef::Log.level = :debug
|
48
48
|
|
49
49
|
@knife.name_args = %w{no-such-cookbook}
|
50
|
-
@api.get("/cookbooks/no-such-cookbook", 404,
|
50
|
+
@api.get("/cookbooks/no-such-cookbook", 404, {'error'=>'dear Tim, no. -Sent from my iPad'}.to_json)
|
51
51
|
end
|
52
52
|
|
53
53
|
it "logs an error and exits" do
|
@@ -62,7 +62,7 @@ describe Chef::Knife::CookbookDelete do
|
|
62
62
|
before do
|
63
63
|
@knife.name_args = %w{obsolete-cookbook}
|
64
64
|
@cookbook_list = {'obsolete-cookbook' => { 'versions' => ['version' => '1.0.0']} }
|
65
|
-
@api.get("/cookbooks/obsolete-cookbook", 200,
|
65
|
+
@api.get("/cookbooks/obsolete-cookbook", 200, @cookbook_list.to_json)
|
66
66
|
end
|
67
67
|
|
68
68
|
it "asks for confirmation, then deletes the cookbook" do
|
@@ -105,7 +105,7 @@ describe Chef::Knife::CookbookDelete do
|
|
105
105
|
versions = ['1.0.0', '1.1.0', '1.2.0']
|
106
106
|
with_version = lambda { |version| { 'version' => version } }
|
107
107
|
@cookbook_list = {'obsolete-cookbook' => { 'versions' => versions.map(&with_version) } }
|
108
|
-
@api.get("/cookbooks/obsolete-cookbook", 200,
|
108
|
+
@api.get("/cookbooks/obsolete-cookbook", 200, @cookbook_list.to_json)
|
109
109
|
end
|
110
110
|
|
111
111
|
it "deletes all versions of a cookbook when given the '-a' flag" do
|
@@ -47,7 +47,7 @@ describe Chef::Knife::Exec do
|
|
47
47
|
@node = Chef::Node.new
|
48
48
|
@node.name("ohai-world")
|
49
49
|
response = {"rows" => [@node],"start" => 0,"total" => 1}
|
50
|
-
@api.get(%r{^/search/node}, 200,
|
50
|
+
@api.get(%r{^/search/node}, 200, response.to_json)
|
51
51
|
code = "$output.puts nodes.all"
|
52
52
|
@knife.config[:exec] = code
|
53
53
|
@knife.run
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#
|
2
|
+
# Copyright:: Copyright (c) 2014 Chef Software, Inc.
|
3
|
+
# License:: Apache License, Version 2.0
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require 'spec_helper'
|
19
|
+
|
20
|
+
describe Chef::Mixin::ShellOut do
|
21
|
+
include Chef::Mixin::ShellOut
|
22
|
+
|
23
|
+
describe "shell_out_with_systems_locale" do
|
24
|
+
describe "when environment['LC_ALL'] is not set" do
|
25
|
+
it "should use the default shell_out setting" do
|
26
|
+
cmd = if windows?
|
27
|
+
shell_out_with_systems_locale('echo %LC_ALL%')
|
28
|
+
else
|
29
|
+
shell_out_with_systems_locale('echo $LC_ALL')
|
30
|
+
end
|
31
|
+
|
32
|
+
cmd.stdout.chomp.should match_environment_variable('LC_ALL')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "when environment['LC_ALL'] is set" do
|
37
|
+
it "should use the option's setting" do
|
38
|
+
cmd = if windows?
|
39
|
+
shell_out_with_systems_locale('echo %LC_ALL%', :environment => {'LC_ALL' => 'POSIX'})
|
40
|
+
else
|
41
|
+
shell_out_with_systems_locale('echo $LC_ALL', :environment => {'LC_ALL' => 'POSIX'})
|
42
|
+
end
|
43
|
+
|
44
|
+
cmd.stdout.chomp.should eq 'POSIX'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -16,16 +16,6 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require 'spec_helper'
|
20
|
-
|
21
|
-
def ohai
|
22
|
-
# provider is platform-dependent, we need platform ohai data:
|
23
|
-
@OHAI_SYSTEM ||= begin
|
24
|
-
ohai = Ohai::System.new
|
25
|
-
ohai.all_plugins("platform")
|
26
|
-
ohai
|
27
|
-
end
|
28
|
-
end
|
29
19
|
|
30
20
|
def run_context
|
31
21
|
@run_context ||= begin
|
@@ -40,11 +40,6 @@ describe Chef::Resource::Group, :requires_root_or_running_windows, :not_supporte
|
|
40
40
|
when "windows"
|
41
41
|
user_sid = sid_string_from_user(user)
|
42
42
|
user_sid.nil? ? false : Chef::Util::Windows::NetGroup.new(group_name).local_get_members.include?(user_sid)
|
43
|
-
when "mac_os_x"
|
44
|
-
membership_info = shell_out("dscl . -read /Groups/#{group_name}").stdout
|
45
|
-
members = membership_info.split(" ")
|
46
|
-
members.shift # Get rid of GroupMembership: string
|
47
|
-
members.include?(user)
|
48
43
|
else
|
49
44
|
Etc::getgrnam(group_name).mem.include?(user)
|
50
45
|
end
|
@@ -425,3 +420,4 @@ downthestreetalwayshadagoodsmileonhisfacetheoldmanwalkingdownthestreeQQQQQQ" }
|
|
425
420
|
end
|
426
421
|
end
|
427
422
|
end
|
423
|
+
|
@@ -377,6 +377,14 @@ describe Chef::Resource::Link do
|
|
377
377
|
include_context 'create symbolic link succeeds'
|
378
378
|
include_context 'delete is noop'
|
379
379
|
end
|
380
|
+
context 'and the link already exists and points to a different directory' do
|
381
|
+
before(:each) do
|
382
|
+
other_dir = File.join(test_file_dir, make_tmpname("other_dir"))
|
383
|
+
Dir.mkdir(other_dir)
|
384
|
+
symlink(other_dir, target_file)
|
385
|
+
end
|
386
|
+
include_context 'create symbolic link succeeds'
|
387
|
+
end
|
380
388
|
end
|
381
389
|
context "when the link destination is a symbolic link" do
|
382
390
|
context 'to a file that exists' do
|
@@ -22,7 +22,7 @@ require 'chef/knife/show'
|
|
22
22
|
require 'chef/knife/raw'
|
23
23
|
require 'chef/knife/cookbook_upload'
|
24
24
|
|
25
|
-
describe 'ChefFSDataStore tests'
|
25
|
+
describe 'ChefFSDataStore tests' do
|
26
26
|
extend IntegrationSupport
|
27
27
|
include KnifeSupport
|
28
28
|
|
@@ -141,7 +141,7 @@ EOM
|
|
141
141
|
end
|
142
142
|
|
143
143
|
it 'knife cookbook upload works' do
|
144
|
-
knife("cookbook upload -z --cookbook-path #{path_to('cookbooks_to_upload')} x").should_succeed <<EOM
|
144
|
+
knife("cookbook upload -z --cookbook-path #{path_to('cookbooks_to_upload')} x").should_succeed :stderr => <<EOM
|
145
145
|
Uploading x [1.0.0]
|
146
146
|
Uploaded 1 cookbook.
|
147
147
|
EOM
|
@@ -199,7 +199,7 @@ EOM
|
|
199
199
|
end
|
200
200
|
|
201
201
|
it 'knife cookbook upload works' do
|
202
|
-
knife("cookbook upload -z --cookbook-path #{path_to('cookbooks_to_upload')} z").should_succeed <<EOM
|
202
|
+
knife("cookbook upload -z --cookbook-path #{path_to('cookbooks_to_upload')} z").should_succeed :stderr => <<EOM
|
203
203
|
Uploading z [1.0.0]
|
204
204
|
Uploaded 1 cookbook.
|
205
205
|
EOM
|
@@ -20,7 +20,7 @@ require 'support/shared/context/config'
|
|
20
20
|
require 'chef/knife/list'
|
21
21
|
require 'chef/knife/show'
|
22
22
|
|
23
|
-
describe 'chef_repo_path tests'
|
23
|
+
describe 'chef_repo_path tests' do
|
24
24
|
extend IntegrationSupport
|
25
25
|
include KnifeSupport
|
26
26
|
|
@@ -287,7 +287,6 @@ EOM
|
|
287
287
|
knife('show --local /clients/blah.json').should_succeed <<EOM
|
288
288
|
/clients/blah.json:
|
289
289
|
{
|
290
|
-
|
291
290
|
}
|
292
291
|
EOM
|
293
292
|
end
|
@@ -375,7 +374,6 @@ EOM
|
|
375
374
|
knife('show --local /environments/blah.json').should_succeed <<EOM
|
376
375
|
/environments/blah.json:
|
377
376
|
{
|
378
|
-
|
379
377
|
}
|
380
378
|
EOM
|
381
379
|
end
|
@@ -388,7 +386,6 @@ EOM
|
|
388
386
|
knife('show --local /nodes/blah.json').should_succeed <<EOM
|
389
387
|
/nodes/blah.json:
|
390
388
|
{
|
391
|
-
|
392
389
|
}
|
393
390
|
EOM
|
394
391
|
end
|
@@ -401,7 +398,6 @@ EOM
|
|
401
398
|
knife('show --local /roles/blah.json').should_succeed <<EOM
|
402
399
|
/roles/blah.json:
|
403
400
|
{
|
404
|
-
|
405
401
|
}
|
406
402
|
EOM
|
407
403
|
end
|
@@ -414,7 +410,6 @@ EOM
|
|
414
410
|
knife('show --local /users/blah.json').should_succeed <<EOM
|
415
411
|
/users/blah.json:
|
416
412
|
{
|
417
|
-
|
418
413
|
}
|
419
414
|
EOM
|
420
415
|
end
|