class Chef::Knife::UserCreate

Attributes

user_field[RW]

Public Instance Methods

create_user_from_hash(hash) click to toggle source
# File lib/chef/knife/user_create.rb, line 54
def create_user_from_hash(hash)
  Chef::UserV1.from_hash(hash).create
end
run() click to toggle source
# File lib/chef/knife/user_create.rb, line 58
def run
  test_mandatory_field(@name_args[0], "username")
  user.username @name_args[0]

  test_mandatory_field(@name_args[1], "display name")
  user.display_name @name_args[1]

  test_mandatory_field(@name_args[2], "first name")
  user.first_name @name_args[2]

  test_mandatory_field(@name_args[3], "last name")
  user.last_name @name_args[3]

  test_mandatory_field(@name_args[4], "email")
  user.email @name_args[4]

  test_mandatory_field(@name_args[5], "password")
  user.password @name_args[5]

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

  if !config[:prevent_keygen] && !config[:user_key]
    user.create_key(true)
  end

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

  output = edit_hash(user)
  final_user = create_user_from_hash(output)

  ui.info("Created #{user}")
  if final_user.private_key
    if config[:file]
      File.open(config[:file], "w") do |f|
        f.print(final_user.private_key)
      end
    else
      ui.msg final_user.private_key
    end
  end
end
user() click to toggle source
# File lib/chef/knife/user_create.rb, line 50
def user
  @user_field ||= Chef::UserV1.new
end