Example #1
0
    def _del_img_from_gcr(self, img_name):
        img_tag = docker_name.Tag(img_name)
        creds = docker_creds.DefaultKeychain.Resolve(img_tag)
        transport = transport_pool.Http(httplib2.Http, size=_THREADS)
        with docker_image.FromRegistry(img_tag, creds,
                                       transport) as base_image:
            img_digest = docker_name.Digest(''.join(
                [self._name.split(":")[0], "@",
                 str(base_image.digest())]))

        logging.info('Deleting tag {0}'.format(img_tag))
        docker_session.Delete(img_tag, creds, transport)
        logging.info('Deleting image {0}'.format(img_digest))
        docker_session.Delete(img_digest, creds, transport)
        return
 def _DeleteDockerTag(self, tag, digests, http_obj):
     # calling Delete on an image referenced by tag only deletes the tag
     docker_session.Delete(creds=util.CredentialProvider(),
                           name=tag,
                           transport=http_obj)
     log.DeletedResource('[{tag}] (referencing [{digest}])'.format(
         tag=tag, digest=digests[tag]))
Example #3
0
 def _DeleteDockerTagOrDigest(self, tag_or_digest, http_obj):
     try:
         docker_session.Delete(creds=util.CredentialProvider(),
                               name=tag_or_digest,
                               transport=http_obj)
         log.DeletedResource(tag_or_digest)
     except docker_http.V2DiagnosticException as err:
         raise self._MapDeleteErr(err, tag_or_digest)
Example #4
0
 def _DeleteDigestAndAssociatedTags(self, digest, http_obj):
     # digest must not have any tags in order to be deleted
     util.DeleteTagsFromDigest(digest, http_obj)
     tag_list = util.GetTagNamesForDigest(digest, http_obj)
     for tag in tag_list:
         log.DeletedResource(tag)
     docker_session.Delete(creds=util.CredentialProvider(),
                           name=digest,
                           transport=http_obj)
     log.DeletedResource(digest)
Example #5
0
def rm_tag(image_reference: str):
    transport = _mk_transport_pool()
    image_reference = ou.normalise_image_reference(image_reference)
    image_reference = docker_name.from_string(image_reference)
    creds = _mk_credentials(image_reference=image_reference)

    docker_session.Delete(
        name=image_reference,
        creds=creds,
        transport=transport,
    )
    logger.info(f'untagged {image_reference=} - note: did not purge blobs!')
Example #6
0
  def _DeleteDigestAndAssociatedTags(self, digest, http_obj):
    # Digest must not have any tags in order to be deleted.
    # Errors raised from tag deletion are deliberately uncaught.
    util.DeleteTagsFromDigest(digest, http_obj)
    tag_list = util.GetTagNamesForDigest(digest, http_obj)
    for tag in tag_list:
      log.DeletedResource(tag)

    try:
      docker_session.Delete(
          creds=util.CredentialProvider(), name=digest, transport=http_obj)
      log.DeletedResource(digest)
    except docker_http.V2DiagnosticException as err:
      raise self._MapDeleteErr(err, digest)
Example #7
0
 def _DeleteDockerTagOrDigest(self, tag_or_digest, http_obj):
     docker_session.Delete(creds=util.CredentialProvider(),
                           name=tag_or_digest,
                           transport=http_obj)
     log.DeletedResource(tag_or_digest)