Class: Central::Cli::Services::LinkCommand

Inherits:
Clamp::Command
  • Object
show all
Includes:
Common, ServicesHelper, Central::Cli::StackOptions
Defined in:
lib/central/cli/services/link_command.rb

Instance Method Summary collapse

Methods included from ServicesHelper

#create_service, #delete_service, #deploy_service, #get_service, #int_to_filesize, #parse_image, #parse_links, #parse_log_opts, #parse_memory, #parse_ports, #parse_relative_time, #parse_secrets, #parse_service_id, #restart_service, #scale_service, #show_service, #start_service, #stop_service, #update_service, #wait_for_deploy_to_finish

Methods included from Common

#access_token=, #add_master, #api_url, #api_url=, #clear_current_stack, #client, #current_master, #current_master=, #current_master_index, #current_stack, #current_stack=, #ensure_custom_ssl_ca, #require_api_url, #require_current_stack, #require_token, #reset_client, #save_settings, #settings, #settings_filename

Methods included from Central::Cli::StackOptions

included

Instance Method Details

#executeObject



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/central/cli/services/link_command.rb', line 13

def execute
  require_api_url
  token = require_token

  service = client(token).get("services/#{parse_service_id(name)}")
  existing_targets = service['links'].map { |l| l['stack_service_id'].split('/')[1] }
  abort("Service is already linked to #{target}") if existing_targets.include?(target.to_s)
  links = service['links'].map { |l| { name: l['stack_service_id'].split('/')[1], alias: l['alias'] } }
  links << { name: target.to_s, alias: target.to_s }
  data = { links: links }
  update_service(token, name, data)
end