chef 15.4.45 → 15.5.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -3
  3. data/Rakefile +5 -3
  4. data/chef.gemspec +2 -1
  5. data/lib/chef/application.rb +2 -2
  6. data/lib/chef/application/client.rb +1 -1
  7. data/lib/chef/application/knife.rb +1 -0
  8. data/lib/chef/application/solo.rb +1 -1
  9. data/lib/chef/chef_class.rb +1 -6
  10. data/lib/chef/chef_fs.rb +1 -1
  11. data/lib/chef/chef_fs/file_pattern.rb +1 -1
  12. data/lib/chef/chef_fs/file_system/chef_server/cookbook_artifacts_dir.rb +2 -2
  13. data/lib/chef/chef_fs/file_system/chef_server/versioned_cookbooks_dir.rb +2 -2
  14. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_artifact_dir.rb +1 -1
  15. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_dir.rb +7 -1
  16. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_cookbook_entry.rb +4 -3
  17. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_root_dir.rb +3 -3
  18. data/lib/chef/chef_fs/file_system/repository/chef_repository_file_system_versioned_cookbook_dir.rb +1 -1
  19. data/lib/chef/chef_fs/file_system/repository/nodes_dir.rb +3 -3
  20. data/lib/chef/chef_fs/knife.rb +1 -1
  21. data/lib/chef/chef_fs/path_utils.rb +2 -2
  22. data/lib/chef/client.rb +4 -5
  23. data/lib/chef/config.rb +3 -2
  24. data/lib/chef/cookbook/chefignore.rb +16 -11
  25. data/lib/chef/cookbook/cookbook_version_loader.rb +1 -1
  26. data/lib/chef/cookbook/syntax_check.rb +5 -3
  27. data/lib/chef/cookbook_loader.rb +3 -3
  28. data/lib/chef/cookbook_uploader.rb +1 -1
  29. data/lib/chef/data_collector.rb +2 -2
  30. data/lib/chef/data_collector/run_end_message.rb +1 -0
  31. data/lib/chef/deprecated.rb +4 -0
  32. data/lib/chef/dsl/core.rb +1 -1
  33. data/lib/chef/dsl/platform_introspection.rb +9 -18
  34. data/lib/chef/event_loggers/windows_eventlog.rb +1 -1
  35. data/lib/chef/file_content_management/deploy.rb +3 -3
  36. data/lib/chef/file_content_management/deploy/mv_windows.rb +2 -2
  37. data/lib/chef/file_content_management/tempfile.rb +1 -1
  38. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +2 -2
  39. data/lib/chef/http.rb +1 -1
  40. data/lib/chef/http/socketless_chef_zero_client.rb +1 -1
  41. data/lib/chef/knife.rb +4 -3
  42. data/lib/chef/knife/config_get.rb +2 -1
  43. data/lib/chef/knife/configure.rb +1 -1
  44. data/lib/chef/knife/cookbook_metadata_from_file.rb +6 -0
  45. data/lib/chef/knife/core/generic_presenter.rb +1 -1
  46. data/lib/chef/knife/core/status_presenter.rb +1 -1
  47. data/lib/chef/knife/ssh.rb +6 -0
  48. data/lib/chef/local_mode.rb +1 -1
  49. data/lib/chef/mash.rb +21 -232
  50. data/lib/chef/mixin/file_class.rb +2 -2
  51. data/lib/chef/mixin/lazy_module_include.rb +1 -1
  52. data/lib/chef/mixin/path_sanity.rb +3 -39
  53. data/lib/chef/mixin/securable.rb +1 -1
  54. data/lib/chef/mixin/shell_out.rb +4 -5
  55. data/lib/chef/mixin/template.rb +1 -1
  56. data/lib/chef/mixin/user_context.rb +3 -3
  57. data/lib/chef/mixin/which.rb +10 -38
  58. data/lib/chef/mixin/windows_architecture_helper.rb +6 -6
  59. data/lib/chef/mixin/windows_env_helper.rb +5 -5
  60. data/lib/chef/node/attribute.rb +2 -2
  61. data/lib/chef/node_map.rb +17 -4
  62. data/lib/chef/platform/query_helpers.rb +4 -2
  63. data/lib/chef/platform/rebooter.rb +1 -1
  64. data/lib/chef/platform/service_helpers.rb +14 -85
  65. data/lib/chef/provider.rb +2 -0
  66. data/lib/chef/provider/file.rb +2 -2
  67. data/lib/chef/provider/ifconfig/redhat.rb +1 -1
  68. data/lib/chef/provider/link.rb +3 -3
  69. data/lib/chef/provider/mount/solaris.rb +1 -1
  70. data/lib/chef/provider/package/yum.rb +1 -1
  71. data/lib/chef/provider/registry_key.rb +1 -1
  72. data/lib/chef/provider/remote_directory.rb +3 -3
  73. data/lib/chef/provider/remote_file/fetcher.rb +2 -2
  74. data/lib/chef/provider/remote_file/local_file.rb +1 -1
  75. data/lib/chef/provider/script.rb +3 -3
  76. data/lib/chef/provider/service.rb +5 -2
  77. data/lib/chef/provider/service/arch.rb +1 -1
  78. data/lib/chef/provider/service/debian.rb +4 -4
  79. data/lib/chef/provider/service/init.rb +1 -1
  80. data/lib/chef/provider/service/insserv.rb +4 -4
  81. data/lib/chef/provider/service/invokercd.rb +4 -4
  82. data/lib/chef/provider/service/redhat.rb +4 -4
  83. data/lib/chef/provider/service/systemd.rb +19 -3
  84. data/lib/chef/provider/service/upstart.rb +3 -3
  85. data/lib/chef/provider/subversion.rb +1 -1
  86. data/lib/chef/provider/systemd_unit.rb +26 -2
  87. data/lib/chef/provider/windows_path.rb +3 -3
  88. data/lib/chef/provider/windows_task.rb +4 -4
  89. data/lib/chef/resource.rb +1 -0
  90. data/lib/chef/resource/bash.rb +2 -0
  91. data/lib/chef/resource/batch.rb +2 -0
  92. data/lib/chef/resource/breakpoint.rb +3 -1
  93. data/lib/chef/resource/build_essential.rb +3 -3
  94. data/lib/chef/resource/chef_sleep.rb +70 -0
  95. data/lib/chef/resource/cookbook_file.rb +2 -1
  96. data/lib/chef/resource/csh.rb +2 -0
  97. data/lib/chef/resource/directory.rb +2 -0
  98. data/lib/chef/resource/dmg_package.rb +1 -1
  99. data/lib/chef/resource/dnf_package.rb +1 -1
  100. data/lib/chef/resource/execute.rb +2 -0
  101. data/lib/chef/resource/file.rb +2 -1
  102. data/lib/chef/resource/git.rb +2 -0
  103. data/lib/chef/resource/group.rb +1 -1
  104. data/lib/chef/resource/homebrew_package.rb +1 -1
  105. data/lib/chef/resource/http_request.rb +2 -0
  106. data/lib/chef/resource/ifconfig.rb +3 -1
  107. data/lib/chef/resource/ksh.rb +2 -0
  108. data/lib/chef/resource/link.rb +4 -2
  109. data/lib/chef/resource/locale.rb +1 -1
  110. data/lib/chef/resource/log.rb +2 -0
  111. data/lib/chef/resource/ohai.rb +2 -0
  112. data/lib/chef/resource/perl.rb +2 -0
  113. data/lib/chef/resource/python.rb +2 -0
  114. data/lib/chef/resource/reboot.rb +2 -0
  115. data/lib/chef/resource/registry_key.rb +2 -0
  116. data/lib/chef/resource/remote_directory.rb +3 -2
  117. data/lib/chef/resource/remote_file.rb +1 -0
  118. data/lib/chef/resource/ruby.rb +2 -0
  119. data/lib/chef/resource/ruby_block.rb +2 -0
  120. data/lib/chef/resource/scm.rb +2 -0
  121. data/lib/chef/resource/script.rb +2 -0
  122. data/lib/chef/resource/service.rb +9 -1
  123. data/lib/chef/resource/solaris_package.rb +1 -1
  124. data/lib/chef/resource/subversion.rb +2 -0
  125. data/lib/chef/resource/sudo.rb +1 -1
  126. data/lib/chef/resource/systemd_unit.rb +1 -0
  127. data/lib/chef/resource/template.rb +2 -0
  128. data/lib/chef/resource/user.rb +2 -0
  129. data/lib/chef/resource/user/aix_user.rb +2 -0
  130. data/lib/chef/resource/user/linux_user.rb +2 -0
  131. data/lib/chef/resource/user/pw_user.rb +2 -0
  132. data/lib/chef/resource/user/solaris_user.rb +2 -0
  133. data/lib/chef/resource/user/windows_user.rb +2 -0
  134. data/lib/chef/resource/whyrun_safe_ruby_block.rb +1 -0
  135. data/lib/chef/resource/windows_ad_join.rb +1 -1
  136. data/lib/chef/resource/windows_env.rb +1 -1
  137. data/lib/chef/resource/windows_feature.rb +2 -2
  138. data/lib/chef/resource/windows_feature_powershell.rb +1 -1
  139. data/lib/chef/resource/windows_firewall_rule.rb +11 -6
  140. data/lib/chef/resource/windows_script.rb +3 -1
  141. data/lib/chef/resource/yum_package.rb +1 -1
  142. data/lib/chef/resource_reporter.rb +1 -1
  143. data/lib/chef/resources.rb +1 -0
  144. data/lib/chef/run_context.rb +1 -1
  145. data/lib/chef/run_lock.rb +5 -5
  146. data/lib/chef/search/query.rb +0 -3
  147. data/lib/chef/train_transport.rb +3 -1
  148. data/lib/chef/util/powershell/ps_credential.rb +2 -2
  149. data/lib/chef/util/selinux.rb +1 -1
  150. data/lib/chef/util/windows/logon_session.rb +2 -2
  151. data/lib/chef/version.rb +1 -1
  152. data/lib/chef/win32/eventlog.rb +2 -2
  153. data/spec/data/cookbooks/starter/chefignore +8 -0
  154. data/spec/data/cookbooks/starter/files/sample.txt +1 -0
  155. data/spec/data/cookbooks/starter/metadata.rb +2 -0
  156. data/spec/data/cookbooks/starter/recipes/default.rb +4 -0
  157. data/spec/functional/event_loggers/windows_eventlog_spec.rb +1 -1
  158. data/spec/functional/mixin/user_context_spec.rb +2 -2
  159. data/spec/functional/rebooter_spec.rb +1 -1
  160. data/spec/functional/resource/cookbook_file_spec.rb +2 -2
  161. data/spec/functional/resource/template_spec.rb +1 -1
  162. data/spec/functional/version_spec.rb +1 -1
  163. data/spec/functional/win32/crypto_spec.rb +1 -1
  164. data/spec/functional/win32/security_spec.rb +1 -1
  165. data/spec/functional/win32/service_manager_spec.rb +1 -1
  166. data/spec/functional/win32/sid_spec.rb +2 -2
  167. data/spec/functional/win32/version_info_spec.rb +1 -1
  168. data/spec/functional/win32/versions_spec.rb +1 -1
  169. data/spec/integration/knife/config_get_profile_spec.rb +2 -2
  170. data/spec/integration/knife/config_get_spec.rb +9 -2
  171. data/spec/integration/knife/config_list_profiles_spec.rb +2 -2
  172. data/spec/integration/knife/config_use_profile_spec.rb +2 -2
  173. data/spec/integration/knife/list_spec.rb +2 -2
  174. data/spec/integration/solo/solo_spec.rb +1 -1
  175. data/spec/support/matchers/leak.rb +1 -1
  176. data/spec/support/mock/platform.rb +1 -1
  177. data/spec/support/platform_helpers.rb +2 -0
  178. data/spec/support/shared/integration/integration_helper.rb +1 -1
  179. data/spec/support/shared/integration/knife_support.rb +1 -1
  180. data/spec/support/shared/unit/provider/file.rb +4 -4
  181. data/spec/unit/application/client_spec.rb +2 -2
  182. data/spec/unit/application/knife_spec.rb +17 -0
  183. data/spec/unit/application_spec.rb +1 -1
  184. data/spec/unit/chef_fs/file_pattern_spec.rb +2 -2
  185. data/spec/unit/chef_fs/path_util_spec.rb +3 -3
  186. data/spec/unit/client_spec.rb +2 -2
  187. data/spec/unit/cookbook/chefignore_spec.rb +31 -11
  188. data/spec/unit/cookbook/cookbook_version_loader_spec.rb +1 -1
  189. data/spec/unit/cookbook/syntax_check_spec.rb +2 -2
  190. data/spec/unit/cookbook_loader_spec.rb +2 -2
  191. data/spec/unit/cookbook_uploader_spec.rb +6 -1
  192. data/spec/unit/data_bag_spec.rb +2 -2
  193. data/spec/unit/data_collector_spec.rb +7 -0
  194. data/spec/unit/dsl/platform_introspection_spec.rb +31 -1
  195. data/spec/unit/file_content_management/deploy/mv_windows_spec.rb +1 -1
  196. data/spec/unit/formatters/error_inspectors/compile_error_inspector_spec.rb +1 -1
  197. data/spec/unit/knife/cookbook_metadata_from_file_spec.rb +7 -0
  198. data/spec/unit/knife/cookbook_show_spec.rb +1 -1
  199. data/spec/unit/knife/core/gem_glob_loader_spec.rb +1 -1
  200. data/spec/unit/knife/core/hashed_command_loader_spec.rb +1 -1
  201. data/spec/unit/knife/core/subcommand_loader_spec.rb +1 -1
  202. data/spec/unit/knife/core/ui_spec.rb +2 -2
  203. data/spec/unit/knife/data_bag_from_file_spec.rb +2 -2
  204. data/spec/unit/knife/environment_from_file_spec.rb +2 -2
  205. data/spec/unit/knife/ssh_spec.rb +27 -17
  206. data/spec/unit/knife/status_spec.rb +1 -1
  207. data/spec/unit/knife/supermarket_install_spec.rb +1 -1
  208. data/spec/unit/mixin/path_sanity_spec.rb +3 -3
  209. data/spec/unit/mixin/shell_out_spec.rb +2 -3
  210. data/spec/unit/mixin/template_spec.rb +4 -4
  211. data/spec/unit/mixin/user_context_spec.rb +3 -3
  212. data/spec/unit/node_map_spec.rb +12 -12
  213. data/spec/unit/platform/query_helpers_spec.rb +9 -9
  214. data/spec/unit/provider/execute_spec.rb +1 -1
  215. data/spec/unit/provider/link_spec.rb +5 -5
  216. data/spec/unit/provider/package/openbsd_spec.rb +1 -1
  217. data/spec/unit/provider/package/smartos_spec.rb +1 -1
  218. data/spec/unit/provider/package/windows/exe_spec.rb +1 -1
  219. data/spec/unit/provider/package/windows_spec.rb +2 -2
  220. data/spec/unit/provider/remote_file/fetcher_spec.rb +2 -2
  221. data/spec/unit/provider/remote_file/local_file_spec.rb +1 -1
  222. data/spec/unit/provider/remote_file/network_file_spec.rb +1 -1
  223. data/spec/unit/provider/script_spec.rb +2 -2
  224. data/spec/unit/provider/service/systemd_service_spec.rb +26 -2
  225. data/spec/unit/provider/subversion_spec.rb +3 -3
  226. data/spec/unit/provider/systemd_unit_spec.rb +53 -4
  227. data/spec/unit/provider/user/dscl_spec.rb +1 -1
  228. data/spec/unit/provider_resolver_spec.rb +41 -61
  229. data/spec/unit/resource/chef_sleep_spec.rb +30 -0
  230. data/spec/unit/resource/cookbook_file_spec.rb +3 -3
  231. data/spec/unit/resource/remote_file_spec.rb +3 -3
  232. data/spec/unit/resource/windows_firewall_rule_spec.rb +69 -12
  233. data/spec/unit/role_spec.rb +2 -2
  234. data/spec/unit/shell_spec.rb +1 -1
  235. data/spec/unit/util/selinux_spec.rb +2 -2
  236. data/spec/unit/win32/error_spec.rb +1 -1
  237. data/spec/unit/win32/link_spec.rb +1 -1
  238. data/spec/unit/win32/security_spec.rb +1 -1
  239. data/spec/unit/windows_service_spec.rb +1 -1
  240. data/tasks/docs.rb +10 -2
  241. data/tasks/rspec.rb +8 -6
  242. metadata +32 -8
  243. data/lib/chef/mixin/train_helpers.rb +0 -60
  244. data/spec/unit/mash_spec.rb +0 -51
