class Kontena::Cli::Stacks::YAML::Opto::Resolvers::VaultCertPrompt

Public Instance Methods

default_indexes(secrets) click to toggle source

@param [Array<Hash>] secrets @return [Array<Integer>]

# File lib/kontena/cli/stacks/yaml/opto/vault_cert_prompt_resolver.rb, line 30
def default_indexes(secrets)
  indexes = []
  option.default.to_a.each do |name|
    index = secrets.index { |s| s['name'] == name }
    indexes << index.to_i + 1 if index
  end
  indexes
end
get_secrets() click to toggle source

@return [Array<Hash>] secrets

# File lib/kontena/cli/stacks/yaml/opto/vault_cert_prompt_resolver.rb, line 22
def get_secrets
  client.get("grids/#{current_grid}/secrets")['secrets']
rescue
  []
end
resolve() click to toggle source
# File lib/kontena/cli/stacks/yaml/opto/vault_cert_prompt_resolver.rb, line 5
def resolve
  return nil unless current_master && current_grid
  message = hint || 'Select SSL certs'
  secrets = get_secrets.select{ |s|
    s['name'].match(/(ssl|cert)/i)
  }
  if secrets.size > 0
    prompt.multi_select(message) do |menu|
      menu.default(*default_indexes(secrets)) if option.default
      secrets.each do |s|
        menu.choice s['name']
      end
    end
  end
end