34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/fog/ecloud/models/compute/servers.rb', line 34
def create( template_uri, options )
options[:cpus] ||= 1
options[:memory] ||= 512
options[:description] ||= ""
options[:tags] ||= []
if template_uri =~ /\/templates\/\d+/
options[:uri] = href + "/action/createVirtualMachine"
options[:customization] ||= :linux
options[:powered_on] ||= false
if options[:ips]
options[:ips] = [*options[:ips]]
else
[*options[:network_uri]].each do |uri|
index = options[:network_uri].index(uri)
ip = self.service.ip_addresses(:href => uri).find { |i| i.host == nil && i.detected_on.nil? }.name
options[:ips] ||= []
options[:ips][index] = ip
end
end
data = service.virtual_machine_create_from_template( template_uri, options ).body
else
options[:uri] = href + "/action/importVirtualMachine"
data = service.virtual_machine_import( template_uri, options ).body
end
object = self.service.servers.new(data)
object
end
|