@@ -27,6 +27,7 @@ class Chef
27
27
  class Resource
28
28
  class RemoteFile < Chef::Resource::File
29
29
  include Chef::Mixin::Securable
30
+ unified_mode true
30
31
 
31
32
  description "Use the remote_file resource to transfer a file from a remote location"\
32
33
  " using file specificity. This resource is similar to the file resource."
@@ -22,6 +22,8 @@ require_relative "../provider/script"
22
22
  class Chef
23
23
  class Resource
24
24
  class Ruby < Chef::Resource::Script
25
+ unified_mode true
26
+
25
27
  description "Use the ruby resource to execute scripts using the Ruby interpreter. This"\
26
28
  " resource may also use any of the actions and properties that are available"\
27
29
  " to the execute resource. Commands that are executed with this resource are (by"\
@@ -24,6 +24,8 @@ require_relative "../dist"
24
24
  class Chef
25
25
  class Resource
26
26
  class RubyBlock < Chef::Resource
27
+ unified_mode true
28
+
27
29
  provides :ruby_block, target_mode: true
28
30
 
29
31
  description "Use the ruby_block resource to execute Ruby code during a #{Chef::Dist::PRODUCT} run."\
@@ -21,6 +21,8 @@ require_relative "../resource"
21
21
  class Chef
