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