Generic License Type Format
Introduction
The generic license format is an Open iT text data format designed for data parsing different license managers. It helps the LicenseAnalyzer easily support different license managers.
The generic license format is a flexible key-value base format with a semicolon as the separator. It is designed for easy human reading, with indentation used per level. It can handle various special characters, requiring only the addition of an escape character for each. This format contains all the necessary data for reporting. Some keys must be supplied with the correct values, while others can be left blank or disregarded, giving you control over the information you include in your license report.
Levels and Keys
Vendor License
Refer to the Vendor License Attributes table to learn more information about a license set/group.
Attribute | Description | Format | Size |
---|---|---|---|
license-type | Required. The name of the license type collected. | String (e.g., license-type=flex ) | 50 |
license-file | Provide only if available. The full path to the license file. | FileName (e.g., license-file=C:\Program\Files\alpha\license.dat ) | 500 |
host | Required. A fully qualified domain name. | String (e.g., host=lserver.mycompany.com ) | 100 |
server-start | Provide if available. The time when the server was last restarted. | ISO-8601 (e.g. server-start=2013-02-06T11:09:32.091 ) | - |
Package
Refer to the Package Attributes table to learn more information about feature packages.
Attribute | Description | Format | Size |
---|---|---|---|
id | Required. The shortest possible string/number that uniquely identifies the package. | String (e.g., id=feature_1.0 ) | 50 |
name | Required. The name of the package. | String (e.g., name=feature1 ) | 500 |
version | Provide only if available. The version of the package. | String (e.g., version=1.0 ) | 100 |
issued | Provide if available. The time when the package was issued. | ISO-8601 (e.g. issued=2001-09-30 ) | - |
expires | Provide if available. The time when the package will expire. | ISO-8601 (e.g. expires=2026-03-31 ) | - |
licenses | Required. The total number of licenses available. | Number (e.g., licenses=3 ) | BIGINT |
type | Provide if available. The license type. | String (e.g., type=floating ) | 50 |
vendor | Provide if available. The name of the vendor. | String (e.g., vendor=delta ) | 50 |
components | Required. A comma-separated list of component identifiers identical to the feature ID value of the components. | String (e.g. components=componentfeature1:v1, componentfeature2:v1.2 ) | 500 |
Feature
Refer to the Feature Attributes table to learn more information about a regular license feature.
Attribute | Description | Format | Size |
---|---|---|---|
id | Required. The shortest possible string/number that uniquely identifies the package. | String (e.g., id=feature_1.0 ) | 50 |
name | Required. The name of the package. | String (e.g., name=feature1 ) | 500 |
version | Provide only if available. The version of the package. | String (e.g., version=1.0 ) | 100 |
issued | Provide if available. The time when the package was issued. | ISO-8601 (e.g. issued=2001-09-30 ) | - |
expires | Provide if available. The time when the package will expire. | ISO-8601 (e.g. expires=2026-03-31 ) | - |
licenses | Required. The total number of licenses available. | Number (e.g., licenses=3 ) | BIGINT |
type | Provide if available. The license type. | String (e.g., type=floating ) | 50 |
vendor | Provide if available. The name of the vendor. | String (e.g., vendor=delta ) | 50 |
Usage
This should be indented below a package or a feature. Refer to the Usage Attributes table to learn more information about package and feature usage.
Attribute | Description | Format | Size |
---|---|---|---|
id | Required. The shortest possible string/number that uniquely identifies the license use. | String (e.g., id=1539 ) | 50 |
user | Required. The name of the user. | String (e.g., user=jdoe ) | 100 |
host | Required. The name of the host where the license is used. | String (e.g., host=aa.abc.de.meme ) | 100 |
licenses | Required. The number of licenses used. | Number (e.g., licenses=3 ) | BIGINT |
exe | Provide if available. The executable's name in the license user's host. | FileName (e.g., myapp.exe ) | 500 |
start | Required. The time when the license use started. | ISO-8601 (e.g. issued=2001-09-30 ) | - |
Examples
Each line lists a group of key-value pairs describing the element represented by the line. The line starts with a keyword identifying the type of element represented, followed by a colon (:), and then the key-value pairs separated by a semi-colon (;). Keys can contain lowercase letters (a-z), hyphens (for word separation if necessary), numerals (0-9), periods (.), and commas (,). Values can contain anything except new lines, but if you include a semi-colon, you must place the value within double quotes (e.g.,data="alpha;beta";count=4;
). Elements that include double quotation marks must escape these: data=alpha-\"beta\"
.
For regular license data, the following elements should be included (if possible):
product: license-type=alpha; host=beta; port=1700; license-file=C:\Program\Files\alpha\license.dat;
feature: id=feature_1.0; name=feature1; version=1.0; licenses=20; vendor=delta;
usage: id=1539; user=guess; host=myhost; display=193.217.12.14; licenses=1; version=1.0; start=2012-02-18T15:21:00.000;
product: license-type=alpha; host=beta;
feature: id=Enabling[20]; name=Enabling[20]; issued=2001-09-30; expires=2026-03-31; licenses=1;
feature: id=Network[21]; name=Network[21]; issued=2001-09-30; expires=2026-03-31; licenses=134;
usage: id=Network[21]_shimoura@tkserv5; user=shimoura; host=tkserv5; licenses=4; start=2012-10-15T21:10:00.000;
usage: id= Network[21]_itoh@aa.abc.de.meme; user=itoh; host=aa.abc.de.meme; display=i; licenses=3; start=2012-10-15T10:58:00.000;
LicPoll Configuration
Before proceeding with the configuration, we need to create a utility application that will convert your raw data into our generic license format. The format should be the same when written to a file when std-out
. This std-out
will be the LicPoll’s input data.
Configuring the Generic License Converter in LicPoll
- Go to the Components directory, which is by default in
C:\Program Files\OpeniT\Core\Configuration\Components
, then open thelicpoll.xml
configuration file. - Search for
genericlicense-sample
. - Configure LicenseAnalyzer to use the utility application by copying the utility to
${OpeniT.directories.bin}genlicutil.exe
, which is by default inC:\Program Files\OpeniT\Core\bin
or modify thelicpoll.xml
configuration file to point to the path of the utility application. - If the utility application requires command line arguments, set it under
genericlicense-sample.status-command.arguments
. - Activate the collection of data by setting
genericlicense-sample.active
totrue
. - Save the changes, then restart the
OpenitClient
service.