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  }