Bug 25387 - Shared Subnetzes kann nicht angelegt werden
Shared Subnetzes kann nicht angelegt werden
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC - DHCP
UCS 3.0
Other Linux
: P2 normal (vote)
: UCS 3.0-1
Assigned To: Andreas Büsching
Florian Best
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-12-09 15:15 CET by Philipp Hahn
Modified: 2012-03-04 14:34 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 Philipp Hahn univentionstaff 2011-12-09 15:15:15 CET
1. Das anlegen ist (wie unter UCS-2.4 auch) nur über die Navigation möglich; Das "Shared Network" (fehlende Übersetzung!) ist noch über den Wizard unterhalb des "Service" anlegbar, allerdings nicht das unbedingt notwendige "Shared Subnet".

2. Wird kein "Shared Subnet" angelegt, stürzt der DHCPd ab, da dessen Konfiguration damit ungültig ist: /var/log/daemon.log
Dec  9 02:52:26 backup33 dhcpd: LDAP line 11: empty shared-network decl
Dec  9 02:52:26 backup33 dhcpd: }
Dec  9 02:52:26 backup33 dhcpd:  ^
Dec  9 02:52:26 backup33 dhcpd: LDAP: cannot parse dhcpService entry 'cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa'
Dec  9 02:52:26 backup33 dhcpd: Configuration file errors encountered -- exiting

3. Beim Anlegen über die Navigation in UMC tritt ein Python-Traceback auf:

Fehlernachricht des Servers:
File '/usr/lib/pymodules/python2.6/notifier/threads.py', line 81, in _run
tmp = self._function()
File '/usr/lib/pymodules/python2.6/notifier/__init__.py', line 104, in __call__
return self._function( *tmp, **self._kwargs )
File '/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/__init__.py', line 267, in _thread
dn = module.create( properties, container = options.get( 'container' ), superordinate = options.get( 'superordinate' ) )
File '/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py', line 130, in wrapper_func
ret = func( *args, **kwargs )
File '/usr/lib/pymodules/python2.6/univention/management/console/modules/udm/udm_ldap.py', line 312, in create
obj.create()
File '/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py', line 332, in create
return self._create()
File '/usr/lib/pymodules/python2.6/univention/admin/handlers/__init__.py', line 628, in _create
al.extend(self._ldap_modlist())
File '/usr/lib/pymodules/python2.6/univention/admin/handlers/dhcp/sharedsubnet.py', line 172, in _ldap_modlist
univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, 'old Range: %s' % self.oldinfo['range'])
KeyError: 'range'

Per CLI funktioniert es aber auch nicht:
$ udm dhcp/sharedsubnet create --superordinate cn=Netzwerke,cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa --set subnet=192.168.222.0 --set subnetmask=255.255.255.0
Object created: cn=192.168.222.0,cn=Netzwerke,cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa

$ udm dhcp/sharedsubnet modify --dn "cn=192.168.222.0,cn=Netzwerke,cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa" --set range="192.168.222.2 192.168.222.3"
...
KeyError: 'range'

Problem ist die die Debug-Ausgabe; mit der Umstellung von [] auf .get() funktioniert es:
    univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, 'old Range: %s' % self.oldinfo.get('range'))


4. Nach dem Anlegen per CLI wurde das Objekt im Web-UMC aber weiterhin nicht angezeigt. Erst nach einem Schließen und neu-Öffnen der Navigation wird das Objekt dann auch gefunden.
Comment 1 Philipp Hahn univentionstaff 2011-12-09 23:15:10 CET
Beim Entfernen einer Range bleibt ein leeres LDAP-Attribut "dhcpRange" bestehen, was anschließend dazu führt, das ein fehlerhaftes leeres "range ;" Statement generiert wird, was den Parser von dhcpd durcheinander bringt:

# ldapsearch -xLLLH ldapi:/// -b cn=10.200.17.0,cn=Netzwerke,cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa
dn: cn=10.200.17.0,cn=Netzwerke,cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa
univentionObjectType: dhcp/sharedsubnet
cn: 10.200.17.0
dhcpNetMask: 24
objectClass: top
objectClass: univentionDhcpSubnet
objectClass: univentionDhcpSharedSubnet
objectClass: univentionObject
objectClass: univentionPolicyReference
univentionPolicyReference: cn=netbios,cn=netbios,cn=dhcp,cn=policies,dc=phahn,dc=qa
univentionPolicyReference: cn=Allow,cn=scope,cn=dhcp,cn=policies,dc=phahn,dc=qa
dhcpRange:

