IPLM licensing
This page describes how Perforce IPLM is licensed and how to generate the information to provide to Perforce to generate a license.
PiServer/DB machine information
First you will need to request a license for your IPLM Server machine. Run the mdx_gather.sh script and email the output to Perforce support
> wget https://mdx.jfrog.io/mdx/mdx-generic/scripts/mdx_gather.sh
> chmod +x mdx_gather.sh
> ./mdx_gather.sh
Distro: CentOS release 6.9 (Final)
Collecting root block info..
BLOCK 779127e4-839b-4282-bf58-50de62c5fead
Collecting IPv4 info..
IP 10.8.4.58
Please send this file to Perforce: /tmp/pubapi:1523682278.txt
PiServer/DB host requirements
The following are required for a working Perforce IPLM deployment:
- The sudo package needs to be installed on the database server.
- An /etc/sudoers entry is required for the Unix user running the Neo4j database (on all nodes). The entry should be: "neo4j ALL=(ALL) NOPASSWD: /sbin/blkid"
- NTP/Network Time Protocol: ntp/ntpdate packages should be installed and clients/servers need to be synced to an accurate source. PiServer expects system time to track closely between the PiServer host and client machines
Note that a new license needs to be provided by Perforce if the operating system is re-installed. Replacing a disk thats is part of a raid array does not require a new license. Plan your upgrades and let us know ahead of time!
IT Security details:
- The blkid program added to /etc/sudoers executes at each restart of the database.
- This performs a read-only operation on the filesystem to extract information needed to guarantee the proper operations of the licensing server.
- This call is idempotent.
Loading your license
The license file received from Perforce should be copied to the Perforce IPLM server and loaded with the 'pi license load' command (be sure to log in first):
> pi login admin --pw admin Successfully logged in as 'admin'. > pi license load ./license.mdx Successfully loaded license file.
Checking license usage
Current license usage can be viewed with the 'pi license usage' command:
> pi license usage
License files:
...
Features usage:
Users of PI-L1:
Total number of licenses - 525
Licenses in use - 483
admin - 2018-01-30 13:49:26 -0800 PST
agarmin - 2018-01-27 11:12:23 -0800 PST
...
License usage can be output in JSON format with the --format json option:
> pi license usage --format json
{
"features": {
"PI-L1": {
"assignees": [
{
"name": "admin",
"timestamp": 1597161059228
}
],
"total": 5
}
},
"license_file": {
"8fd8a03a-4570-43e2-9db9-d34c0c7738d7": {
"blocks": [
"*" ],
"expiration_date": 1609459200000,
"ips": [
"*" ]
}
}
}
...
License usage can be output in JSON format via our RESTful Public API
GET /public/v1/licensing/licenses
{
"metadata": {
"status_code": 200,
"timestamp": 1236353533268,
"duration": 6
},
"data": [
{
"features": "CrwPrwWrw",
"count": 10,
"assignees": [
{
"user": {
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"href": "public/v1/{object_type}/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "user_name" },
"assignment_timestamp": 1456353220568
}
]
}
],
"links": {}
}
...
Licensing and HA
When you are operating an HA cluster, if you are modifying an existing license containing specific block-ids/IP addresses and are adding more nodes, block-ids and IP addresses; you need to restart the Neo4j processes on the slave nodes one by one after having uploaded the license to the master. This will make sure that the slave nodes do pick-up and validate the new parameters.
Note that licensing information is stored in the Perforce IPLM database, restoring the db on another machine (production -> development server for instance) will require a new license for the new machine.