commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r6058 - trunk/gnue-common/utils/helpers


From: jcater
Subject: r6058 - trunk/gnue-common/utils/helpers
Date: Fri, 23 Jul 2004 13:44:43 -0500 (CDT)

Author: jcater
Date: 2004-07-23 13:44:42 -0500 (Fri, 23 Jul 2004)
New Revision: 6058

Modified:
   trunk/gnue-common/utils/helpers/info.py
Log:
updated website code to use plugin system to find databases

Modified: trunk/gnue-common/utils/helpers/info.py
===================================================================
--- trunk/gnue-common/utils/helpers/info.py     2004-07-23 17:34:57 UTC (rev 
6057)
+++ trunk/gnue-common/utils/helpers/info.py     2004-07-23 18:44:42 UTC (rev 
6058)
@@ -1,6 +1,7 @@
 import sys, os, string, time, gnue
 from files import openModuleFile, importModule, SubheadedFile, SVN_BASE
 from StringIO import StringIO
+from gnue.common.apps import plugin
 
 ##
 ##
@@ -27,24 +28,28 @@
 class DatasourceInfo:
   def __init__(self):
     m = importModule('common','src/datasources', 'drivers')
-    vendors = m.DRIVERS
-    aliases = m.ALIASES
 
+    vendorDbMap = {}
+    for (name, result) in (plugin.list ('gnue.common.datasources.drivers', 
'Connection')).items ():
+      first, second = name.split('.')[4:6]
+      try:
+        dm = vendorDbMap[first]
+      except KeyError:
+        dm = vendorDbMap[first] = []
+      dm.append(second)
+
+    vendors = vendorDbMap.keys()
+    aliases = []  # TODO
+
     self.vendorMap = vendorMap = {}
 
     for vendor in vendors:
-
       # 'special' driver isn't of interest to us
       if vendor == 'special':
         continue
 
-      try:
-        drivers = importModule('common','src/datasources/drivers', 
vendor).DRIVERS
-      except ImportError:
-        print "WARNING: Unable to load datasource top-level driver %s" % vendor
-        continue
+      drivers = vendorDbMap[vendor]
 
-
       try:
         dbinfo = Info(vendor, 
importModule('common','src/datasources/drivers/%s' % vendor,'Info'))
       except ImportError:
@@ -59,6 +64,7 @@
       driverMap = {}
       vendorMap[dbname] = [dbinfo, driverMap]
       for driver in drivers:
+        print "  Driver: %s" % driver
         try:
           dinfo = Info(driver, 
importModule('common','src/datasources/drivers/%s/%s' % (vendor,driver),'Info'))
         except ImportError:





reply via email to

[Prev in Thread] Current Thread [Next in Thread]