[haizea-commit] r750 - branches/1.1/src/haizea/cli

haizea-commit at mailman.cs.uchicago.edu haizea-commit at mailman.cs.uchicago.edu
Thu Jan 7 11:58:21 CST 2010


Author: borja
Date: 2010-01-07 11:52:25 -0600 (Thu, 07 Jan 2010)
New Revision: 750

Modified:
   branches/1.1/src/haizea/cli/annotator.py
Log:
Modified annotator to support LWF files generated from artificial SWF files.

Modified: branches/1.1/src/haizea/cli/annotator.py
===================================================================
--- branches/1.1/src/haizea/cli/annotator.py	2010-01-07 02:37:38 UTC (rev 749)
+++ branches/1.1/src/haizea/cli/annotator.py	2010-01-07 17:52:25 UTC (rev 750)
@@ -56,6 +56,7 @@
 
     DEADLINE_DURATION = "multiple-of-duration"
     DEADLINE_SLOWDOWN = "original-slowdown"
+    DEADLINE_ABSOLUTE = "absolute"
     
     def __init__(self, argv):
         Command.__init__(self, argv)
@@ -149,22 +150,29 @@
         if self.deadlinestretch_dist == None:
             return None, None
         else:
-            if type == haizea_lwf_annotate.DEADLINE_DURATION:
-                tau = self.deadlinestretch_dist.get()
+            if type in (haizea_lwf_annotate.DEADLINE_DURATION, haizea_lwf_annotate.DEADLINE_SLOWDOWN):
+                if type == haizea_lwf_annotate.DEADLINE_DURATION:
+                    tau = self.deadlinestretch_dist.get()
+                    
+                elif type == haizea_lwf_annotate.DEADLINE_SLOWDOWN:
+                    runtime = float(lease.extras["SWF_runtime"])
+                    waittime = float(lease.extras["SWF_waittime"])
+                    if runtime < 10: runtime = 10
+                    slowdown = (waittime + runtime) / runtime
+    
+                    min = self.deadlinestretch_dist.min
+                    max = self.deadlinestretch_dist.max
+                    tau = self.deadlinestretch_dist.get()
+                    
+                    tau = (slowdown - 1)*((tau-min) / (max-min))
+    
+                deadline = round_datetime_delta(start + (1 + tau)*lease.duration.requested)                
+            elif type == haizea_lwf_annotate.DEADLINE_ABSOLUTE:
+                wait = self.deadlinestretch_dist.get()
+                deadline = round_datetime_delta(start + TimeDelta(seconds=wait) + lease.duration.requested)  
                 
-            elif type == haizea_lwf_annotate.DEADLINE_SLOWDOWN:
-                runtime = float(lease.extras["SWF_runtime"])
-                waittime = float(lease.extras["SWF_waittime"])
-                if runtime < 10: runtime = 10
-                slowdown = (waittime + runtime) / runtime
-
-                min = self.deadlinestretch_dist.min
-                max = self.deadlinestretch_dist.max
-                tau = self.deadlinestretch_dist.get()
-                
-                tau = (slowdown - 1)*((tau-min) / (max-min))
-
-            deadline = round_datetime_delta(start + (1 + tau)*lease.duration.requested)                
+                tau = ((deadline - start) / lease.duration.requested) - 1                    
+                    
             return deadline, tau
 
     def __get_software(self, lease):
@@ -174,12 +182,15 @@
         if self.markup_dist == None:
             return None
         else:
-            if self.user_markups.has_key(lease.user_id):
-                return self.user_markups[lease.user_id]
+            if lease.user_id == -1:
+                return self.markup_dist.get()
             else:
-                markup = self.markup_dist.get()
-                self.user_markups[lease.user_id] = markup
-                return markup
+                if self.user_markups.has_key(lease.user_id):
+                    return self.user_markups[lease.user_id]
+                else:
+                    markup = self.markup_dist.get()
+                    self.user_markups[lease.user_id] = markup
+                    return markup
     
     def __get_dist(self, section):
         if self.config.has_section(section):



More information about the Haizea-commit mailing list