class Chef::Knife::ClientCreate

Public Instance Methods

client() click to toggle source
# File lib/chef/knife/client_create.rb, line 53
def client
  @client_field ||= Chef::ApiClientV1.new
end
create_client(client) click to toggle source
# File lib/chef/knife/client_create.rb, line 57
def create_client(client)
  # should not be using save :( bad behavior
  Chef::ApiClientV1.from_hash(client).save
end
run() click to toggle source
# File lib/chef/knife/client_create.rb, line 62
def run
  test_mandatory_field(@name_args[0], "client name")
  client.name @name_args[0]

  if config[:public_key] && config[:prevent_keygen]
    show_usage
    ui.fatal("You cannot pass --public-key and --prevent-keygen")
    exit 1
  end

  if !config[:prevent_keygen] && !config[:public_key]
    client.create_key(true)
  end

  if config[:validator]
    client.validator(true)
  end

  if config[:public_key]
    client.public_key File.read(File.expand_path(config[:public_key]))
  end

  output = edit_hash(client)
  final_client = create_client(output)
  ui.info("Created #{final_client}")

  # output private_key if one
  if final_client.private_key
    if config[:file]
      File.open(config[:file], "w") do |f|
        f.print(final_client.private_key)
      end
    else
      puts final_client.private_key
    end
  end
end