chef 16.1.0 → 16.1.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +15 -1
  3. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  4. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  5. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  6. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  7. data/lib/chef/chef_fs/path_utils.rb +3 -3
  8. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  9. data/lib/chef/cookbook/metadata.rb +1 -1
  10. data/lib/chef/cookbook_loader.rb +1 -1
  11. data/lib/chef/cookbook_manifest.rb +1 -1
  12. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  13. data/lib/chef/cookbook_version.rb +2 -2
  14. data/lib/chef/data_collector.rb +1 -1
  15. data/lib/chef/data_collector/error_handlers.rb +1 -1
  16. data/lib/chef/decorator/lazy_array.rb +2 -2
  17. data/lib/chef/digester.rb +4 -4
  18. data/lib/chef/dsl/declare_resource.rb +1 -1
  19. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  20. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  21. data/lib/chef/formatters/base.rb +1 -1
  22. data/lib/chef/http.rb +1 -1
  23. data/lib/chef/http/decompressor.rb +1 -1
  24. data/lib/chef/json_compat.rb +1 -1
  25. data/lib/chef/key.rb +1 -1
  26. data/lib/chef/knife.rb +1 -1
  27. data/lib/chef/knife/bootstrap.rb +5 -5
  28. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  29. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  30. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
  31. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  32. data/lib/chef/knife/core/node_presenter.rb +1 -1
  33. data/lib/chef/knife/core/status_presenter.rb +1 -1
  34. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  35. data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -3
  36. data/lib/chef/knife/key_create_base.rb +1 -1
  37. data/lib/chef/knife/key_edit_base.rb +1 -1
  38. data/lib/chef/knife/ssh.rb +1 -1
  39. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  40. data/lib/chef/mixin/checksum.rb +0 -1
  41. data/lib/chef/mixin/openssl_helper.rb +4 -4
  42. data/lib/chef/mixin/properties.rb +2 -2
  43. data/lib/chef/mixin/shell_out.rb +1 -1
  44. data/lib/chef/node/attribute.rb +2 -2
  45. data/lib/chef/node/immutable_collections.rb +1 -1
  46. data/lib/chef/policy_builder/policyfile.rb +1 -1
  47. data/lib/chef/property.rb +2 -2
  48. data/lib/chef/provider.rb +3 -3
  49. data/lib/chef/provider/directory.rb +1 -1
  50. data/lib/chef/provider/file.rb +1 -1
  51. data/lib/chef/provider/package/chocolatey.rb +1 -1
  52. data/lib/chef/provider/package/dpkg.rb +1 -1
  53. data/lib/chef/provider/package/portage.rb +1 -0
  54. data/lib/chef/provider/package/rubygems.rb +1 -1
  55. data/lib/chef/provider/package/windows.rb +2 -2
  56. data/lib/chef/provider/package/yum.rb +1 -1
  57. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  58. data/lib/chef/provider/remote_directory.rb +2 -2
  59. data/lib/chef/provider/service/arch.rb +1 -1
  60. data/lib/chef/provider/service/upstart.rb +1 -1
  61. data/lib/chef/provider/user/aix.rb +1 -1
  62. data/lib/chef/provider/user/dscl.rb +2 -2
  63. data/lib/chef/provider/user/mac.rb +10 -6
  64. data/lib/chef/provider/windows_task.rb +4 -2
  65. data/lib/chef/resource.rb +3 -3
  66. data/lib/chef/resource/chef_handler.rb +2 -2
  67. data/lib/chef/resource/chef_vault_secret.rb +1 -1
  68. data/lib/chef/resource/cron.rb +1 -1
  69. data/lib/chef/resource/cron_d.rb +1 -1
  70. data/lib/chef/resource/execute.rb +1 -1
  71. data/lib/chef/resource/file.rb +10 -8
  72. data/lib/chef/resource/hostname.rb +1 -1
  73. data/lib/chef/resource/locale.rb +3 -3
  74. data/lib/chef/resource/macos_userdefaults.rb +11 -6
  75. data/lib/chef/resource/scm/git.rb +1 -1
  76. data/lib/chef/resource/windows_certificate.rb +1 -1
  77. data/lib/chef/resource/windows_dfs_server.rb +1 -1
  78. data/lib/chef/resource/windows_pagefile.rb +1 -1
  79. data/lib/chef/resource/windows_task.rb +6 -6
  80. data/lib/chef/resource/windows_user_privilege.rb +3 -3
  81. data/lib/chef/resource_inspector.rb +4 -3
  82. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  83. data/lib/chef/shell/ext.rb +1 -1
  84. data/lib/chef/version.rb +1 -1
  85. data/lib/chef/win32/api.rb +2 -2
  86. data/lib/chef/win32/api/error.rb +3 -1
  87. data/lib/chef/win32/api/file.rb +1 -1
  88. data/lib/chef/win32/api/net.rb +1 -0
  89. data/lib/chef/win32/mutex.rb +1 -1
  90. data/lib/chef/win32/net.rb +1 -0
  91. data/lib/chef/win32/security/sid.rb +4 -4
  92. data/spec/functional/resource/dnf_package_spec.rb +2 -2
  93. data/spec/functional/resource/git_spec.rb +6 -6
  94. data/spec/functional/resource/windows_task_spec.rb +4 -4
  95. data/spec/support/chef_helpers.rb +1 -1
  96. data/spec/support/shared/functional/windows_script.rb +1 -1
  97. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
  98. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
  99. data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
  100. data/spec/unit/node/attribute_spec.rb +1 -1
  101. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  102. data/spec/unit/provider/package/portage_spec.rb +2 -2
  103. data/spec/unit/provider/package/powershell_spec.rb +1 -1
  104. data/spec/unit/win32/registry_spec.rb +1 -1
  105. metadata +6 -6
