github.com/jfrog/jfrog-cli-go@v1.22.1-0.20200318093948-4826ef344ffd/missioncontrol/commands/licensedeploy.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 clientutils "github.com/jfrog/jfrog-client-go/utils" 10 "github.com/jfrog/jfrog-client-go/utils/errorutils" 11 "github.com/jfrog/jfrog-client-go/utils/log" 12 "net/http" 13 ) 14 15 func LicenseDeploy(bucketId, jpdId string, flags *LicenseDeployFlags) error { 16 postContent := LicenseDeployRequestContent{ 17 JpdId: jpdId, 18 LicenseCount: flags.LicenseCount, 19 } 20 requestContent, err := json.Marshal(postContent) 21 if err != nil { 22 return errorutils.CheckError(errors.New("Failed to marshal json: " + err.Error())) 23 } 24 missionControlUrl := flags.MissionControlDetails.Url + "api/v1/buckets/" + bucketId + "/deploy" 25 httpClientDetails := utils.GetMissionControlHttpClientDetails(flags.MissionControlDetails) 26 client, err := httpclient.ClientBuilder().Build() 27 if err != nil { 28 return err 29 } 30 resp, body, err := client.SendPost(missionControlUrl, requestContent, httpClientDetails) 31 if err != nil { 32 return err 33 } 34 if resp.StatusCode != http.StatusOK { 35 return errorutils.CheckError(errors.New(resp.Status + ". " + utils.ReadMissionControlHttpMessage(body))) 36 } 37 log.Debug("Mission Control response: " + resp.Status) 38 log.Output(clientutils.IndentJson(body)) 39 return nil 40 } 41 42 const ( 43 DefaultLicenseCount = 1 44 ) 45 46 type LicenseDeployRequestContent struct { 47 JpdId string `json:"jpd_id,omitempty"` 48 LicenseCount int `json:"license_count,omitempty"` 49 } 50 51 type LicenseDeployFlags struct { 52 MissionControlDetails *config.MissionControlDetails 53 LicenseCount int 54 }