[CalendarServer-changes] [2639] CalendarServer/branches/sqlpropstore-2629/twistedcaldav
source_changes at macosforge.org
source_changes at macosforge.org
Sat Jun 28 10:59:54 PDT 2008
Revision: 2639
http://trac.macosforge.org/projects/calendarserver/changeset/2639
Author: cdaboo at apple.com
Date: 2008-06-28 10:59:54 -0700 (Sat, 28 Jun 2008)
Log Message:
-----------
Explicitly close the sqlite DB after each time it is used to prevent too many open files.
Modified Paths:
--------------
CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py
CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py
Modified: CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py
===================================================================
--- CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py 2008-06-28 15:27:28 UTC (rev 2638)
+++ CalendarServer/branches/sqlpropstore-2629/twistedcaldav/sqlprops.py 2008-06-28 17:59:54 UTC (rev 2639)
@@ -374,6 +374,7 @@
pname = self._decodePropertyName(row[1])
pvalue = self._decodePropertyValue(pname, row[2])
self.cache.setdefault(rname, {})[pname] = pvalue
+ self._db_close()
def getOnePropertyForResource(self, rname, pname):
"""
@@ -394,12 +395,14 @@
sqlpname = self._decodePropertyName(row[0])
sqlpvalue = self._decodePropertyValue(sqlpname, row[1])
self.cache[rname][sqlpname] = sqlpvalue
+ self._db_close()
# Get the property and do negative caching if not present
return self.cache[rname].setdefault(pname, None)
else:
log.debug("[%s] Getting property {%s}%s for %s" % (self.instance, pname[0], pname[1], rname,))
pxml = self._db_value_for_sql("select PROPERTYXML from PROPERTIES where RESOURCENAME = :1 and PROPERTYNAME = :2", rname, self._encodePropertyName(pname))
+ self._db_close()
pvalue = self._decodePropertyValue(pname, pxml)
return pvalue
@@ -421,6 +424,7 @@
pname = self._decodePropertyName(row[0])
pvalue = self._decodePropertyValue(pname, row[1])
properties[pname] = pvalue
+ self._db_close()
return properties
@@ -438,6 +442,7 @@
log.debug("[%s] Setting property {%s}%s for %s" % (self.instance, pname[0], pname[1], rname,))
self._add_to_db(rname, self._encodePropertyName(pname), property.toxml(), property.hidden)
self._db_commit()
+ self._db_close()
if self.use_cache and self.cache.has_key(rname):
self.cache[rname][pname] = property
@@ -455,6 +460,7 @@
for property in properties:
self._add_to_db(rname, self._encodePropertyName(property.qname()), property.toxml(), property.hidden)
self._db_commit()
+ self._db_close()
if self.use_cache and self.cache.has_key(rname):
for property in properties:
@@ -471,6 +477,7 @@
log.debug("[%s] Removing property {%s}%s from %s" % (self.instance, pname[0], pname[1], rname,))
self._delete_from_db(rname, self._encodePropertyName(pname))
self._db_commit()
+ self._db_close()
if self.use_cache and self.cache.has_key(rname):
self.cache[rname][pname] = None
@@ -485,6 +492,7 @@
log.debug("[%s] Removing all properties from %s" % (self.instance, rname,))
self._delete_all_from_db(rname)
self._db_commit()
+ self._db_close()
if self.use_cache:
try:
@@ -508,6 +516,7 @@
log.debug("[%s] Listing all properties for %s via query" % (self.instance, rname,))
for row in self._db_execute("select PROPERTYNAME from PROPERTIES where RESOURCENAME = :1", rname):
members.add(self._decodePropertyName(row[0]))
+ self._db_close()
return members
def _add_to_db(self, rname, pname, pxml, hidden):
Modified: CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py
===================================================================
--- CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py 2008-06-28 15:27:28 UTC (rev 2638)
+++ CalendarServer/branches/sqlpropstore-2629/twistedcaldav/test/test_sqlprops.py 2008-06-28 17:59:54 UTC (rev 2639)
@@ -14,13 +14,11 @@
# limitations under the License.
##
-from twistedcaldav.ical import Component
-from twisted.web2.dav.element.rfc2518 import DisplayName
-
import os
from twisted.web2 import responsecode
from twisted.web2.dav import davxml
+from twisted.web2.dav.element.rfc2518 import DisplayName
from twisted.web2.dav.fileop import put
from twisted.web2.dav.resource import TwistedGETContentMD5
from twisted.web2.dav.test.util import serialize
@@ -29,6 +27,8 @@
from twisted.web2.test.test_server import SimpleRequest
from twistedcaldav import caldavxml
+from twistedcaldav.config import config
+from twistedcaldav.ical import Component
from twistedcaldav.root import RootResource
from twistedcaldav.sqlprops import sqlPropertyStore, SQLPropertiesDatabase
from twistedcaldav.static import CalDAVFile
@@ -52,6 +52,11 @@
caldavxml.CalendarDescription.fromString("My Calendar"),
)
+ def setUp(self):
+ config.PropertyStore = "SQL"
+ config.updatePropertyStore()
+ super(SQLProps, self).setUp()
+
def _setUpIndex(self):
self.collection_name, self.collection_uri = self.mkdtemp("sql")
rsrc = CalDAVFile(os.path.join(self.collection_name, "file.ics"))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20080628/cfc38dcc/attachment-0001.html
More information about the calendarserver-changes
mailing list