module Dapp::Dimg::Dapp::Command::Stages::Common

Protected Instance Methods

delete_repo_image(registry, repo_image) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 63
def delete_repo_image(registry, repo_image)
  log([repo_image[:dimg], repo_image[:tag]].compact.join(':')) if dry_run? || log_verbose?
  unless dry_run?
    begin
      if self.class.gcr_registry?
        registry.gcr_image_delete(repo_image[:tag], repo_image[:dimg])
      else
        registry.image_delete(repo_image[:tag], repo_image[:dimg])
      end
    rescue ::Dapp::Dimg::Error::Registry => e
      raise unless e.net_status[:data][:message].include?("MANIFEST_UNKNOWN")
      log_warning "WARNING: Ignore dimg `#{repo_image[:dimg]}` tag `#{repo_image[:tag]}`: got not-found-error from docker registry on image-delete request: #{e.net_status[:data][:message]}"
    end
  end
end
lock_repo(repo, *args, &blk) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 95
def lock_repo(repo, *args, &blk)
  lock("repo.#{hashsum repo}", *args, &blk)
end
log_proper_git_commit(&blk) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 91
def log_proper_git_commit(&blk)
  log_step_with_indent(:'proper git commit', &blk)
end
proper_git_commit?() click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 83
def proper_git_commit?
  !!options[:proper_git_commit]
end
proper_repo_cache?() click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 79
def proper_repo_cache?
  !!options[:proper_repo_cache]
end
repo_detailed_dimgs_images(registry) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 9
def repo_detailed_dimgs_images(registry)
  repo_dimgs_images(registry).select do |dimg|
    begin
      image_config = registry.image_config(dimg[:tag], dimg[:dimg])
      dimg[:created_at] = Time.parse(image_config["created"]).to_i
      dimg[:parent] = image_config["container_config"]["Image"]
      dimg[:labels] = image_config["config"]["Labels"]
      dimg[:labels]['dapp'] == name
    rescue ::Dapp::Dimg::Error::Registry => e
      raise unless e.net_status[:data][:message].include?("MANIFEST_UNKNOWN")
      log_warning "WARNING: Ignore dimg `#{dimg[:dimg]}` tag `#{dimg[:tag]}`: got manifest-invalid-error from docker registry: #{e.net_status[:data][:message]}"
      false
    end
  end
end
repo_dimgs_images(registry) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 25
def repo_dimgs_images(registry)
  [].tap do |dimgs_images|
    {}.tap do |dimgs_tags|
      dimgs_tags[nil] = registry.nameless_dimg_tags
      dimgs_names.each do |dimg_name|
        dimgs_tags[dimg_name] = registry.dimg_tags(dimg_name)
      end unless nameless_dimg?
    end.each do |dimg_name, tags|
      dimgs_images.concat(tags_to_repo_images(registry, tags, dimg_name))
    end
  end
end
repo_dimgstages_images(registry) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 38
def repo_dimgstages_images(registry)
  tags_to_repo_images(registry, registry.dimgstages_tags)
end
repo_image_format(registry, tag, dimg_name = nil) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 46
def repo_image_format(registry, tag, dimg_name = nil)
  begin
    id = registry.image_id(tag, dimg_name)

    if id.nil?
      log_warning(desc: { code: 'tag_ignored', data: { tag: tag } })
      return nil
    end

    return { dimg: dimg_name, tag: tag, id: id }
  rescue ::Dapp::Dimg::Error::Registry => e
    raise unless e.net_status[:data][:message].include?("MANIFEST_UNKNOWN")
    log_warning "WARNING: Ignore dimg `#{dimg_name}` tag `#{tag}`: got not-found-error from docker registry on get-image-manifest request: #{e.net_status[:data][:message]}"
    return nil
  end
end
stages_cleanup_option?() click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 87
def stages_cleanup_option?
  proper_git_commit? || proper_cache_version? || proper_repo_cache?
end
tags_to_repo_images(registry, tags, dimg_name = nil) click to toggle source
# File lib/dapp/dimg/dapp/command/stages/common.rb, line 42
def tags_to_repo_images(registry, tags, dimg_name = nil)
  tags.map { |tag| repo_image_format(registry, tag, dimg_name) }.compact
end