Bug 28186 - Lizenzprüfung überarbeiten
Lizenzprüfung überarbeiten
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: License
UCS 3.0
Other Linux
: P5 enhancement (vote)
: UCS 3.1
Assigned To: Stefan Gohmann
Felix Botner
: interim-2
Depends on:
Blocks: 28723
  Show dependency treegraph
 
Reported: 2012-08-13 06:14 CEST by Stefan Gohmann
Modified: 2012-12-12 21:10 CET (History)
2 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Gohmann univentionstaff 2012-08-13 06:14:02 CEST
> Wir müssten die technische Lizenzprüfung bald mal "anfassen". Die
> technische und kaufm. Lizenzprüfung ist mittlerweile ziemlich weit
> auseinander gegangen.
Comment 1 Stefan Gohmann univentionstaff 2012-09-24 12:25:43 CEST
Ist soweit umgesetzt. Die folgenden Felder wurden in der neuen Version hinzugefügt:

- univentionLicenseProduct
  Gibt das Produkt an, derzeit Univention Corporate Server

- univentionLicenseCustomerID
  Gibt eine UUID für die Lizenz an

- univentionLicenseServers
  Maximale Anzahl an Server

- univentionLicenseSupport
  Anzahl der Server mit Standard Support

- univentionLicensePremiumSupport
  Anzahl der Server mit Premium Support

- univentionLicenseManagedClients
  Maximale Anzahl der Managed Clients (Windows, Ubuntu, Linux, UCC, ...)

- univentionLicenseCorporateClients
  Maximale Anzahl der Corporate Clients

- univentionLicenseUsers
  Maximale Anzahl der Benutzer

- univentionLicenseVirtualDesktopUsers
  Maximale Anzahl der DVS Benutzer

- univentionLicenseVirtualDesktopClients
  Maximale Anzahl der DVS Clients

- univentionLicenseVersion
  Version der Lizenz, diese Erweiterung ist 2

Alle Werte werden unabhängig von den anderen Werten gezählt. Wenn jemand 50 UCC Systeme einsetzt, dann muss er mindestens auch 50 Managed Clients von der Lizenz her freigeschaltet haben.

Es gilt immer, dass unlimited unbegrenzt ist, ansonsten wird die Zahl ausgewertet.

Für das Erstellen der neuen Lizenzen kann make_licese_v2.sh verwendet werden. Bspw.:
  make_license_v2.sh -u 10 -s 3 -m 2 -c 2 -v 0 -V 0 -s 1 -p 1 -U generate -f x.ldif -D cn=admin,$(ucr get ldap/base) -w $(</etc/ldap.secret) -t $(ucr get ldap/base) -k _MASTER-KEY2 test1 dc=deadlock13,dc=local >x.ldif


Offene Punkte:

- Ausführliche Tests, sowohl mit der alten, als auch mit der neuen Lizenz

- Ersetzen der FFPU durch die neue Lizenz

- Integration in die interne Struktur, so dass direkt die neuen Lizenzen generiert werden

- Changelog
Comment 2 Stefan Gohmann univentionstaff 2012-09-24 13:40:57 CEST
Die Anpassung in UMC bzgl. der Lizenzübersicht fehlt auch noch.
Comment 3 Stefan Gohmann univentionstaff 2012-10-09 16:49:45 CEST
Die Server werden in der Lizenz angezeigt, sollten diese überschritten werden, so wird es nicht gezählt.

