class DokkaaCfg::DigitalOcean
Constants
- DROPLET_NAME_PREFIX
Public Class Methods
new(access_token=nil)
click to toggle source
Calls superclass method
# File lib/dokkaacfg/digitalocean.rb, line 10 def initialize(access_token=nil) super() access_token ||= ENV["DIGITALOCEAN_ACCESS_TOKEN"] @client = Barge::Client.new(access_token: access_token) end
Public Instance Methods
down(args, options={})
click to toggle source
# File lib/dokkaacfg/digitalocean.rb, line 46 def down(args, options={}) droplets = @client.droplet.all["droplets"] r = droplet_regexp droplets.each do |d| if r.match(d.name) p @client.droplet.destroy(d.id) end end end
scale(args, options=nil)
click to toggle source
# File lib/dokkaacfg/digitalocean.rb, line 43 def scale(args, options=nil) end
up(args, options_={})
click to toggle source
# File lib/dokkaacfg/digitalocean.rb, line 16 def up(args, options_={}) options = options_.clone options[:scale] ||= 1 options[:region] ||= 'sfo1' options[:slug] ||= '512mb' ssh_keys = keys.map do |k| if k.name == options[:ssh_key] k.id end end.compact user_data = UserData.make_user_data (1..options[:scale]).each do |n| name = "#{DROPLET_NAME_PREFIX}#{n}" puts "launching #{name}" p @client.droplet.create( name: name, region: options[:region], size: options[:slug], image: "coreos-alpha", ssh_keys: ssh_keys, private_networking: true, user_data: user_data ) end end
Private Instance Methods
dokkaa_droplets()
click to toggle source
# File lib/dokkaacfg/digitalocean.rb, line 61 def dokkaa_droplets droplets = @client.droplet.all["droplets"] r = droplet_regexp droplets.filter{|d| d.name =~ r} end
droplet_regexp()
click to toggle source
# File lib/dokkaacfg/digitalocean.rb, line 57 def droplet_regexp Regexp.new("^#{DROPLET_NAME_PREFIX}") end
keys()
click to toggle source
# File lib/dokkaacfg/digitalocean.rb, line 67 def keys @keys ||= @client.key.all["ssh_keys"] end