Bug 20096 - univention-thin-client-ucr ersetzen
univention-thin-client-ucr ersetzen
Status: CLOSED FIXED
Product: Z_UCS Thin Client Services (superseded)
Classification: Unclassified
Component: General
UCS TCS 3.0
Other Linux
: P5 normal (vote)
: UCS TCS 3.1
Assigned To: Felix Botner
Moritz Muehlenhoff
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-09-23 09:12 CEST by Felix Botner
Modified: 2010-11-10 19:44 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 Felix Botner univentionstaff 2010-09-23 09:12:42 CEST
univention-thin-client-ucr ist i.M. ein Skripte, dass die Datei /var/lib/univention-client-root/etc/univention/univention-thin-client-ucr mit UCR Statements befüllt.

-> univention-thin-client-ucr set aa=bb
-> univention-thin-client-ucr set bb=aa
-> cat /var/lib/univention-client-root/etc/univention/univention-thin-client-ucr
ucr set aa="bb"
ucr set bb="aa"

Dann wird diese Datei beim Boot des TC über ein Init-Skript ausgeführt damit die Variablen für den TC zur Verfügung stehen. 

Dieses Verfahren ist unschön, da bemi Boot dann möglicherweise viele UCR Statements ausgeführt werden müssen, was die Bootzeit erhöht.

Besser wäre es eine eigene base.conf über UCR zu befüllen und diese Datei beim Boot des TC's an die original base.conf anzuhängen.

BASECONF=/var/lib/univention-client-root/etc/univention/base.ucr.conf ucr set ...
Comment 1 Felix Botner univentionstaff 2010-09-23 10:54:27 CEST
Fixed in Scope im Paket univention-thin-client-basesystem
Comment 2 Ingo Steuwer univentionstaff 2010-09-23 15:19:29 CEST
Man kann damit im Moment nur Variablen setzten auf die vorher ein "unset" gemacht wurde, Ändern geht nicht:

# univention-thin-client-ucr unset thinclient/rollout/ldap/binduid
Unsetting thinclient/rollout/ldap/binduid
# univention-thin-client-ucr set thinclient/rollout/ldap/binduid=importer
Create thinclient/rollout/ldap/binduid
# univention-thin-client-ucr set thinclient/rollout/ldap/binduid=Administrator
Setting thinclient/rollout/ldap/binduid
Traceback (most recent call last):
  File "/usr/sbin/univention-config-registry", line 40, in ?
    ub.main(sys.argv[1:])
  File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 1444, in main
    handlers[ action ][ 0 ]( args, cmd_opts )
  File "/usr/lib/python2.4/site-packages/univention/config_registry.py", line 881, in handler_set
    print 'Warning: %s is overridden by scope "%s"' % (key, SCOPE[k[0]])
TypeError: list indices must be integers
Comment 3 Felix Botner univentionstaff 2010-10-04 09:14:04 CEST
Die Anpassungen an etc/init.d/thin-client-base und das Tool univention-thin-client-ucr (u-t-c-basesystem) müssen übernommen werden.

Außerdem sollte univention-thin-client-ucr nochmal überarbeitet werden, i.M. könne gesetzte Variablen nicht (ohne vorheriges Löschen) wieder gesetzt werden können.
Comment 4 Felix Botner univentionstaff 2010-10-05 15:51:18 CEST
univention-config-registry wurde von 2.4-0 in den Scope geforkt, um die Änderung aus Bug#20260 bereits für UCS TCS mit 2.4-0 zu bekommen (nicht erst mit 2.4-1). Die Versionsnummer von univention-config-registry in UCS TCS 3.1 ist größer als in UCS 2.4-0 aber kleine als UCS 2.4-1, damit das Update auf 2.4-1 das geforkte Paket wieder überschreibt.

In univention-thin-client-basesystem wurde das Tool univention-thin-client-ucr hinzugefügt. Dieses verwendet ucr aber mit der über UNIVENTION_BASECONF  angepassten base.conf /var/lib/univention-client-root/etc/univention/base-thin-client.conf. Alle Änderungen gehen also dorthin. Das Tool wird auf dem Server, der die TC Umgebung per NFS anbietet, verwendet um UCR Variablen für TC's zu definieren.

Über etc/init.d/thin-client-base (tc Umgebung) wird diese Datei dann beim Booten der TC's an die normale base.conf angehangen. Danach sollte es die Variable auf dem TC geben. 

ACHTUNG! Es wird kein commit auf die über univention-thin-client-ucr gesetzten Variablen gemacht. 

univention-config-registry und univention-thin-client-basesystem im Scope uts für 2.4 gebaut.

Changelog angepasst
Comment 5 Moritz Muehlenhoff univentionstaff 2010-11-01 16:56:34 CET
Funktioniert:

Auf dem Bootserver wurde die Variable gesetzt:
univention-thin-client-ucr set hans=wurst

Der Eintrag findet sich in /var/lib/univention-client-root/etc/univention/base-thin-client.conf wieder.

Auf dem per PXE gebooteten Thin Client findet sich der Wert ebenfalls wieder und kann verändert und gelöscht werden:

root@TC4:~# ucr get hans
wurst
root@TC4:~# ucr set hans=maulwurf
Setting hans
root@TC4:~# ucr get hans
maulwurf
root@TC4:~# ucr unset hans
Unsetting hans
root@TC4:~# ucr get hans

Eine über die UCR-Richtlinie gesetzte Variable hat ausserdem Priorität. Ich habe über eine Richtlinie für den TC hans=glueck gesetzt:

root@TC4:~# ucr get hans
glueck
Comment 6 Stefan Gohmann univentionstaff 2010-11-10 19:44:10 CET
UCS TCS 3.1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS TCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".