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