class Kontena::Machine::Packet::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 Packet api token

# File lib/kontena/machine/packet/node_destroyer.rb, line 13
def initialize(api_client, token)
  @api_client = api_client
  @client = login(token)
end

Public Instance Methods

run!(grid, project_id, name) click to toggle source
# File lib/kontena/machine/packet/node_destroyer.rb, line 18
def run!(grid, project_id, name)
  device = client.list_devices(project_id).find{|d| d.hostname == name}
  abort("Device #{name.colorize(:cyan)} not found in Packet") unless device

  spinner "Terminating Packet device #{name.colorize(:cyan)} " do
    begin
      response = client.delete_device(device.id)
      raise unless response.success?
    rescue
      abort "Cannot delete device #{name.colorize(:cyan)} in Packet"
    end
  end

  node = api_client.get("grids/#{grid['id']}/nodes")['nodes'].find{|n| n['name'] == name}
  Kontena.run(['node', 'rm', '--force', '--grid', grid['name'], name]) if node
end