22
22
  class Resource
23
23
  class Scm < Chef::Resource
24
+ unified_mode true
25
+
24
26
  default_action :sync
25
27
  allowed_actions :checkout, :export, :sync, :diff, :log
26
28
 
@@ -22,6 +22,8 @@ require_relative "execute"
22
22
  class Chef
23
23
  class Resource
24
24
  class Script < Chef::Resource::Execute
25
+ unified_mode true
26
+
25
27
  resource_name :script
26
28
 
27
29
  identity_attr :name
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: AJ Christensen (<aj@hjksolutions.com>)
3
3
  # Author:: Tyler Cloke (<tyler@chef.io>)
4
- # Copyright:: Copyright 2008-2018, Chef Software Inc.
4
+ # Copyright:: Copyright 2008-2019, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,6 +17,7 @@
17
17
  # limitations under the License.
18
18
  #
19
19
 
20
+ require "chef-utils/dsl/service" unless defined?(ChefUtils::DSL::Service)
20
21
  require_relative "../resource"
21
22
  require "shellwords" unless defined?(Shellwords)
22
23
  require_relative "../dist"
@@ -24,7 +25,11 @@ require_relative "../dist"
24
25
  class Chef
25
26
  class Resource
26
27
  class Service < Chef::Resource
28
+ include ChefUtils::DSL::Service
29
+ extend ChefUtils::DSL::Service
30
+
27
31
  provides :service, target_mode: true
32
+
28
33
  identity_attr :service_name
29
34
 
30
35
  description "Use the service resource to manage a service."
@@ -90,6 +95,9 @@ class Chef
90
95
  # if the service is masked or not
91
96
  property :masked, [ TrueClass, FalseClass ], skip_docs: true
92
97
 
98
+ # if the service is indirect or not
99
+ property :indirect, [ TrueClass, FalseClass ], skip_docs: true
100
+
93
101
  property :options, [ Array, String ],
94
102
  description: "Solaris platform only. Options to pass to the service command. See the svcadm manual for details of possible options.",
95
103
  coerce: proc { |x| x.respond_to?(:split) ? x.shellsplit : x }
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Toomas Pelberg (<toomasp@gmx.net>)
3
3
  # Author:: Prabhu Das (<prabhu.das@clogeny.com>)
4
- # Copyright:: Copyright 2013-2016, Chef Software Inc.
4
+ # Copyright:: Copyright 2013-2018, Chef Software Inc.
5
5
  # License:: Apache License, Version 2.0
6
6
  #
7
7
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -23,6 +23,8 @@ require_relative "../dist"
23
23
  class Chef
24
24
  class Resource
25
25
  class Subversion < Chef::Resource::Scm
26
+ unified_mode true
27
+
26
28
  description "Use the subversion resource to manage source control resources that exist in a Subversion repository."
27
29
 
28
30
  allowed_actions :force_export
@@ -30,7 +30,7 @@ class Chef
30
30
  description "Use the sudo resource to add or remove individual sudo entries using sudoers.d files."\
31
31
  " Sudo version 1.7.2 or newer is required to use the sudo resource, as it relies on the"\
32
32
  " '#includedir' directive introduced in version 1.7.2. This resource does not enforce"\
33
- " installation of the required sudo version. Supported releases of Ubuntu, SuSE, Debian,"\
33
+ " installation of the required sudo version. Chef-supported releases of Ubuntu, SuSE, Debian,"\
34
34
  " and RHEL (6+) all support this feature."
35
35
  introduced "14.0"
36
36
 
@@ -43,6 +43,7 @@ class Chef
43
43
  property :active, [TrueClass, FalseClass], skip_docs: true
44
44
  property :masked, [TrueClass, FalseClass], skip_docs: true
45
45
  property :static, [TrueClass, FalseClass], skip_docs: true
46
+ property :indirect, [TrueClass, FalseClass], skip_docs: true
46
47
 
47
48
  # User-provided properties
48
49
  property :user, String, desired_state: false,
@@ -34,6 +34,8 @@ class Chef
34
34
  # chef-client. This resource includes actions and properties from the file resource. Template files managed by the
35
35
  # template resource follow the same file specificity rules as the remote_file and file resources.
36
36
  class Template < Chef::Resource::File
37
+ unified_mode true
38
+
37
39
  resource_name :template
38
40
  provides :template
39
41
 
@@ -21,6 +21,8 @@ require_relative "../resource"
21
21
  class Chef
22
22
  class Resource
23
23
  class User < Chef::Resource
24
+ unified_mode true
25
+
24
26
  resource_name :user_resource_abstract_base_class # this prevents magickal class name DSL wiring
25
27
 
26
28
  description "Use the user resource to add users, update existing users, remove users, and to lock/unlock user passwords."
@@ -21,6 +21,8 @@ class Chef
21
21
  class Resource
22
22
  class User
23
23
  class AixUser < Chef::Resource::User
24
+ unified_mode true
25
+
24
26
  resource_name :aix_user
25
27
 
26
28
  provides :aix_user
@@ -21,6 +21,8 @@ class Chef
21
21
  class Resource
22
22
  class User
23
23
  class LinuxUser < Chef::Resource::User
24
+ unified_mode true
25
+
24
26
  resource_name :linux_user
25
27
 
26
28
  provides :linux_user
@@ -21,6 +21,8 @@ class Chef
21
21
  class Resource
22
22
  class User
23
23
  class PwUser < Chef::Resource::User
24
+ unified_mode true
25
+
24
26
  resource_name :pw_user
25
27
 
26
28
  provides :pw_user
@@ -21,6 +21,8 @@ class Chef
21
21
  class Resource
22
22
  class User
23
23
  class SolarisUser < Chef::Resource::User
24
+ unified_mode true
25
+
24
26
  resource_name :solaris_user
25
27
 
26
28
  provides :solaris_user
@@ -21,6 +21,8 @@ class Chef
21
21
  class Resource
22
22
  class User
23
23
  class WindowsUser < Chef::Resource::User
24
+ unified_mode true
25
+
24
26
  resource_name :windows_user
25
27
 
26
28
  provides :windows_user
@@ -19,6 +19,7 @@
19
19
  class Chef
20
20
  class Resource
21
21
  class WhyrunSafeRubyBlock < Chef::Resource::RubyBlock
22
+ unified_mode true
22
23
  end
23
24
  end
24
25
  end
@@ -59,7 +59,7 @@ class Chef
59
59
 
60
60
  property :workgroup_name, String,
61
61
  description: "Specifies the name of a workgroup to which the computer is added to when it is removed from the domain. The default value is WORKGROUP. This property is only applicable to the :leave action.",
62
- introduced: "15.0"
62
+ introduced: "15.4"
63
63
 
64
64
  # define this again so we can default it to true. Otherwise failures print the password
65
65
  property :sensitive, [TrueClass, FalseClass],
@@ -26,7 +26,7 @@ class Chef
26
26
  provides :windows_env
27
27
  provides :env # backwards compat with the pre-Chef 14 resource name
28
28
 
29
- description "Use the env resource to manage environment keys in Microsoft Windows. After an environment key is set, Microsoft Windows must be restarted before the environment key will be available to the Task Scheduler."
29
+ description "Use the windows_env resource to manage environment keys in Microsoft Windows. After an environment key is set, Microsoft Windows must be restarted before the environment key will be available to the Task Scheduler."
30
30
 
31
31
  default_action :create
32
32
  allowed_actions :create, :delete, :modify
@@ -24,7 +24,7 @@ class Chef
24
24
  resource_name :windows_feature
25
25
  provides(:windows_feature) { true }
26
26
 
27
- description "Use the windows_feature resource to add, remove or entirely delete Windows features and roles. This resource calls the 'windows_feature_dism' or 'windows_feature_powershell' resources depending on the specified installation method and defaults to dism, which is available on both Workstation and Server editions of Windows."
27
+ description "Use the windows_feature resource to add, remove or entirely delete Windows features and roles. This resource calls the 'windows_feature_dism' or 'windows_feature_powershell' resources depending on the specified installation method, and defaults to DISM, which is available on both Workstation and Server editions of Windows."
28
28
  introduced "14.0"
29
29
 
30
30
  property :feature_name, [Array, String],
@@ -35,7 +35,7 @@ class Chef
35
35
  description: "Specify a local repository for the feature install."
36
36
 
37
37
  property :all, [TrueClass, FalseClass],
38
- description: "Install all sub features.",
38
+ description: "Install all sub-features.",
39
39
  default: false
40
40
 
41
41
  property :management_tools, [TrueClass, FalseClass],
@@ -27,7 +27,7 @@ class Chef
27
27
  resource_name :windows_feature_powershell
28
28
  provides(:windows_feature_powershell) { true }
29
29
 
30
- description "Use the windows_feature_powershell resource to add, remove, or entirely delete Windows features and roles using PowerShell. This resource offers significant speed benefits over the windows_feature_dism resource, but requires installing the Remote Server Administration Tools on non-server releases of Windows."
30
+ description "Use the windows_feature_powershell resource to add, remove, or entirely delete Windows features and roles using PowerShell. This resource offers significant speed benefits over the windows_feature_dism resource, but requires installation of the Remote Server Administration Tools on non-server releases of Windows."
31
31
  introduced "14.0"
32
32
 
33
33
  property :feature_name, [Array, String],
