cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
ertugrul
Level 4

Customer Portal, FNE Cloud license server, process to see available licenses.

Jump to solution

Having difficulty finding a way to see remaining available licenses.  

I can find out (in a long way) by going to:

Devices > Select the device

View > View Served Devices

Click on each Served Device > find out "Count"

accumulate the "Counts" and then check against "Qty mapped" for the Server .

 

I am assuming there is an easier way to do this. But I am new to Flexera and need help

 

Also how do you release a license that is checked out but forgotten to be released (by a Customer Portal admin)

0 Kudos
6 Solutions

Hi @ertugrul ,

You seem close, yet might be missing steps 1 and 2 (detailed below).

Steps:

1. Add a User with Portal Admin User Role permissions to the entitled account with a CLS. 

2. Set a Password for CLS by Portal Admin User Role in Customer Portal

3) /authorize REST API

4) /features REST API

++++++++++++++++++++++++++++++++++

More detailed steps:

1. For the entitled account, please add a User with the "Portal Admin User Role" enabled.

2. Now with this User account above, log into the Customer Portal, locate your CLS device and from the "Action" menu, pull down and "Set Password".

From here, you can use the REST  APIs.

3. Authorize - https://flexXXXX.compliance.flexnetoperations.com/api/1.0/instances/XXXXXXXXXXXX/authorize using a body:

{
"user":"admin",
"password":"PasswordFromStep2Above"
}

where XXXXXXXXXXXX is your unique CLS ID

4. Features - https://flexxxxx.compliance.flexnetoperations.com/api/1.0/instances/XXXXXXXXXXXX/features

View solution in original post

Hi @ertugrul ,

Apologies for the delayed response due to travel and holiday and travel and did I say travel? 😉

cURL to delete clients looks feasible based upon the documentation. There is one example  (not your use case though) in attachments.

The command to delete (spitballing) 

curl -X DELETE --url licenseServer_baseURL/clients/{id}

View solution in original post

0 Kudos
jberthold
Revenera Moderator Revenera Moderator
Revenera Moderator

Hello @ertugrul ,

The password you set for the Cloud License Server in the Customer Portal is for the user "admin".  Please use "admin" instead of userx@gmail.com to authorize.

Thanks,

View solution in original post

jberthold
Revenera Moderator Revenera Moderator
Revenera Moderator

Hi @ertugrul ,

Did some more digging into using curl to authorize.  This format worked:

curl -k -X POST -H "Content-type:application/json" -d "{\"user\":\"admin\",\"password\":\"adminpassword\"}" https://yourinstance.compliance.flexnetoperations.com/api/1.0/instances/yourCLSID/authorize

You will get back something similar to:
{
  "expires" : "2019-09-28T12:24:43.258Z",
  "token" : "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI6IkNVTDY4TUhaWEFVRCIsImlhdCI6MTU2OTU4NzA4MywiZXhwIjoxNTY5NjczNDgzLCJyb2xlcyI6IlJPTEVfQURNSU4sUk9MRV9EUk9QQ0xJRU5ULFJPTEVfUkVBRCxST0xFX1JFU0VSVkFUSU9OUyIsInhzcmZUb2tlbiI6ImEyNGY3Zjg0LWU3YmEtNDBmZC05ZThiLTQ0YWNlMTY0ZTcxOCJ9.AB1SaFitfnPUwbsKDG8uNXBUGSUtkzcPsyTwNrODDe1BvX3IaKn7gPWIobHCXp_ZBtiqRPek5YuPGA04ERJrNx"
}
 
You will then need to pass in this token for authentication on subsequent calls.  For example if you wish to view the details of the features on the server you would use the following:
 
curl -k -X GET -H "Content-type:application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI6IkNVTDY4TUhaWEFVRCIsImlhdCI6MTU2OTU4NzA4MywiZXhwIjoxNTY5NjczNDgzLCJyb2xlcyI6IlJPTEVfQURNSU4sUk9MRV9EUk9QQ0xJRU5ULFJPTEVfUkVBRCxST0xFX1JFU0VSVkFUSU9OUyIsInhzcmZUb2tlbiI6ImEyNGY3Zjg0LWU3YmEtNDBmZC05ZThiLTQ0YWNlMTY0ZTcxOCJ9.AB1SaFitfnPUwbsKDG8uNXBUGSUtkzcPsyTwNrODDe1BvX3IaKn7gPWIobHCXp_ZBtiqRPek5YuPGA04ERJrNx" https://yourinstance.compliance.flexnetoperations.com/api/1.0/instances/yourCLSID/authorize
 
License Server REST API details can be found in the FlexNet Embedded 2019 R1 SP1 License Server Producer Guide which can be downloaded from the FlexNet Embedded Documentation section in the Flexera Product and License Center.
 