@@ -42,7 +42,7 @@ class Chef
42
42
  option :expiration_date,
43
43
  short: "-e DATE",
44
44
  long: "--expiration-date DATE",
45
- description: "Optionally pass the expiration date for the key in ISO 8601 fomatted string: YYYY-MM-DDTHH:MM:SSZ e.g. 2013-12-24T21:00:00Z. Defaults to infinity if not passed. UTC timezone assumed."
45
+ description: "Optionally pass the expiration date for the key in ISO 8601 formatted string: YYYY-MM-DDTHH:MM:SSZ e.g. 2013-12-24T21:00:00Z. Defaults to infinity if not passed. UTC timezone assumed."
46
46
  end
47
47
  end
48
48
  end
@@ -47,7 +47,7 @@ class Chef
47
47
  option :expiration_date,
48
48
  short: "-e DATE",
49
49
  long: "--expiration-date DATE",
50
- description: "Updates the expiration_date field of your key if passed. Pass in ISO 8601 fomatted string: YYYY-MM-DDTHH:MM:SSZ e.g. 2013-12-24T21:00:00Z or infinity. UTC timezone assumed."
50
+ description: "Updates the expiration_date field of your key if passed. Pass in ISO 8601 formatted string: YYYY-MM-DDTHH:MM:SSZ e.g. 2013-12-24T21:00:00Z or infinity. UTC timezone assumed."
51
51
  end
52
52
  end
53
53
  end
@@ -59,7 +59,7 @@ class Chef
59
59
 
60
60
  option :prefix_attribute,
61
61
  long: "--prefix-attribute ATTR",
62
- description: "The attribute to use for prefixing the ouput - default depends on the context."
62
+ description: "The attribute to use for prefixing the output - default depends on the context."
63
63
 
64
64
  option :ssh_user,
65
65
  short: "-x USERNAME",
@@ -53,7 +53,7 @@ class Chef
53
53
  <<~EOH
54
54
  The reregister command only supports server API version 0.
55
55
  The server that received the request supports a min version of #{min_version} and a max version of #{max_version}.
56
- User keys are now managed via the key rotation commmands.
56
+ User keys are now managed via the key rotation commands.
57
57
  Please refer to the documentation on how to manage your keys via the key rotation commands:
58
58
  https://docs.chef.io/ctl_chef_server/#key-rotation
59
59
  EOH
@@ -16,7 +16,6 @@
16
16
  # limitations under the License.
17
17
  #
18
18
 
19
- require "digest/sha2" unless defined?(Digest::SHA2)
20
19
  require_relative "../digester"
21
20
 
22
21
  class Chef
