[CalendarServer-changes] [7649] CalendarServer/trunk/calendarserver/tools/dbinspect.py
source_changes at macosforge.org
source_changes at macosforge.org
Wed Jun 22 13:52:56 PDT 2011
Revision: 7649
http://trac.macosforge.org/projects/calendarserver/changeset/7649
Author: cdaboo at apple.com
Date: 2011-06-22 13:52:55 -0700 (Wed, 22 Jun 2011)
Log Message:
-----------
Added command to find events contain some text.
Modified Paths:
--------------
CalendarServer/trunk/calendarserver/tools/dbinspect.py
Modified: CalendarServer/trunk/calendarserver/tools/dbinspect.py
===================================================================
--- CalendarServer/trunk/calendarserver/tools/dbinspect.py 2011-06-22 20:52:09 UTC (rev 7648)
+++ CalendarServer/trunk/calendarserver/tools/dbinspect.py 2011-06-22 20:52:55 UTC (rev 7649)
@@ -307,6 +307,56 @@
returnValue(tuple(rows))
+class EventsByContent(Cmd):
+
+ _name = "Get Event Data by Searching its Text Data"
+
+ @inlineCallbacks
+ def doIt(self, txn):
+
+
+ uid = raw_input("Search for: ")
+ rows = yield self.getData(txn, uid)
+ if rows:
+ for owner, calendar, resource_id, resource, created, modified, data in rows:
+ shortname = UserNameFromUID(txn, owner)
+ table = tables.Table()
+ table.addRow(("User Name:", shortname,))
+ table.addRow(("Calendar:", calendar,))
+ table.addRow(("Resource Name:", resource))
+ table.addRow(("Resource ID:", resource_id))
+ table.addRow(("Created", created))
+ table.addRow(("Modified", modified))
+ print "\n"
+ table.printTable()
+ print data
+ else:
+ print "Could not find icalendar data"
+
+ @inlineCallbacks
+ def getData(self, txn, text):
+ ch = schema.CALENDAR_HOME
+ cb = schema.CALENDAR_BIND
+ co = schema.CALENDAR_OBJECT
+ rows = (yield Select(
+ [
+ ch.OWNER_UID,
+ cb.CALENDAR_RESOURCE_NAME,
+ co.RESOURCE_ID,
+ co.RESOURCE_NAME,
+ co.CREATED,
+ co.MODIFIED,
+ co.ICALENDAR_TEXT,
+ ],
+ From=ch.join(
+ cb, type="inner", on=(ch.RESOURCE_ID == cb.CALENDAR_HOME_RESOURCE_ID).And(
+ cb.BIND_MODE == _BIND_MODE_OWN)).join(
+ co, type="inner", on=(cb.CALENDAR_RESOURCE_ID == co.CALENDAR_RESOURCE_ID)),
+ Where=(co.ICALENDAR_TEXT.Contains(Parameter("Text"))),
+ ).on(txn, **{"Text": text}))
+ returnValue(tuple(rows))
+
+
class Purge(Cmd):
_name = "Purge all data from tables"
@@ -407,6 +457,7 @@
self.registerCommand(Events)
self.registerCommand(Event)
self.registerCommand(EventsByUID)
+ self.registerCommand(EventsByContent)
self.doDBInspect()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20110622/42233e76/attachment-0001.html>
More information about the calendarserver-changes
mailing list