[CalendarServer-changes] [6503] CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/ util.py

source_changes at macosforge.org source_changes at macosforge.org
Mon Nov 1 14:15:25 PDT 2010


Revision: 6503
          http://trac.macosforge.org/projects/calendarserver/changeset/6503
Author:   glyph at apple.com
Date:     2010-11-01 14:15:22 -0700 (Mon, 01 Nov 2010)
Log Message:
-----------
Split out directory creation from root-resource initialization

Modified Paths:
--------------
    CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py

Modified: CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py
===================================================================
--- CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py	2010-11-01 21:15:01 UTC (rev 6502)
+++ CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py	2010-11-01 21:15:22 UTC (rev 6503)
@@ -103,46 +103,12 @@
 
 
 
-def getRootResource(config, resources=None):
+def directoryFromConfig(config):
     """
-    Set up directory service and resource hierarchy based on config.
-    Return root resource.
-
-    Additional resources can be added to the hierarchy by passing a list of
-    tuples containing: path, resource class, __init__ args list, and optional
-    authentication scheme ("basic" or "digest").
+    Create an L{AggregateDirectoryService} from the given configuration.
     """
-    
-    # FIXME: this is only here to workaround circular imports
-    doBind()
 
     #
-    # Default resource classes
-    #
-    rootResourceClass            = RootResource
-    principalResourceClass       = DirectoryPrincipalProvisioningResource
-    calendarResourceClass        = DirectoryCalendarHomeProvisioningResource
-    iScheduleResourceClass       = IScheduleInboxResource
-    timezoneServiceResourceClass = TimezoneServiceResource
-    webCalendarResourceClass     = WebCalendarResource
-    webAdminResourceClass        = WebAdminResource
-    addressBookResourceClass     = DirectoryAddressBookHomeProvisioningResource
-    directoryBackedAddressBookResourceClass = DirectoryBackedAddressBookResource
-
-    #
-    # Setup the Augment Service
-    #
-    augmentClass = namedClass(config.AugmentService.type)
-
-    log.info("Configuring augment service of type: %s" % (augmentClass,))
-
-    try:
-        augment.AugmentService = augmentClass(**config.AugmentService.params)
-    except IOError:
-        log.error("Could not start augment service")
-        raise
-
-    #
     # Setup the Directory
     #
     directories = []
@@ -224,7 +190,52 @@
     except ImportError:
         pass
 
+    return directory
+
+
+def getRootResource(config, resources=None):
+    """
+    Set up directory service and resource hierarchy based on config.
+    Return root resource.
+
+    Additional resources can be added to the hierarchy by passing a list of
+    tuples containing: path, resource class, __init__ args list, and optional
+    authentication scheme ("basic" or "digest").
+    """
+
+    # FIXME: this is only here to workaround circular imports
+    doBind()
+
     #
+    # Default resource classes
+    #
+    rootResourceClass            = RootResource
+    principalResourceClass       = DirectoryPrincipalProvisioningResource
+    calendarResourceClass        = DirectoryCalendarHomeProvisioningResource
+    iScheduleResourceClass       = IScheduleInboxResource
+    timezoneServiceResourceClass = TimezoneServiceResource
+    webCalendarResourceClass     = WebCalendarResource
+    webAdminResourceClass        = WebAdminResource
+    addressBookResourceClass     = DirectoryAddressBookHomeProvisioningResource
+    directoryBackedAddressBookResourceClass = DirectoryBackedAddressBookResource
+
+    #
+    # Setup the Augment Service
+    #
+    augmentClass = namedClass(config.AugmentService.type)
+
+    log.info("Configuring augment service of type: %s" % (augmentClass,))
+
+    try:
+        augment.AugmentService = augmentClass(**config.AugmentService.params)
+    except IOError:
+        log.error("Could not start augment service")
+        raise
+
+
+    directory = directoryFromConfig(config)
+
+    #
     # Setup the ProxyDB Service
     #
     proxydbClass = namedClass(config.ProxyDBService.type)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20101101/f8c21a11/attachment.html>


More information about the calendarserver-changes mailing list