Univention Bugzilla – Bug 28131
univention-config-registry-info Dateien ungeeignet für regexp mit [] im UCR-Variablen-Namen
Last modified: 2013-08-22 11:07:05 CEST
Die debian/*.univention-config-registry-info Dateien dienen dazu, die UCR-variablen zu beschreiben. Für jede Variable gibt es einen eigenen Abschnitt, dessen Name ein regulärer Ausdruck ist, um die Beschreibung mit dem Namen der UCR-Variable zu assoziieren. Reguläre Ausdrücke können eckige Klammern enthalten, die aber nicht verwendet werden dürfen, weil diese Zeichen die Metazeichen für das INI-Format sind, das von <http://docs.python.org/library/configparser.html> verarbeitet wird. from ConfigParser import ConfigParser cfg = ConfigParser() cfg.set(r'interfaces/[^/]\+/address', 'foo', '42') with open('example.cfg', 'wb') as configfile: cfg.write(configfile) cfg = ConfigParser() cfg.read('exmaple.cfg') cfg.sections() # ['interfaces/[^/'] Problematisch ist das für die Umsetzung von Bug #26058, weil dort auch die Beschreibungen für die ganzen "interfaces/"-Variablen angepasst werden müssen. Insbesondere passt der reguläre Ausdruck [interfaces/.*/address] auch auf [interfaces/.*/ipv6/.*/address] Ich sehe hier folgende Möglichkeiten: 1. In univention-config die regulären Ausdrücke der Länge nach sortieren und mit den spezielleren Ausdrücken anfangen. 2. Escaping-Regel einführen und in univention-config de-escapen. 3. ConfigParser anpassen, so daß nur die letzte schließende Klammer die Abschnittüberschrift beendet
Der Code in univention_config_info.py unterstützt derzeit nur ".*" als Regular Expression, von daher setzte ich jetzt hier Möglichkeit 1 um und sortiere die Regular Expressions absteigend der Länge nach. svn34614, univention-config-registry_8.0.1-1.389.201208032206
Code: OK root@backup132:~# ucr search interfaces/.*address interfaces/eth0/address: 10.201.13.2 IPv4 address of the network interface interfaces/eth0/ipv6/foo/address: x IPv6 address of the network interface root@backup132:~# Changelog: OK
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".