lib/kontena/plugin/azure/nodes/create_command.rb in kontena-plugin-azure-0.2.5 vs lib/kontena/plugin/azure/nodes/create_command.rb in kontena-plugin-azure-0.3.0

- old
+ new

@@ -1,26 +1,28 @@ +require_relative '../common' module Kontena::Plugin::Azure::Nodes class CreateCommand < Kontena::Command include Kontena::Cli::Common include Kontena::Cli::GridOptions + include Kontena::Plugin::Azure::Common - option "--subscription-id", "SUBSCRIPTION ID", "Azure subscription id", required: true - option "--subscription-cert", "CERTIFICATE", "Path to Azure management certificate", attribute_name: :certificate, required: true - option "--size", "SIZE", "SIZE", default: 'Small' + option "--subscription-id", "ID", "Azure subscription id", required: true + option "--subscription-cert", "CERT", "Path to Azure management certificate", attribute_name: :certificate, required: true + option "--size", "SIZE", "Virtual machine size, see https://docs.microsoft.com/en-us/azure/virtual-machines/virtual-machines-windows-sizes", required: true + option "--ssh-key", "SSH KEY", "SSH private key file", required: true + option "--location", "LOCATION", "Location", required: true option "--network", "NETWORK", "Virtual Network name" option "--subnet", "SUBNET", "Subnet name" - option "--ssh-key", "SSH KEY", "SSH private key file", required: true - option "--location", "LOCATION", "Location", default: 'West Europe' option "--version", "VERSION", "Define installed Kontena version", default: 'latest' parameter "[NAME]", "Node name" def execute require_api_url require_current_grid - require 'kontena/machine/azure' + 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'], @@ -44,8 +46,31 @@ end # @return [Hash] def fetch_grid client(require_token).get("grids/#{current_grid}") + end + + def default_location + prompt.select("Choose location: ") do |menu| + locations.each do |l| + menu.choice l + end + end + end + + 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 end end