Univention Bugzilla – Bug 25242
Automatisches Mapping von ausgewählten Attributen ohne UDM-Handler.open() ermöglichen
Last modified: 2012-12-12 21:10:02 CET
Derzeit wird bei der Suche nach IP-Adressen zwar eine Spalte "IP-Adresse" angezeigt, allerdings ist diese leer. Dies liegt wahrscheinlich daran, dass IP-Adressen ein Multi-Value-Feld ist. Potentiell kann das auch in anderen Fällen auftreten, daher könnte die Lösung ein entsprechender JavaScript-Formatter sein, der Strings und Arrays handhaben kann.
(In reply to comment #0) > Derzeit wird bei der Suche nach IP-Adressen zwar eine Spalte "IP-Adresse" > angezeigt, allerdings ist diese leer. Dies liegt wahrscheinlich daran, dass > IP-Adressen ein Multi-Value-Feld ist. > > Potentiell kann das auch in anderen Fällen auftreten, daher könnte die Lösung > ein entsprechender JavaScript-Formatter sein, der Strings und Arrays handhaben > kann. Ein formatter wäre nur ein Teil der Lösung, dass generelle Probleme mit der Anzeige beheben würde. Das eigentliche Problem ist aber, dass die Werte leer sind. Die Filterung funktioniert. { "status": 200, "message": null, "options": { "objectProperty": "ip", "container": "all", "objectPropertyValue": "*101", "objectType": "computers\/computer" }, "result": [ { "$dn$": "cn=slave,cn=dc,cn=computers,dc=ucs,dc=test", "name": "slave", "ip": [ "" ], "$childs$": false, "labelObjectType": "Dom\u00e4nencontroller Slave", "path": "test.ucs:\/computers\/dc", "objectType": "computers\/domaincontroller_slave" } ] }
Es wäre sinnvoll, diesen Bug generisch zu lösen. Das Problem ist, dass die IP-Adressen erst nach dem Aufruf von open() aus dem LDAP in das self.info-Dict übertragen werden. Dies macht bei komplizierteren Mappings auch durchaus Sinn. Sinnvoll wäre es daher, wenn einfache und wichtige (=häufig genutzte) Mappings direkt in self.info übertragen werden und nur die komplizierteren in open(). Dies könnte so umgesetzt werden, dass bei mapping.register() ein optionaler Parameter übergeben werden (bspw. directMapping=True), der diese Attribute markiert. Dadurch könnte man sich wahrscheinlich auch den Aufruf von open() an anderen Stellen ersparen.
Es werden bereits alle Mappings, die per mapping.register() angegeben werden direkt im init durchgeführt. Die IP Adresse wird nicht per mapping.register übertragen, sondern wurde bislang im open von simpleComputer gemacht. Das habe ich jetzt ins __init__ von simpleComputer verschoben. Damit wird die IP Adresse direkt angezeigt. Andere Attribute die per mapping.register registriert sind, beispielsweise die MAC Adresse oder die Beschreibung werden angezeigt. Pakete bauen, ich prüfe gerade noch ob es Nebenwirkungen gibt oder ob weitere Felder fehlen.
Tests soweit erfolgreich.
OK, IP-Adresse wird angezeigt. Weitere unwichitge Suchattribute werden an Bug #28803 aus der Suchliste gelöscht. 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".