--- a/src/pyams_utils/interfaces/zeo.py Mon Feb 05 10:50:20 2018 +0100
+++ b/src/pyams_utils/interfaces/zeo.py Mon Feb 05 13:53:51 2018 +0100
@@ -47,15 +47,15 @@
default='1')
username = TextLine(title=_("ZEO user name"),
- description=_("User name on ZEO server"),
+ description=_("User name on ZEO server; only for ZEO server before 5.0"),
required=False)
password = Password(title=_("ZEO password"),
- description=_("User password on ZEO server"),
+ description=_("User password on ZEO server; only for ZEO server before 5.0"),
required=False)
server_realm = TextLine(title=_("ZEO server realm"),
- description=_("Realm name on ZEO server"),
+ description=_("Realm name on ZEO server; only for ZEO server before 5.0"),
required=False)
blob_dir = TextLine(title=_("BLOBs directory"),
@@ -76,5 +76,5 @@
def update(self, settings):
"""Update internal fields with given settings dict"""
- def get_connection(self, wait=False, get_storage=False):
+ def get_connection(self, wait_timeout=30, get_storage=False):
"""Open ZEO connection with given settings"""
Binary file src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.mo has changed
--- a/src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po Mon Feb 05 10:50:20 2018 +0100
+++ b/src/pyams_utils/locales/fr/LC_MESSAGES/pyams_utils.po Mon Feb 05 13:53:51 2018 +0100
@@ -4,7 +4,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-01-26 15:31+0100\n"
+"POT-Creation-Date: 2018-02-05 13:53+0100\n"
"PO-Revision-Date: 2015-01-18 01:01+0100\n"
"Last-Translator: Thierry Florac <tflorac@ulthar.net>\n"
"Language-Team: French\n"
@@ -627,25 +627,30 @@
msgstr "Code utilisateur"
#: src/pyams_utils/interfaces/zeo.py:50
-msgid "User name on ZEO server"
+msgid "User name on ZEO server; only for ZEO server before 5.0"
msgstr ""
-"Code utilisateur nécessaire lorsque le serveur demande une authentification"
+"Code utilisateur nécessaire lorsque le serveur demande une authentification; "
+"pour les serveurs ZEO avant la version 5.0 uniquement!!"
#: src/pyams_utils/interfaces/zeo.py:53
msgid "ZEO password"
msgstr "Mot de passe"
#: src/pyams_utils/interfaces/zeo.py:54
-msgid "User password on ZEO server"
-msgstr "Mot de passe correspondant au code utilisateur indiqué"
+msgid "User password on ZEO server; only for ZEO server before 5.0"
+msgstr ""
+"Mot de passe correspondant au code utilisateur indiqué; pour les serveurs "
+"ZEO avant la version 5.0 uniquement!!"
#: src/pyams_utils/interfaces/zeo.py:57
msgid "ZEO server realm"
msgstr "Domaine"
#: src/pyams_utils/interfaces/zeo.py:58
-msgid "Realm name on ZEO server"
-msgstr "Nom du domaine d'authentification"
+msgid "Realm name on ZEO server; only for ZEO server before 5.0"
+msgstr ""
+"Nom du domaine d'authentification; pour les serveurs ZEO avant la version "
+"5.0 uniquement!!"
#: src/pyams_utils/interfaces/zeo.py:61
msgid "BLOBs directory"
@@ -749,3 +754,8 @@
#: src/pyams_utils/interfaces/__init__.py:51
msgid "Not an iterator"
msgstr "Ce n'est pas un itérateur"
+
+#~ msgid "User name on ZEO server"
+#~ msgstr ""
+#~ "Code utilisateur nécessaire lorsque le serveur demande une "
+#~ "authentification"
--- a/src/pyams_utils/locales/pyams_utils.pot Mon Feb 05 10:50:20 2018 +0100
+++ b/src/pyams_utils/locales/pyams_utils.pot Mon Feb 05 13:53:51 2018 +0100
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
-"POT-Creation-Date: 2018-01-26 15:31+0100\n"
+"POT-Creation-Date: 2018-02-05 13:53+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -624,7 +624,7 @@
msgstr ""
#: ./src/pyams_utils/interfaces/zeo.py:50
-msgid "User name on ZEO server"
+msgid "User name on ZEO server; only for ZEO server before 5.0"
msgstr ""
#: ./src/pyams_utils/interfaces/zeo.py:53
@@ -632,7 +632,7 @@
msgstr ""
#: ./src/pyams_utils/interfaces/zeo.py:54
-msgid "User password on ZEO server"
+msgid "User password on ZEO server; only for ZEO server before 5.0"
msgstr ""
#: ./src/pyams_utils/interfaces/zeo.py:57
@@ -640,7 +640,7 @@
msgstr ""
#: ./src/pyams_utils/interfaces/zeo.py:58
-msgid "Realm name on ZEO server"
+msgid "Realm name on ZEO server; only for ZEO server before 5.0"
msgstr ""
#: ./src/pyams_utils/interfaces/zeo.py:61
--- a/src/pyams_utils/zodb.py Mon Feb 05 10:50:20 2018 +0100
+++ b/src/pyams_utils/zodb.py Mon Feb 05 13:53:51 2018 +0100
@@ -33,8 +33,7 @@
from pyams_utils.vocabulary import vocabulary_config
from pyramid.events import subscriber
from pyramid_zodbconn import get_uris, db_from_uri
-from ZEO import ClientStorage
-from ZODB import DB
+from ZEO import DB
from zope.container.contained import Contained
from zope.interface import implementer
from zope.schema import getFieldNames
@@ -143,25 +142,24 @@
if key in names:
setattr(self, key, value)
- def get_connection(self, wait=False, get_storage=False):
+ def get_connection(self, wait_timeout=30, get_storage=False):
"""Create ZEO client connection from current settings
- :param boolean wait: should connection wait until storage is ready
+ :param boolean wait_timeout: connection timeout, in seconds
:param boolean get_storage: if *True*, the method should return a tuple containing
storage and DB objects; otherwise only DB object is returned
:return: tuple containing ZEO client storage and DB object (if *get_storage* argument is
set to *True*), or only DB object otherwise
"""
- storage = ClientStorage.ClientStorage((self.server_name, self.server_port),
- storage=self.storage,
- username=self.username or '',
- password=self.password or '',
- realm=self.server_realm,
- blob_dir=self.blob_dir,
- shared_blob_dir=self.shared_blob_dir,
- wait=wait)
- db = DB(storage)
- return (storage, db) if get_storage else db
+ db = DB((self.server_name, self.server_port),
+ storage=self.storage,
+ username=self.username or '',
+ password=self.password or '',
+ realm=self.server_realm,
+ blob_dir=self.blob_dir,
+ shared_blob_dir=self.shared_blob_dir,
+ wait_timeout=wait_timeout)
+ return (db.storage, db) if get_storage else db
@property
def connection(self):
@@ -170,7 +168,7 @@
# Context manager methods
def __enter__(self):
self._storage, self._db = self.get_connection(get_storage=True)
- self._connection = self._db.open()
+ self._connection = self._db.open_then_close_db_when_connection_closes()
return self._connection.root()
def __exit__(self, exc_type, exc_val, exc_tb):