def testDirectoryService_newParam(self):
        self.assertEquals(config.DirectoryService.type, "xml")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "opendirectory"}})

        self.assertEquals(config.DirectoryService.type, "opendirectory")
        self.assertEquals(config.DirectoryService.params.node, "/Search")
    def testDirectoryService_sameType(self):
        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "twistedcaldav.directory.xmlfile.XMLDirectoryService"}})

        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")
    def testDirectoryService_sameType(self):
        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "twistedcaldav.directory.xmlfile.XMLDirectoryService"}})

        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")
    def testDirectoryService_sameType(self):
        self.assertEquals(config.DirectoryService.type, "xml")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "xml"}})

        self.assertEquals(config.DirectoryService.type, "xml")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")
    def testDirectoryService_newParam(self):
        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "twistedcaldav.directory.appleopendirectory.OpenDirectoryService"}})

        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.appleopendirectory.OpenDirectoryService")
        self.assertEquals(config.DirectoryService.params.node, "/Search")
    def testDirectoryService_newParam(self):
        self.assertEquals(config.DirectoryService.type, "xml")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "opendirectory"}})

        self.assertEquals(config.DirectoryService.type, "opendirectory")
        self.assertEquals(config.DirectoryService.params.node, "/Search")
    def testDirectoryService_sameType(self):
        self.assertEquals(config.DirectoryService.type, "xml")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "xml"}})

        self.assertEquals(config.DirectoryService.type, "xml")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")
    def testDirectoryService_newParam(self):
        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "twistedcaldav.directory.appleopendirectory.OpenDirectoryService"}})

        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.appleopendirectory.OpenDirectoryService")
        self.assertEquals(config.DirectoryService.params.node, "/Search")
Exemple #9
0
    def doWork(self):

        if self.debug:
            # Turn on debug logging for this module
            config.LogLevels[__name__] = "debug"
        else:
            config.LogLevels[__name__] = "info"
        config.update()

        homes = yield self.getMatchingHomeUIDs()
        if not homes:
            log.info("No homes to process")
            returnValue(0)

        if self.dryrun:
            log.info("Purge dry run only")

        log.info("Searching for old events...")

        purge = set()
        homes = yield self.getMatchingHomeUIDs()
        for home_id, owner_uid in homes:
            purge.update((yield self.getResourcesToPurge(home_id, owner_uid)))

        if self.dryrun:
            eventCount = len(purge)
            if eventCount == 0:
                log.info("No events are older than {cutoff}", cutoff=self.cutoff)
            elif eventCount == 1:
                log.info("1 event is older than {cutoff}", cutoff=self.cutoff)
            else:
                log.info("{count} events are older than {cutoff}", count=eventCount, cutoff=self.cutoff)
            returnValue(eventCount)

        purge = list(purge)
        purge.sort()
        totalEvents = len(purge)

        log.info("Removing {len} events older than {cutoff}...", len=len(purge), cutoff=self.cutoff)

        numEventsRemoved = -1
        totalRemoved = 0
        while numEventsRemoved:
            numEventsRemoved = (yield self.purgeResources(purge[:self.batchSize]))
            if numEventsRemoved:
                totalRemoved += numEventsRemoved
                log.debug("  Removed {removed} of {total} events...", removed=totalRemoved, total=totalEvents)
                purge = purge[numEventsRemoved:]

        if totalRemoved == 0:
            log.info("No events were removed")
        elif totalRemoved == 1:
            log.info("1 event was removed in total")
        else:
            log.info("{total} events were removed in total", total=totalRemoved)

        returnValue(totalRemoved)
Exemple #10
0
    def doWork(self):

        if self.debug:
            # Turn on debug logging for this module
            config.LogLevels[__name__] = "debug"
        else:
            config.LogLevels[__name__] = "info"
        config.update()

        homes = yield self.getMatchingHomeUIDs()
        if not homes:
            log.info("No homes to process")
            returnValue(0)

        if self.dryrun:
            log.info("Purge dry run only")

        log.info("Searching for old events...")

        purge = set()
        homes = yield self.getMatchingHomeUIDs()
        for home_id, owner_uid in homes:
            purge.update((yield self.getResourcesToPurge(home_id, owner_uid)))

        if self.dryrun:
            eventCount = len(purge)
            if eventCount == 0:
                log.info("No events are older than %s" % (self.cutoff,))
            elif eventCount == 1:
                log.info("1 event is older than %s" % (self.cutoff,))
            else:
                log.info("%d events are older than %s" % (eventCount, self.cutoff))
            returnValue(eventCount)

        purge = list(purge)
        purge.sort()
        totalEvents = len(purge)

        log.info("Removing {} events older than {}...".format(len(purge), self.cutoff,))

        numEventsRemoved = -1
        totalRemoved = 0
        while numEventsRemoved:
            numEventsRemoved = (yield self.purgeResources(purge[:self.batchSize]))
            if numEventsRemoved:
                totalRemoved += numEventsRemoved
                log.debug("  Removed {} of {} events...".format(totalRemoved, totalEvents))
                purge = purge[numEventsRemoved:]

        if totalRemoved == 0:
            log.info("No events were removed")
        elif totalRemoved == 1:
            log.info("1 event was removed in total")
        else:
            log.info("%d events were removed in total" % (totalRemoved,))

        returnValue(totalRemoved)
