class Opc::OpcUserCreate
Public Instance Methods
prompt_for_password()
click to toggle source
# File lib/chef/knife/opc_user_create.rb, line 97 def prompt_for_password ui.ask("Please enter the user's password: ") { |q| q.echo = false } end
run()
click to toggle source
# File lib/chef/knife/opc_user_create.rb, line 42 def run case @name_args.count when 6 username, first_name, middle_name, last_name, email, password = @name_args when 5 username, first_name, last_name, email, password = @name_args when 4 username, first_name, last_name, email = @name_args else ui.fatal "Wrong number of arguments" show_usage exit 1 end password = prompt_for_password if config[:passwordprompt] unless password ui.fatal "You must either provide a password or use the --prompt-for-password (-p) option" exit 1 end middle_name ||= "" user_hash = { username: username, first_name: first_name, middle_name: middle_name, last_name: last_name, display_name: "#{first_name} #{last_name}", email: email, password: password, } # Check the file before creating the user so the api is more transactional. if config[:filename] file = config[:filename] unless File.exist?(file) ? File.writable?(file) : File.writable?(File.dirname(file)) ui.fatal "File #{config[:filename]} is not writable. Check permissions." exit 1 end end result = root_rest.post("users/", user_hash) if config[:filename] File.open(config[:filename], "w") do |f| f.print(result["private_key"]) end else ui.msg result["private_key"] end if config[:orgname] request_body = { user: username } response = root_rest.post("organizations/#{config[:orgname]}/association_requests", request_body) association_id = response["uri"].split("/").last root_rest.put("users/#{username}/association_requests/#{association_id}", { response: "accept" }) end end