@@ -218,7 +218,7 @@ class Chef
218
218
  # Chef 12 backward compatibility
219
219
  ::OpenSSL::PKey::EC.send(:alias_method, :private?, :private_key?)
220
220
 
221
- request.sign(key, ::OpenSSL::Digest::SHA256.new)
221
+ request.sign(key, ::OpenSSL::Digest.new("SHA256"))
222
222
  request
223
223
  end
224
224
 
@@ -289,7 +289,7 @@ class Chef
289
289
  cert.add_extension ef.create_extension("authorityKeyIdentifier",
290
290
  "keyid:always,issuer:always")
291
291
 
292
- cert.sign(key, ::OpenSSL::Digest::SHA256.new)
292
+ cert.sign(key, ::OpenSSL::Digest.new("SHA256"))
293
293
  cert
294
294
  end
295
295
 
@@ -319,7 +319,7 @@ class Chef
319
319
  crl.add_extension ::OpenSSL::X509::Extension.new("crlNumber", ::OpenSSL::ASN1::Integer(1))
320
320
  crl.add_extension ef.create_extension("authorityKeyIdentifier",
321
321
  "keyid:always,issuer:always")
322
- crl.sign(ca_private_key, ::OpenSSL::Digest::SHA256.new)
322
+ crl.sign(ca_private_key, ::OpenSSL::Digest.new("SHA256"))
323
323
  crl
324
324
  end
325
325
 
@@ -398,7 +398,7 @@ class Chef
398
398
  ::OpenSSL::ASN1::Integer(get_next_crl_number(crl)))]
399
399
  crl.add_extension ef.create_extension("authorityKeyIdentifier",
400
400
  "keyid:always,issuer:always")
401
- crl.sign(ca_private_key, ::OpenSSL::Digest::SHA256.new)
401
+ crl.sign(ca_private_key, ::OpenSSL::Digest.new("SHA256"))
402
402
  crl
403
403
  end
404
404
 
@@ -264,7 +264,7 @@ class Chef
264
264
  end
265
265
 
266
266
  result = properties.values.select(&:identity?)
267
- # if there are no other identity properites set, then the name_property becomes the identity, or
267
+ # if there are no other identity properties set, then the name_property becomes the identity, or
268
268
  # failing that we use the actual name.
269
269
  if result.empty?
270
270
  result = name_property ? [ properties[name_property] ] : [ properties[:name] ]
@@ -355,7 +355,7 @@ class Chef
355
355
  #
356
356
  # @param other [Object] the other object (Chef::Resource) which implements the properties API
357
357
  # @param includes [Array<Symbol>] splat-args list of symbols of the properties to copy.
358
- # @param exclude [Array<Symbol>] list of symbosl of the properties to exclude.
358
+ # @param exclude [Array<Symbol>] list of symbols of the properties to exclude.
359
359
  # @return the self object the properties were copied to for method chaining
360
360
  #
361
361
  def copy_properties_from(other, *includes, exclude: [ :name ])
@@ -71,7 +71,7 @@ class Chef
71
71
  default_val = 900
72
72
  return options if options.key?(:timeout)
73
73
 
74
- # FIXME: need to nuke descendents tracker out of Chef::Provider so we can just define that class here without requiring the
74
+ # FIXME: need to nuke descendent tracker out of Chef::Provider so we can just define that class here without requiring the
75
75
  # world, and then just use symbol lookup
76
76
  if obj.class.ancestors.map(&:name).include?("Chef::Provider") && obj.respond_to?(:new_resource) && obj.new_resource.respond_to?(:timeout) && !options.key?(:timeout)
77
77
  options[:timeout] = obj.new_resource.timeout ? obj.new_resource.timeout.to_f : default_val
@@ -184,7 +184,7 @@ class Chef
184
184
  # return the role level override attribute component
185
185
  attr_reader :role_override
186
186
 
187
- # return the enviroment level override attribute component
187
+ # return the environment level override attribute component
188
188
  attr_reader :env_override
189
189
 
190
190
  # return the force override level attribute component
@@ -535,7 +535,7 @@ class Chef
535
535
  e
536
536
  end
537
537
 
538
- # Deep merge all attribute levels using hash-only merging between different precidence
538
+ # Deep merge all attribute levels using hash-only merging between different precedence
539
539
  # levels (so override arrays completely replace arrays set at any default level).
