42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# 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,
}
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
|