[CalendarServer-changes] [9328] CalendarServer/trunk/calendarserver/tools/shell/cmd.py
source_changes at macosforge.org
source_changes at macosforge.org
Mon Jun 4 15:41:15 PDT 2012
Revision: 9328
http://trac.macosforge.org/projects/calendarserver/changeset/9328
Author: wsanchez at apple.com
Date: 2012-06-04 15:41:14 -0700 (Mon, 04 Jun 2012)
Log Message:
-----------
Add directoryRecordWithID()
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/tools/shell/cmd.py
Modified: CalendarServer/trunk/calendarserver/tools/shell/cmd.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/shell/cmd.py 2012-06-04 22:14:45 UTC (rev 9327)
+++ CalendarServer/trunk/calendarserver/tools/shell/cmd.py 2012-06-04 22:41:14 UTC (rev 9328)
@@ -111,6 +111,24 @@
else:
returnValue(())
+ def directoryRecordWithID(self, id):
+ """
+ Obtains a directory record corresponding to the given C{id}.
+ C{id} is assumed to be a record UID. For convenience, may
+ also take the form C{type:name}, where C{type} is a record
+ type and C{name} is a record short name.
+ @return: an C{IDirectoryRecord}
+ """
+ directory = self.protocol.service.directory
+
+ record = directory.recordWithUID(id)
+
+ if not record:
+ # Try type:name form
+ pass
+
+ return record
+
def commands(self, showHidden=False):
"""
@return: an iterable of C{(name, method)} tuples, where
@@ -556,19 +574,19 @@
"""
Print information about a principal.
- usage: print_principal uid
+ usage: print_principal id
"""
if tokens:
- uid = tokens.pop(0)
+ id = tokens.pop(0)
else:
- raise UsageError("UID required")
+ raise UsageError("Principal ID required")
if tokens:
raise UnknownArguments(tokens)
directory = self.protocol.service.directory
- record = directory.recordWithUID(uid)
+ record = self.directoryRecordWithID(id)
if record:
self.terminal.write((yield recordInfo(directory, record)))
@@ -595,16 +613,15 @@
directory = self.protocol.service.directory
- uids = tuple(tokens)
+ records = []
+ for id in tokens:
+ record = self.directoryRecordWithID(id)
+ if record:
+ records.append(record)
+ else:
+ self.terminal.write("Unknown UID: %s\n" % (id,))
- error = False
- for uid in uids:
- record = directory.recordWithUID(uid)
- if not record:
- self.terminal.write("Unknown UID: %s\n" % (uid,))
- error = True
-
- if error:
+ if None in records:
self.terminal.write("Aborting.\n")
return
@@ -619,9 +636,9 @@
toPurge = "purged"
total = 0
- for uid in uids:
+ for record in records:
count, assignments = (yield purgeUID(
- uid, directory, rootResource,
+ record.uid, directory, rootResource,
verbose = False,
dryrun = dryRun,
completely = completely,
@@ -631,7 +648,7 @@
self.terminal.write(
"%d events %s for UID %s.\n"
- % (count, toPurge, uid)
+ % (count, toPurge, record.uid)
)
self.terminal.write(
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20120604/8a2255e8/attachment-0001.html>
More information about the calendarserver-changes
mailing list