Univention Bugzilla – Bug 25463
Weitere MAC-Adressenformate unterstützen
Last modified: 2012-12-03 11:36:27 CET
Aus Bug #25203: (In reply to comment #6) > Für die Eingabe (UI→Backend)sollte IMHO folgendes akzeptiert werden, damit man > das schnell per Copy&Paste von anderswo einfügen kann: > 1. 001122334455 (ohne alles) > 2. 00:11:22:33:44:55 (Standard unter Linux) > 3. 00-11-22-33-44-55 (Windows-Format) > 4. 0011.2233.4455 (CISCO-Format) > > Bei der Aufbereitung für die Anzeige von Daten (Backend→UI) sollten wir einfach > ein (lesbares) Format standardmäßig verwenden; ich persönlich bevorzuge 2., > weil es in der Linux-/Debian-/UCS-Welt das gebräuchlichste ist.
*** Bug 7028 has been marked as a duplicate of this bug. ***
Created attachment 4073 [details] add support for common mac address formats Dieser Patch erweitert die Klasse MAC_Address um die folgenden regulären Ausdrücke: ================================================================================== ([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2} für MAC Adressen des Formats xx:xx:xx:xx:xx:xx, ([0-9a-fA-F]{2}-){5}[0-9a-fA-F]{2} für MAC Adressen des Formats xx-xx-xx-xx-xx-xx, [0-9a-fA-F]{12} für MAC Adressen des Formats xxxxxxxxxxxx, ([0-9a-fA-F]{4}.){2}[0-9a-fA-F]{4} für MAC-Adresen des Formats xxxx.xxxx.xxxx ================================================================================== Darüber hinaus wird der Aufruf von re.compile in der Klasse so angepasst, dass in dem zurückgegebenen regex-Objekt jeder der oben geannten regulären Ausdruck als Alternativausdruck verwendet wird.
Created attachment 4074 [details] modify long description for mac property of computer objects Passt die Mouseover Hilfemeldung des Feldes "MAC-Adresse" beim Anlegen/Bearbeiten eines Computerobjekts so an, dass der User erkennen kann welche Formate für die Eingabe der MAC-Adresse untersützt werden. =========================================================================== "Valid formats are: xx:xx:xx:xx:xx:xx, xx-xx-xx-xx-xx-xx, xxxxxxxxxxxx, xxxx.xxxx.xxxx (each \'x\' has to be replaced by an hexadecimal digit)" ===========================================================================
Created attachment 4075 [details] add support for common mac address formats
(In reply to comment #2) > Created an attachment (id=4073) [details] > ([0-9a-fA-F]{4}.){2}[0-9a-fA-F]{4} für MAC-Adresen des Formats xxxx.xxxx.xxxx Der Punkt ('.') ist eine RegExp-Metazeichen und muß hier gequotet werden, damit es hier tatsächlich für den Punkt steht und nicht für ein beliebiges Zeichen!
Das sieht sehr gut aus :) ... kleine Anmerkungen: * Am besten Raw-Strings benutzen (r'...') * Du könntest direkt die RegExps kompilieren: regexLinuxFormat = re.compile(r'^([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}$') * Eine ausführlichere Fehlermeldung wäre toll, 'that' durch 'this' ersetzen: error_message = _( 'This is not a valid MAC address. Valid formats are: ...' ) * In der letzten Überprüfung ist es beser, den String einmal zu "translaten", ansonsten wird dies jedes Mal bei einem erneuten Aufruf getan, bspw.: tmpStr = text.translate(None, '.') for i in range(0, len(tmpStr)-1, 2): temp.append(tmpStr[i:i+2])
Created attachment 4088 [details] add support for common mac address formats
Created attachment 4089 [details] add support for common mac address formats
(In reply to comment #8) + regexCiscoFormat = re.compile( r'^([0-9a-fA-F]{4}.){2}[0-9a-fA-F]{4}$' ) $ python >>> import re >>> regexCiscoFormat = re.compile( r'^([0-9a-fA-F]{4}.){2}[0-9a-fA-F]{4}$' ) >>> regexCiscoFormat.match('1234=5678/9abc') <_sre.SRE_Match object at 0x13927b0> Vergleiche dazu mein comment #5 + tmpStr = text.translate(None, '.'))-1, 2): Syntax-Error
Created attachment 4092 [details] add support for common mac address formats
(In reply to comment #10) > Created an attachment (id=4092) [details] + tmpStr = text.translate(None, '.')-1, 2): Syntax-Error nach Copy-paste? tmpStr = text.translate(None, '.') + tmpList = [] + for i in range(0, len(tmpStr)-1, 2): + tmpList.append(tmpStr)[i:i+2]) tmpList = [tmpStr[i:i+2] for i in range(0, len(tmpStr), 2)]
Created attachment 4094 [details] add support for common mac address formats
Patch wurde eingepflegt, Paket gebaut. univention-directory-manager-modules (7.0.213-1) unstable; urgency=low * add support for common mac address formats (Bug #25463)
Alle Formate bis auf das Cisco-Format funktionieren. Wird das eingegeben kommt folgender Traceback: >>> syn.MAC_Address.parse( '1a1a.1a1a.1a1a' ) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/pymodules/python2.6/univention/admin/syntax.py", line 1121, in parse tmpList.append(tmpStr)[i:i+2] Bei falschen Eingaben kommt eine entsprechende Fehlermeldung
univention-directory-manager-modules (7.0.228-1) unstable; urgency=low Typo wurde behoben; Paket baut gerade
Verifed: * Syntaxprüfung OK * Changelog OK
UCS 3.0-1 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"
*** Bug 21547 has been marked as a duplicate of this bug. ***