(In reply to comment #2)
> Die Anpassung in UMC bzgl. der Lizenzübersicht fehlt auch noch.

Sind angepasst.

(In reply to comment #1)
> Offene Punkte:
> 
> - Ausführliche Tests, sowohl mit der alten, als auch mit der neuen Lizenz

Es gibt ein erstes kleines Testskript, welches prüft, ob die Lizenzen richtigen gezählt werden. DVS-* und UCC fehlen allerdings noch.

 ucs-test/tests/00_base/45license_v2

> - Ersetzen der FFPU durch die neue Lizenz
>
Ist angepasst.

> - Integration in die interne Struktur, so dass direkt die neuen Lizenzen
> generiert werden

Fehlt noch
 
> - Changelog

Fehlt ebenfalls noch.
Comment 4 Stefan Gohmann univentionstaff 2012-10-09 21:51:48 CEST
Hier eine Übersicht zur Umsetzung:

https://hutten.knut.univention.de/mediawiki/index.php/UCS_Lizenzen

Die DVS Benutzer wurden in der aktuellen UCS DVS noch nicht markiert, deshalb werden diese aktuell nicht gefunden. Das ist jetzt nach Bug #28723 ausgelagert.

Bzgl. des internen Servers gibt es jetzt einen weiteren Bug: Bug #28724.
Comment 5 Alexander Kläser univentionstaff 2012-10-11 12:49:14 CEST
Ich habe die Scrollbars und Zentrierung des Dialogs noch angepasst. Paket baut.


 univention-management-console-module-udm (3.0.25-1) unstable; urgency=low
 .
   * fixed centering and scrollbars of license dialog; Bug #28186
Comment 6 Felix Botner univentionstaff 2012-10-17 11:13:38 CEST
Zwei Sachen die mir jetzt aufgefallen sind:

* Ich eine FFPU Lizenz kann aber 11 Benutzer anlegen und bekomme in der UMC keine
  Hinweise, dass die Lizenz überschritten wurde (univention-license-check ->
  Users:    11 of         5... FAILED, UMC geht aber).

* auf meine Laptop mir 1440x900 sieht der Lizenz Dialog in der UMC sehr ungünstig
  aus. Er füllt das komplette Browser Fenster (horiz.). Erst wenn man auf den 
  Schließen Button ganz unten klickt, kommen die Scrollbars zum Vorschein etc..

Ich mache mit der QA erstmal nicht weiter.
Comment 7 Alexander Kläser univentionstaff 2012-10-17 11:20:54 CEST
(In reply to comment #6)
> Zwei Sachen die mir jetzt aufgefallen sind:
> ...
> * auf meine Laptop mir 1440x900 sieht der Lizenz Dialog in der UMC sehr
> ungünstig
>   aus. Er füllt das komplette Browser Fenster (horiz.). Erst wenn man auf den 
>   Schließen Button ganz unten klickt, kommen die Scrollbars zum Vorschein etc..

→ Das wird über Bug 28790 bearbeitet.
Comment 8 Stefan Gohmann univentionstaff 2012-10-17 14:52:56 CEST
(In reply to comment #6)
> Zwei Sachen die mir jetzt aufgefallen sind:
> 
> * Ich eine FFPU Lizenz kann aber 11 Benutzer anlegen und bekomme in der UMC
> keine
>   Hinweise, dass die Lizenz überschritten wurde (univention-license-check ->
>   Users:    11 of         5... FAILED, UMC geht aber).
> 

Das wurde angepasst.
Comment 9 Felix Botner univentionstaff 2012-10-18 13:53:00 CEST
FAILED:

make_license_v2.sh

 -p    comma separated list of procuts: Univention Corporate Server,...
 wenn man aber mehrere angibt, gibt es
 additional info: univentionLicenseType: value #1 provided more than once

univention-license-check/UMC

 Traceback wenn man händisch das Lizenz-File ändert (univentionLicenseServers)
 oder das Ablaufdatum abgelaufen ist

Traceback (most recent call last):
  File "/usr/share/univention-directory-manager-tools/univention-cli-server", line 261, in doit
    output = univention.admincli.license_check.doit(arglist)
  File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py", line 216, in doit
    out = main(argv[1:])
  File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py", line 212, in main
    return check_license(lo, dn, options.has_key('list-dns'), expired)
  File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py", line 179, in check_license
    check_type()
  File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py", line 136, in check_type
    for type in types ]
KeyError: 'univentionLicenseAccounts'

(UMC raise univention.admin.uexceptions.licenseInvalid)

UMC Übersicht

* man sieht nicht auf den ersten Blick, ob eine Lizenz gültig ist oder nicht
* Die Zählung bei unbegrenzten Objekten in der UMC ist falsch

  -> UMC
   Benutzerkonten	unbegrenzt (genutzt: 0)
   Managed Clients	unbegrenzt (genutzt: 0)
   Corporate Clients	1 (genutzt: 9)
  -> univention-license-check
   Users:                      14 of unlimited... OK
   Managed Clients:            19 of unlimited... OK
   Corporate Clients:           9 of         1... FAILED




OK

Rest Sieht soweit gut aus. 

Die Werte für 

univentionLicenseServers
univentionLicenseUsers
univentionLicenseManagedClients
univentionLicenseCorporateClients
univentionLicenseVirtualDesktopUsers
univentionLicenseVirtualDesktopClients

werden korrekt gezählt und bei Überschreitung angemerkt (außer Servers). Bei allen kann man auch unlimited angeben.

make_license_v2.sh funktiniert (evaluation, expiration, customer ID, customername, maximum number*, OEM)

Die neue FFPU Lizent ist korrekt.

Neue Lizenzen (make_license_v2.sh) klappen,.

Die alte FFPU geht noch, ebenso eine alte Lizenz mit remote-licenseinstall

Changelog Eintrag vorhanden.
Comment 10 Stefan Gohmann univentionstaff 2012-10-18 21:05:23 CEST
(In reply to comment #9)
> FAILED:
> 
> make_license_v2.sh
> 
>  -p    comma separated list of procuts: Univention Corporate Server,...
>  wenn man aber mehrere angibt, gibt es
>  additional info: univentionLicenseType: value #1 provided more than once

Den Fehler habe ich nicht gesehen, allerdings war das Parsing noch falsch, wenn Leerzeichen verwendet wurden.

> univention-license-check/UMC
> 
>  Traceback wenn man händisch das Lizenz-File ändert (univentionLicenseServers)
>  oder das Ablaufdatum abgelaufen ist
> 
> Traceback (most recent call last):
>   File "/usr/share/univention-directory-manager-tools/univention-cli-server",
> line 261, in doit
>     output = univention.admincli.license_check.doit(arglist)
>   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> line 216, in doit
>     out = main(argv[1:])
>   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> line 212, in main
>     return check_license(lo, dn, options.has_key('list-dns'), expired)
>   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> line 179, in check_license
>     check_type()
>   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> line 136, in check_type
>     for type in types ]
> KeyError: 'univentionLicenseAccounts'

Fixed
 
> (UMC raise univention.admin.uexceptions.licenseInvalid)

Fixed
 
> UMC Übersicht
> 
> * man sieht nicht auf den ersten Blick, ob eine Lizenz gültig ist oder nicht

Dazu habe ich einen neuen Bug erstellt: Bug #28833

> * Die Zählung bei unbegrenzten Objekten in der UMC ist falsch
> 
>   -> UMC
>    Benutzerkonten    unbegrenzt (genutzt: 0)
>    Managed Clients    unbegrenzt (genutzt: 0)
>    Corporate Clients    1 (genutzt: 9)
>   -> univention-license-check
>    Users:                      14 of unlimited... OK
>    Managed Clients:            19 of unlimited... OK
>    Corporate Clients:           9 of         1... FAILED

Bei unlimited wird in der Übersicht in gezählt, das passiert nur im CLI. Der Text in UMC wurde angepasst, so dass genutzt bei unlimited nicht angezeigt wird.
Comment 11 Felix Botner univentionstaff 2012-10-19 10:40:26 CEST
(In reply to comment #10)
> (In reply to comment #9)
> > FAILED:
> > 
> > make_license_v2.sh
> > 
> >  -p    comma separated list of procuts: Univention Corporate Server,...
> >  wenn man aber mehrere angibt, gibt es
> >  additional info: univentionLicenseType: value #1 provided more than once
> 
> Den Fehler habe ich nicht gesehen, allerdings war das Parsing noch falsch, wenn
> Leerzeichen verwendet wurden.

OK

> 
> > univention-license-check/UMC
> > 
> >  Traceback wenn man händisch das Lizenz-File ändert (univentionLicenseServers)
> >  oder das Ablaufdatum abgelaufen ist
> > 
> > Traceback (most recent call last):
> >   File "/usr/share/univention-directory-manager-tools/univention-cli-server",
> > line 261, in doit
> >     output = univention.admincli.license_check.doit(arglist)
> >   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> > line 216, in doit
> >     out = main(argv[1:])
> >   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> > line 212, in main
> >     return check_license(lo, dn, options.has_key('list-dns'), expired)
> >   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> > line 179, in check_license
> >     check_type()
> >   File "/usr/lib/pymodules/python2.6/univention/admincli/license_check.py",
> > line 136, in check_type
> >     for type in types ]
> > KeyError: 'univentionLicenseAccounts'
> 
> Fixed
> 
> > (UMC raise univention.admin.uexceptions.licenseInvalid)
> 
> Fixed

FAILED

Bei Änderung der Lizenzdatei klappt es , jedoch nicht wenn das Datum abgelaufen ist.

UMC -> Fehler beim Klick auf das User Modul


Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py", line 204, in execute
    func( request )
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 282, in _response
    result = _multi_response(self, request)
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 384, in _response
    for res in function(self, iterator, *nones):
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py", line 266, in _fake_func
    yield function(self, *args)
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/__init__.py", line 597, in containers
    module = self._get_module( objectType, flavor )
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/__init__.py", line 95, in _get_module
    return UDM_Module( module_name )
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py", line 208, in __init__
    self.load( module )
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py", line 218, in load
    self.module = _module_cache.get( module )
  File "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py", line 129, in wrapper_func
    _licenseCheck = univention.admin.license.init_select(lo, 'admin')
  File "/usr/lib/pymodules/python2.6/univention/admin/license.py", line 251, in init_select
    self.select( module, lo )
  File "/usr/lib/pymodules/python2.6/univention/admin/license.py", line 168, in select
    self.__raiseException()
  File "/usr/lib/pymodules/python2.6/univention/admin/license.py", line 382, in __raiseException
    raise univention.admin.uexceptions.licenseExpired
licenseExpired

> 
> > UMC Übersicht
> > 
> > * man sieht nicht auf den ersten Blick, ob eine Lizenz gültig ist oder nicht
> 
> Dazu habe ich einen neuen Bug erstellt: Bug #28833

OK

> > * Die Zählung bei unbegrenzten Objekten in der UMC ist falsch
> > 
> >   -> UMC
> >    Benutzerkonten    unbegrenzt (genutzt: 0)
> >    Managed Clients    unbegrenzt (genutzt: 0)
> >    Corporate Clients    1 (genutzt: 9)
> >   -> univention-license-check
> >    Users:                      14 of unlimited... OK
> >    Managed Clients:            19 of unlimited... OK
> >    Corporate Clients:           9 of         1... FAILED
> 
> Bei unlimited wird in der Übersicht in gezählt, das passiert nur im CLI. Der
> Text in UMC wurde angepasst, so dass genutzt bei unlimited nicht angezeigt
> wird.

OK
Comment 12 Stefan Gohmann univentionstaff 2012-10-19 11:16:52 CEST
(In reply to comment #11)
> Bei Änderung der Lizenzdatei klappt es , jedoch nicht wenn das Datum abgelaufen
> ist.
> 
> UMC -> Fehler beim Klick auf das User Modul
> 
> 
> Traceback (most recent call last):
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/__init__.py",
> line 204, in execute
>     func( request )
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py",
> line 282, in _response
>     result = _multi_response(self, request)
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py",
> line 384, in _response
>     for res in function(self, iterator, *nones):
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/decorators.py",
> line 266, in _fake_func
>     yield function(self, *args)
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/__init__.py",
> line 597, in containers
>     module = self._get_module( objectType, flavor )
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/__init__.py",
> line 95, in _get_module
>     return UDM_Module( module_name )
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py",
> line 208, in __init__
>     self.load( module )
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py",
> line 218, in load
>     self.module = _module_cache.get( module )
>   File
> "/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py",
> line 129, in wrapper_func
>     _licenseCheck = univention.admin.license.init_select(lo, 'admin')
>   File "/usr/lib/pymodules/python2.6/univention/admin/license.py", line 251, in
> init_select
>     self.select( module, lo )
>   File "/usr/lib/pymodules/python2.6/univention/admin/license.py", line 168, in
> select
>     self.__raiseException()
>   File "/usr/lib/pymodules/python2.6/univention/admin/license.py", line 382, in
> __raiseException
>     raise univention.admin.uexceptions.licenseExpired
> licenseExpired
> 

Ist angepasst.
Comment 13 Felix Botner univentionstaff 2012-10-19 11:29:42 CEST
OK
Comment 14 Stefan Gohmann univentionstaff 2012-12-12 21:10:07 CET
UCS 3.1-0 has been released: 
 http://forum.univention.de/viewtopic.php?f=54&t=2125

If this error occurs again, please use "Clone This Bug".