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]))
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)
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)
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!')
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)
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)