Class: Kontena::Plugin::Azure::Nodes::CreateCommand

Inherits:
Command
  • Object
show all
Includes:
Cli::Common, Cli::GridOptions, Common
Defined in:
lib/kontena/plugin/azure/nodes/create_command.rb

Constant Summary

Constants included from Common

Common::LOCATIONS, Common::SIZES

Instance Method Summary collapse

Methods included from Common

#locations, #sizes

Instance Method Details

#default_locationObject



53
54
55
56
57
58
59
# File 'lib/kontena/plugin/azure/nodes/create_command.rb', line 53

def default_location
  prompt.select("Choose location: ") do |menu|
    locations.each do |l|
      menu.choice l
    end
  end
end

#default_sizeObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/kontena/plugin/azure/nodes/create_command.rb', line 61

def default_size
  size = prompt.select("Choose virtual machine size: ") do |menu|
    menu.default 3
    sizes.each do |s|
      menu.choice s
    end
    menu.choice 'Other'
  end
  if size == 'Other'
    size = prompt.ask("Virtual machine size? (see https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-windows-sizes#size-tables)")
  end

  size
end

#executeObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/kontena/plugin/azure/nodes/create_command.rb', line 19

def execute
  require_api_url
  require_current_grid

  require_relative '../../../machine/azure'
  grid = fetch_grid
  provisioner = provisioner(client(require_token), subscription_id, certificate)
  provisioner.run!(
    master_uri: api_url,
    grid_token: grid['token'],
    grid: current_grid,
    ssh_key: ssh_key,
    name: name,
    size: size,
    virtual_network: network,
    subnet: subnet,
    location: location,
    version: version
  )
end

#fetch_gridHash

Returns:

  • (Hash)


49
50
51
# File 'lib/kontena/plugin/azure/nodes/create_command.rb', line 49

def fetch_grid
  client(require_token).get("grids/#{current_grid}")
end

#provisioner(client, subscription_id, certificate) ⇒ Kontena::Machine::Azure::NodeProvisioner

Parameters:

  • client (Kontena::Client)
  • subscription_id (String)
  • certificate (String)

Returns:



44
45
46
# File 'lib/kontena/plugin/azure/nodes/create_command.rb', line 44

def provisioner(client, subscription_id, certificate)
  Kontena::Machine::Azure::NodeProvisioner.new client, subscription_id, certificate
end