'Unparseable license format' error when applying pool license
Running BIGIQ 4.4 and I have a pool license loaded and have discovered a BIGIP 11.6.0 device, but when attempting to apply a license it errors out with a "Unparseable license format" error. I'm doing this via the REST API, but also attempted it via the UI and got the same error
The stack trace from the restjava log on the BIGIQ device is below. I don't see any sign of activity in the restjava log on the BIGIP, so I'm assuming the request is never making it that far.
For what it's worth, if I query the license pool it shows a status of LICENSED, so the pool itself seems to be OK.
Thanks
restjava logging on BIGIQ...
[I][66755][23 Mar 2016 21:48:25 UTC][8100/cm/autodeploy/jobs JobsWorker][onPatchCompleted] Job 97caa0ce-cee5-40de-99cd-e7c41c484682 started by user admin
[I][66757][23 Mar 2016 21:48:25 UTC][LicenseTask][licenseDeviceFromGenericPool] Installing pool license grant to device '/mgmt/shared/resolver/device-groups/cm-cloud-managed-devices/devices/f37e89b1-b223-4823-be5e-0785947113c8' using 'http://localhost:8100/cm/shared/licensing/pools/479a7259-f100-45aa-bf83-e77e41c7612e/members'
[I][66758][23 Mar 2016 21:48:25 UTC][8100/cm/shared/licensing/pool-activation PoolLicenseActivationWorker][getLicenseDetailsForPool] Pool license activation 6f5e9284-570b-4a1f-a160-d9fe709391bd: Getting pool license details from https://localhost/mgmt/cm/shared/licensing/pools/479a7259-f100-45aa-bf83-e77e41c7612e
[I][66759][23 Mar 2016 21:48:25 UTC][8100/cm/shared/licensing/pool-activation PoolLicenseActivationWorker][getLocalDeviceInfo] Pool license activation 6f5e9284-570b-4a1f-a160-d9fe709391bd: Getting device details from https://localhost/mgmt/shared/resolver/device-groups/cm-cloud-managed-devices/devices/f37e89b1-b223-4823-be5e-0785947113c8
[WARNING][66760][23 Mar 2016 21:48:25 UTC][8100/cm/shared/licensing/pool-activation PoolLicenseActivationWorker][patchFailed] java.lang.IllegalArgumentException: Unparseable license format
at com.f5.rest.workers.em.license.PoolLicenseUtils.makeLicenseBlob(PoolLicenseUtils.java:203)
at com.f5.rest.workers.em.license.PoolLicenseUtils.createDeviceLicense(PoolLicenseUtils.java:143)
at com.f5.rest.workers.em.license.PoolLicenseActivationWorker$5.completed(PoolLicenseActivationWorker.java:259)
at com.f5.rest.workers.em.license.PoolLicenseActivationWorker$5.completed(PoolLicenseActivationWorker.java:248)
at com.f5.rest.common.RestOperation.complete(RestOperation.java:1684)
at com.f5.rest.common.RestRequestSender.complete(RestRequestSender.java:685)
at com.f5.rest.common.RestRequestSender.finish(RestRequestSender.java:599)
at com.f5.rest.common.RestRequestSender.processNext(RestRequestSender.java:584)
at com.f5.rest.common.RestHelper$3.run(RestHelper.java:2213)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
And here's the rest calls I was running...
-bash-4.1$ cat /tmp/1.json
{
"deviceReference":
{
"link":"https://localhost/mgmt/cm/cloud/managed-devices/f37e89b1-b223-4823-be5e-0785947113c8"
}
}
-bash-4.1$ curl -ks -u admin:admin -X POST -d@/tmp/1.json https://XX.XX.XX.XX/mgmt/cm/shared/licensing/pools/479a7259-f100-45aa-bf83-e77e41c7612e/members | python -mjson.tool|more
{
"deviceReference": {
"link": "https://localhost/mgmt/cm/cloud/managed-devices/f37e89b1-b223-4823-be5e-0785947113c8"
},
"generation": 1,
"kind": "cm:shared:licensing:pools:licensepoolmemberstate",
"lastUpdateMicros": 1458822997032383,
"selfLink": "https://localhost/mgmt/cm/shared/licensing/pools/479a7259-f100-45aa-bf83-e77e41c7612e/members/4aad78fc-8a8c-444e-9cbd-2eb48530b440",
"state": "INSTALL",
"uuid": "4aad78fc-8a8c-444e-9cbd-2eb48530b440"
}
-bash-4.1$ curl -ks -u admin:admin https://XX.XX.XX.XX/mgmt/cm/shared/licensing/pools/479a7259-f100-45aa-bf83-e77e41c7612e/members/4aad78fc-8a8c-444e-9cbd-2eb48530b440 | python -mjson.tool
{
"deviceReference": {
"link": "https://localhost/mgmt/cm/cloud/managed-devices/f37e89b1-b223-4823-be5e-0785947113c8"
},
"errorText": "Unparseable license format",
"generation": 2,
"kind": "cm:shared:licensing:pools:licensepoolmemberstate",
"lastUpdateMicros": 1458822997126286,
"selfLink": "https://localhost/mgmt/cm/shared/licensing/pools/479a7259-f100-45aa-bf83-e77e41c7612e/members/4aad78fc-8a8c-444e-9cbd-2eb48530b440",
"state": "FAILED",
"uuid": "4aad78fc-8a8c-444e-9cbd-2eb48530b440"
}
My first suggestion would be to upgrade to version 4.6. There has been a lot of testing/hardening between 4.4 and 4.6. It appears you may have hit Bug 570732.
Here is the workaround suggested in that bug: Here is what the customer needs to do:
-
Navigate to their license's properties
-
Click "Reactivate" Note: since this license has already been put into "manual activation" mode, they must do manual activation again.
-
Click "Generate dossier" They can ignore the dossier if they already have the license text, they just need to re-input it. If, on the other hand, they have misplaced their license text, it may be simplest just to go through the full activation process again with the web portal.
-
Input the license text. Make 110% sure there are no leading or trailing blank lines, or any other stray input.
-
Complete the activation.
Now, they should be able to license their BIG-IP.
-