github.com/jfrog/jfrog-cli-go@v1.22.1-0.20200318093948-4826ef344ffd/missioncontrol/commands/licenserelease.go (about) 1 package commands 2 3 import ( 4 "encoding/json" 5 "errors" 6 "github.com/jfrog/jfrog-cli-go/missioncontrol/utils" 7 "github.com/jfrog/jfrog-cli-go/utils/config" 8 "github.com/jfrog/jfrog-client-go/httpclient" 9 "github.com/jfrog/jfrog-client-go/utils/errorutils" 10 "github.com/jfrog/jfrog-client-go/utils/log" 11 "net/http" 12 ) 13 14 func LicenseRelease(bucketId, jpdId string, mcDetails *config.MissionControlDetails) error { 15 postContent := LicenseReleaseRequestContent{ 16 Name: jpdId} 17 requestContent, err := json.Marshal(postContent) 18 if err != nil { 19 return errorutils.CheckError(errors.New("Failed to marshal json: " + err.Error())) 20 } 21 missionControlUrl := mcDetails.Url + "api/v1/buckets/" + bucketId + "/release" 22 httpClientDetails := utils.GetMissionControlHttpClientDetails(mcDetails) 23 client, err := httpclient.ClientBuilder().Build() 24 if err != nil { 25 return err 26 } 27 resp, body, err := client.SendPost(missionControlUrl, requestContent, httpClientDetails) 28 if err != nil { 29 return err 30 } 31 if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusNoContent { 32 return errorutils.CheckError(errors.New(resp.Status + ". " + utils.ReadMissionControlHttpMessage(body))) 33 } 34 log.Debug("Mission Control response: " + resp.Status) 35 return nil 36 } 37 38 type LicenseReleaseRequestContent struct { 39 Name string `json:"name,omitempty"` 40 }