chef 17.1.35-universal-mingw32 → 17.2.29-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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/lib/chef/action_collection.rb +6 -26
  4. data/lib/chef/application.rb +1 -1
  5. data/lib/chef/application/base.rb +15 -0
  6. data/lib/chef/client.rb +6 -0
  7. data/lib/chef/cookbook_version.rb +26 -4
  8. data/lib/chef/data_bag.rb +2 -1
  9. data/lib/chef/data_bag_item.rb +2 -1
  10. data/lib/chef/data_collector.rb +0 -1
  11. data/lib/chef/data_collector/run_end_message.rb +1 -1
  12. data/lib/chef/deprecated.rb +4 -0
  13. data/lib/chef/event_dispatch/base.rb +2 -1
  14. data/lib/chef/exceptions.rb +3 -0
  15. data/lib/chef/handler.rb +46 -8
  16. data/lib/chef/handler/slow_report.rb +66 -0
  17. data/lib/chef/node.rb +20 -19
  18. data/lib/chef/provider/support/zypper_repo.erb +4 -2
  19. data/lib/chef/provider/zypper_repository.rb +27 -31
  20. data/lib/chef/resource/alternatives.rb +5 -5
  21. data/lib/chef/resource/apt_preference.rb +2 -2
  22. data/lib/chef/resource/apt_repository.rb +2 -2
  23. data/lib/chef/resource/apt_update.rb +4 -4
  24. data/lib/chef/resource/build_essential.rb +1 -1
  25. data/lib/chef/resource/chef_client_config.rb +3 -3
  26. data/lib/chef/resource/chef_client_cron.rb +2 -2
  27. data/lib/chef/resource/chef_client_launchd.rb +2 -2
  28. data/lib/chef/resource/chef_client_scheduled_task.rb +14 -14
  29. data/lib/chef/resource/chef_client_systemd_timer.rb +2 -2
  30. data/lib/chef/resource/chef_handler.rb +2 -2
  31. data/lib/chef/resource/chef_sleep.rb +1 -1
  32. data/lib/chef/resource/chocolatey_feature.rb +2 -2
  33. data/lib/chef/resource/chocolatey_source.rb +1 -1
  34. data/lib/chef/resource/cron/cron_d.rb +4 -6
  35. data/lib/chef/resource/cron_access.rb +1 -1
  36. data/lib/chef/resource/dmg_package.rb +1 -1
  37. data/lib/chef/resource/group.rb +4 -4
  38. data/lib/chef/resource/homebrew_cask.rb +17 -6
  39. data/lib/chef/resource/homebrew_package.rb +1 -1
  40. data/lib/chef/resource/homebrew_tap.rb +4 -3
  41. data/lib/chef/resource/homebrew_update.rb +2 -2
  42. data/lib/chef/resource/hostname.rb +49 -7
  43. data/lib/chef/resource/inspec_waiver_file_entry.rb +6 -5
  44. data/lib/chef/resource/kernel_module.rb +6 -6
  45. data/lib/chef/resource/locale.rb +1 -1
  46. data/lib/chef/resource/macos_userdefaults.rb +2 -2
  47. data/lib/chef/resource/ohai_hint.rb +2 -6
  48. data/lib/chef/resource/openbsd_package.rb +17 -0
  49. data/lib/chef/resource/openssl_dhparam.rb +1 -2
  50. data/lib/chef/resource/openssl_ec_private_key.rb +1 -3
  51. data/lib/chef/resource/openssl_ec_public_key.rb +1 -3
  52. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -3
  53. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -3
  54. data/lib/chef/resource/openssl_x509_certificate.rb +1 -4
  55. data/lib/chef/resource/openssl_x509_crl.rb +1 -3
  56. data/lib/chef/resource/openssl_x509_request.rb +1 -3
  57. data/lib/chef/resource/osx_profile.rb +3 -3
  58. data/lib/chef/resource/plist.rb +1 -1
  59. data/lib/chef/resource/powershell_package_source.rb +2 -4
  60. data/lib/chef/resource/reboot.rb +38 -9
  61. data/lib/chef/resource/remote_directory.rb +2 -2
  62. data/lib/chef/resource/rhsm_errata.rb +0 -2
  63. data/lib/chef/resource/rhsm_errata_level.rb +1 -5
  64. data/lib/chef/resource/rhsm_repo.rb +15 -0
  65. data/lib/chef/resource/ssh_known_hosts_entry.rb +4 -7
  66. data/lib/chef/resource/sudo.rb +2 -6
  67. data/lib/chef/resource/swap_file.rb +2 -6
  68. data/lib/chef/resource/sysctl.rb +2 -2
  69. data/lib/chef/resource/timezone.rb +1 -1
  70. data/lib/chef/resource/user_ulimit.rb +2 -2
  71. data/lib/chef/resource/windows_ad_join.rb +2 -2
  72. data/lib/chef/resource/windows_audit_policy.rb +2 -2
  73. data/lib/chef/resource/windows_auto_run.rb +2 -2
  74. data/lib/chef/resource/windows_certificate.rb +1 -1
  75. data/lib/chef/resource/windows_dfs_folder.rb +2 -2
  76. data/lib/chef/resource/windows_dfs_namespace.rb +2 -2
  77. data/lib/chef/resource/windows_dns_record.rb +2 -2
  78. data/lib/chef/resource/windows_dns_zone.rb +2 -2
  79. data/lib/chef/resource/windows_feature.rb +3 -3
  80. data/lib/chef/resource/windows_feature_dism.rb +3 -5
  81. data/lib/chef/resource/windows_feature_powershell.rb +3 -3
  82. data/lib/chef/resource/windows_firewall_profile.rb +2 -2
  83. data/lib/chef/resource/windows_firewall_rule.rb +20 -6
  84. data/lib/chef/resource/windows_font.rb +1 -1
  85. data/lib/chef/resource/windows_pagefile.rb +103 -64
  86. data/lib/chef/resource/windows_path.rb +2 -2
  87. data/lib/chef/resource/windows_printer.rb +5 -20
  88. data/lib/chef/resource/windows_printer_port.rb +48 -65
  89. data/lib/chef/resource/windows_security_policy.rb +2 -2
  90. data/lib/chef/resource/windows_share.rb +2 -2
  91. data/lib/chef/resource/windows_shortcut.rb +1 -1
  92. data/lib/chef/resource/windows_task.rb +1 -1
  93. data/lib/chef/resource/windows_uac.rb +3 -5
  94. data/lib/chef/resource/windows_user_privilege.rb +2 -2
  95. data/lib/chef/resource/windows_workgroup.rb +2 -2
  96. data/lib/chef/resource/yum_package.rb +10 -10
  97. data/lib/chef/resource/zypper_package.rb +4 -4
  98. data/lib/chef/resource/zypper_repository.rb +28 -8
  99. data/lib/chef/resource_reporter.rb +0 -1
  100. data/lib/chef/version.rb +1 -1
  101. data/spec/functional/resource/windows_hostname_spec.rb +91 -0
  102. data/spec/functional/resource/windows_pagefile_spec.rb +98 -0
  103. data/spec/unit/cookbook_version_spec.rb +52 -0
  104. data/spec/unit/data_bag_item_spec.rb +2 -2
  105. data/spec/unit/data_bag_spec.rb +1 -1
  106. data/spec/unit/data_collector_spec.rb +47 -1
  107. data/spec/unit/handler_spec.rb +8 -2
  108. data/spec/unit/provider/zypper_repository_spec.rb +3 -10
  109. data/spec/unit/resource/windows_firewall_rule_spec.rb +12 -7
  110. data/spec/unit/resource/windows_pagefile_spec.rb +4 -9
  111. data/spec/unit/resource/zypper_repository_spec.rb +1 -1
  112. metadata +9 -6
