Class: Helper

Inherits:
Object
  • Object
show all
Includes:
Kontena::Cli::Common
Defined in:
lib/kontena/scripts/completer.rb

Instance Method Summary collapse

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, #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, #stdin_input, #use_refresh_token, #vfakespinner, #vputs, #vspinner, #warning, #yes?

Instance Method Details

#client ⇒ Object



8
9
10
11
# File 'lib/kontena/scripts/completer.rb', line 8

def client
  token = require_token
  super(token)
end

#containers ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
# File 'lib/kontena/scripts/completer.rb', line 51

def containers
  results = []
  client.get("grids/#{current_grid}/services")['services'].each do |service|
    containers = client.get("services/#{service['id']}/containers")['containers']
    results.push(containers.map{|c| c['name'] })
    results.push(containers.map{|c| c['id'] })
  end
  results
rescue
  []
end

#grids ⇒ Object



13
14
15
16
17
# File 'lib/kontena/scripts/completer.rb', line 13

def grids
  client.get("grids")['grids'].map{|grid| grid['id']}
rescue
  []
end

#master_names ⇒ Object



79
80
81
82
83
84
85
86
87
# File 'lib/kontena/scripts/completer.rb', line 79

def master_names
  config_file = File.expand_path('~/.kontena_client.json')
  if(File.exist?(config_file))
    config = JSON.parse(File.read(config_file))
    return config['servers'].map{|s| s['name']}
  end
rescue
  []
end

#nodes ⇒ Object



19
20
21
22
23
# File 'lib/kontena/scripts/completer.rb', line 19

def nodes
  client.get("grids/#{current_grid}/nodes")['nodes'].map{|node| node['name']}
rescue
  []
end

#services ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/kontena/scripts/completer.rb', line 35

def services
  services = client.get("grids/#{current_grid}/services")['services']
  results = []
  results.push services.map{ |s|
    stack = s['stack']['id'].split('/').last
    if stack != 'null'
      "#{stack}/#{s['name']}"
    else
      s['name']
    end
  }
  results
rescue
  []
end

#stacks ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/kontena/scripts/completer.rb', line 25

def stacks
  stacks = client.get("grids/#{current_grid}/stacks")['stacks']
  results = []
  results.push stacks.map{|s| s['name']}
  results.delete('null')
  results
rescue
  []
end

#subcommand_tree(cmd = nil, base = nil) ⇒ Object



89
90
91
92
93
94
95
96
# File 'lib/kontena/scripts/completer.rb', line 89

def subcommand_tree(cmd = nil, base = nil)
  puts "#{cmd} ".strip
  if base.has_subcommands?
    base.recognised_subcommands.each do |sc|
      subcommand_tree("#{cmd} #{sc.names.first}", sc.subcommand_class)
    end
  end
end

#yml_files ⇒ Object



73
74
75
76
77
# File 'lib/kontena/scripts/completer.rb', line 73

def yml_files
  Dir["./*.yml"].map{|file| file.sub('./', '')}
rescue
  []
end

#yml_services ⇒ Object



63
64
65
66
67
68
69
70
71
# File 'lib/kontena/scripts/completer.rb', line 63

def yml_services
  if File.exist?('kontena.yml')
    yaml = YAML.safe_load(File.read('kontena.yml'))
    services = yaml['services']
    services.keys
  end
rescue
  []
end