github.com/jcarley/cli@v0.0.0-20180201210820-966d90434c30/lib/images/delete-tag.go (about)

     1  package images
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  	"net/url"
     7  )
     8  
     9  // DeleteTag deletes a tag for an image.
    10  func (d *SImages) DeleteTag(imageName, tagName string) error {
    11  	headers := d.Settings.HTTPManager.GetHeaders(d.Settings.SessionToken, d.Settings.Version, d.Settings.Pod, d.Settings.UsersID)
    12  	resp, statusCode, err := d.Settings.HTTPManager.Delete(nil, fmt.Sprintf("%s%s/environments/%s/images/%s/tags/%s", d.Settings.PaasHost, d.Settings.PaasHostVersion, d.Settings.EnvironmentID, url.PathEscape(url.PathEscape(imageName)), tagName), headers)
    13  	if err != nil {
    14  		return err
    15  	}
    16  	if statusCode >= 400 {
    17  		converted, convertErr := d.Settings.HTTPManager.ConvertError(resp, statusCode)
    18  		if convertErr != nil {
    19  			return convertErr
    20  		}
    21  		if converted.Code == 98005 {
    22  			return errors.New("Unable to delete tag - it is currently in use as a release by one or more services.")
    23  		}
    24  	}
    25  	return d.Settings.HTTPManager.ConvertResp(resp, statusCode, nil)
    26  }