mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00

Done with `rubocop --auto-correct --only EmptyLineBetweenDefs,EmptyLines,EmptyLinesAroundBody`
75 lines
2.2 KiB
Ruby
75 lines
2.2 KiB
Ruby
module Fog
|
|
module Compute
|
|
class DigitalOcean
|
|
class Real
|
|
#
|
|
# FIXME: missing ssh keys support
|
|
#
|
|
def create_server( name,
|
|
size_id,
|
|
image_id,
|
|
region_id,
|
|
options = {} )
|
|
|
|
query_hash = {
|
|
:name => name,
|
|
:size_id => size_id,
|
|
:image_id => image_id,
|
|
:region_id => region_id
|
|
}
|
|
|
|
if options[:ssh_key_ids]
|
|
options[:ssh_key_ids] = options[:ssh_key_ids].join(",") if options[:ssh_key_ids].is_a? Array
|
|
query_hash[:ssh_key_ids] = options[:ssh_key_ids]
|
|
end
|
|
|
|
query_hash[:private_networking] = !!options[:private_networking]
|
|
|
|
request(
|
|
:expects => [200],
|
|
:method => 'GET',
|
|
:path => 'droplets/new',
|
|
:query => query_hash
|
|
)
|
|
end
|
|
end
|
|
|
|
class Mock
|
|
def create_server( name,
|
|
size_id,
|
|
image_id,
|
|
region_id,
|
|
options = {} )
|
|
response = Excon::Response.new
|
|
response.status = 200
|
|
|
|
# New York 2 (region id 4) is currently the only region that supports
|
|
# private networking. The Digital Ocean IP will return a null
|
|
# private_ip_address for any other region
|
|
has_private_ip = !!options[:private_networking] && (region_id == 4)
|
|
|
|
mock_data = {
|
|
"id" => Fog::Mock.random_numbers(1).to_i,
|
|
"event_id" => Fog::Mock.random_numbers(2).to_i,
|
|
"name" => name,
|
|
"size_id" => size_id,
|
|
"image_id" => image_id,
|
|
"region_id" => region_id,
|
|
"ip_address" => "127.0.0.1",
|
|
"private_ip_address" => has_private_ip ? "10.0.0.1" : nil,
|
|
"status" => 'active',
|
|
"created_at" => Time.now.strftime("%FT%TZ")
|
|
}
|
|
|
|
response.body = {
|
|
"status" => "OK",
|
|
"droplet" => mock_data
|
|
}
|
|
|
|
self.data[:servers] << mock_data
|
|
response
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|