Sha256: 923806469805db99a542761da300242c04fa58126f5d2c4dc3f4f36eae1c02b0

Contents?: true

Size: 1.02 KB

Versions: 42

Compression:

Stored size: 1.02 KB

Contents

module Kontena::Cli::Stacks::YAML::Opto::Resolvers
  class Certificates < ::Opto::Resolver
    include Kontena::Cli::Common

    def resolve
      return nil unless current_master && current_grid
      message = hint || 'Select SSL certificates'
      certificates = get_certificates
      if certificates.size > 0
        prompt.multi_select(message) do |menu|
          menu.default(*default_indexes(certificates)) if option.default
          certificates.each do |s|
            menu.choice s['subject']
          end
        end
      end
    end

    # @return [Array<Hash>] certificates
    def get_certificates
      client.get("grids/#{current_grid}/certificates")['certificates']
    rescue
      []
    end

    # @param certificates [Array<Hash>]
    # @return [Array<Integer>]
    def default_indexes(certificates)
      indexes = []
      option.default.to_a.each do |subject|
        index = certificates.index { |s| s['subject'] == subject }
        indexes << index.to_i + 1 if index
      end
      indexes
    end
  end
end

Version data entries

42 entries across 42 versions & 2 rubygems

Version Path
krates-1.7.11 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.10 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.9 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.8 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.7 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.6 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.5 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.4 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.3 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.2 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.1 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.7.0 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.9 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.8 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.7 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.6 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.5 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.4 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.3 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb
krates-1.6.2 lib/kontena/cli/stacks/yaml/opto/certificates_resolver.rb