540
540
  #
541
541
  # The path allows for selectively deep-merging a subtree of the node object.
@@ -120,7 +120,7 @@ class Chef
120
120
  # ImmutableMash acts like a Mash (Hash that is indifferent to String or
121
121
  # Symbol keys), with some important exceptions:
122
122
  # * Methods that mutate state are overridden to raise an error instead.
123
- # * Methods that read from the collection are overriden so that they check
123
+ # * Methods that read from the collection are overridden so that they check
124
124
  # if the Chef::Node::Attribute has been modified since an instance of
125
125
  # this class was generated. An error is raised if the object detects that
126
126
  # it is stale.
@@ -328,7 +328,7 @@ class Chef
328
328
  end
329
329
  end
330
330
 
331
- # Do some mimimal validation of the policyfile we fetched from the
331
+ # Do some minimal validation of the policyfile we fetched from the
332
332
  # server. Compatibility mode relies on using data bags to store policy
333
333
  # files; therefore no real validation will be performed server-side and
334
334
  # we need to make additional checks to ensure the data will be formatted
@@ -574,7 +574,7 @@ class Chef
574
574
  # be using the existing getter/setter to manipulate it instead.
575
575
  return unless instance_variable_name
576
576
 
577
- # Properties may override existing properties up the inheritance heirarchy, but
577
+ # Properties may override existing properties up the inheritance hierarchy, but
578
578
  # properties must not override inherited methods like Object#hash. When the Resource is
579
579
  # placed into the resource collection the ruby Hash object will call the
580
580
  # Object#hash method on the resource, and overriding that with a property will cause
@@ -702,7 +702,7 @@ class Chef
702
702
  # override their own properties.
703
703
  return false unless [ Object, BasicObject, Kernel, Chef::Resource ].include?(declared_in.instance_method(name).owner)
704
704
 
705
- # Allow top-level Chef::Resource proprties, such as `name`, to be overridden.
705
+ # Allow top-level Chef::Resource properties, such as `name`, to be overridden.
706
706
  # As of this writing, `name` is the only Chef::Resource property created with the
707
707
  # `property` definition, but this will allow for future properties to be extended
708
708
  # as needed.
@@ -152,7 +152,7 @@ class Chef
152
152
  new_resource.cookbook_name
153
153
  end
154
154
 
155
- # hook that subclasses can use to do lazy validation for where properties aren't flexibile enough
155
+ # hook that subclasses can use to do lazy validation for where properties aren't flexible enough
156
156
  def check_resource_semantics!; end
157
157
 
158
158
  # a simple placeholder method that will be called / raise if a resource tries to
@@ -167,7 +167,7 @@ class Chef
167
167
 
168
168
  def load_after_resource
169
169
  # This is a backwards compatible hack, custom resources properly wire up a new after_resource
170
- # via load_current_value. It is acceptible for old style resources that cannot be easily made
170
+ # via load_current_value. It is acceptable for old style resources that cannot be easily made
171
171
  # into custom resources to override this method and provide a proper after_resource.
172
172
  @after_resource = @new_resource
173
173
  end
@@ -190,7 +190,7 @@ class Chef
190
190
  def run_action(action = nil)
191
191
  @action = action unless action.nil?
192
192
 
193
- # hook that subclasses can use to do lazy validation for where properties aren't flexibile enough
193
+ # hook that subclasses can use to do lazy validation for where properties aren't flexible enough
194
194
  check_resource_semantics!
195
195
 
196
196
  # force the validation of required properties
@@ -142,7 +142,7 @@ class Chef
142
142
  converge_by("delete existing directory #{new_resource.path}") do
143
143
  if new_resource.recursive == true
144
144
  # we don't use rm_rf here because it masks all errors, including
145
- # IO errors or permission errors that would prvent the deletion
145
+ # IO errors or permission errors that would prevent the deletion
146
146
  FileUtils.rm_r(new_resource.path)
147
147
  logger.info("#{new_resource} deleted #{new_resource.path} recursively")
148
148
  else
@@ -334,7 +334,7 @@ class Chef
334
334
  end
335
335
 
336
336
  def do_validate_content
