Bug 8418 - Difficult to find Support Agreement ID as a system administrator
Summary: Difficult to find Support Agreement ID as a system administrator
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: License system (show other bugs)
Version: trunk
Hardware: PC Unknown
: P2 Normal
Target Milestone: 4.19.0
Assignee: Frida Flodin
URL:
Keywords: linma_tester, relnotes
Depends on:
Blocks:
 
Reported: 2024-08-30 16:10 CEST by William Sjöblom
Modified: 2025-04-28 11:20 CEST (History)
3 users (show)

See Also:
Acceptance Criteria:
MUST ==== * There should be a tlctl-command that shows all agreement IDs that ThinLinc server has currently loaded. * The license page in tlwebadm should show all agreement IDs that ThinLinc server has currently loaded. SHOULD ====== * It should be clear when there are no agreements. * It should be possible to see the expiry date of each agreement. * It should be possible to see the number of licenses for each agreement. * It should be clear which licenses are in use. * The list should be sorted so that the newest agreement is printed first. COULD ===== * The tlctl-command should be scripting friendly. * It should be possible in tlctl to choose the sorting key.


Attachments

Description William Sjöblom cendio 2024-08-30 16:10:31 CEST
In larger organizations, it is common that acquiring software licenses and the day to day IT operations are handled by different people. Often, a system administrator contacting us for support, is not aware the Support Agreement ID needed for support entitlement.

Providing system administrators with a quick and easy way to find their Support Agreement ID would save both them and us a lot of time and annoyance.
Comment 1 William Sjöblom cendio 2024-08-30 16:15:21 CEST
It would be neat if, for example, `tl-show-licenses' could show the Support Agreement ID(s) used in the cluster.

The *.license files in the license zip archives contain the SA ID in the `order_id' property.
Comment 2 Samuel Mannehed cendio 2024-08-30 18:52:16 CEST
It would be nice of us to show the ID in Web Admin as well!
Comment 10 Frida Flodin cendio 2025-04-22 14:12:55 CEST
This should now be done and tested. Tested by copying all test licenses in ctc/vsm/tests/licenses/ into /opt/thinlinc/etc/licenses/ on my test server. This was my result, it should be correct:

> $ sudo tlctl license id
> 770
> 680
> 725
> SUB
> 829
> 610
> 640
> 587

I haven't checked all license files that this is correct. Most of the new licenses only have "SUB" as order_id. At least it does not crash, and I did a spot-check, and it seems correct.

Also checked the license page in tlwebadm. It looks good, it's the same list in a sentence with context. 



> MUST
> ====
> * There should be a tlctl-command that shows all agreement IDs that ThinLinc server has currently loaded.
tlctl license id
> * The license page in tlwebadm should show all agreement IDs that ThinLinc server has currently loaded.
It does!

> SHOULD
> ======
> * It should be clear when there are no agreements.
Yes tlctl will print "No agreement IDs found" and tlwebadm will say "Licenses are not connected to any agreement."
> * It should be possible to see the expiry date of each agreement.
Did not fix, save for later.
> * It should be possible to see the number of licenses for each agreement.
Did not fix, save for later.
> * It should be clear which licenses are in use.
Did not fix, save for later.
> * The list should be sorted so that the newest agreement is printed first.
Did not fix, save for later.


> COULD
> =====
> * The tlctl-command should be scripting friendly.
It should be. It prints one ID per row and nothing else. If there is no IDs it prints to stderr. 
> * It should be possible in tlctl to choose the sorting key.
Did not fix, save for later.
Comment 11 Samuel Mannehed cendio 2025-04-23 16:49:09 CEST
> SHOULD:
> * It should be possible to see the expiry date of each agreement.
Bug 8579.
Comment 13 Linn cendio 2025-04-24 10:49:14 CEST
Tested server build 4011 on SLES 15 and things worked well both through tlctl and Web Admin.

> MUST
> ====
> ✅ There should be a tlctl-command that shows all agreement IDs that ThinLinc server has currently loaded.
> 
> ✅ The license page in tlwebadm should show all agreement IDs that ThinLinc server has currently loaded.
Yes. When one agreement has multiple license files, the agreement ID is only included once. When the license files belong to different agreements, all agreement IDs are listed.

In Web Admin, there also is a clear error indication when the license data could not be loaded:
> Error retrieving license info

> SHOULD
> ======
> ✅ It should be clear when there are no agreements.
Yes, both tlctl and Web Admin have clear messages that shows up when no licenses are used.

> ❌ It should be possible to see the expiry date of each agreement.
> 
> ❌ It should be possible to see the number of licenses for each agreement.
> 
> ❌ It should be clear which licenses are in use.
> 
> ❌ The list should be sorted so that the newest agreement is printed first.
Not done as part of this bug (note that the expiry date was separated into bug 8579). This means that outdated licenses are also included in the output.

> COULD
> =====
> ✅ The tlctl-command should be scripting friendly.
Yes, the output is just the agreement IDs, one on each line. This should serve as a good base for scripting.

> ❌ It should be possible in tlctl to choose the sorting key.
Not done as part of this bug.

---

Also read through the release notes and documentation, and made a small tweak on the man page to avoid repetition. Commits look good too.
Comment 14 Samuel Mannehed cendio 2025-04-25 16:02:08 CEST
After discussions with the product owner, we decided that the word "id" is too loosely coupled with the official name, which is "subscription agreement". The command should be renamed to something more closely mapped to that, for example:

tlctl license subscription
tlctl license sub
tlctl license agreement

And the man-page and documentation should talk about "subscription agreements".
Comment 15 Samuel Mannehed cendio 2025-04-25 16:11:21 CEST
In our support, we usually refer to them as "agreement ID", and sometimes "support agreement ID". One issue with naming it "tlctl license subscription" is that licenses right now normally are perpetual and no time-based subscription is tied to a license.

We will use "tlctl license agreement".
Comment 18 Samuel Mannehed cendio 2025-04-28 08:44:34 CEST
It was renamed to "tlctl license agreement". Note that this AC was affected by changes in bug 8579:

> COULD
> =====
> * The tlctl-command should be scripting friendly.
It has become less so now that this command shows more information, in a table form.
Comment 19 Linn cendio 2025-04-28 11:20:33 CEST
Tested server build 4028 on SLES 15. The output has been changed to a table format, see below for an example with two different support agreements:
> Agreement       Version  User limit  Valid
> ==========================================
> SUB12-00000558  4.18              3    Yes
> SUB12-00000736  4.7 [1]           5     No
> 
>  [1]: Can't be used since a newer version was found on another license.
When no agreements are found, the output is the same as before:
> No subscription agreements found
When one agreement has multiple license files, the agreement ID is still only included once.

Also check the man page and the TAG, as well as the commits. Looks good.

> COULD
> =====
> ❌ The tlctl-command should be scripting friendly.
With these changes, this criterion is no longer fulfilled. However, seeing that this was a "COULD" criteria, I believe the value added from bug 8579 outweighs the drawbacks of this command not being script-friendly.

Note You need to log in before you can comment on or make changes to this bug.