class Helper
Public Instance Methods
client_config()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 7 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()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 103 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()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 20 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()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 27 def current_master_name client_config['current_server'] end
directories(word)
click to toggle source
# File lib/kontena/scripts/completer.rb, line 128 def directories(word) if word && File.directory?(word) && !word.end_with?('/') ['%s/' % word] else Dir[File.join('.', '%s*' % word)].select { |file| File.directory?(file) }.map { |file| '%s/' % file.sub('./', '') } end end
grids()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 31 def grids client.get("grids")['grids'].map{|grid| grid['id']} rescue => ex logger.debug ex [] end
master_names()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 148 def master_names client_config['servers'].map{|s| s['name']} rescue => ex logger.debug ex [] end
nodes()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 38 def nodes client.get("grids/#{current_grid}/nodes")['nodes'].map{|node| node['name']} rescue [] end
registry_stack_versions(stackname)
click to toggle source
# File lib/kontena/scripts/completer.rb, line 77 def registry_stack_versions(stackname) return [] unless stack_registry_usable? logger.debug stackname.inspect stacks_client.versions(stackname).map { |v| [stackname, v['version']].join(':') } rescue => ex logger.debug ex [] end
registry_stacks(query = '')
click to toggle source
# File lib/kontena/scripts/completer.rb, line 65 def registry_stacks(query = '') return [] unless stack_registry_usable? results = stacks_client.search(query).map { |s| s['stack'] } if results.empty? && !query.empty? # this is here because old stack registry does not return anything for "org/" results = stacks_client.search('').map { |s| s['stack'] }.select { |s| s.start_with?(query) } end results rescue => ex logger.debug ex [] end
services()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 86 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
stack_registry_usable?()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 55 def stack_registry_usable? return false if current_account.nil? || current_account.stacks_url.nil? return false if current_account.stacks_read_authentication && current_account.token.nil? || current_account.token.access_token.nil? true end
stacks()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 44 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
stacks_client()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 61 def stacks_client Kontena::StacksClient.new(current_account.stacks_url, current_account.token, read_requires_token: current_account.stacks_read_authentication) end
subcommand_tree(cmd = nil, base = nil)
click to toggle source
# File lib/kontena/scripts/completer.rb, line 155 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(word)
click to toggle source
# File lib/kontena/scripts/completer.rb, line 136 def yml_files(word) if word && File.directory?(word) && word.end_with?('/') glob = File.join(word, '*.{yml,yaml}') else glob = File.join('.', '%s*.{yml,yaml}' % word) end Dir[glob].map { |file| file.sub('./', '') } + directories(word) rescue => ex logger.debug ex [] end
yml_services()
click to toggle source
# File lib/kontena/scripts/completer.rb, line 116 def yml_services require 'yaml' if File.exist?('kontena.yml') yaml = YAML.safe_load(File.read('kontena.yml'), [], [], true, 'kontena.yml') services = yaml['services'] services.keys end rescue => ex logger.debug ex [] end