337
- if new_resource.checksum && tempfile && ( new_resource.checksum.downcase != tempfile_checksum )
337
+ if new_resource.checksum && tempfile && ( new_resource.checksum != tempfile_checksum )
338
338
  raise Chef::Exceptions::ChecksumMismatch.new(short_cksum(new_resource.checksum), short_cksum(tempfile_checksum))
339
339
  end
340
340
 
@@ -249,7 +249,7 @@ class Chef
249
249
  end
250
250
 
251
251
  # Helper to convert choco.exe list output to a Hash
252
- # (names are downcased for case-insenstive matching)
252
+ # (names are downcased for case-insensitive matching)
253
253
  #
254
254
  # @param cmd [String] command to run
255
255
  # @return [Hash] list output converted to ruby Hash
@@ -149,7 +149,7 @@ class Chef
149
149
  resolved_source_array.all? { |s| s && ::File.exist?(s) }
150
150
  end
151
151
 
152
- # Helper to return all the nanes of the missing sources for error messages.
152
+ # Helper to return all the names of the missing sources for error messages.
153
153
  #
154
154
  # @return [Array<String>] Array of missing sources
155
155
  def missing_sources
@@ -70,6 +70,7 @@ class Chef
70
70
 
71
71
  if pkginfo.exitstatus != 0
72
72
  pkginfo.stderr.each_line do |line|
73
+ # cspell:disable-next-line
73
74
  if line =~ /[Uu]nqualified atom .*match.* multiple/
74
75
  raise_error_for_query("matched multiple packages (please specify a category):\n#{pkginfo.inspect}")
75
76
  end
@@ -250,7 +250,7 @@ class Chef
250
250
  private
251
251
 
252
252
  def logger
253
- Chef::Log.with_child({ subsytem: "gem_installer_environment" })
253
+ Chef::Log.with_child({ subsystem: "gem_installer_environment" })
254
254
  end
255
255
 
256
256
  end
@@ -38,7 +38,7 @@ class Chef
38
38
  def define_resource_requirements
39
39
  if new_resource.checksum
40
40
  requirements.assert(:install) do |a|
41
- a.assertion { new_resource.checksum.downcase == checksum(source_location) }
41
+ a.assertion { new_resource.checksum == checksum(source_location) }
42
42
  a.failure_message Chef::Exceptions::Package, "Checksum on resource (#{short_cksum(new_resource.checksum)}) does not match checksum on content (#{short_cksum(source_location)})"
43
43
  end
44
44
  end
@@ -169,7 +169,7 @@ class Chef
169
169
  # is not multipackage. The existing implementation of package_provider.installed_version should probably
170
170
  # be what `uninstall_version_array` is, and then that list should be sorted and last/first'd into the
171
171
  # current_resource.version. The current_version_array method was not intended to be overwritten by
172
- # sublasses (but ruby provides no feature to block doing so -- it is already marked as private).
172
+ # subclasses (but ruby provides no feature to block doing so -- it is already marked as private).
173
173
  #
174
174
  def current_version_array
175
175
  [ current_resource.version ]
@@ -100,7 +100,7 @@ class Chef
100
100
 
101
101
  # If this is a package like the kernel that can be installed multiple times, we'll skip over this logic
102
102
  if new_resource.allow_downgrade && version_gt?(iv.version_with_arch, av.version_with_arch) && !python_helper.install_only_packages(name)
103
- # We allow downgrading only in the evenit of single-package
103
+ # We allow downgrading only in the event of single-package
104
104
  # rules where the user explicitly allowed it
105
105
  method = "downgrade"
106
106
  end
@@ -22,7 +22,7 @@ require "singleton" unless defined?(Singleton)
22
22
 
23
23
  #
24
24
  # These are largely historical APIs, the YumCache object no longer exists and this is a
25
- # fascade over the python helper class. It should be considered deprecated-lite and
25
+ # facade over the python helper class. It should be considered deprecated-lite and
26
26
  # no new APIs should be added and should be added to the python_helper instead.
27
27
  #
28
28
 
@@ -147,7 +147,7 @@ class Chef
147
147
  new_resource.updated_by_last_action(true) if res.updated?
148
148
  end
149
149
 
