diff options
author | Martin Kosek <mkosek@redhat.com> | 2012-09-04 13:18:54 +0200 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2012-09-04 22:45:27 -0400 |
commit | 917a48067586eac3f0c999cb972232309e889acd (patch) | |
tree | cb65cfc757238e112136b8418507e9f5fd4db518 /install | |
parent | 83245bc8c978db4c2fc1ddbbc16264422875d357 (diff) | |
download | freeipa-917a48067586eac3f0c999cb972232309e889acd.tar.gz freeipa-917a48067586eac3f0c999cb972232309e889acd.tar.xz freeipa-917a48067586eac3f0c999cb972232309e889acd.zip |
Add safe updates for objectClasses
Current objectclass updates in a form of "replace" update instruction
dependent on exact match of the old object class specification in the
update instruction and the real value in LDAP. However, this approach is
very error prone as object class definition can easily differ as for
example because of unexpected X-ORIGIN value. Such objectclass update
failures may lead to serious malfunctions later.
When comparing the objectclasses, make sure we normalize them both
before we compare them to mitigate these kinds of errors. python-ldap's
objectclass model can be utilized to do the normalization part.
One objectclass update instruction was changed to do a replace of
an objectclass separately from add update instruction so that we
really only replace what's stored in LDAP.
https://fedorahosted.org/freeipa/ticket/2440
Diffstat (limited to 'install')
-rw-r--r-- | install/updates/10-bind-schema.update | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/install/updates/10-bind-schema.update b/install/updates/10-bind-schema.update index 0edbad204..3c43c8ec7 100644 --- a/install/updates/10-bind-schema.update +++ b/install/updates/10-bind-schema.update @@ -75,4 +75,6 @@ add:objectClasses: MUST idnsName MAY managedBy X-ORIGIN 'IPA v3' ) + +dn: cn=schema replace:objectClasses:( 2.16.840.1.113730.3.8.6.1 NAME 'idnsZone' DESC 'Zone class' SUP idnsRecord STRUCTURAL MUST ( idnsZoneActive $$ idnsSOAmName $$ idnsSOArName $$ idnsSOAserial $$ idnsSOArefresh $$ idnsSOAretry $$ idnsSOAexpire $$ idnsSOAminimum ) MAY idnsUpdatePolicy )::( 2.16.840.1.113730.3.8.6.1 NAME 'idnsZone' DESC 'Zone class' SUP idnsRecord STRUCTURAL MUST ( idnsName $$ idnsZoneActive $$ idnsSOAmName $$ idnsSOArName $$ idnsSOAserial $$ idnsSOArefresh $$ idnsSOAretry $$ idnsSOAexpire $$ idnsSOAminimum ) MAY ( idnsUpdatePolicy $$ idnsAllowQuery $$ idnsAllowTransfer $$ idnsAllowSyncPTR $$ idnsForwardPolicy $$ idnsForwarders ) ) |