@@ -194,7 +194,7 @@ class Chef
194
194
 
195
195
  # This action needs to find an rb file that presumably contains the indicated class in it and the
196
196
  # load that file. It then instantiates that class by name and registers it as a handler.
197
- action :enable, description: "Enables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node" do
197
+ action :enable, description: "Enables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node." do
198
198
  class_name = new_resource.class_name
199
199
  new_resource.type.each do |type, enable|
200
200
  next unless enable
@@ -216,7 +216,7 @@ class Chef
216
216
  end
217
217
  end
218
218
 
219
- action :disable, description: "Disables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node" do
219
+ action :disable, description: "Disables the handler for the current #{ChefUtils::Dist::Infra::PRODUCT} run on the current node." do
220
220
  new_resource.type.each_key do |type|
221
221
  unregister_handler(type, new_resource.class_name)
222
222
  end
@@ -62,7 +62,7 @@ class Chef
62
62
  coerce: proc { |s| Integer(s) },
63
63
  name_property: true
64
64
 
65
- action :sleep, description: "Pause the #{ChefUtils::Dist::Infra::PRODUCT} run for a specified number of seconds" do
65
+ action :sleep, description: "Pause the #{ChefUtils::Dist::Infra::PRODUCT} run for a specified number of seconds." do
66
66
  converge_by("sleep #{new_resource.seconds} seconds") do
