Class: Management::CreateServer
- Inherits:
-
Command
- Object
- Command
- Management::CreateServer
show all
- Defined in:
- lib/management/commands/create_server.rb
Instance Method Summary
collapse
Methods inherited from Command
all, #cloud, command_name, #config, #get_env, #get_script, #get_server, #get_type, help_string, inherited
Instance Method Details
#call(env_name, type_name) ⇒ Object
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/management/commands/create_server.rb', line 7
def call(env_name, type_name)
env = get_env(env_name)
type = get_type(type_name)
servers = cloud.servers
name = make_unique_server_name(env_name, type_name, servers)
puts "Creating \"#{name}\"..."
cloud.servers.create(image_id: type[:image_id],
flavor_id: type[:flavor_id],
groups: type[:groups],
key_name: type[:key_name],
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
|
#current_user ⇒ Object
31
32
33
34
35
|
# File 'lib/management/commands/create_server.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/create_server.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
|