150
- # Get the files to tranfer. This returns files in lexicographical sort order.
150
+ # Get the files to transfer. This returns files in lexicographical sort order.
151
151
  #
152
152
  # FIXME: it should do breadth-first, see CHEF-5080 (please use a performant sort)
153
153
  #
@@ -245,7 +245,7 @@ class Chef
245
245
  res = Chef::Resource::Directory.new(dir, run_context)
246
246
  res.cookbook_name = resource_cookbook
247
247
  if ChefUtils.windows? && rights
248
- # rights are only meant to be applied to the toppest-level directory;
248
+ # rights are only meant to be applied to the most top-level directory;
249
249
  # Windows will handle inheritance.
250
250
  if dir == path
251
251
  rights.each do |r|
@@ -42,7 +42,7 @@ class Chef::Provider::Service::Arch < Chef::Provider::Service::Init
42
42
  end
43
43
 
44
44
  # Get list of all daemons from the file '/etc/rc.conf'.
45
- # Mutiple lines and background form are supported. Example:
45
+ # Multiple lines and background form are supported. Example:
46
46
  # DAEMONS=(\
47
47
  # foobar \
48
48
  # @example \
@@ -41,7 +41,7 @@ class Chef
41
41
 
42
42
  # Upstart does more than start or stop a service, creating multiple 'states' [1] that a service can be in.
43
43
  # In chef, when we ask a service to start, we expect it to have started before performing the next step
44
- # since we have top down dependencies. Which is to say we may follow witha resource next that requires
44
+ # since we have top down dependencies. Which is to say we may follow with a resource next that requires
45
45
  # that service to be running. According to [2] we can trust that sending a 'goal' such as start will not
46
46
  # return until that 'goal' is reached, or some error has occurred.
47
47
  #
@@ -40,7 +40,7 @@ class Chef
40
40
  shell_out!("userdel", userdel_options, new_resource.username)
41
41
  end
42
42
 
43
- # Aix does not support -r like other unix, sytem account is created by adding to 'system' group
43
+ # Aix does not support -r like other unix, system account is created by adding to 'system' group
44
44
  def useradd_options
45
45
  opts = []
46
46
  opts << "-g" << "system" if new_resource.system
@@ -382,7 +382,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
382
382
  salt,
383
383
  iterations,
384
384
  128,
385
- OpenSSL::Digest::SHA512.new
385
+ OpenSSL::Digest.new("SHA512")
386
386
  )
387
387
  end
388
388
 
@@ -627,7 +627,7 @@ in 'password', with the associated 'salt' and 'iterations'.")
627
627
  salt,
628
628
  current_resource.iterations,
629
629
  128,
630
- OpenSSL::Digest::SHA512.new
630
+ OpenSSL::Digest.new("SHA512")
631
631
  ).unpack("H*").first == current_resource.password
632
632
  end
633
633
 
@@ -102,7 +102,7 @@ class Chef
102
102
  shadow_hash_hex = user_plist[:shadow_hash][0]
103
103
  return unless shadow_hash_hex && shadow_hash_hex != ""
104
104
 
105
- # The password infomation is stored in the ShadowHashData key in the
105
+ # The password information is stored in the ShadowHashData key in the
106
106
  # plist. However, parsing it is a bit tricky as the value is itself
107
107
  # another encoded binary plist. We have to extract the encoded plist,
108
108
  # decode it from hex to a binary plist and then convert the binary
@@ -116,6 +116,8 @@ class Chef
116
116
  #
117
117
  # eg:
118
118
  #
119
+ # spellchecker: disable
120
+ #
119
121
  # <array>
120
122
  # <string>77687920 63616e27 74206170 706c6520 6275696c 6420636f 6e736973 74656e74 20746f6f 6c696e67</string>
121
123
  # </array>
@@ -126,6 +128,8 @@ class Chef
126
128
  # <data>AADKAAAKAA4LAA0MAAAAAAAAAAA=</data>
127
129
  # </array>
128
130
  #
131
+ # spellchecker: disable
132
+ #
129
133
  begin
130
134
  shadow_binary_plist = [shadow_hash_hex.delete(" ")].pack("H*")
131
135
  shadow_xml_plist = shell_out("plutil", "-convert", "xml1", "-o", "-", "-", input: shadow_binary_plist).stdout
