Class: Kontena::Cli::Nodes::RemoveCommand
- Inherits:
-
Kontena::Command
- Object
- Clamp::Command
- Kontena::Command
- Kontena::Cli::Nodes::RemoveCommand
- Includes:
- Common, GridOptions
- Defined in:
- lib/kontena/cli/nodes/remove_command.rb
Instance Attribute Summary
Attributes inherited from Kontena::Command
#arguments, #exit_code, #result
Instance Method Summary collapse
Methods included from GridOptions
Methods included from Common
#access_token=, #add_master, #any_key_to_continue, #any_key_to_continue_with_timeout, #api_url, #api_url=, #caret, #clear_current_grid, #client, #cloud_auth?, #cloud_client, #config, #confirm, #confirm_command, #current_grid, #current_master_index, #debug?, #display_account_login_info, #display_login_info, display_logo, #display_master_login_info, #error, exit_with_error, #kontena_account, #logger, #pastel, #print, #prompt, #puts, #require_api_url, #require_token, #reset_client, #reset_cloud_client, #running_quiet?, #running_silent?, #running_verbose?, #spin_if, #spinner, #sprint, #sputs, #stdin_input, #use_refresh_token, #vfakespinner, #vputs, #vspinner, #warning
Methods inherited from Kontena::Command
banner, callback_matcher, #help_requested?, inherited, #instance, load_subcommand, requires_current_account_token, requires_current_account_token?, requires_current_grid, requires_current_grid?, requires_current_master, requires_current_master?, requires_current_master_token, requires_current_master_token?, #run, #run_callbacks, #verify_current_account_token, #verify_current_grid, #verify_current_master, #verify_current_master_token
Instance Method Details
#execute ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/kontena/cli/nodes/remove_command.rb', line 9 def execute require_api_url require_current_grid token = require_token nodes.each do |node_name| node = client(token).get("nodes/#{current_grid}/#{node_name}") provider = Array(node["labels"]).find{ |l| l.start_with?('provider=')}.to_s.split('=').last if node['connected'] && provider plugin = provider == 'kontena' ? 'cloud' : provider exit_with_error "Node #{node['name']} is still connected. You should terminate the node instead: kontena #{plugin} node terminate #{node['name']}" elsif node['connected'] exit_with_error "Node #{node['name']} is still connected. You must terminate the node before removing it" else warning "Removing a node from the grid does not terminate the host machine from any cloud provider, so your cloud provider may continue to bill you for the machine until you terminate it" end confirm_command(node_name) unless forced? spinner "Removing #{pastel.cyan(node_name)} node from #{pastel.cyan(current_grid)} grid " do client(token).delete("nodes/#{node['id']}") end end end |