github.com/jfrog/jfrog-cli-core/v2@v2.51.0/missioncontrol/commands/licensedeploy.go (about) 1 package commands 2 3 import ( 4 "encoding/json" 5 "errors" 6 "net/http" 7 8 "github.com/jfrog/jfrog-cli-core/v2/missioncontrol/utils" 9 "github.com/jfrog/jfrog-cli-core/v2/utils/config" 10 "github.com/jfrog/jfrog-client-go/http/httpclient" 11 clientutils "github.com/jfrog/jfrog-client-go/utils" 12 "github.com/jfrog/jfrog-client-go/utils/errorutils" 13 "github.com/jfrog/jfrog-client-go/utils/log" 14 ) 15 16 func LicenseDeploy(bucketId, jpdId string, flags *LicenseDeployFlags) error { 17 postContent := LicenseDeployRequestContent{ 18 JpdId: jpdId, 19 LicenseCount: flags.LicenseCount, 20 } 21 requestContent, err := json.Marshal(postContent) 22 if err != nil { 23 return errorutils.CheckErrorf("Failed to marshal json: " + err.Error()) 24 } 25 missionControlUrl := flags.ServerDetails.MissionControlUrl + "api/v1/buckets/" + bucketId + "/deploy" 26 httpClientDetails := utils.GetMissionControlHttpClientDetails(flags.ServerDetails) 27 client, err := httpclient.ClientBuilder().SetRetries(3).Build() 28 if err != nil { 29 return err 30 } 31 resp, body, err := client.SendPost(missionControlUrl, requestContent, httpClientDetails, "") 32 if err != nil { 33 return err 34 } 35 if err = errorutils.CheckResponseStatus(resp, http.StatusOK); err != nil { 36 return errors.New(resp.Status + ". " + utils.ReadMissionControlHttpMessage(body)) 37 } 38 log.Debug("Mission Control response: " + resp.Status) 39 log.Output(clientutils.IndentJson(body)) 40 return nil 41 } 42 43 type LicenseDeployRequestContent struct { 44 JpdId string `json:"jpd_id,omitempty"` 45 LicenseCount int `json:"license_count,omitempty"` 46 } 47 48 type LicenseDeployFlags struct { 49 ServerDetails *config.ServerDetails 50 LicenseCount int 51 }