@@ -179,7 +183,7 @@ class Chef
179
183
  end
180
184
 
181
185
  if new_resource.manage_home
182
- # "sydadminctl -addUser" will create the home directory if it's
186
+ # "sysadminctl -addUser" will create the home directory if it's
183
187
  # the default /Users/<username>, otherwise it sets it in plist
184
188
  # but does not create it. Here we'll ensure that it gets created
185
189
  # if we've been given a directory that is not the default.
@@ -491,7 +495,7 @@ class Chef
491
495
  convert_to_binary(current_resource.salt),
492
496
  current_resource.iterations.to_i,
493
497
  128,
494
- OpenSSL::Digest::SHA512.new
498
+ OpenSSL::Digest.new("SHA512")
495
499
  ).unpack("H*")[0] != current_resource.password
496
500
  end
497
501
 
@@ -517,7 +521,7 @@ class Chef
517
521
  salt.string,
518
522
  new_resource.iterations,
519
523
  128,
520
- OpenSSL::Digest::SHA512.new
524
+ OpenSSL::Digest.new("SHA512")
521
525
  )
522
526
  )
523
527
  end
@@ -554,7 +558,7 @@ class Chef
554
558
  # 0x0A End of record denoted by \n
555
559
  # 0x5C Escaping is denoted by \
556
560
  # 0x3A Fields are separated by :
557
- # 0x2C Values are seperated by ,
561
+ # 0x2C Values are separated by ,
558
562
  # dsRecTypeStandard:Users The record type we're configuring
559
563
  # 2 How many properties we're going to set
560
564
  # dsAttrTypeStandard:RecordName Property 1: our users record name
@@ -598,7 +602,7 @@ class Chef
598
602
 
599
603
  def run_sysadminctl(args)
600
604
  # sysadminctl doesn't exit with a non-zero code when errors are encountered
601
- # and ouputs everything to STDERR instead of STDOUT and STDERR. Therefore we'll
605
+ # and outputs everything to STDERR instead of STDOUT and STDERR. Therefore we'll
602
606
  # return the STDERR and let the caller handle it.
603
607
  shell_out!("sysadminctl", args).stderr
604
608
  end
@@ -72,6 +72,7 @@ class Chef
72
72
  6 => TaskScheduler::TASK_SIXTH,
73
73
  7 => TaskScheduler::TASK_SEVENTH,
74
74
  8 => TaskScheduler::TASK_EIGHTH,
75
+ # cspell:disable-next-line
75
76
  9 => TaskScheduler::TASK_NINETH,
76
77
  10 => TaskScheduler::TASK_TENTH,
77
78
  11 => TaskScheduler::TASK_ELEVENTH,
@@ -93,6 +94,7 @@ class Chef
93
94
  27 => TaskScheduler::TASK_TWENTY_SEVENTH,
94
95
  28 => TaskScheduler::TASK_TWENTY_EIGHTH,
95
96
  29 => TaskScheduler::TASK_TWENTY_NINTH,
97
+ # cspell:disable-next-line
96
98
  30 => TaskScheduler::TASK_THIRTYETH,
97
99
  31 => TaskScheduler::TASK_THIRTY_FIRST,
98
100
  }.freeze
@@ -229,7 +231,7 @@ class Chef
229
231
 
230
232
  private
231
233
 
232
- # seprated command arguments from :command property
234
+ # separated command arguments from :command property
233
235
  def set_command_and_arguments
234
236
  cmd, *args = Chef::Util::PathHelper.split_args(new_resource.command)
235
237
  new_resource.command = cmd
@@ -577,7 +579,7 @@ class Chef
577
579
 
578
580
  def logon_type
579
581
  # Ref: https://msdn.microsoft.com/en-us/library/windows/desktop/aa383566(v=vs.85).aspx
580
- # if nothing is passed as logon_type the TASK_LOGON_SERVICE_ACCOUNT is getting set as default so using that for comparision.
582
+ # if nothing is passed as logon_type the TASK_LOGON_SERVICE_ACCOUNT is getting set as default so using that for comparison.
581
583
  user_id = new_resource.user.to_s
582
584
  password = new_resource.password.to_s
583
585
  if Chef::ReservedNames::Win32::Security::SID.service_account_user?(user_id)