class Asteroid::Provider::DigitalOcean
Public Class Methods
new(config = {})
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 7 def initialize(config = {}) @config = config Digitalocean.client_id = config[:client_id] Digitalocean.api_key = config[:api_key] end
Public Instance Methods
create_instance(server)
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 30 def create_instance(server) instance_options = server.instance_options require_attribute instance_options, :size_id, "needs size of droplet" require_attribute instance_options, :image_id, "needs starting image for droplet" require_attribute instance_options, :region_id, "needs region for droplet" require_attribute instance_options, :ssh_key_ids, "needs SSH key registered for droplet" instance = Digitalocean::Droplet.create( name: server.generate_instance_name, size_id: instance_options[:size_id], image_id: instance_options[:image_id], region_id: instance_options[:region_id], ssh_key_ids: instance_options[:ssh_key_ids], private_networking: true ) if instance.status == "OK" Instance.new instance.droplet.marshal_dump.merge(provider: self) else nil end end
create_ssh_key(config)
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 79 def create_ssh_key(config) end
destroy_instance(instance)
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 66 def destroy_instance(instance) Digitalocean::Droplet.destroy instance.id end
instances()
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 21 def instances response = Digitalocean::Droplet.all response.droplets.map do |d| d.marshal_dump.merge( provider: self ) end end
reboot_instance(instance)
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 82 def reboot_instance(instance) end
sizes()
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 13 def sizes Digitalocean::Size.all.sizes.map do |d| d.marshal_dump.merge( provider: self ) end end
ssh_keys()
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 70 def ssh_keys response = Digitalocean::SshKey.all response.ssh_keys.map do |d| d.marshal_dump.merge( provider: self ) end end
Private Instance Methods
instance_name()
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 91 def instance_name "Droplet" end
provider_name()
click to toggle source
# File lib/asteroid/provider/digital_ocean.rb, line 87 def provider_name "DigitalOcean" end