Class: Seedee::DigitalOcean
- Inherits:
-
Object
- Object
- Seedee::DigitalOcean
- Defined in:
- lib/seedee/digital_ocean.rb
Overview
Talk to Digital Ocean
Constant Summary collapse
- ACCESS_TOKEN =
ENV['DIGITAL_OCEAN_TOKEN']
- TRAVIS_BUILD_DIR =
ENV['TRAVIS_BUILD_DIR']
Instance Method Summary collapse
Instance Method Details
#await_active_droplet(droplet) ⇒ Object
33 34 35 36 37 38 39 40 |
# 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) ⇒ Object
27 28 29 30 31 |
# 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) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# 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 |