67
67
  sleep(new_resource.seconds)
68
68
  end
@@ -65,7 +65,7 @@ class Chef
65
65
  data ? data.attribute("enabled").to_s : nil # REXML just returns nil if it can't find anything so avoid an undefined method error
66
66
  end
67
67
 
68
- action :enable, description: "Enables a named Chocolatey feature" do
68
+ action :enable, description: "Enables a named Chocolatey feature." do
69
69
  if current_resource.feature_state != true
70
70
  converge_by("enable Chocolatey feature '#{new_resource.feature_name}'") do
71
71
  shell_out!(choco_cmd("enable"))
@@ -73,7 +73,7 @@ class Chef
73
73
  end
74
74
  end
75
75
 
76
- action :disable, description: "Disables a named Chocolatey feature" do
76
+ action :disable, description: "Disables a named Chocolatey feature." do
77
77
  if current_resource.feature_state == true
78
78
  converge_by("disable Chocolatey feature '#{new_resource.feature_name}'") do
79
79
  shell_out!(choco_cmd("disable"))
@@ -98,7 +98,7 @@ class Chef
98
98
  end
99
99
  end
100
100
 
101
- action :remove, description: "Removes a Chocolatey source" do
101
+ action :remove, description: "Removes a Chocolatey source." do
102
102
 
103
103
  if current_resource
104
104
  converge_by("remove Chocolatey source '#{new_resource.source_name}'") do
@@ -29,7 +29,7 @@ class Chef
29
29
  provides :cron_d
30
30
 
31
31
  introduced "14.4"
32
- description "Use the **cron_d** resource to manage cron job files in the /etc/cron.d directory. This is similar to the 'cron' resource, but it does not use the monolithic /etc/crontab file."
32
+ description "Use the **cron_d** resource to manage cron job files in the `/etc/cron.d` directory. This is similar to the 'cron' resource, but it does not use the monolithic /etc/crontab file."
33
33
  examples <<~DOC
34
34
  **Run a program on the fifth hour of the day**
35
35
 
@@ -116,19 +116,17 @@ class Chef
116
116
  end
117
117
 
118
118
  action :create do
119
- description "Add a cron definition file to /etc/cron.d."
119
+ description "Add a cron definition file to `/etc/cron.d`."
120
120
 
121
121
  create_template(:create)
122
122
  end
123
123
 
124
- action :create_if_missing do
125
- description "Add a cron definition file to /etc/cron.d, but do not update an existing file."
124
+ action :create_if_missing, description: "Add a cron definition file to `/etc/cron.d`, but do not update an existing file." do
126
125
 
127
126
  create_template(:create_if_missing)
128
127
  end
129
128
 
130
- action :delete do
131
- description "Remove a cron definition file from /etc/cron.d if it exists."
129
+ action :delete, description: "Remove a cron definition file from `/etc/cron.d` if it exists." do
132
130
 
133
131
  # cleanup the legacy named job if it exists
134
132
  file "legacy named cron.d file" do
@@ -64,7 +64,7 @@ class Chef
64
64
  "default" => "/etc",
65
65
  }.freeze
66
66
 
