oops, too much messing about
[nodemanager.git] / database.py
index 96664af..2c4dc49 100644 (file)
@@ -13,16 +13,22 @@ In order to maintain service when the node reboots during a network
 partition, the database is constantly being dumped to disk.
 """
 
+import sys
+
 import cPickle
 import threading
 import time
 
 import account
-import coresched
 import logger
 import tools
 import bwmon
 
+# hopefully temporary
+# is there a good reason to have this done here and not in a plugin ?
+try:    from coresched_lxc import CoreSched
+except: from coresched_vs  import CoreSched
+
 # We enforce minimum allocations to keep the clueless from hosing their slivers.
 # Disallow disk loans because there's currently no way to punish slivers over quota.
 MINIMUM_ALLOCATION = {'cpu_pct': 0,
@@ -120,8 +126,8 @@ It may be necessary in the future to do something smarter."""
         self._compute_effective_rspecs()
 
         try:
-            x = coresched.CoreSched()
-            x.adjustCores(self)
+            coresched = CoreSched()
+            coresched.adjustCores(self)
         except:
             logger.log_exc("database: exception while doing core sched")
 
@@ -152,6 +158,8 @@ It may be necessary in the future to do something smarter."""
                     if sliver.is_running():
                         logger.verbose ("database: sync : ensure_create'ing 'delegated' sliver %s"%name)
                         sliver.ensure_created(rec)
+            except SystemExit as e:
+                sys.exit(e)
             except:
                 logger.log_exc("database: sync failed to handle sliver",name=name)