Sha256: 3767130af93ccd48ee746a724e780d328f84cd8ea798176c522681f920357ecb

Contents?: true

Size: 1.26 KB

Versions: 44

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

# tau docker container clean
module DockerContainerClean
  # Backend method for docker container clean.
  def docker_container_clean
    log.debug 'Removing all docker containers'

    return false unless docker_check_daemon

    return false if _docker_container_clean_harakiri?

    mutagen_socket_terminate "--label-selector='#{@takellabel}'"
    networks = _docker_container_clean_kill_existing_containers
    _docker_container_lib_remove_networks networks
  end

  private

  # Check if we are running tau clean inside a takelage container.
  def _docker_container_clean_harakiri?
    hostname = ENV['HOSTNAME'] || ''
    return false unless hostname.start_with? "#{@docker_repo}_"

    log.error "Please run \"tau clean\" outside of #{@docker_repo} containers"
    log.info "Run \"tau prune\" to remove orphaned #{@docker_repo} containers"
    true
  end

  # Kill all docker containers and return list of networks.
  def _docker_container_clean_kill_existing_containers
    networks = []
    _docker_container_lib_get_containers.each do |container|
      name = _docker_container_lib_get_container_name_by_id container
      _docker_container_lib_stop_container container
      networks << name unless networks.include? name
    end
    networks
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
takeltau-0.43.16 lib/takeltau/docker/container/clean.rb
takeltau-0.43.15 lib/takeltau/docker/container/clean.rb
takeltau-0.43.14 lib/takeltau/docker/container/clean.rb
takeltau-0.43.10 lib/takeltau/docker/container/clean.rb
takeltau-0.43.6 lib/takeltau/docker/container/clean.rb
takeltau-0.43.4 lib/takeltau/docker/container/clean.rb
takeltau-0.43.2 lib/takeltau/docker/container/clean.rb
takeltau-0.43.1 lib/takeltau/docker/container/clean.rb
takeltau-0.42.7 lib/takeltau/docker/container/clean.rb
takeltau-0.42.5 lib/takeltau/docker/container/clean.rb
takeltau-0.42.4 lib/takeltau/docker/container/clean.rb
takeltau-0.42.3 lib/takeltau/docker/container/clean.rb
takeltau-0.42.0 lib/takeltau/docker/container/clean.rb
takeltau-0.41.10 lib/takeltau/docker/container/clean.rb
takeltau-0.41.9 lib/takeltau/docker/container/clean.rb
takeltau-0.41.0 lib/takeltau/docker/container/clean.rb
takeltau-0.40.11 lib/takeltau/docker/container/clean.rb
takeltau-0.40.9 lib/takeltau/docker/container/clean.rb
takeltau-0.40.7 lib/takeltau/docker/container/clean.rb
takeltau-0.40.6 lib/takeltau/docker/container/clean.rb