67
- action :allow, description: "Add the user to the cron.allow file" do
67
+ action :allow, description: "Add the user to the cron.allow file." do
68
68
  allow_path = ::File.join(value_for_platform_family(CRON_PATHS), "cron.allow")
69
69
 
70
70
  with_run_context :root do
@@ -121,7 +121,7 @@ class Chef
121
121
  end
122
122
  end
123
123
 
124
- action :install, description: "Installs the application" do
124
+ action :install, description: "Installs the application." do
125
125
  if current_resource.nil?
126
126
  if new_resource.source
127
127
  remote_file dmg_file do
@@ -43,16 +43,16 @@ class Chef
43
43
 
44
44
  property :excluded_members, [String, Array], default: [],
45
45
  coerce: proc { |arg| arg.is_a?(String) ? arg.split(/\s*,\s*/) : arg },
46
- description: "Remove users from a group. May only be used when append is set to true."
46
+ description: "Remove users from a group. May only be used when `append` is set to `true`."
47
47
 
48
48
  property :append, [ TrueClass, FalseClass ], default: false,
49
- description: "How members should be appended and/or removed from a group. When true, members are appended and excluded_members are removed. When false, group members are reset to the value of the members property."
49
+ description: "How members should be appended and/or removed from a group. When true, `members` are appended and `excluded_members` are removed. When `false`, group members are reset to the value of the `members` property."
50
50
 
51
51
  property :system, [ TrueClass, FalseClass ], default: false,
52
- description: "Set if a group belongs to a system group. Set to true if the group belongs to a system group."
52
+ description: "Set to `true` if the group belongs to a system group."
53
53
 
54
54
  property :non_unique, [ TrueClass, FalseClass ], default: false,
55
- description: "Allow gid duplication. May only be used with the Groupadd provider."
55
+ description: "Allow gid duplication. May only be used with the `Groupadd` user resource provider."
56
56
 
57
57
  property :comment, String,
58
58
  introduced: "14.9",
@@ -51,10 +51,16 @@ class Chef
51
51
 
52
52
  property :owner, [String, Integer],
53
53
  description: "The owner of the Homebrew installation.",
54
- default: lazy { find_homebrew_username }
55
-
56
- action :install, description: "Install an application packaged as a Homebrew cask" do
57
- homebrew_tap "homebrew/cask" if new_resource.install_cask
54
+ default: lazy { find_homebrew_username },
55
+ default_description: "Calculated default username"\
56
+
57
+ action :install, description: "Install an application that is packaged as a Homebrew cask." do
58
+ if new_resource.install_cask
59
+ homebrew_tap "homebrew/cask" do
60
+ homebrew_path new_resource.homebrew_path
61
+ owner new_resource.owner
62
+ end
63
+ end
58
64
 
59
65
  unless casked?
60
66
  converge_by("install cask #{new_resource.cask_name} #{new_resource.options}") do
@@ -66,8 +72,13 @@ class Chef
66
72
  end
67
73
  end
68
74
 
69
- action :remove, description: "Remove an application packaged as a Homebrew cask" do
70
- homebrew_tap "homebrew/cask" if new_resource.install_cask
75
+ action :remove, description: "Remove an application that is packaged as a Homebrew cask." do
76
+ if new_resource.install_cask
77
+ homebrew_tap "homebrew/cask" do
78
+ homebrew_path new_resource.homebrew_path
79
+ owner new_resource.owner
80
+ end
81
+ end
71
82
 
72
83
  if casked?
73
84
  converge_by("uninstall cask #{new_resource.cask_name}") do
@@ -62,7 +62,7 @@ class Chef
62
62
  DOC
63
63
 
64
64
  property :homebrew_user, [ String, Integer ],
65
- description: "The name or uid of the Homebrew owner to be used by #{ChefUtils::Dist::Infra::PRODUCT} when executing a command."
65
+ description: "The name or uid of the Homebrew owner to be used by #{ChefUtils::Dist::Infra::PRODUCT} when executing a command.\n\n#{ChefUtils::Dist::Infra::PRODUCT}, by default, will attempt to execute a Homebrew command as the owner of the `/usr/local/bin/brew` executable. If that executable does not exist, #{ChefUtils::Dist::Infra::PRODUCT} will attempt to find the user by executing `which brew`. If that executable cannot be found, #{ChefUtils::Dist::Infra::PRODUCT} will print an error message: `Could not find the 'brew' executable in /usr/local/bin or anywhere on the path.`.\n\nSet this property to specify the Homebrew owner for situations where Chef Infra Client cannot automatically detect the correct owner.'"
66
66
 
