[CalendarServer-changes] [3935] CalendarServer/branches/users/wsanchez/deployment/bin/caldav_warmup
source_changes at macosforge.org
source_changes at macosforge.org
Mon Mar 30 22:13:02 PDT 2009
Revision: 3935
http://trac.macosforge.org/projects/calendarserver/changeset/3935
Author: wsanchez at apple.com
Date: 2009-03-30 22:13:02 -0700 (Mon, 30 Mar 2009)
Log Message:
-----------
Add MM calendar to F/B set.
Modified Paths:
--------------
CalendarServer/branches/users/wsanchez/deployment/bin/caldav_warmup
Modified: CalendarServer/branches/users/wsanchez/deployment/bin/caldav_warmup
===================================================================
--- CalendarServer/branches/users/wsanchez/deployment/bin/caldav_warmup 2009-03-31 00:38:29 UTC (rev 3934)
+++ CalendarServer/branches/users/wsanchez/deployment/bin/caldav_warmup 2009-03-31 05:13:02 UTC (rev 3935)
@@ -37,7 +37,9 @@
from twisted.python import log
from twisted.python.reflect import namedClass
+from twisted.web2.dav import davxml
+from twistedcaldav import caldavxml
from twistedcaldav.resource import isPseudoCalendarCollectionResource
from twistedcaldav.static import CalDAVFile, CalendarHomeFile
from twistedcaldav.config import config, defaultConfigFile
@@ -170,14 +172,15 @@
configFileName = None
outputFileName = None
- calendarHomes = set()
+ directory = None
+ calendarHomePaths = set()
records = set()
allRecords = False
readCalendarData = True
readProperties = True
readIndexes = True
- observer = log.FileLogObserver(open("/ngs/app/icalt/warmup/warmup.log", "a"))
+ observer = log.FileLogObserver(open("/dev/stdout", "a"))
log.addObserver(observer.emit)
def checkExists(resource):
@@ -205,11 +208,7 @@
readIndexes = False
elif opt in ("-H", "--home"):
- path = abspath(arg)
- parent = CalDAVFile(dirname(abspath(path)))
- calendarHome = CalendarHomeFile(arg, parent, dummyDirectoryRecord)
- checkExists(calendarHome)
- calendarHomes.add(calendarHome)
+ calendarHomePaths.add(arg)
elif opt in ("-r", "--record"):
try:
@@ -228,10 +227,25 @@
if args:
usage("Too many arguments: %s" % (" ".join(args),))
- if records or allRecords:
- config = loadConfig(configFileName)
+ if records or allRecords or calendarHomePaths:
+ loadConfig(configFileName)
directory = getDirectory()
+ calendarHomes = set()
+
+ for path in calendarHomePaths:
+ path = abspath(path)
+ guid = os.path.basename(path)
+
+ record = directory.recordWithGUID(guid)
+ if record is None:
+ record = dummyDirectoryRecord
+
+ parent = CalDAVFile(dirname(abspath(path)))
+ calendarHome = CalendarHomeFile(arg, parent, record)
+ checkExists(calendarHome)
+ calendarHomes.add(calendarHome)
+
for record in records:
recordType, shortName = record
calendarHome = directory.calendarHomeForShortName(recordType, shortName)
@@ -255,6 +269,7 @@
log.msg("%.2f%% (%d of %d)" % (100.0 * n/N, n, N))
processCalendarHome(
calendarHome,
+ directory = directory,
readCalendarData = readCalendarData,
readProperties = readProperties,
readIndexes = readIndexes,
@@ -262,6 +277,7 @@
def processCalendarHome(
calendarHome,
+ directory = None,
readCalendarData = True,
readProperties = True,
readIndexes = True
@@ -280,7 +296,41 @@
readProperties = readProperties,
readIndexes = readIndexes,
)
+ # OMG NO SRLY FIXME
+ if childName == "meetingmaker":
+ #
+ # Add calendar to F/B set
+ #
+ if calendarHome.record == dummyDirectoryRecord:
+ print "Unable to edit F/B info for %s" % (calendarHome,)
+ continue
+ calendarURL = "/calendars/__uids__/%s/meetingmaker" % (calendarHome.record.guid,)
+
+ inbox = calendarHome.getChild("inbox")
+
+ if not inbox.hasDeadProperty(caldavxml.CalendarFreeBusySet):
+ needFB = True
+ hrefs = []
+ else:
+ fbProp = inbox.readDeadProperty(caldavxml.CalendarFreeBusySet)
+ hrefs = list(fbProp.childrenOfType(davxml.HRef))
+
+ needFB = False
+
+ for href in hrefs:
+ print "*"*10, href
+ if str(href) == calendarURL:
+ break
+ else:
+ needFB = True
+
+ if needFB:
+ log.msg("Adding Meeting Maker calendar to F/B set for %s" % (calendarHome,))
+ hrefs.append(davxml.HRef(calendarURL))
+ fbProp = caldavxml.CalendarFreeBusySet(*hrefs)
+ inbox.writeDeadProperty(fbProp)
+
def processCalendar(
calendarCollection,
readCalendarData = True,
@@ -299,7 +349,7 @@
if calendarCollection.fp.basename() != "outbox":
raise
- for name in calendarCollection.listChildren()
+ for name in calendarCollection.listChildren():
child = calendarCollection.getChild(name)
if readCalendarData:
@@ -308,7 +358,7 @@
readPropertiesForResource(child)
def readPropertiesForResource(resource):
- log.msg(resource)
+ #log.msg(resource)
for qname in tuple(resource.deadProperties().list()):
try:
property = resource.readDeadProperty(qname)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20090330/f1ba5fd9/attachment-0001.html>
More information about the calendarserver-changes
mailing list