func RemoveAppImages(appName string) error {
	registry, _ := config.GetString("docker:registry")
	if registry == "" {
		// Nothing to do if no registry is set
		return nil
	}
	r := &dockerRegistry{server: registry}
	image := fmt.Sprintf("tsuru/app-%s", appName)
	tags, err := r.getImageTags(image)
	if err != nil {
		return err
	}
	multi := tsuruErrors.NewMultiError()
	for _, tag := range tags {
		digest, err := r.getDigest(image, tag)
		if err != nil {
			multi.Add(errors.Wrapf(err, "failed to get digest for image %s/%s:%s on registry", r.server, image, tag))
			continue
		}
		err = r.removeImage(image, digest)
		if err != nil {
			multi.Add(errors.Wrapf(err, "failed to remove image %s/%s:%s/%s on registry", r.server, image, tag, digest))
			if errors.Cause(err) == ErrDeleteDisabled {
				break
			}
		}
	}
	return multi.ToError()
}
func RemoveAppImages(appName string) error {
	registry, _ := config.GetString("docker:registry")
	if registry == "" {
		
		return nil
	}
	r := &dockerRegistry{server: registry}
	image := fmt.Sprintf("tsuru/app-%s", appName)
	tags, err := r.getImageTags(image)
	if err != nil {
		return err
	}
	multi := tsuruErrors.NewMultiError()
	for _, tag := range tags {
		digest, err := r.getDigest(image, tag)
		if err != nil {
			multi.Add(errors.Wrapf(err, "failed to get digest for image %s/%s:%s on registry", r.server, image, tag))
			continue
		}
		err = r.removeImage(image, digest)
		if err != nil {
			multi.Add(errors.Wrapf(err, "failed to remove image %s/%s:%s/%s on registry", r.server, image, tag, digest))
			if errors.Cause(err) == ErrDeleteDisabled {
				break
			}
		}
	}
	return multi.ToError()
}
func RemoveAppImages ( appName string ) error { registry , _ := config . GetString ( " " ) if registry == " " { // Nothing to do if no registry is set return nil } r := & dockerRegistry { server : registry } image := fmt . Sprintf ( " " , appName ) tags , err := r . getImageTags ( image ) if err != nil { return err } multi := tsuruErrors . NewMultiError ( ) for _ , tag := range tags { digest , err := r . getDigest ( image , tag ) if err != nil { multi . Add ( errors . Wrapf ( err , " " , r . server , image , tag ) ) continue } err = r . removeImage ( image , digest ) if err != nil { multi . Add ( errors . Wrapf ( err , " " , r . server , image , tag , digest ) ) if errors . Cause ( err ) == ErrDeleteDisabled { break } } } return multi . ToError ( ) }
// RemoveAppImages removes all app images from a remote registry v2 server, returning an error
// in case of failure.
RemoveAppImages removes all app images from a remote registry v2 server returning an error in case of failure .