Method: Chef::UserV1#reregister

Defined in:
lib/chef/user_v1.rb

#reregisterObject

Note: remove after API v0 no longer supported by client (and knife command).



234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
# File 'lib/chef/user_v1.rb', line 234

def reregister
  begin
    payload = to_h.merge({ "private_key" => true })
    reregistered_self = chef_root_rest_v0.put("users/#{username}", payload)
    private_key(reregistered_self["private_key"])
  # only V0 supported for reregister
  rescue Net::HTTPClientException => e
    # if there was a 406 related to versioning, give error explaining that
    # only API version 0 is supported for reregister command
    if e.response.code == "406" && e.response["x-ops-server-api-version"]
      version_header = Chef::JSONCompat.from_json(e.response["x-ops-server-api-version"])
      min_version = version_header["min_version"]
      max_version = version_header["max_version"]
      error_msg = reregister_only_v0_supported_error_msg(max_version, min_version)
      raise Chef::Exceptions::OnlyApiVersion0SupportedForAction.new(error_msg)
    else
      raise e
    end
  end
  self
end