github.com/osievert/jfrog-cli-core@v1.2.7/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/missioncontrol/utils" 9 "github.com/jfrog/jfrog-cli-core/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.CheckError(errors.New("Failed to marshal json: " + err.Error())) 24 } 25 missionControlUrl := flags.MissionControlDetails.Url + "api/v1/buckets/" + bucketId + "/deploy" 26 httpClientDetails := utils.GetMissionControlHttpClientDetails(flags.MissionControlDetails) 27 client, err := httpclient.ClientBuilder().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 resp.StatusCode != http.StatusOK { 36 return errorutils.CheckError(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 MissionControlDetails *config.MissionControlDetails 50 LicenseCount int 51 }