67
67
  end
68
68
  end
@@ -51,9 +51,10 @@ class Chef
51
51
 
52
52
  property :owner, String,
53
53
  description: "The owner of the Homebrew installation.",
54
- default: lazy { find_homebrew_username }
54
+ default: lazy { find_homebrew_username },
55
+ default_description: "Calculated default username"
55
56
 
56
- action :tap, description: "Add a Homebrew tap" do
57
+ action :tap, description: "Add a Homebrew tap." do
57
58
  unless tapped?(new_resource.tap_name)
58
59
  converge_by("tap #{new_resource.tap_name}") do
59
60
  shell_out!("#{new_resource.homebrew_path} tap #{new_resource.full ? "--full" : ""} #{new_resource.tap_name} #{new_resource.url || ""}",
@@ -64,7 +65,7 @@ class Chef
64
65
  end
65
66
  end
66
67
 
67
- action :untap, description: "Remove a Homebrew tap" do
68
+ action :untap, description: "Remove a Homebrew tap." do
68
69
  if tapped?(new_resource.tap_name)
69
70
  converge_by("untap #{new_resource.tap_name}") do
70
71
  shell_out!("#{new_resource.homebrew_path} untap #{new_resource.tap_name}",
@@ -88,7 +88,7 @@ class Chef
88
88
  end
89
89
  end
90
90
 
91
- action :periodic do
91
+ action :periodic, description: "Run a periodic update based on the frequency property." do
92
92
  return unless macos?
93
93
 
94
94
  unless brew_up_to_date?
@@ -98,7 +98,7 @@ class Chef
98
98
  end
99
99
  end
100
100
 
101
- action :update do
101
+ action :update, description: "Run an immediate update." do
102
102
  return unless macos?
103
103
 
104
104
  converge_by "force update new lists of packages" do
@@ -44,6 +44,24 @@ class Chef
44
44
  ipaddress '198.51.100.2'
45
45
  end
46
46
  ```
47
+
48
+ **Change the hostname of a Windows, Non-Domain joined node**:
49
+
50
+ ```ruby
51
+ hostname 'renaming a workgroup computer' do
52
+ hostname 'Foo'
53
+ end
54
+ ```
55
+
56
+ **Change the hostname of a Windows, Domain-joined node (new in 17.2)**:
57
+
58
+ ```ruby
59
+ hostname 'renaming a domain-joined computer' do
60
+ hostname 'Foo'
61
+ domain_user "Domain\\Someone"
62
+ domain_password 'SomePassword'
63
+ end
64
+ ```
47
65
  DOC
48
66
 
49
67
  property :hostname, String,
@@ -71,6 +89,15 @@ class Chef
71
89
  description: "Determines whether or not Windows should be reboot after changing the hostname, as this is required for the change to take effect.",
72
90
  default: true
73
91
 
92
+ property :domain_user, String,
93
+ description: "A domain account specified in the form of DOMAIN\\user used when renaming a domain-joined device",
94
+ introduced: "17.2"
95
+
96
+ property :domain_password, String,
97
+ description: "The password to accompany the domain_user parameter",
98
+ sensitive: true,
99
+ introduced: "17.2"
100
+
74
101
  action_class do
75
102
  def append_replacing_matching_lines(path, regex, string)
76
103
  text = IO.read(path).split("\n")
@@ -103,7 +130,11 @@ class Chef
103
130
  end
104
131
  end
105
132
 
106
- action :set, description: "Sets the node's hostname" do
133
+ def is_domain_joined?
134
+ powershell_exec!("(Get-CIMInstance -Class Win32_ComputerSystem).PartofDomain").result
135
+ end
136
+
137
+ action :set, description: "Sets the node's hostname." do
107
138
  if !windows?
108
139
  ohai "reload hostname" do
109
140
  plugin "hostname"
@@ -243,13 +274,24 @@ class Chef
243
274
  end
244
275
 
245
276
  unless Socket.gethostbyname(Socket.gethostname).first == new_resource.hostname
246
- converge_by "set hostname to #{new_resource.hostname}" do
247
- powershell_exec! <<~EOH
248
- $sysInfo = Get-WmiObject -Class Win32_ComputerSystem
249
- $sysInfo.Rename("#{new_resource.hostname}")
250
- EOH
277
+ if is_domain_joined?
278
+ if new_resource.domain_user.nil? || new_resource.domain_password.nil?
279
+ raise "The `domain_user` and `domain_password` properties are required to change the hostname of a domain-connected Windows system."
280
+ else
281
+ converge_by "set hostname to #{new_resource.hostname}" do
282
+ powershell_exec! <<~EOH
283
+ $user = #{new_resource.domain_user}
284
+ $secure_password = #{new_resource.domain_password} | Convertto-SecureString -AsPlainText -Force
285
+ $Credentials = New-Object System.Management.Automation.PSCredential -Argumentlist ($user, $secure_password)
286
+ Rename-Computer -NewName #{new_resource.hostname} -DomainCredential $Credentials
287
+ EOH
288
+ end
289
+ end
290
+ else
291
+ converge_by "set hostname to #{new_resource.hostname}" do
292
+ powershell_exec!("Rename-Computer -NewName #{new_resource.hostname}")
293
+ end
251
294
  end
252
-
253
295
  # reboot because $windows
254
296
  reboot "setting hostname" do
255
297
  reason "#{ChefUtils::Dist::Infra::PRODUCT} updated system hostname"
@@ -16,8 +16,9 @@
16
16
  #
17
17
 
18
18
  require_relative "../resource"
19
- require "yaml"
19
+ autoload :YAML, "yaml"
20
20
  require "date"
21
+ require "chef-utils/dist" unless defined?(ChefUtils::Dist)
21
22
 
22
23
  class Chef
23
24
  class Resource
@@ -35,7 +36,7 @@ class Chef
35
36
  file_path 'C:\\chef\\inspec_waiver_file.yml'
36
37
  control 'my_inspec_control_01'
37
38
  run_test false
38
- justification "The subject of this control is not managed by Chef on the systems in policy group \#{node['policy_group']}"
39
+ justification "The subject of this control is not managed by #{ChefUtils::Dist::Infra::PRODUCT} on the systems in policy group \#{node['policy_group']}"
39
40
  expiration '2022-01-01'
40
41
  action :add
41
42
  end
@@ -45,7 +46,7 @@ class Chef
45
46
 
46
47
  ```ruby
47
48
  inspec_waiver_file_entry 'my_inspec_control_01' do
48
- justification "The subject of this control is not managed by Chef on the systems in policy group \#{node['policy_group']}"
49
+ justification "The subject of this control is not managed by #{ChefUtils::Dist::Infra::PRODUCT} on the systems in policy group \#{node['policy_group']}"
49
50
  action :add
50
51
  end
51
52
  ```
@@ -110,7 +111,7 @@ class Chef
110
111
 
111
112
  file "Update Waiver File #{new_resource.file_path} to update waiver for control #{new_resource.control}" do
112
113
  path new_resource.file_path
113
- content waiver_hash.to_yaml
114
+ content ::YAML.dump(waiver_hash)
114
115
  backup new_resource.backup
115
116
  action :create
116
117
  end
@@ -125,7 +126,7 @@ class Chef
125
126
  waiver_hash = waiver_hash.sort.to_h
126
127
  file "Update Waiver File #{new_resource.file_path} to remove waiver for control #{new_resource.control}" do
127
128
  path new_resource.file_path
128
- content waiver_hash.to_yaml
129
+ content ::YAML.dump(waiver_hash)
129
130
  backup new_resource.backup
130
131
  action :create
131
132
  end
@@ -93,7 +93,7 @@ class Chef
93
93
  description: "The modprobe.d directory.",
94
94
  default: "/etc/modprobe.d"
95
95
 
96
- action :install, description: "Load kernel module, and ensure it loads on reboot" do
96
+ action :install, description: "Load kernel module, and ensure it loads on reboot." do
97
97
  with_run_context :root do
98
98
  find_resource(:execute, "update initramfs") do
99
99
  command initramfs_command
@@ -121,7 +121,7 @@ class Chef
121
121
  end
122
122
  end
123
123
 
124
- action :uninstall, description: "Unload a kernel module and remove module config, so it doesn't load on reboot" do
124
+ action :uninstall, description: "Unload a kernel module and remove module config, so it doesn't load on reboot." do
125
125
  with_run_context :root do
126
126
  find_resource(:execute, "update initramfs") do
127
127
  command initramfs_command
@@ -146,7 +146,7 @@ class Chef
146
146
  action_unload
147
147
  end
148
148
 
149
- action :blacklist, description: "Blacklist a kernel module" do
149
+ action :blacklist, description: "Blacklist a kernel module." do
150
150
  with_run_context :root do
151
151
  find_resource(:execute, "update initramfs") do
152
152
  command initramfs_command
@@ -162,7 +162,7 @@ class Chef
162
162
  action_unload
163
163
  end
164
164
 
165
- action :disable, description: "Disable a kernel module" do
165
+ action :disable, description: "Disable a kernel module. **New in Chef Infra Client 15.2.**" do
166
166
  with_run_context :root do
167
167
  find_resource(:execute, "update initramfs") do
168
168
  command initramfs_command
@@ -178,7 +178,7 @@ class Chef
178
178
  action_unload
179
179
  end
180
180
 
181
- action :load, description: "Load a kernel module" do
181
+ action :load, description: "Load a kernel module." do
182
182
  unless module_loaded?
183
183
  converge_by("load kernel module #{new_resource.modname}") do
184
184
  shell_out!("modprobe #{new_resource.modname}")
@@ -186,7 +186,7 @@ class Chef
186
186
  end
187
187
  end
188
188
 
189
- action :unload, description: "Unload kernel module" do
189
+ action :unload, description: "Unload kernel module." do
190
190
  if module_loaded?
191
191
  converge_by("unload kernel module #{new_resource.modname}") do
192
192
  shell_out!("modprobe -r #{new_resource.modname}")
@@ -97,7 +97,7 @@ class Chef
97
97
  powershell_exec("Get-WinSystemLocale").result["Name"]
98
98
  end
99
99
 
100
- action :update, description: "Update the system's locale" do
100
+ action :update, description: "Update the system's locale." do
101
101
  converge_if_changed do
102
102
  set_system_locale
103
103
  end
@@ -140,7 +140,7 @@ class Chef
140
140
  state_cmd
141
141
  end
142
142
 
143
- action :write, description: "Write the value to the specified domain/key" do
143
+ action :write, description: "Write the value to the specified domain/key." do
144
144
  converge_if_changed do
145
145
  cmd = defaults_modify_cmd
146
146
  Chef::Log.debug("Updating defaults value by shelling out: #{cmd.join(" ")}")
@@ -149,7 +149,7 @@ class Chef
149
149
  end
150
150
  end
151
151
 
152
- action :delete, description: "Delete a key from a domain" do
152
+ action :delete, description: "Delete a key from a domain." do
153
153
  # if it's not there there's nothing to remove
154
154
  return unless current_resource
155
155
 
@@ -72,9 +72,7 @@ class Chef
72
72
  description: "Determines whether or not the resource is executed during the compile time phase.",
73
73
  default: true, desired_state: false
74
74
 
75
- action :create do
76
- description "Create an Ohai hint file."
77
-
75
+ action :create, description: "Create an Ohai hint file." do
78
76
  directory ::Ohai::Config.ohai.hints_path.first do
79
77
  action :create
80
78
  recursive true
@@ -86,9 +84,7 @@ class Chef
86
84
  end
87
85
  end
88
86
 
89
- action :delete do
90
- description "Delete an Ohai hint file."
91
-
87
+ action :delete, description: "Delete an Ohai hint file." do
92
88
  file ohai_hint_file_path(new_resource.hint_name) do
93
89
  action :delete
94
90
  notifies :reload, ohai[reload ohai post hint removal]