github.com/jfrog/jfrog-client-go@v1.40.2/distribution/services/deletelocal.go (about) 1 package services 2 3 import ( 4 "net/http" 5 6 artifactoryUtils "github.com/jfrog/jfrog-client-go/artifactory/services/utils" 7 "github.com/jfrog/jfrog-client-go/auth" 8 "github.com/jfrog/jfrog-client-go/http/jfroghttpclient" 9 "github.com/jfrog/jfrog-client-go/utils/errorutils" 10 "github.com/jfrog/jfrog-client-go/utils/log" 11 ) 12 13 // Delete distributable release bundle from the distribution service. 14 type DeleteLocalReleaseBundleService struct { 15 DeleteReleaseBundleService 16 } 17 18 func NewDeleteLocalDistributionService(client *jfroghttpclient.JfrogHttpClient) *DeleteLocalReleaseBundleService { 19 return &DeleteLocalReleaseBundleService{DeleteReleaseBundleService: DeleteReleaseBundleService{client: client}} 20 } 21 22 func (dlr *DeleteLocalReleaseBundleService) GetDistDetails() auth.ServiceDetails { 23 return dlr.DistDetails 24 } 25 26 func (dlr *DeleteLocalReleaseBundleService) DeleteDistribution(deleteDistributionParams DeleteDistributionParams) error { 27 dlr.Sync = deleteDistributionParams.Sync 28 dlr.MaxWaitMinutes = deleteDistributionParams.MaxWaitMinutes 29 return dlr.execDeleteLocalDistribution(deleteDistributionParams.Name, deleteDistributionParams.Version) 30 } 31 32 func (dlr *DeleteLocalReleaseBundleService) execDeleteLocalDistribution(name, version string) error { 33 if dlr.IsDryRun() { 34 log.Info("[Dry run] Deleting release bundle:", name, version) 35 return nil 36 } 37 log.Info("Deleting release bundle:", name, version) 38 httpClientsDetails := dlr.DistDetails.CreateHttpClientDetails() 39 url := dlr.DistDetails.GetUrl() + "api/v1/release_bundle/" + name + "/" + version 40 artifactoryUtils.SetContentType("application/json", &httpClientsDetails.Headers) 41 resp, body, err := dlr.client.SendDelete(url, nil, &httpClientsDetails) 42 if err != nil { 43 return err 44 } 45 if err = errorutils.CheckResponseStatusWithBody(resp, body, http.StatusNoContent); err != nil { 46 return err 47 } 48 if dlr.Sync { 49 err := dlr.waitForDeletion(name, version) 50 if err != nil { 51 return err 52 } 53 } 54 55 log.Debug("Distribution response:", resp.Status) 56 return errorutils.CheckError(err) 57 }