Sha256: 2a6028d7d381c5b30634df8c503ac94cfb3ea5b6294e45ba02ef977ceb28a951
Contents?: true
Size: 1.23 KB
Versions: 2
Compression:
Stored size: 1.23 KB
Contents
module Kontena::Cli::Stacks module YAML class Opto::Resolvers::ServiceLink < Opto::Resolver include Kontena::Cli::Common def resolve message = hint['prompt'] name_filter = hint['name'] image_filter = hint['image'] raise "prompt missing" unless message services = client.get("grids/#{current_grid}/services")['services'] services = filter_by_image(services, image_filter) if image_filter services = filter_by_name(services, name_filter) if name_filter prompt.select(message) do |menu| menu.choice "<none>", nil unless option.required? services.each do |s| if s.dig('stack', 'name') == 'null' name = s['name'] else name = "#{s.dig('stack', 'name')}/#{s['name']}" end menu.choice name, "#{s.dig('stack', 'name')}/#{s['name']}" end end end def filter_by_image(services, image) services.select { |s| s['image'].include?(image) } end def filter_by_name(services, name) services.select { |s| s['name'].include?(name) } end def stack ENV['STACK'] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
kontena-cli-1.1.0 | lib/kontena/cli/stacks/yaml/opto/service_link_resolver.rb |
kontena-cli-1.1.0.rc2 | lib/kontena/cli/stacks/yaml/opto/service_link_resolver.rb |