class Seedee::DigitalOcean

Talk to Digital Ocean

Constants

ACCESS_TOKEN
TRAVIS_BUILD_DIR

Public Instance Methods

await_active_droplet(droplet) click to toggle source
# File lib/seedee/digital_ocean.rb, line 33
def await_active_droplet(droplet)
  client.droplets.find(id: droplet.id).tap do |result|
    if result.status != 'active'
      sleep(1)
      return await_active_droplet(droplet)
    end
  end
end
destroy_droplet(id) click to toggle source
# File lib/seedee/digital_ocean.rb, line 27
def destroy_droplet(id)
  client.droplets.delete(id: id.to_s)
rescue StandardError
  puts "error deleting droplet with id = '#{id}'"
end
new_droplet(name) click to toggle source
# File lib/seedee/digital_ocean.rb, line 12
def new_droplet(name)
  user_data = File.read(File.join(Seedee::ROOT, 'modify-hosts'))
  droplet = DropletKit::Droplet.new(
    name: name.to_s.strip,
    region: 'tor1',
    image: 'ubuntu-16-04-x64',
    size: 's-1vcpu-1gb',
    user_data: user_data,
    monitoring: true,
    ssh_keys: Array(ssh_keys)
  )

  await_active_droplet client.droplets.create(droplet)
end

Private Instance Methods

client() click to toggle source
# File lib/seedee/digital_ocean.rb, line 44
def client
  @client ||= DropletKit::Client.new(access_token: ACCESS_TOKEN)
end
ssh_keys() click to toggle source
# File lib/seedee/digital_ocean.rb, line 48
def ssh_keys
  [15_237_447, 21_963_843]
end