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  }