Class: Kontena::Cli::Containers::ExecCommand

Inherits:
Clamp::Command
  • Object
show all
Includes:
Kontena::Cli::Common, ContainersHelper, GridOptions
Defined in:
lib/kontena/cli/containers/exec_command.rb

Instance Method Summary collapse

Methods included from ContainersHelper

#build_command

Methods included from GridOptions

included

Methods included from Kontena::Cli::Common

#access_token=, #add_master, #api_url, #api_url=, #clear_current_grid, #client, #confirm, #confirm_command, #current_grid, #current_grid=, #current_master, #current_master=, #current_master_index, #ensure_custom_ssl_ca, #error, #prompt, #require_api_url, #require_current_grid, #require_token, #reset_client, #save_settings, #settings, #settings_filename

Instance Method Details

#executeObject



13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/kontena/cli/containers/exec_command.rb', line 13

def execute
  require_api_url
  token = require_token

  cmd = build_command(cmd_list)
  payload = {cmd: ["sh", "-c", cmd]}

  service_name = container_id.match(/(.+)-(\d+)/)[1] rescue nil
  result = client(token).post("containers/#{current_grid}/#{service_name}/#{container_id}/exec", payload)

  puts result[0].join(" ") unless result[0].size == 0
  STDERR.puts result[1].join(" ") unless result[1].size == 0
  exit result[2]
end