module DockerContainerLogin

takelage docker container login

Public Instance Methods

docker_container_login() click to toggle source

Backend method for docker container login.

# File lib/takelage/docker/container/login.rb, line 6
def docker_container_login
  log.debug 'Logging in to docker container'

  return false unless docker_check_daemon

  if _docker_container_lib_check_matrjoschka
    log.error 'You cannot log in to takelage from within takelage'
    return false
  end

  # rubocop:disable Style/IfUnlessModifier
  unless docker_container_check_existing @hostname
    _docker_container_login_create_container @hostname
  end
  # rubocop:enable Style/IfUnlessModifier

  run_and_exit _docker_container_login_enter_container @hostname
end

Private Instance Methods

_docker_container_login_create_container(container) click to toggle source

Create container, network and forward sockets

# File lib/takelage/docker/container/login.rb, line 28
def _docker_container_login_create_container(container)
  return false unless _docker_container_lib_create_net_and_ctr container

  _docker_container_lib_start_sockets
  _docker_container_wait_for_sockets
end
_docker_container_login_enter_container(container) click to toggle source

Prepare enter existing container command.

# File lib/takelage/docker/container/login.rb, line 36
def _docker_container_login_enter_container(container)
  log.debug "Entering container \"#{container}\""

  loginpoint = '/loginpoint.py'
  loginpoint = '/debug/loginpoint.py --debug ' if options[:debug]

  format(
    config.active['cmd_docker_container_enter_container'],
    container: container,
    loginpoint: loginpoint,
    username: @username
  )
end
_docker_container_wait_for_sockets() click to toggle source

Wait for the sockets to come up

# File lib/takelage/docker/container/login.rb, line 51
def _docker_container_wait_for_sockets
  wait_for_sockets = config.active['login_wait_for_sockets'].to_i
  return if wait_for_sockets.zero?

  log.debug "Waiting for #{wait_for_sockets} #{pluralize(wait_for_sockets, 'second', 'seconds')}"
  sleep wait_for_sockets
end