{"record":{"id":"c7f6482c26b2af29","repo":"puppetlabs/puppet","slug":"os-x-versions-10-7-use-pbkdf2-password-hashes-w","errorCode":null,"errorMessage":"OS X versions > 10.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}.","messagePattern":"OS X versions > 10\\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash\\. This resource is missing: #(.+?)\\.","errorType":"exception","errorClass":"Puppet::Error","httpStatus":null,"severity":"error","filePath":"lib/puppet/provider/user/directoryservice.rb","lineNumber":483,"sourceCode":"        begin\n          dscl '.', '-create', \"/Users/#{resource.name}\", self.class.ns_to_ds_attribute_map[setter_method.intern], value\n        rescue Puppet::ExecutionFailure => e\n          raise Puppet::Error, \"Cannot set the #{setter_method} value of '#{value}' for user \" \\\n                               \"#{@resource.name} due to the following error: #{e.inspect}\", e.backtrace\n        end\n      end\n    end\n  end\n\n  ##                ##\n  ## Helper Methods ##\n  ##                ##\n\n  def assert_full_pbkdf2_password\n    missing = [:password, :salt, :iterations].select { |parameter| @resource[parameter].nil? }\n\n    unless missing.empty?\n      raise Puppet::Error, \"OS X versions > 10\\.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}.\"\n    end\n  end\n\n  def users_plist_dir\n    '/var/db/dslocal/nodes/Default/users'\n  end\n\n  def self.password_hash_dir\n    '/var/db/shadow/hash'\n  end\n\n  # This method will create a given value using dscl\n  def create_attribute_with_dscl(path, username, keyname, value)\n    set_attribute_with_dscl('-create', path, username, keyname, value)\n  end\n\n  # This method will merge in a given value using dscl\n  def merge_attribute_with_dscl(path, username, keyname, value)","sourceCodeStart":465,"sourceCodeEnd":501,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/provider/user/directoryservice.rb#L465-L501","documentation":"Error \"OS X versions > 10.7 use PBKDF2 password hashes, which requires all three of salt, iterations, and password hash. This resource is missing: #{missing.join(', ')}.\" thrown in puppetlabs/puppet.","triggerScenarios":"Thrown at lib/puppet/provider/user/directoryservice.rb:483 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}