# tail /var/log/daemon.log
Dec  9 11:08:01 master30 dhcpd: LDAP line 29: expecting numeric value.
Dec  9 11:08:01 master30 dhcpd: range ;
Dec  9 11:08:01 master30 dhcpd:        ^
Dec  9 11:08:01 master30 dhcpd: LDAP: cannot parse dhcpService entry 'cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa'
Dec  9 11:08:01 master30 dhcpd: Configuration file errors encountered -- exiting
Comment 2 Andreas Büsching univentionstaff 2011-12-29 16:50:11 CET
(In reply to comment #0)
> 1. Das anlegen ist (wie unter UCS-2.4 auch) nur über die Navigation möglich;
> Das "Shared Network" (fehlende Übersetzung!) ist noch über den Wizard unterhalb
> des "Service" anlegbar, allerdings nicht das unbedingt notwendige "Shared
> Subnet".

Das ist in meiner Working Copy jetzt korrigiert.

> '/usr/lib/pymodules/python2.6/univention/admin/handlers/dhcp/sharedsubnet.py',
> line 172, in _ldap_modlist
> univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, 'old
> Range: %s' % self.oldinfo['range'])
> KeyError: 'range'

Das ist auch gefixt.

> 4. Nach dem Anlegen per CLI wurde das Objekt im Web-UMC aber weiterhin nicht
> angezeigt. Erst nach einem Schließen und neu-Öffnen der Navigation wird das
> Objekt dann auch gefunden.

Wird es über das Web-Fronte angelegt funktioniert es. Den anderen Fall prüfe ich noch.

Momentan unklar ist noch ein Verhalten der dhcp/sharedsubnet:

Wenn ich die erzeuge werden sie als Container in der Navigation angezeigt. Dies ist laut Definition in dem Modul auch richtig. Allerdings ist unklar was darunter angelegt werden soll. In einem UCS 2.4-3 System kann ich dort auch nur Container anlegen was in UCS 3.0 ebenfalls funktioniert.

Aus der Beschreibung im Handbuch wird nicht ganz klar, ob dort DHCP-Pools erlaubt sein sollen.
Comment 3 Andreas Büsching univentionstaff 2012-01-02 09:23:29 CET
(In reply to comment #2)
> Aus der Beschreibung im Handbuch wird nicht ganz klar, ob dort DHCP-Pools
> erlaubt sein sollen.

Pools sollten auch unter dhcp/sharedsubnet anglegt werden können.

Damit dies möglich ist werde ich die superordinate-Angabe in den Modulen erweitern, so dass dies auch eine Liste sein kann.
Comment 4 Andreas Büsching univentionstaff 2012-02-14 08:15:21 CET
(In reply to comment #3)
> (In reply to comment #2)
> > Aus der Beschreibung im Handbuch wird nicht ganz klar, ob dort DHCP-Pools
> > erlaubt sein sollen.
> 
> Pools sollten auch unter dhcp/sharedsubnet anglegt werden können.
> 
> Damit dies möglich ist werde ich die superordinate-Angabe in den Modulen
> erweitern, so dass dies auch eine Liste sein kann.

Dieses Problem wurde in Bug #26131 ausgelagert
Comment 5 Andreas Büsching univentionstaff 2012-02-14 11:21:18 CET
(In reply to comment #2)
> (In reply to comment #0)
> > 1. Das anlegen ist (wie unter UCS-2.4 auch) nur über die Navigation möglich;
> > Das "Shared Network" (fehlende Übersetzung!) ist noch über den Wizard unterhalb
> > des "Service" anlegbar, allerdings nicht das unbedingt notwendige "Shared
> > Subnet".
> 
> Das ist in meiner Working Copy jetzt korrigiert.

Das funktioniert, ist allerdings von der Usability her missverständlich. Dazu gibt es Bug #26133

> > 4. Nach dem Anlegen per CLI wurde das Objekt im Web-UMC aber weiterhin nicht
> > angezeigt. Erst nach einem Schließen und neu-Öffnen der Navigation wird das
> > Objekt dann auch gefunden.
> 
> Wird es über das Web-Fronte angelegt funktioniert es. Den anderen Fall prüfe
> ich noch.

Über das Kontextmenü auf dem Navigationsbereich kann der Baum neugeladen werden und das Objekt wird angezeigt. Außerdem wird der Baum beim Anlegen sowieso neugeladen (getestet mit Sharde Subnets)
Comment 6 Andreas Büsching univentionstaff 2012-02-14 16:23:49 CET
(In reply to comment #1)
> Beim Entfernen einer Range bleibt ein leeres LDAP-Attribut "dhcpRange"
> bestehen, was anschließend dazu führt, das ein fehlerhaftes leeres "range ;"
> Statement generiert wird, was den Parser von dhcpd durcheinander bringt:

Das Problem ist jetzt auch behoben.

ChangeLog wurde hinzugefügt
Comment 7 Andreas Büsching univentionstaff 2012-02-27 13:52:02 CET
(In reply to comment #0)
> 2. Wird kein "Shared Subnet" angelegt, stürzt der DHCPd ab, da dessen
> Konfiguration damit ungültig ist: /var/log/daemon.log
> Dec  9 02:52:26 backup33 dhcpd: LDAP line 11: empty shared-network decl
> Dec  9 02:52:26 backup33 dhcpd: }
> Dec  9 02:52:26 backup33 dhcpd:  ^
> Dec  9 02:52:26 backup33 dhcpd: LDAP: cannot parse dhcpService entry
> 'cn=phahn.qa,cn=dhcp,dc=phahn,dc=qa'
> Dec  9 02:52:26 backup33 dhcpd: Configuration file errors encountered --
> exiting

Das Problem wurde in Bug #26258 ausgelagert
Comment 8 Florian Best univentionstaff 2012-02-27 13:55:06 CET
(In reply to comment #5)
> (In reply to comment #2)
> > (In reply to comment #0)
> > > 1. Das anlegen ist (wie unter UCS-2.4 auch) nur über die Navigation möglich;
> > > Das "Shared Network" (fehlende Übersetzung!) ist noch über den Wizard unterhalb
> > > des "Service" anlegbar, allerdings nicht das unbedingt notwendige "Shared
> > > Subnet".
> > 
> > Das ist in meiner Working Copy jetzt korrigiert.
> 
> Das funktioniert, ist allerdings von der Usability her missverständlich. Dazu
> gibt es Bug #26133
funktioniert

> > > 4. Nach dem Anlegen per CLI wurde das Objekt im Web-UMC aber weiterhin nicht
> > > angezeigt. Erst nach einem Schließen und neu-Öffnen der Navigation wird das
> > > Objekt dann auch gefunden.
> > 
> > Wird es über das Web-Fronte angelegt funktioniert es. Den anderen Fall prüfe
> > ich noch.
> 
> Über das Kontextmenü auf dem Navigationsbereich kann der Baum neugeladen werden
> und das Objekt wird angezeigt. Außerdem wird der Baum beim Anlegen sowieso
> neugeladen (getestet mit Sharde Subnets)
funktioniert

(In reply to comment #2)
> > '/usr/lib/pymodules/python2.6/univention/admin/handlers/dhcp/sharedsubnet.py',
> > line 172, in _ldap_modlist
> > univention.debug.debug(univention.debug.ADMIN, univention.debug.ERROR, 'old
> > Range: %s' % self.oldinfo['range'])
> > KeyError: 'range'
> 
> Das ist auch gefixt.
funktioniert

(In reply to comment #6)
> (In reply to comment #1)
> > Beim Entfernen einer Range bleibt ein leeres LDAP-Attribut "dhcpRange"
> > bestehen, was anschließend dazu führt, das ein fehlerhaftes leeres "range ;"
> > Statement generiert wird, was den Parser von dhcpd durcheinander bringt:
> 
> Das Problem ist jetzt auch behoben.
funktioniert

> ChangeLog wurde hinzugefügt
Changelogeintrag vorhanden

> 2. Wird kein "Shared Subnet" angelegt, stürzt der DHCPd ab, da dessen
> Konfiguration damit ungültig ist: /var/log/daemon.log
Ausgelagert: Bug #26258

→ VERIFIED
Comment 9 Sönke Schwardt-Krummrich univentionstaff 2012-03-04 14:34:08 CET
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"