@@ -67,10 +67,15 @@ class Chef
67
67
  description: "The action of the firewall rule.",
68
68
  coerce: proc { |f| f.is_a?(String) ? f.downcase.to_sym : f }
69
69
 
70
- property :profile, [Symbol, String],
71
- default: :any, equal_to: %i{public private domain any notapplicable},
70
+ property :profile, [Symbol, String, Array],
71
+ default: :any,
72
72
  description: "The profile the firewall rule applies to.",
73
- coerce: proc { |p| p.is_a?(String) ? p.downcase.to_sym : p }
73
+ coerce: proc { |p| Array(p).map(&:downcase).map(&:to_sym).sort },
74
+ callbacks: {
75
+ "contains values not in :public, :private :domain, :any or :notapplicable" => lambda { |p|
76
+ p.all? { |e| %i{public private domain any notapplicable}.include?(e) }
77
+ },
78
+ }
74
79
 
75
80
  property :program, String,
76
81
  description: "The program the firewall rule applies to."
@@ -152,13 +157,13 @@ class Chef
152
157
  cmd << " -DisplayName '#{new_resource.rule_name}'" if cmdlet_type == "New"
153
158
  cmd << " -Description '#{new_resource.description}'" if new_resource.description
154
159
  cmd << " -LocalAddress '#{new_resource.local_address}'" if new_resource.local_address
155
- cmd << " -LocalPort #{new_resource.local_port.join(",")}" if new_resource.local_port
160
+ cmd << " -LocalPort '#{new_resource.local_port.join("', '")}'" if new_resource.local_port
156
161
  cmd << " -RemoteAddress '#{new_resource.remote_address}'" if new_resource.remote_address
157
- cmd << " -RemotePort #{new_resource.remote_port.join(",")}" if new_resource.remote_port
162
+ cmd << " -RemotePort '#{new_resource.remote_port.join("', '")}'" if new_resource.remote_port
158
163
  cmd << " -Direction '#{new_resource.direction}'" if new_resource.direction
159
164
  cmd << " -Protocol '#{new_resource.protocol}'" if new_resource.protocol
160
165
  cmd << " -Action '#{new_resource.firewall_action}'" if new_resource.firewall_action
161
- cmd << " -Profile '#{new_resource.profile}'" if new_resource.profile
166
+ cmd << " -Profile '#{new_resource.profile.join("', '")}'" if new_resource.profile
162
167
  cmd << " -Program '#{new_resource.program}'" if new_resource.program
163
168
  cmd << " -Service '#{new_resource.service}'" if new_resource.service
164
169
  cmd << " -InterfaceType '#{new_resource.interface_type}'" if new_resource.interface_type
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Adam Edwards (<adamed@chef.io>)
3
- # Copyright:: Copyright 2013-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2013-2019, 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");
@@ -23,6 +23,8 @@ require_relative "../mixin/windows_architecture_helper"
23
23
  class Chef
24
24
  class Resource
25
25
  class WindowsScript < Chef::Resource::Script
26
+ unified_mode true
27
+
26
28
  # This is an abstract resource meant to be subclasses; thus no 'provides'
27
29
 
28
30
  set_guard_inherited_attributes(:architecture)
@@ -23,7 +23,7 @@ class Chef
23
23
  class Resource
24
24
  class YumPackage < Chef::Resource::Package
25
25
  resource_name :yum_package
26
- provides :package, platform_family: %w{rhel fedora amazon}
26
+ provides :package, platform_family: "fedora_derived"
27
27
 
28
28
  description "Use the yum_package resource to install, upgrade, and remove packages with Yum"\
29
29
  " for the Red Hat and CentOS platforms. The yum_package resource is able to resolve"\
@@ -183,7 +183,7 @@ class Chef
183
183
 
184
184
  # get only the top level resources and strip out the subcollections
185
185
  def updated_resources
186
- @updated_resources ||= action_collection.filtered_collection(max_nesting: 0, up_to_date: false, skipped: false, unprocessed: false)
186
+ @updated_resources ||= action_collection&.filtered_collection(max_nesting: 0, up_to_date: false, skipped: false, unprocessed: false) || {}
187
187
  end
188
188
 
189
189
  def total_res_count
@@ -28,6 +28,7 @@ require_relative "resource/build_essential"
28
28
  require_relative "resource/cookbook_file"
29
29
  require_relative "resource/chef_gem"
30
30
  require_relative "resource/chef_handler"
31
+ require_relative "resource/chef_sleep"
31
32
  require_relative "resource/chocolatey_config"
32
33
  require_relative "resource/chocolatey_feature"
33
34
  require_relative "resource/chocolatey_package"
