class DigitalOcean

Public Instance Methods

create(config) click to toggle source
# File lib/open-dock/providers/digital_ocean.rb, line 5
def create(config)
  droplet = DropletKit::Droplet.new config
  resp = @connection.droplets.create droplet
  if resp == droplet
    ip = @connection.find_droplet_by_name(config["name"]).networks["v4"].first.ip_address
    say "Droplet #{config["name"]} (IP: #{ip}) successfully created!"
  else
    raise resp
  end
end
delete(host) click to toggle source
# File lib/open-dock/providers/digital_ocean.rb, line 16
def delete(host)
  begin
    id = @connection.find_droplet_by_name(host).id
    resp = @connection.droplets.delete id: id
  rescue NoMethodError
    raise "#{host} does not exist"
  rescue
    raise resp
  end

  if resp.is_a?(TrueClass)
    say "Droplet #{host} successfully deleted!"
  else
    raise resp
  end
end
list_params() click to toggle source
# File lib/open-dock/providers/digital_ocean.rb, line 33
def list_params
  say "\nSizes:"
  @connection.sizes.all.each do |i|
    say "   - #{i.slug.ljust(6)} =>   $#{i.price_monthly}/mo"
  end

  say "\nRegions:"
  @connection.regions.all.each do |i|
    say "   - #{i.slug.ljust(6)} =>   #{i.name}"
  end

  say "\nImages:"
  @connection.images.all.each do |i|
    say "   - #{i.slug.ljust(20)} =>   #{i.distribution} #{i.name}" unless i.slug.nil?
  end

  say "\nSSH Keys:"
  @connection.ssh_keys.all.each do |i|
    say "   - #{i.fingerprint} =>   #{i.name}"
  end
end

Private Instance Methods

create_connection(config) click to toggle source
# File lib/open-dock/providers/digital_ocean.rb, line 56
def create_connection(config)
  @connection = DropletKit::Client.new(access_token: config["token"])
end