github.com/jfrog/jfrog-cli-go@v1.22.1-0.20200318093948-4826ef344ffd/missioncontrol/commands/licenserelease.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  	"github.com/jfrog/jfrog-client-go/utils/errorutils"
    10  	"github.com/jfrog/jfrog-client-go/utils/log"
    11  	"net/http"
    12  )
    13  
    14  func LicenseRelease(bucketId, jpdId string, mcDetails *config.MissionControlDetails) error {
    15  	postContent := LicenseReleaseRequestContent{
    16  		Name: jpdId}
    17  	requestContent, err := json.Marshal(postContent)
    18  	if err != nil {
    19  		return errorutils.CheckError(errors.New("Failed to marshal json: " + err.Error()))
    20  	}
    21  	missionControlUrl := mcDetails.Url + "api/v1/buckets/" + bucketId + "/release"
    22  	httpClientDetails := utils.GetMissionControlHttpClientDetails(mcDetails)
    23  	client, err := httpclient.ClientBuilder().Build()
    24  	if err != nil {
    25  		return err
    26  	}
    27  	resp, body, err := client.SendPost(missionControlUrl, requestContent, httpClientDetails)
    28  	if err != nil {
    29  		return err
    30  	}
    31  	if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusNoContent {
    32  		return errorutils.CheckError(errors.New(resp.Status + ". " + utils.ReadMissionControlHttpMessage(body)))
    33  	}
    34  	log.Debug("Mission Control response: " + resp.Status)
    35  	return nil
    36  }
    37  
    38  type LicenseReleaseRequestContent struct {
    39  	Name string `json:"name,omitempty"`
    40  }