@@ -635,7 +635,7 @@ class Chef
635
635
  # @return [Train::Plugins::Transport::BaseConnection]
636
636
  #
637
637
  def transport_connection
638
- @transport_connection ||= transport.connection
638
+ @transport_connection ||= transport&.connection
639
639
  end
640
640
 
641
641
  #
@@ -1,6 +1,6 @@
1
1
  #
2
2
  # Author:: Daniel DeLeo (<dan@chef.io>)
3
- # Copyright:: Copyright 2012-2016, Chef Software Inc.
3
+ # Copyright:: Copyright 2012-2019, 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");
@@ -17,7 +17,7 @@
17
17
 
18
18
  require_relative "mixin/create_path"
19
19
  require "fcntl"
20
- if Chef::Platform.windows?
20
+ if ChefUtils.windows?
21
21
  require_relative "win32/mutex"
22
22
  end
23
23
  require_relative "config"
@@ -97,7 +97,7 @@ class Chef
97
97
  #
98
98
  def wait
99
99
  Chef::Log.warn("#{Chef::Dist::PRODUCT} #{runpid} is running, will wait for it to finish and then run.")
100
- if Chef::Platform.windows?
100
+ if ChefUtils.windows?
101
101
  mutex.wait
102
102
  else
103
103
  runlock.flock(File::LOCK_EX)
@@ -116,7 +116,7 @@ class Chef
116
116
  # Release the system-wide lock.
117
117
  def release
118
118
  if runlock
119
- if Chef::Platform.windows?
119
+ if ChefUtils.windows?
120
120
  mutex.release
121
121
  else
122
122
  runlock.flock(File::LOCK_UN)
@@ -138,7 +138,7 @@ class Chef
138
138
 
139
139
  # @api private solely for race condition tests
140
140
  def acquire_lock
141
- if Chef::Platform.windows?
141
+ if ChefUtils.windows?
142
142
  acquire_win32_mutex
143
143
  else
144
144
  # If we support FD_CLOEXEC, then use it.
@@ -126,9 +126,6 @@ class Chef
126
126
  return args.first if args.first.is_a?(Hash)
127
127
 
128
128
  args_h = {}
129
- # If we have 4 arguments, the first is the now-removed sort option, so
130
- # just ignore it.
131
- args.pop(0) if args.length == 4
132
129
  args_h[:start] = args[0] if args[0]
133
130
  args_h[:rows] = args[1]
134
131
  args_h[:filter_result] = args[2]
@@ -1,5 +1,5 @@
1
1
  # Author:: Bryan McLellan <btm@loftninjas.org>
2
- # Copyright:: Copyright 2018, Chef Software, Inc.
2
+ # Copyright:: Copyright 2018-2019, Chef Software Inc.
3
3
  # License:: Apache License, Version 2.0
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
@@ -92,6 +92,8 @@ class Chef
92
92
  end
93
93
 
94
94
  def self.build_transport(logger = Chef::Log.with_child(subsystem: "transport"))
95
+ return nil unless Chef::Config.target_mode?
96
+
95
97
  # TODO: Consider supporting parsing the protocol from a URI passed to `--target`
96
98
  #
97
99
  train_config = {}
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Jay Mundrawala (<jdm@chef.io>)
3
3
  #
4
- # Copyright:: Copyright 2015-2016, Chef Software, Inc.
4
+ # Copyright:: Copyright 2015-2019, Chef Software Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require_relative "../../win32/crypto" if Chef::Platform.windows?
19
+ require_relative "../../win32/crypto" if ChefUtils.windows?
20
20
 
21
21
  class Chef::Util::Powershell
22
22
  class PSCredential
@@ -3,7 +3,7 @@
3
3
  # Author:: Kevin Keane
4
4
  # Author:: Lamont Granquist (<lamont@chef.io>)
5
5
  #
6
- # Copyright:: Copyright 2011-2016, Chef Software Inc.
6
+ # Copyright:: Copyright 2011-2019, Chef Software Inc.
7
7
  # Copyright:: Copyright 2013-2016, North County Tech Center, LLC
8
8
  #
9
9
  # License:: Apache License, Version 2.0
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # Author:: Adam Edwards (<adamed@chef.io>)
3
3
  #
4
- # Copyright:: Copyright (c) 2015 Chef Software, Inc.
4
+ # Copyright:: Copyright (c) 2015-2019, Chef Software Inc.
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require_relative "../../win32/api/security" if Chef::Platform.windows?
19
+ require_relative "../../win32/api/security" if ChefUtils.windows?
20
20
  require_relative "../../mixin/wide_string"
21
21
 
22
22
  class Chef