[CalendarServer-changes] [8141] CalendarServer/trunk/calendarserver/tools/calverify.py
source_changes at macosforge.org
source_changes at macosforge.org
Tue Oct 4 05:03:06 PDT 2011
Revision: 8141
http://trac.macosforge.org/projects/calendarserver/changeset/8141
Author: cdaboo at apple.com
Date: 2011-10-04 05:03:06 -0700 (Tue, 04 Oct 2011)
Log Message:
-----------
Improvements.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/tools/calverify.py
Modified: CalendarServer/trunk/calendarserver/tools/calverify.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/calverify.py 2011-10-04 12:00:20 UTC (rev 8140)
+++ CalendarServer/trunk/calendarserver/tools/calverify.py 2011-10-04 12:03:06 UTC (rev 8141)
@@ -279,7 +279,10 @@
cb = schema.CALENDAR_BIND
ch = schema.CALENDAR_HOME
tr = schema.TIME_RANGE
- kwds = { "Start" : pyCalendarTodatetime(start) }
+ kwds = {
+ "Start" : pyCalendarTodatetime(start),
+ "Max" : pyCalendarTodatetime(PyCalendarDateTime(1900, 1, 1))
+ }
rows = (yield Select(
[ch.OWNER_UID, co.RESOURCE_ID, co.ICALENDAR_UID, co.MD5, co.ORGANIZER,],
From=ch.join(
@@ -289,7 +292,7 @@
cb.CALENDAR_RESOURCE_NAME != "inbox").And(
co.ORGANIZER != "")).join(
tr, type="left", on=(co.RESOURCE_ID == tr.CALENDAR_OBJECT_RESOURCE_ID)),
- Where=(tr.START_DATE >= Parameter("Start")).Or(co.RECURRANCE_MAX == "1900-01-01"),
+ Where=(tr.START_DATE >= Parameter("Start")).Or(co.RECURRANCE_MAX == Parameter("Max")),
GroupBy=(ch.OWNER_UID, co.RESOURCE_ID, co.ICALENDAR_UID, co.MD5, co.ORGANIZER,),
).on(self.txn, **kwds))
returnValue(tuple(rows))
@@ -306,6 +309,7 @@
results_missing = []
results_mismatch = []
+ attendeeResIDs = {}
organized_len = len(self.organized)
organizer_div = 1 if organized_len < 100 else organized_len / 100
@@ -339,12 +343,17 @@
owner, resid, uid, _ignore_md5, _ignore_organizer = attendeeEvent
calendar = yield self.getCalendar(resid)
eachAttendeesOwnStatus[owner] = self.buildAttendeeStates(calendar, self.start, self.end, attendee_only=owner)
+ attendeeResIDs[(owner, uid)] = resid
# Look at each attendee in the organizer's meeting
for organizerAttendee, organizerViewOfStatus in organizerViewOfAttendees.iteritems():
broken = False
self.matched_attendee_to_organizer[uid].add(organizerAttendee)
+
+ attendeeRecord = self.directoryService().recordWithGUID(organizerAttendee)
+ if attendeeRecord is None or not attendeeRecord.thisServer():
+ continue
# If an entry for the attendee exists, then check whether attendee status matches
if organizerAttendee in eachAttendeesOwnStatus:
@@ -354,14 +363,14 @@
# Check that the difference is only cancelled or declined on the organizers side
for _ignore_organizerInstance, partstat in organizerViewOfStatus.difference(attendeeOwnStatus):
if partstat not in ("DECLINED", "CANCELLED"):
- results_mismatch.append((uid, organizer, organizerAttendee))
+ results_mismatch.append((uid, resid, organizer, organizerAttendee))
broken = True
break
# Check that the difference is only cancelled on the attendees side
for _ignore_attendeeInstance, partstat in attendeeOwnStatus.difference(organizerViewOfStatus):
if partstat not in ("CANCELLED",):
if not broken:
- results_mismatch.append((uid, organizer, organizerAttendee))
+ results_mismatch.append((uid, resid, organizer, organizerAttendee))
broken = True
break
@@ -369,7 +378,7 @@
else:
for _ignore_instance_id, partstat in organizerViewOfStatus:
if partstat not in ("DECLINED", "CANCELLED"):
- results_missing.append((uid, organizer, organizerAttendee,))
+ results_missing.append((uid, resid, organizer, organizerAttendee,))
broken = True
break
@@ -381,15 +390,16 @@
# Print table of results
table = tables.Table()
- table.addHeader(("Organizer", "Attendee", "Event UID",))
+ table.addHeader(("Organizer", "Attendee", "Event UID", "Organizer RID",))
for item in results_missing:
- uid, organizer, attendee = item
+ uid, resid, organizer, attendee = item
organizer_record = self.directoryService().recordWithGUID(organizer)
attendee_record = self.directoryService().recordWithGUID(attendee)
table.addRow((
"%s/%s (%s)" % (organizer_record.recordType if organizer_record else "-", organizer_record.shortNames[0] if organizer_record else "-", organizer,),
"%s/%s (%s)" % (attendee_record.recordType if attendee_record else "-", attendee_record.shortNames[0] if attendee_record else "-", attendee,),
uid,
+ resid,
))
self.output.write("\n")
@@ -398,15 +408,17 @@
# Print table of results
table = tables.Table()
- table.addHeader(("Organizer", "Attendee", "Event UID",))
+ table.addHeader(("Organizer", "Attendee", "Event UID", "Organizer RID", "Attendee RID",))
for item in results_mismatch:
- uid, organizer, attendee = item
+ uid, org_resid, organizer, attendee = item
organizer_record = self.directoryService().recordWithGUID(organizer)
attendee_record = self.directoryService().recordWithGUID(attendee)
table.addRow((
"%s/%s (%s)" % (organizer_record.recordType if organizer_record else "-", organizer_record.shortNames[0] if organizer_record else "-", organizer,),
"%s/%s (%s)" % (attendee_record.recordType if attendee_record else "-", attendee_record.shortNames[0] if attendee_record else "-", attendee,),
uid,
+ org_resid,
+ attendeeResIDs[(attendee, uid)],
))
self.output.write("\n")
@@ -449,13 +461,17 @@
continue
organizer = organizer[9:]
+ organizerRecord = self.directoryService().recordWithGUID(organizer)
+ if not organizerRecord.thisServer():
+ continue
+
if uid not in self.organized_byuid:
# Check whether attendee has all instances cancelled
if self.allCancelled(eachAttendeesOwnStatus):
continue
- missing.append((uid, attendee, organizer,))
+ missing.append((uid, attendee, organizer, resid,))
# If there is a miss we fix by removing the attendee data
if self.fix:
@@ -467,7 +483,7 @@
if self.allCancelled(eachAttendeesOwnStatus):
continue
- mismatched.append((uid, attendee, organizer,))
+ mismatched.append((uid, attendee, organizer, resid,))
# If there is a mismatch we fix by re-inviting the attendee
if self.fix:
@@ -476,20 +492,21 @@
# Print table of results
table = tables.Table()
- table.addHeader(("UID", "Owner", "Organizer",))
+ table.addHeader(("Organizer", "Attendee", "UID", "Attendee RID",))
missing.sort()
unique_set = set()
for item in missing:
- uid, attendee, organizer = item
+ uid, attendee, organizer, resid = item
unique_set.add(uid)
if organizer:
organizerRecord = self.directoryService().recordWithGUID(organizer)
organizer = "%s/%s (%s)" % (organizerRecord.recordType if organizerRecord else "-", organizerRecord.shortNames[0] if organizerRecord else "-", organizer,)
attendeeRecord = self.directoryService().recordWithGUID(attendee)
table.addRow((
+ organizer,
+ "%s/%s (%s)" % (attendeeRecord.recordType if attendeeRecord else "-", attendeeRecord.shortNames[0] if attendeeRecord else "-", attendee,),
uid,
- "%s/%s (%s)" % (attendeeRecord.recordType if attendeeRecord else "-", attendeeRecord.shortNames[0] if attendeeRecord else "-", attendee,),
- organizer,
+ resid,
))
self.output.write("\n")
@@ -498,18 +515,20 @@
# Print table of results
table = tables.Table()
- table.addHeader(("UID", "Owner", "Organizer",))
+ table.addHeader(("Organizer", "Attendee", "UID", "Organizer RID", "Attendee RID",))
mismatched.sort()
for item in mismatched:
- uid, attendee, organizer = item
+ uid, attendee, organizer, resid = item
if organizer:
organizerRecord = self.directoryService().recordWithGUID(organizer)
organizer = "%s/%s (%s)" % (organizerRecord.recordType if organizerRecord else "-", organizerRecord.shortNames[0] if organizerRecord else "-", organizer,)
attendeeRecord = self.directoryService().recordWithGUID(attendee)
table.addRow((
+ organizer,
+ "%s/%s (%s)" % (attendeeRecord.recordType if attendeeRecord else "-", attendeeRecord.shortNames[0] if attendeeRecord else "-", attendee,),
uid,
- "%s/%s (%s)" % (attendeeRecord.recordType if attendeeRecord else "-", attendeeRecord.shortNames[0] if attendeeRecord else "-", attendee,),
- organizer,
+ self.organized_byuid[uid][1],
+ resid,
))
self.output.write("\n")
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20111004/8551b7a5/attachment-0001.html>
More information about the calendarserver-changes
mailing list