class Kontena::Plugin::Vagrant::Nodes::CreateCommand

Public Instance Methods

ask_instance_memory() click to toggle source
# File lib/kontena/plugin/vagrant/nodes/create_command.rb, line 59
def ask_instance_memory
  if self.memory.nil?
    prompt.select("Choose a size ") do |menu|
      %w(1024 2048 4096).each do |mem|
        menu.choice "#{mem}MB", mem
      end
    end
  else
    self.memory
  end
end
ask_instances() click to toggle source
# File lib/kontena/plugin/vagrant/nodes/create_command.rb, line 51
def ask_instances
  if self.instances.nil?
    prompt.ask("How many nodes?: ", default: 1, in: '1..10')
  else
    self.instances
  end
end
execute() click to toggle source
# File lib/kontena/plugin/vagrant/nodes/create_command.rb, line 14
def execute
  api_url = require_api_url
  require_current_grid

  instance_count = ask_instances
  instance_memory = ask_instance_memory

  require_relative '../../../machine/vagrant'

  grid = fetch_grid
  provisioner = provisioner(client(require_token))

  require 'ipaddr'
  ip_address = if network_address == "dhcp"
    nil
  else
    IPAddr.new network_address
  end

  instance_count.to_i.times do |i|
    provisioner.run!(
      master_uri: api_url,
      grid_token: grid['token'],
      grid: current_grid,
      name: name,
      instance_number: i + 1,
      network_address: ip_address ? ip_address.to_s : "dhcp",
      cpus: cpus,
      memory: instance_memory,
      version: version,
      coreos_channel: coreos_channel
    )

    ip_address = ip_address.succ if ip_address
  end
end
fetch_grid() click to toggle source

@return [Hash]

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

@param [Kontena::Client] client

# File lib/kontena/plugin/vagrant/nodes/create_command.rb, line 72
def provisioner(client)
  Kontena::Machine::Vagrant::NodeProvisioner.new(client)
end