class Kontena::Plugin::DigitalOcean::Nodes::CreateCommand

Public Instance Methods

ask_droplet_count() click to toggle source
# File lib/kontena/plugin/digital_ocean/nodes/create_command.rb, line 49
def ask_droplet_count
  if self.count.nil?
    prompt.ask('How many droplets?:', default: 1)
  else
    self.count
  end
end
execute() click to toggle source
# File lib/kontena/plugin/digital_ocean/nodes/create_command.rb, line 18
def execute
  suppress_warnings # until DO merges resource_kit pr #32
  require 'kontena/machine/digital_ocean'
  require_api_url
  require_current_grid

  do_token = ask_do_token
  do_region = ask_droplet_region(do_token)
  coreos_channel = self.channel || ask_channel
  do_size = ask_droplet_size(do_token, do_region)
  do_count = ask_droplet_count
  do_ssh_key_id = ask_ssh_key(do_token)

  grid = fetch_grid
  provisioner = provisioner(client(require_token), do_token)
  provisioner.run!(
    master_uri: api_url,
    grid_token: grid['token'],
    grid: current_grid,
    ssh_key_id: do_ssh_key_id,
    name: name,
    size: do_size,
    count: do_count,
    region: do_region,
    version: version,
    channel: coreos_channel
  )
ensure
  resume_warnings
end
fetch_grid() click to toggle source

@return [Hash]

# File lib/kontena/plugin/digital_ocean/nodes/create_command.rb, line 64
def fetch_grid
  client(require_token).get("grids/#{current_grid}")
end
provisioner(client, token) click to toggle source

@param [Kontena::Client] client @param [String] token

# File lib/kontena/plugin/digital_ocean/nodes/create_command.rb, line 59
def provisioner(client, token)
  Kontena::Machine::DigitalOcean::NodeProvisioner.new(client, token)
end