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=, #clear_current_grid, #cloud_auth?, #cloud_client, #config, #confirm, #confirm_command, #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_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

Instance Method Details

#client ⇒ Object



30
31
32
33
34
# File 'lib/kontena/scripts/completer.rb', line 30

def client
  $VERSION_WARNING_ADDED=true
  token = require_token
  super(token)
end

#client_config ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/kontena/scripts/completer.rb', line 6

def client_config
  require 'json'
  config_file = File.expand_path('~/.kontena_client.json')
  if(File.exist?(config_file))
    JSON.parse(File.read(config_file))
  else
    {}
  end
rescue => ex
  logger.debug ex
  {}
end

#containers ⇒ Object



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

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 => ex
  logger.debug ex
  []
end

#current_grid ⇒ Object



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

def current_grid
  client_config['servers'].find { |s| s['name'] == client_config['current_server']}['grid']
rescue => ex
  logger.debug ex
  nil
end

#current_master_name ⇒ Object



26
27
28
# File 'lib/kontena/scripts/completer.rb', line 26

def current_master_name
  client_config['current_server']
end

#grids ⇒ Object



36
37
38
39
40
41
# File 'lib/kontena/scripts/completer.rb', line 36

def grids
  client.get("grids")['grids'].map{|grid| grid['id']}
rescue => ex
  logger.debug ex
  []
end

#master_names ⇒ Object



109
110
111
112
113
114
# File 'lib/kontena/scripts/completer.rb', line 109

def master_names
  client_config['servers'].map{|s| s['name']}
rescue => ex
  logger.debug ex
  []
end

#nodes ⇒ Object



43
44
45
46
47
# File 'lib/kontena/scripts/completer.rb', line 43

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

#services ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/kontena/scripts/completer.rb', line 60

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 => ex
  logger.debug ex
  []
end

#stacks ⇒ Object



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

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

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



116
117
118
119
120
121
122
123
# File 'lib/kontena/scripts/completer.rb', line 116

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



102
103
104
105
106
107
# File 'lib/kontena/scripts/completer.rb', line 102

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

#yml_services ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
# File 'lib/kontena/scripts/completer.rb', line 90

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