Class: Management::Server::Create
Instance Method Summary
collapse
Methods included from Helper
#cloud, #config, #get_address, #get_env, #get_script, #get_server, #get_type, #live_servers, #system_verbose
Methods inherited from Command
all, #arg_list, #call_with, #command_name, #fn, #help_string, inherited, maxlen, #true_arity
Instance Method Details
#current_user ⇒ Object
31
32
33
34
35
|
# File 'lib/management/commands/server/create.rb', line 31
def current_user
`git config user.name`.strip
rescue
"unknown"
end
|
#make_unique_server_name(env_name, type_name, servers) ⇒ Object
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/management/commands/server/create.rb', line 37
def make_unique_server_name(env_name, type_name, servers)
(1..Float::INFINITY).each do |i|
name = "#{env_name}-#{type_name}-#{i}"
if servers.find{|s|s.name == name}
i += 1
else
return name
end
end
end
|
#run(env_name, type_name) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/management/commands/server/create.rb', line 11
def run(env_name, type_name)
env = get_env(env_name)
type = get_type(type_name)
servers = live_servers
name = make_unique_server_name(env_name, type_name, servers)
puts "Creating \"#{name}\"..."
cloud.servers.create(type.merge({tags: {
"Creator" => current_user,
"CreatedAt" => Time.new.strftime("%Y%m%d%H%M%S"),
"Name" => name,
"Env" => env_name,
"Meal" => type_name,
}}))
puts "Done."
end
|