Page tree

Installs a product license. Refer to Replacing License for details.

Endpoint

https://<Director_IP_address>:4443/c/router

Request Example

curl
 curl --request POST \
    --url https://<Director_IP_address>:4443/c/router \
    --cookie @cookies.txt \
    --header "content-type: multipart/form-data" \
    --form licenseFile=@ent.lic \
    --form action=LicensingManagement \
    --form method=installLicense \
    --form tid=1 \
    --form type=rpc \
    --form data=[true]

Request Fields

Field
Type
Value(s)
Description
licenseFile
string

 

Location of the license file to be uploaded
action

LicensingManagement

The action that is invoked
methodstring

installLicense

The method that is invoked
dataarray

[true]


typestring

rpc

Type of communication protocol
tidinteger

1

Transaction ID. Used to identify the request by both the client and the server

Note

You can install your license with a PowerShell script. Expand the source below for an example.

PowerShell
# Get the cookies from the login call
$Cookie = New-Object System.Net.Cookie;
$Cookie.Name = "JSESSIONID-1518008951"; # Example, replace the string
$Cookie.Value = "1B02CE0DD33B4BFB926EFD44516523AB"; # Example, replace the string
$Cookie.Domain = "localhost";

$WebSession = New-Object Microsoft.PowerShell.Commands.WebRequestSession;
$WebSession.Cookies.Add($Cookie);

$LF = "`r`n";
$boundary = [System.Guid]::NewGuid().ToString()
$fileBytes = [System.IO.File]::ReadAllBytes('e:\trial.bin'); # License file, replace the path
$fileEnc = [System.Text.Encoding]::GetEncoding('iso-8859-1').GetString($fileBytes);

$tid = 1; # Use an auto-increment instead of fixed number

# Build body for the form-data manually since PS does not support multipart/form-data out of the box
$bodyLines = (
	"--$boundary",
    "Content-Disposition: form-data; name=`"action`"",
	'',
    'LicensingManagement',

	"--$boundary",
    "Content-Disposition: form-data; name=`"method`"",
	'',
    'installLicense',

	"--$boundary",
    "Content-Disposition: form-data; name=`"type`"",
	'',
    'rpc',

	"--$boundary",
    "Content-Disposition: form-data; name=`"tid`"",
	'',
    $tid,

	"--$boundary",
    "Content-Disposition: form-data; name=`"data`"",
	'',
    '[false]', # true=async, false=sync (wait for install)

	"--$boundary",
    "Content-Disposition: form-data; name=`"licenseFile`"; filename=`"trial.bin`"",
	"Content-Type: application/octet-stream",
	'',
    $fileEnc,

    "--$boundary--"
) -join $LF


# Allow self-signed certificate
add-type @"
    using System.Net;
    using System.Security.Cryptography.X509Certificates;
    public class TrustAllCertsPolicy : ICertificatePolicy {
        public bool CheckValidationResult(
            ServicePoint srvPoint, X509Certificate certificate,
            WebRequest request, int certificateProblem) {
            return true;
        }
    }
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

# Use TLS1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

$uri = 'https://localhost:4443/c/router';
Invoke-RestMethod -Verbose -Uri $uri -Method Post -ContentType "multipart/form-data; boundary=$boundary" -Body $bodyLines -WebSession $webSession;

Response Sample

 {
    "action": "LicensingManagement",
    "method": "installLicense",
    "tid": "1",
    "type": "rpc",
    "message": null,
    "where": null,
    "cause": null,
    "data": null
}

Response Fields

Field
Value
Description
messagestringMessage if the request failed
wherestringReference to the method where the problem occurred
causestringCause of failure
datastring
  • No labels