dbapi.py
changeset 2665 0c6281487f90
parent 2657 de974465d381
child 2770 356e9d7c356d
child 3110 757d36162235
--- a/dbapi.py	Mon Aug 03 16:50:22 2009 +0200
+++ b/dbapi.py	Mon Aug 03 17:20:20 2009 +0200
@@ -101,24 +101,14 @@
         from cubicweb.server.repository import Repository
         return Repository(config, vreg=vreg)
     else: # method == 'pyro'
-        from Pyro import core, naming
-        from Pyro.errors import NamingError, ProtocolError
-        core.initClient(banner=0)
-        nsid = ':%s.%s' % (config['pyro-ns-group'], database)
-        locator = naming.NameServerLocator()
         # resolve the Pyro object
+        from logilab.common.pyro_ext import ns_get_proxy
         try:
-            nshost, nsport = config['pyro-ns-host'], config['pyro-ns-port']
-            uri = locator.getNS(nshost, nsport).resolve(nsid)
-        except ProtocolError:
-            raise ConnectionError('Could not connect to the Pyro name server '
-                                  '(host: %s:%i)' % (nshost, nsport))
-        except NamingError:
-            raise ConnectionError('Could not get repository for %s '
-                                  '(not registered in Pyro), '
-                                  'you may have to restart your server-side '
-                                  'instance' % nsid)
-        return core.getProxyForURI(uri)
+            return ns_get_proxy(database,
+                                defaultnsgroup=config['pyro-ns-group'],
+                                nshost=config['pyro-ns-host'])
+        except Exception, ex:
+            raise ConnectionError(str(ex))
 
 def repo_connect(repo, login, password, cnxprops=None):
     """Constructor to create a new connection to the CubicWeb repository.
@@ -132,9 +122,8 @@
         cnx.vreg = repo.vreg
     return cnx
 
-def connect(database=None, login=None, password=None, host=None,
-            group=None, cnxprops=None, port=None, setvreg=True, mulcnx=True,
-            initlog=True):
+def connect(database=None, login=None, password=None, host=None, group=None,
+            cnxprops=None, setvreg=True, mulcnx=True, initlog=True):
     """Constructor for creating a connection to the CubicWeb repository.
     Returns a Connection object.
 
@@ -145,8 +134,6 @@
     config = cwconfig.CubicWebNoAppConfiguration()
     if host:
         config.global_set_option('pyro-ns-host', host)
-    if port:
-        config.global_set_option('pyro-ns-port', port)
     if group:
         config.global_set_option('pyro-ns-group', group)
     cnxprops = cnxprops or ConnectionProperties()