Exemple #11
0
    def testComplianceClasses(self):
        resource = CalDAVResource()

        config.EnableProxyPrincipals = True
        self.assertTrue("calendar-proxy" in resource.davComplianceClasses())

        config.EnableProxyPrincipals = False
        self.assertTrue(
            "calendar-proxy" not in resource.davComplianceClasses())

        self.assertTrue(
            "calendarserver-group-sharee" in resource.davComplianceClasses())
        config.Sharing.Calendars.Groups.Enabled = False
        config.update()
        self.assertTrue("calendarserver-group-sharee" not in
                        resource.davComplianceClasses())
        config.Sharing.Calendars.Groups.Enabled = True
        config.update()

        self.assertTrue(
            "calendarserver-group-attendee" in resource.davComplianceClasses())
        config.GroupAttendees.Enabled = False
        config.update()
        self.assertTrue("calendarserver-group-attendee" not in
                        resource.davComplianceClasses())
        config.GroupAttendees.Enabled = True
        config.update()
    def testUpdateAndReload(self):
        self.assertEquals(config.HTTPPort, 0)

        config.load(self.testConfig)

        self.assertEquals(config.HTTPPort, 8008)

        config.update({"HTTPPort": 80})

        self.assertEquals(config.HTTPPort, 80)

        config.reload()

        self.assertEquals(config.HTTPPort, 8008)
    def testUpdateAndReload(self):
        self.assertEquals(config.HTTPPort, 0)

        config.load(self.testConfig)

        self.assertEquals(config.HTTPPort, 8008)

        config.update({"HTTPPort": 80})

        self.assertEquals(config.HTTPPort, 80)

        config.reload()

        self.assertEquals(config.HTTPPort, 8008)
    def testComplianceClasses(self):
        resource = CalDAVResource()

        config.EnableProxyPrincipals = True
        self.assertTrue("calendar-proxy" in resource.davComplianceClasses())

        config.EnableProxyPrincipals = False
        self.assertTrue("calendar-proxy" not in resource.davComplianceClasses())

        self.assertTrue("calendarserver-group-sharee" in resource.davComplianceClasses())
        config.Sharing.Calendars.Groups.Enabled = False
        config.update()
        self.assertTrue("calendarserver-group-sharee" not in resource.davComplianceClasses())
        config.Sharing.Calendars.Groups.Enabled = True
        config.update()

        self.assertTrue("calendarserver-group-attendee" in resource.davComplianceClasses())
        config.GroupAttendees.Enabled = False
        config.update()
        self.assertTrue("calendarserver-group-attendee" not in resource.davComplianceClasses())
        config.GroupAttendees.Enabled = True
        config.update()
    def testMerge(self):
        self.assertEquals(config.MultiProcess.StaggeredStartup.Enabled, False)

        config.update({"MultiProcess": {}})

        self.assertEquals(config.MultiProcess.StaggeredStartup.Enabled, False)
    def testUpdating(self):
        self.assertEquals(config.SSLPort, 0)

        config.update({"SSLPort": 8443})

        self.assertEquals(config.SSLPort, 8443)
    def testDirectoryService_unknownType(self):
        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "twistedcaldav.test.test_config.SuperDuperAwesomeService"}})
Exemple #18
0
# Load in suitable file extension/content-type map from OS X
#

from txweb2.static import File, loadMimeTypes

File.contentTypes = loadMimeTypes((
    "/etc/apache2/mime.types",
    "/etc/httpd/mime.types",
))

#
# Register additional WebDAV XML elements
#

from twistedcaldav.config import config
config.update()

import twistedcaldav.caldavxml
import twistedcaldav.carddavxml
import twistedcaldav.mkcolxml
import twistedcaldav.customxml
import twistedcaldav.timezonexml

twistedcaldav  # Shhh.. pyflakes

#
# DefaultHTTPHandler
#

from txweb2.http_headers import DefaultHTTPHandler, last, singleHeader
    def testMerge(self):
        self.assertEquals(config.MultiProcess.StaggeredStartup.Enabled, False)

        config.update({"MultiProcess": {}})

        self.assertEquals(config.MultiProcess.StaggeredStartup.Enabled, False)
    def testUpdating(self):
        self.assertEquals(config.SSLPort, 0)

        config.update({"SSLPort": 8443})

        self.assertEquals(config.SSLPort, 8443)
    def testDirectoryService_unknownType(self):
        self.assertEquals(config.DirectoryService.type, "twistedcaldav.directory.xmlfile.XMLDirectoryService")
        self.assertEquals(config.DirectoryService.params.xmlFile, "accounts.xml")

        config.update({"DirectoryService": {"type": "twistedcaldav.test.test_config.SuperDuperAwesomeService"}})