class Kontena::Machine::DigitalOcean::NodeDestroyer
Attributes
api_client[R]
client[R]
Public Class Methods
new(api_client, token)
click to toggle source
@param [Kontena::Client] api_client
Kontena
api client @param [String] token Digital Ocean token
# File lib/kontena/machine/digital_ocean/node_destroyer.rb, line 12 def initialize(api_client, token) @api_client = api_client @client = DropletKit::Client.new(access_token: token) end
Public Instance Methods
run!(grid, name)
click to toggle source
# File lib/kontena/machine/digital_ocean/node_destroyer.rb, line 17 def run!(grid, name) droplet = client.droplets.all.find{|d| d.name == name} if droplet spinner "Terminating DigitalOcean droplet #{name.colorize(:cyan)} " do result = client.droplets.delete(id: droplet.id) if result.is_a?(String) abort "Cannot delete droplet #{name.colorize(:cyan)} in DigitalOcean" end end else abort "Cannot find droplet #{name.colorize(:cyan)} in DigitalOcean" end node = api_client.get("grids/#{grid['id']}/nodes")['nodes'].find{|n| n['name'] == name} if node spinner "Removing node #{name.colorize(:cyan)} from grid #{grid['name'].colorize(:cyan)} " do api_client.delete("nodes/#{grid['id']}/#{name}") end end end