[CalendarServer-changes] [8853] CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav /directory

source_changes at macosforge.org source_changes at macosforge.org
Tue Mar 13 12:55:08 PDT 2012


Revision: 8853
          http://trac.macosforge.org/projects/calendarserver/changeset/8853
Author:   gaya at apple.com
Date:     2012-03-13 12:55:06 -0700 (Tue, 13 Mar 2012)
Log Message:
-----------
fix im type

Modified Paths:
--------------
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py
    CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py	2012-03-13 19:24:47 UTC (rev 8852)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/ldapdirectorybacker.py	2012-03-13 19:55:06 UTC (rev 8853)
@@ -172,7 +172,7 @@
     def createCache(self):
          succeed(None)
                         
-    #to do: use opendirectorybacker: _attributesForAddressBookQuery
+
     def _ldapAttributesForAddressBookQuery(self, addressBookQuery, ldapDSAttrMap ):
                         
         etagRequested, propertyNames = propertiesInAddressBookQuery( addressBookQuery )
@@ -221,8 +221,7 @@
             ldapDSAttrMap = queryMap["ldapDSAttrMap"]
 
             allRecords, filterAttributes, dsFilter  = dsFilterFromAddressBookFilter( addressBookFilter, searchMap );
-            #print("allRecords = %s, query = %s" % (allRecords, "None" if dsFilter is None else dsFilter.generate(),))
-            self.log_debug("vCardRecordsForAddressBookQuery: queryType = \"%s\" LDAP allRecords = %s, filterAttributes = %s, query = %s" % (queryType, allRecords, filterAttributes, "None" if dsFilter is None else dsFilter.generate(),))
+            self.log_debug("vCardRecordsForAddressBookQuery: queryType=\"%s\" LDAP allRecords=%s, filterAttributes=%s, query=%s" % (queryType, allRecords, filterAttributes, "None" if dsFilter is None else dsFilter.generate(),))
     
             
             if allRecords:
@@ -234,16 +233,16 @@
             if not clear:
                 queryAttributes = self._ldapAttributesForAddressBookQuery( addressBookQuery, ldapDSAttrMap )
                 attributes = filterAttributes + queryAttributes if queryAttributes else None
-                self.log_debug("vCardRecordsForAddressBookQuery: attributes = %s, queryAttributes = %s" % (attributes, queryAttributes,))
+                self.log_debug("vCardRecordsForAddressBookQuery: attributes=%s, queryAttributes=%s" % (attributes, queryAttributes,))
                 
+                #get all ldap attributes -- for debug
                 if queryMap.get("getAllAttributes"):
                     attributes = None
-                               
                    
                 rdn = queryMap["rdn"]
                 base =  ldap.dn.str2dn(rdn) + self.base
                 
-                #add additonal filter
+                #add additonal filter from config
                 queryFilter = queryMap.get("filter")
                 if dsFilter and queryFilter:
                     filterstr = "(&%s%s)" % (queryFilter, dsFilter.generate())
@@ -252,24 +251,24 @@
                 elif dsFilter:
                     filterstr = dsFilter.generate()
                 
-                #attrlist = attributes
-                #filterstr = "(&(!(objectClass=organizationalUnit))(sn=Gaya))"
-                #attrlist = ("cn", "sn", "objectClass", "mail", "telephoneNumber", "appleDSID")
-                self.log_debug("LDAP query with base %s and filter %s and attributes %s sizelimit %s" % (ldap.dn.dn2str(base), filterstr, attributes, maxRecords))
+                # can't resist also using a timeout, 1 sec per requested record for now
+                timeout = maxRecords
+
+                self.log_debug("vCardRecordsForAddressBookQuery:LDAP query base=%s and filter=%s and attributes=%s timeout=%s sizelimit=%s" % (ldap.dn.dn2str(base), filterstr, attributes, timeout, maxRecords))
                 
-                ldapSearchResult = (yield self.timedSearch(ldap.dn.dn2str(base), ldap.SCOPE_SUBTREE, filterstr=filterstr, attrlist=attributes, timeout=maxRecords, sizelimit=maxRecords))
+                ldapSearchResult = (yield self.timedSearch(ldap.dn.dn2str(base), ldap.SCOPE_SUBTREE, filterstr=filterstr, attrlist=attributes, timeout=timeout, sizelimit=maxRecords))
     
-                self.log_debug("ldapSearchResult=%s" % (ldapSearchResult,))
+                self.log_debug("vCardRecordsForAddressBookQuery: ldapSearchResult=%s" % (ldapSearchResult,))
                 
                 for dn, ldapAttributes in ldapSearchResult:
                     #dn = normalizeDNstr(dn)
                     dsRecord = None
                     try:
+                        # make a dsRecordAttributes dict from the ldap attributes
                         dsRecordAttributes = {}
-                        
                         for ldapAttributeName, ldapAttributeValues in ldapAttributes.iteritems():
     
-                            self.log_debug("inspecting ldapAttributeName %s with values %s" % (ldapAttributeName, ldapAttributeValues,))
+                            #self.log_debug("inspecting ldapAttributeName %s with values %s" % (ldapAttributeName, ldapAttributeValues,))
     
                             # get rid of '' values
                             ldapAttributeValues = [attr for attr in ldapAttributeValues if len(attr)]
@@ -282,32 +281,32 @@
                                         dsAttributeNames = [dsAttributeNames,]
                                         
                                     for dsAttributeName in dsAttributeNames:
-                                    
+                                        
+                                        # base64 encode binary attributes
                                         if dsAttributeName in VCardRecord.binaryDSAttributeStrs:
                                             ldapAttributeValues = [attr.encode('base64') for attr in ldapAttributeValues]
                                         
-                                        # all dsRecordAttributes values are lists
+                                        # add to dsRecordAttributes
                                         if dsAttributeName not in dsRecordAttributes:
                                             dsRecordAttributes[dsAttributeName] = list()
                                             
                                         dsRecordAttributes[dsAttributeName] = list(set(dsRecordAttributes[dsAttributeName] + ldapAttributeValues))
-                                        self.log_debug("dsRecordAttributes[%s] = %s" % (dsAttributeName, dsRecordAttributes[dsAttributeName],))
-                                   
+                                        self.log_debug("vCardRecordsForAddressBookQuery: dsRecordAttributes[%s] = %s" % (dsAttributeName, dsRecordAttributes[dsAttributeName],))
+ 
+                        # get a record for dsRecordAttributes 
                         dsRecord = VCardRecord(self, dsRecordAttributes, defaultNodeName=None, generateSimpleUIDs=self.generateSimpleUIDs, appleInternalServer=self.appleInternalServer)
                         vCardText = dsRecord.vCardText()
                     except:
                         traceback.print_exc()
                         self.log_info("Could not get vcard for ds record %s" % (dsRecord,))
                     else:
-                        self.log_debug("VCard text =\n%s" % (vCardText, ))
+                        self.log_debug("vCardRecordsForAddressBookQuery: VCard text =\n%s" % (vCardText, ))
                         queryRecords.append(dsRecord)
-               
-                self.log_info("maxRecords was %s len(ldapSearchResult) %s" % (maxRecords,len(ldapSearchResult),))
+                
+                # only get requested number of record results
                 maxRecords -= len(ldapSearchResult)
-                self.log_info("maxRecords now %s len(ldapSearchResult) %s" % (maxRecords,len(ldapSearchResult),))
                 if maxRecords <= 0:
                     limited = True
-                    self.log_info("limited %s" % (limited,))
                     break
 
                          

Modified: CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py
===================================================================
--- CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py	2012-03-13 19:24:47 UTC (rev 8852)
+++ CalendarServer/branches/users/gaya/ldapdirectorybacker/twistedcaldav/directory/opendirectorybacker.py	2012-03-13 19:55:06 UTC (rev 8853)
@@ -1185,7 +1185,8 @@
                             splitValue = attrValue.split("|")
                             if len (splitValue) > 1:
                                 attrValue = splitValue[0]
-                                defaultLabel = splitValue[1]
+                                if splitValue[1].upper() in nolabelParamTypes:
+                                    defaultLabel = splitValue[1]
 
                         colonIndex = attrValue.find(":")
                         if (colonIndex > len(attrValue)-2):
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120313/1bf120aa/attachment-0001.html>


More information about the calendarserver-changes mailing list