Revision: 6507 http://trac.macosforge.org/projects/calendarserver/changeset/6507 Author: glyph@apple.com Date: 2010-11-01 14:16:36 -0700 (Mon, 01 Nov 2010) Log Message: ----------- add arg to getRootResource Modified Paths: -------------- CalendarServer/branches/users/glyph/sharedpool/calendarserver/sidecar/task.py CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/caldav.py CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/purge.py CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/test/test_principals.py CalendarServer/branches/users/glyph/sharedpool/twistedcaldav/mail.py Modified: CalendarServer/branches/users/glyph/sharedpool/calendarserver/sidecar/task.py =================================================================== --- CalendarServer/branches/users/glyph/sharedpool/calendarserver/sidecar/task.py 2010-11-01 21:16:16 UTC (rev 6506) +++ CalendarServer/branches/users/glyph/sharedpool/calendarserver/sidecar/task.py 2010-11-01 21:16:36 UTC (rev 6507) @@ -27,7 +27,7 @@ from zope.interface import implements -from twisted.application.service import Service, IServiceMaker +from twisted.application.service import MultiService, Service, IServiceMaker from twisted.internet.defer import DeferredList, inlineCallbacks, returnValue from twisted.internet.reactor import callLater from twisted.plugin import IPlugin @@ -318,6 +318,7 @@ def makeService(self, options): + svc = MultiService() # # The task sidecar doesn't care about system SACLs # @@ -330,11 +331,12 @@ oldLogLevel = logLevelForNamespace(None) setLogLevelForNamespace(None, "info") - rootResource = getRootResource(config) + rootResource = getRootResource(config, svc) - service = CalDAVTaskService(rootResource) + CalDAVTaskService(rootResource).setServiceParent(svc) # Change log level back to what it was before setLogLevelForNamespace(None, oldLogLevel) - return service + return svc + Modified: CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/caldav.py =================================================================== --- CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/caldav.py 2010-11-01 21:16:16 UTC (rev 6506) +++ CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/caldav.py 2010-11-01 21:16:36 UTC (rev 6507) @@ -87,6 +87,7 @@ try: from calendarserver.version import version + version except ImportError: sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(__file__))), "support")) from version import version as getVersion @@ -497,7 +498,6 @@ additional = [] if config.Scheduling.iMIP.Enabled: additional.append(("inbox", IMIPReplyInboxResource, [], "digest")) - rootResource = getRootResource(config, additional) # # Configure the service @@ -528,6 +528,8 @@ service = CalDAVService(logObserver) + rootResource = getRootResource(config, service, additional) + underlyingSite = Site(rootResource) requestFactory = underlyingSite Modified: CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py =================================================================== --- CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py 2010-11-01 21:16:16 UTC (rev 6506) +++ CalendarServer/branches/users/glyph/sharedpool/calendarserver/tap/util.py 2010-11-01 21:16:36 UTC (rev 6507) @@ -78,7 +78,7 @@ -def storeFromConfig(config, notifierFactory=None): +def storeFromConfig(config, serviceParent, notifierFactory=None): """ Produce an L{IDataStore} from the given configuration and notifier factory. """ @@ -114,6 +114,7 @@ directories = [] directoryClass = namedClass(config.DirectoryService.type) + principalResourceClass = DirectoryPrincipalProvisioningResource log.info("Configuring directory service of type: %s" % (config.DirectoryService.type,)) @@ -189,11 +190,13 @@ directory.setRealm(realmName) except ImportError: pass - + log.info("Setting up principal collection: %r" + % (principalResourceClass,)) + principalResourceClass("/principals/", directory) return directory -def getRootResource(config, resources=None): +def getRootResource(config, serviceParent, resources=None): """ Set up directory service and resource hierarchy based on config. Return root resource. @@ -210,7 +213,6 @@ # Default resource classes # rootResourceClass = RootResource - principalResourceClass = DirectoryPrincipalProvisioningResource calendarResourceClass = DirectoryCalendarHomeProvisioningResource iScheduleResourceClass = IScheduleInboxResource timezoneServiceResourceClass = TimezoneServiceResource @@ -322,10 +324,8 @@ # log.info("Setting up document root at: %s" % (config.DocumentRoot,)) - log.info("Setting up principal collection: %r" - % (principalResourceClass,)) - principalCollection = principalResourceClass("/principals/", directory) + principalCollection = directory.principalCollection # # Configure NotifierFactory @@ -338,7 +338,7 @@ else: notifierFactory = None - newStore = storeFromConfig(config, notifierFactory) + newStore = storeFromConfig(config, serviceParent, notifierFactory) if config.EnableCalDAV: log.info("Setting up calendar collection: %r" % (calendarResourceClass,)) Modified: CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/purge.py =================================================================== --- CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/purge.py 2010-11-01 21:16:16 UTC (rev 6506) +++ CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/purge.py 2010-11-01 21:16:36 UTC (rev 6507) @@ -97,6 +97,7 @@ os.umask(config.umask) try: + # TODO: getRootResource needs a parent service now. rootResource = getRootResource(config) directory = rootResource.getDirectory() except DirectoryError, e: Modified: CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/test/test_principals.py =================================================================== --- CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/test/test_principals.py 2010-11-01 21:16:16 UTC (rev 6506) +++ CalendarServer/branches/users/glyph/sharedpool/calendarserver/tools/test/test_principals.py 2010-11-01 21:16:36 UTC (rev 6507) @@ -24,7 +24,7 @@ from twistedcaldav.directory.directory import DirectoryError from twistedcaldav.test.util import TestCase, CapturingProcessProtocol -from calendarserver.tap.util import getRootResource +from calendarserver.tap.util import directoryFromConfig from calendarserver.tools.principals import parseCreationArgs, matchStrings, updateRecord, principalForPrincipalID, getProxies, setProxies @@ -226,7 +226,7 @@ @inlineCallbacks def test_updateRecord(self): - directory = getRootResource(config).getDirectory() + directory = directoryFromConfig(config) guid = "eee28807-a8c5-46c8-a558-a08281c558a7" (yield updateRecord(True, directory, "locations", @@ -264,7 +264,7 @@ """ Read and Write proxies can be set en masse """ - directory = getRootResource(config).getDirectory() + directory = directoryFromConfig(config) principal = principalForPrincipalID("users:user01", directory=directory) readProxies, writeProxies = (yield getProxies(principal, directory=directory)) Modified: CalendarServer/branches/users/glyph/sharedpool/twistedcaldav/mail.py =================================================================== --- CalendarServer/branches/users/glyph/sharedpool/twistedcaldav/mail.py 2010-11-01 21:16:16 UTC (rev 6506) +++ CalendarServer/branches/users/glyph/sharedpool/twistedcaldav/mail.py 2010-11-01 21:16:36 UTC (rev 6507) @@ -597,6 +597,7 @@ self.mailer = mailer rootResource = getRootResource(config, + self, ( ("inbox", IMIPInvitationInboxResource, (mailer,), "digest"), )