dont print the exceptions
[plcapi.git] / PLC / SFA.py
index 30ef40b..cef1ea4 100644 (file)
@@ -1,31 +1,39 @@
-from types import StringTypes
 import traceback
+from types import StringTypes
+from PLC.Sites import Sites
 try:
     from sfa.plc.sfaImport import sfaImport, cleanup_string
-    from sfa.plc.api import GeniAPI
     from sfa.util.debug import log
-    packages_imported = True  
+    packages_imported = True
 except:
     packages_imported = False
-    traceback.print_exc()
+    
 
 def wrap_exception(method):
     def wrap(*args, **kwds):
         try:
             return method(*args, **kwds)
         except:
-            traceback.print_exc()
-    return wrap 
+            pass
+            #traceback.print_exc()
+    return wrap
+
+def required_packages_imported(method):
+    def wrap(*args, **kwds):
+        if packages_imported:
+            return method(*args, **kwds)
+        else:
+            return
+    return wrap         
 
 class SFA:
     
     @wrap_exception
-    def __init__(self):
-        self.log = log
+    @required_packages_imported
+    def __init__(self, api):
+        
+        self.api = api
         self.sfa = sfaImport()
-        geniapi = GeniAPI()
-        self.plcapi = geniapi.plshell
-        self.auth = geniapi.plauth
 
         if self.sfa.level1_auth:
             self.authority = self.sfa.level1_auth
@@ -34,7 +42,7 @@ class SFA:
 
 
     def get_login_base(self, site_id):
-        sites = self.plcapi.GetSites(self.auth, [site_id], ['login_base'])
+        sites = Sites(self.api, [site_id], ['login_base'])
         login_base = sites[0]['login_base']
         return login_base
         
@@ -58,6 +66,7 @@ class SFA:
         return login_bases
 
     @wrap_exception
+    @required_packages_imported
     def update_record(self, object, type, login_bases = None):
         try:
             # determine this objects site and login_base
@@ -84,11 +93,12 @@ class SFA:
             for key in keys:
                 if object.has_key(key):
                     id = object[key]
-            traceback.print_exc(file = self.log)
-            print >> self.log, "Error importing %s record for %s into geni db: %s" % \
+            traceback.print_exc(file = log)
+            print >> log, "Error importing %s record for %s into geni db: %s" % \
                   (type, id, e.message)
 
     @wrap_exception
+    @required_packages_imported
     def delete_record(self, object, type, login_base = None):
 
         if not login_base: