Class: Kontena::Cli::Containers::ListCommand
- Inherits:
-
Kontena::Command
- Object
- Clamp::Command
- Kontena::Command
- Kontena::Cli::Containers::ListCommand
- Includes:
- Kontena::Cli::Common, GridOptions, Util
- Defined in:
- lib/kontena/cli/containers/list_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 Kontena::Cli::Common
#access_token=, #add_master, #any_key_to_continue, #any_key_to_continue_with_timeout, #api_url, #api_url=, #api_url_version, #ask, #clear_current_grid, #client, #cloud_auth?, #cloud_client, #config, #confirm, #confirm_command, #current_account, #current_grid, #current_grid=, #current_master, #current_master=, #current_master_index, #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_current_account, #require_current_grid, #require_current_master, #require_token, #reset_client, #reset_cloud_client, #running_silent?, #running_verbose?, #settings, #settings_filename, #spinner, #sprint, #sputs, #use_refresh_token, #vfakespinner, #vputs, #vspinner, #warning, #yes?
Methods included from Util
included, #safe_dig, #time_ago, which
Methods inherited from Kontena::Command
banner, callback_matcher, #help_requested?, inherited, 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
#container_status(container) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/kontena/cli/containers/list_command.rb', line 43 def container_status(container) s = container['state'] if s['paused'] 'paused'.freeze elsif s['restarting'] 'restarting'.freeze elsif s['oom_killed'] 'oom_killed'.freeze elsif s['dead'] 'dead'.freeze elsif s['running'] 'running'.freeze else 'stopped'.freeze end end |
#execute ⇒ Object
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/containers/list_command.rb', line 11 def execute require_api_url token = require_token params = '?' params << 'all=1' if all? result = client(token).get("containers/#{current_grid}#{params}") containers = result['containers'] id_column = longest_string_in_array(containers.map {|c| "#{c['node']['name']}/#{c['name']}"}) image_column = longest_string_in_array(containers.map {|c| c['image'] }) columns = "%-#{id_column + 2}s %-#{image_column + 2}s %-30s %-20s %-10s" puts columns % [ 'CONTAINER ID', 'IMAGE', 'COMMAND', 'CREATED', 'STATUS'] result['containers'].reverse.each do |container| puts columns % [ "#{container['node']['name']}/#{container['name']}", container['image'], "\"#{container['cmd'].to_a.join(' ')[0..26]}\"", "#{time_ago(container['created_at'])} ago", container_status(container) ] end end |
#longest_string_in_array(array) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/kontena/cli/containers/list_command.rb', line 34 def longest_string_in_array(array) longest = 0 array.each do |item| longest = item.length if item.length > longest end longest end |