placeholder
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 25 Jun 2010 13:50:39 +0000 (13:50 +0000)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 25 Jun 2010 13:50:39 +0000 (13:50 +0000)
nodemanager.py

index 4e82165..92b77ae 100755 (executable)
@@ -97,6 +97,8 @@ class NodeManager:
             self.getPLCDefaults(data, config)
             # tweak the 'vref' attribute from GetSliceFamily
             self.setSliversVref (data)
+            # check leases and adjust the 'alive' field in slivers
+            self.adjustReservedSlivers (data)
             # dump it too, so it can be retrieved later in case of comm. failure
             self.dumpSlivers(data)
             # log it for debug purposes, no matter what verbose is
@@ -110,6 +112,8 @@ class NodeManager:
             data = {}
             # for modules that request it though the 'persistent_data' property
             last_data=self.loadSlivers()
+            # adjust again with current time
+            self.adjustReservedSlivers (data)
         #  Invoke GetSlivers() functions from the callback modules
         for module in self.loaded_modules:
             logger.verbose('nodemanager: triggering %s.GetSlivers'%module.__name__)
@@ -158,6 +162,13 @@ class NodeManager:
             except:
                 logger.log_exc("nodemanager: Could not overwrite 'vref' attribute from 'GetSliceFamily'",name=sliver['name'])
 
+    def adjustReservedSlivers (self, data):
+        """
+        On reservable nodes, tweak the 'alive' field to instruct cyclic loop
+        about what to do with slivers.
+        """
+        pass
+
     def dumpSlivers (self, slivers):
         f = open(NodeManager.DB_FILE, "w")
         logger.log ("nodemanager: saving successfully fetched GetSlivers in %s" % NodeManager.DB_FILE)