Best regards,

View solution in original post

jberthold
Revenera Moderator Revenera Moderator
Revenera Moderator

Hi @ertugrul ,

Glad to hear you were able to successfully view the features.  You definitely need the referenced License Server Producer Guide to get access to the REST API documentation as it has the information you are requesting.

If you look at your response from /features you will see that each licensed feature has an associated id.   You can then use that id to see all devices/clients which currently have a license for that feature.  To do this send the request to /features/{featureid}/clients.  Here's an example request & response for devices which have a license for a feature with id 179837:

curl -k -X GET -H "Content-type:application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI6IkNVTDY4TUhaWEFVRCIsImlhdCI6MTU2OTU4NzA4MywiZXhwIjoxNTY5NjczNDgzLCJyb2xlcyI6IlJPTEVfQURNSU4sUk9MRV9EUk9QQ0xJRU5ULFJPTEVfUkVBRCxST0xFX1JFU0VSVkFUSU9OUyIsInhzcmZUb2tlbiI6ImEyNGY3Zjg0LWU3YmEtNDBmZC05ZThiLTQ0YWNlMTY0ZTcxOCJ9.AB1SaFitfnPUwbsKDG8uNXBUGSUtkzcPsyTwNrODDe1BvX3IaKn7gPWIobHCXp_ZBtiqRPek5YuPGA04ERJrNx" https://flexNNNN.compliance.flexnetoperations.com/api/1.0/instances/yourCLSID/features/179837/clients
[ {
"id" : 967863608,
"usageKind" : "CONCURRENT_USAGE",
"client" : {
"id" : 441852507,
"hostid" : {
"hostidValue" : "MyDevice1",
"hostidType" : "STRING"
},
"updateTime" : "2019-09-27T17:31:21.918Z",
"servedStatus" : "NORMAL",
"hostType" : "FLX_CLIENT",
"machineType" : "PHYSICAL",
"trusted" : false,
"correlationId" : "d6e10cea-bacc-4f8d-8ab9-533e6c34d595",
"collectedHostIds" : "STRING MyDevice1",
"requestOperation" : "REQUEST",
"requestHostid" : {
"hostidValue" : "MyDevice1",
"hostidType" : "STRING"
},
"serverHostid" : {
"hostidValue" : "CUL68MHZXAUD",
"hostidType" : "STRING"
},
"expiry" : "2019-10-04T17:31:21.918Z"
},
"useCount" : 1,
"reservedCount" : 0
} ]

The response contains id(s) for all clients with this license feature.  To return a license for a given client, you will want to send a DELETE to the /clients/{deviceid} endpoint.   Here's an example:

curl -k -X DELETE -H "Content-type:application/json" -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImlzcyI6IkNVTDY4TUhaWEFVRCIsImlhdCI6MTU2OTU4NzA4MywiZXhwIjoxNTY5NjczNDgzLCJyb2xlcyI6IlJPTEVfQURNSU4sUk9MRV9EUk9QQ0xJRU5ULFJPTEVfUkVBRCxST0xFX1JFU0VSVkFUSU9OUyIsInhzcmZUb2tlbiI6ImEyNGY3Zjg0LWU3YmEtNDBmZC05ZThiLTQ0YWNlMTY0ZTcxOCJ9.AB1SaFitfnPUwbsKDG8uNXBUGSUtkzcPsyTwNrODDe1BvX3IaKn7gPWIobHCXp_ZBtiqRPek5YuPGA04ERJrNx" https://flexNNNN.compliance.flexnetoperations.com/api/1.0/instances/yourCLSID/clients/441852507

The license for this client is now returned to the server license pool.

Note you have the ability to set a policy on the server to determine how frequently devices can be deleted to prevent "dishonest" users from trying to overuse licenses above their entitled quantity.

Best regards,

View solution in original post

0 Kudos
jberthold
Revenera Moderator Revenera Moderator
Revenera Moderator

Hi @ertugrul,

In the License Server Producer Guide there is a section on "Set Policies".  You use a PUT with the /configuration endpoint to set a particular policy parameter.  

So, let's say you want to enforce a 1day period between client deletions.  Using curl this would look like:

curl -k -X PUT -H "Content-type:application/json" -d "{\"licensing.dropClientEnforcedDelay\":\"1d\"}" -H "Authorization: Bearer producertoken" https://flexNNNN.compliance.flexnetoperations.com/api/1.0/instances/yourCLSID/configuration

Notice you cannot use the token obtain by authenticating with admin credentials as you don't want your end customers to be able to modify this policy.  It must be sent with the token obtained from authenticating with producer credentials.  As I referenced in my last post in this thread, you will need to submit a support ticket to get the Producer password set for your instance.  Once you submit the ticket please post the Case# here and I can try to get it expedited. 

Best regards,

View solution in original post

0 Kudos
25 Replies
jberthold
Revenera Moderator Revenera Moderator
Revenera Moderator

Hi @ertugrul,

In the License Server Producer Guide there is a section on "Set Policies".  You use a PUT with the /configuration endpoint to set a particular policy parameter.  

So, let's say you want to enforce a 1day period between client deletions.  Using curl this would look like:

curl -k -X PUT -H "Content-type:application/json" -d "{\"licensing.dropClientEnforcedDelay\":\"1d\"}" -H "Authorization: Bearer producertoken" https://flexNNNN.compliance.flexnetoperations.com/api/1.0/instances/yourCLSID/configuration

Notice you cannot use the token obtain by authenticating with admin credentials as you don't want your end customers to be able to modify this policy.  It must be sent with the token obtained from authenticating with producer credentials.  As I referenced in my last post in this thread, you will need to submit a support ticket to get the Producer password set for your instance.  Once you submit the ticket please post the Case# here and I can try to get it expedited. 

Best regards,

0 Kudos

Ticket no is 01916125. They created it but said they need to get DBA to enable it for old devices created before. 

Also I was trying to get information about License Overdraft.  I was told that is not for Embedded (FNE) Licenses but of FNP licenses. 

Is there a way to define FNE license so that a customer license can go over for a short period.  ( And enable a policy so that when they do that we get an alert so Sales could contact them. ) I remember such a concept while watching the training videos. Again this is all new to me so thanks for bearing with my trivial questions 🙂 

 

0 Kudos
jberthold
Revenera Moderator Revenera Moderator
Revenera Moderator

Hi @ertugrul,

License overdraft is certainly applicable to served licenses using FNE.  In the license model you have the option to specify unlimited, a fixed quantity, a fixed percentage of entitled quantity or specify an overdraft percentage at time of entitlement.   There is no mechanism to specify the overage for a limited period of time nor are there alerts if the customer enters into an overdraft state.  Using the REST APIs you can query the server to see if it serving licenses in the overdraft state and then take appropriate action.

Thanks,

0 Kudos

Robot Happy 

Finally got the REST API documentation! yes!

and I got the list I wanted! 🙂 

.../features   > to get the {featureid} 

.../features/{featureid}/clients    >  active usage  

----<

......features/656312/clients   > gives me my active license used

[ {

  "id" : 465949816,

  "usageKind" : "CONCURRENT_USAGE",

  "client" : {

    "id" : 151451699,

    "hostid" : {

      "hostidValue" : "ertugrul",

      "hostidType" : "USER"

    },

    "updateTime" : "2019-09-27T17:38:29.838Z",

    "servedStatus" : "NORMAL",

    "machineType" : "PHYSICAL",

    "trusted" : false,

    "correlationId" : "b3f6a54b-ccf9-49ed-a327-0181b71d9aab",

    "collectedHostIds" : "USER ertugrul",

    "requestOperation" : "REQUEST",

    "requestHostid" : {

      "hostidValue" : "ertugrul",

      "hostidType" : "USER"

    },

    "serverHostid" : {

      "hostidValue" : "blahblah",

      "hostidType" : "STRING"

    },

    "expiry" : "2019-10-01T06:59:59.999Z"

  },

  "useCount" : 1,

  "reservedCount" : 0

} ]

---- 

...

curl -k DELETE   {blah}   ../[balhblah]/features/656312/clients/465949816     >> gives error 

{

  "key" : "glsErr.restNoSuchApi",

  "message" : "No such REST API and METHOD combination supported: uri=REDACTED with DELETE for user (unknown)",

  "arguments" : [ "uri=REDACTED", "DELETE", "(unknown)" ]

}

 

--

curl -k DELETE  -H { blah} .../features/656312/clients/151451699

{

  "key" : "glsErr.restNoSuchApi",

  "message" : "No such REST API and METHOD combination supported: uri=REDACTED with DELETE for user (unknown)",

  "arguments" : [ "uri=REDACTED", "DELETE", "(unknown)" ]

}

---

So how do I revoke this client license connection? 

and is there a way to setup an automated e-mail when a license revoked this way.

 

 

0 Kudos
jberthold
Revenera Moderator Revenera Moderator
Revenera Moderator

Hi @ertugrul,

Send a DELETE to /clients/{deviceid} to reclaim the license as opposed to /features/{featureid}/clients/{deviceid}. 

There is no mechanism to send an automated email following the DELETE.  As referenced in my previous post you can set a policy to limit the frequency of deletion.

Best regards,

0 Kudos