gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r22781 - gnunet-planetlab/gplmt


From: gnunet
Subject: [GNUnet-SVN] r22781 - gnunet-planetlab/gplmt
Date: Fri, 20 Jul 2012 10:47:59 +0200

Author: wachs
Date: 2012-07-20 10:47:59 +0200 (Fri, 20 Jul 2012)
New Revision: 22781

Modified:
   gnunet-planetlab/gplmt/Worker.py
Log:
modified schmea

Modified: gnunet-planetlab/gplmt/Worker.py
===================================================================
--- gnunet-planetlab/gplmt/Worker.py    2012-07-20 08:39:36 UTC (rev 22780)
+++ gnunet-planetlab/gplmt/Worker.py    2012-07-20 08:47:59 UTC (rev 22781)
@@ -41,6 +41,59 @@
         self.threadID = threadID
         self.node = node
         self.tasks = tasks
+    def exec_run (self, task, transport):
+        fail = False
+        g_logger.log (self.node + " : Task '"+ task.command + " " + 
task.arguments + "'")
+        channel = transport.open_session()
+        channel.settimeout(1.0)
+        channel.exec_command(task.command + " " + task.arguments)
+        
+        if (task.timeout > 0):
+            timeout = task.timeout
+        else:
+            timeout = 10
+        exec_time = 0
+        result = Tasks.Taskresult.success
+        while ((not channel.exit_status_ready()) and (exec_time < timeout)):
+            time.sleep(1)
+            exec_time += 1
+        if (exec_time < timeout):
+            stdout = channel.makefile("rb")
+            stderr = channel.makefile_stderr("rb")
+        
+            stdout_data = stdout.readlines()
+            stderr_data = stderr.readlines()
+            exit_status = channel.recv_exit_status()
+        else:
+            g_logger.log (self.node + " : Task '"+ task.name + "' had timeout 
after " +str (exec_time)+ " seconds")
+            result = Tasks.Taskresult.timeout
+            
+        if (result == Tasks.Taskresult.success):                    
+            if (exit_status != task.expected_return_code):
+                g_logger.log (self.node + " : Task '"+ task.name + "' 
completed, but exit code " +str(exit_status)+ " was not as expected " + 
str(task.expected_return_code))
+                result = Tasks.Taskresult.return_value_did_not_match
+            else:
+                g_logger.log (self.node + " : Task '"+ task.name + "' 
completed, exit code " +str(exit_status)+ " was as expected " + 
str(task.expected_return_code))
+            
+            if ((fail == False) and (task.expected_output != None)):
+                output_contained = False
+                for l in stdout_data:
+                    if (task.expected_output in l):
+                        output_contained = True
+                for l in stderr_data:
+                    if (task.expected_output in l):
+                        output_contained = True                
+                if (output_contained == True):
+                    g_logger.log (self.node + " : Task '"+ task.name + "' 
expected output '"+task.expected_output+"' was found")
+                else:
+                    g_logger.log (self.node + " : Task '"+ task.name + "' 
expected output '"+task.expected_output+"' was not found")
+                    result = Tasks.Taskresult.output_did_not_match
+                    
+        if (result == Tasks.Taskresult.success):
+            g_logger.log (self.node + " : Task '"+ task.name + "' successful")
+        else: 
+            g_logger.log (self.node + " : Task '"+ task.name + "' failed")
+        g_notifications.task_completed (self.node, task, result)       
     def run(self):
         success = False
         g_logger.log (self.node + " : Starting tasklist " + self.tasks.name)
@@ -89,57 +142,7 @@
             fail = False
             if (task.__class__.__name__ == "Task"):
                 if (task.type == Tasks.Operation.run):
-                    g_logger.log (self.node + " : Task '"+ task.command + " " 
+ task.arguments + "'")
-                    channel = transport.open_session()
-                    channel.settimeout(1.0)
-                    channel.exec_command(task.command + " " + task.arguments)
-                    
-                    if (task.timeout > 0):
-                        timeout = task.timeout
-                    else:
-                        timeout = 10
-                    exec_time = 0
-                    result = Tasks.Taskresult.success
-                    while ((not channel.exit_status_ready()) and (exec_time < 
timeout)):
-                        time.sleep(1)
-                        exec_time += 1
-                    if (exec_time < timeout):
-                        stdout = channel.makefile("rb")
-                        stderr = channel.makefile_stderr("rb")
-                    
-                        stdout_data = stdout.readlines()
-                        stderr_data = stderr.readlines()
-                        exit_status = channel.recv_exit_status()
-                    else:
-                        g_logger.log (self.node + " : Task '"+ task.name + "' 
had timeout after " +str (exec_time)+ " seconds")
-                        result = Tasks.Taskresult.timeout
-                        
-                    if (result == Tasks.Taskresult.success):                   
 
-                        if (exit_status != task.expected_return_code):
-                            g_logger.log (self.node + " : Task '"+ task.name + 
"' completed, but exit code " +str(exit_status)+ " was not as expected " + 
str(task.expected_return_code))
-                            result = 
Tasks.Taskresult.return_value_did_not_match
-                        else:
-                            g_logger.log (self.node + " : Task '"+ task.name + 
"' completed, exit code " +str(exit_status)+ " was as expected " + 
str(task.expected_return_code))
-                        
-                        if ((fail == False) and (task.expected_output != 
None)):
-                            output_contained = False
-                            for l in stdout_data:
-                                if (task.expected_output in l):
-                                    output_contained = True
-                            for l in stderr_data:
-                                if (task.expected_output in l):
-                                    output_contained = True                
-                            if (output_contained == True):
-                                g_logger.log (self.node + " : Task '"+ 
task.name + "' expected output '"+task.expected_output+"' was found")
-                            else:
-                                g_logger.log (self.node + " : Task '"+ 
task.name + "' expected output '"+task.expected_output+"' was not found")
-                                result = Tasks.Taskresult.output_did_not_match
-                                
-                    if (result == Tasks.Taskresult.success):
-                        g_logger.log (self.node + " : Task '"+ task.name + "' 
successful")
-                    else: 
-                        g_logger.log (self.node + " : Task '"+ task.name + "' 
failed")
-                    g_notifications.task_completed (self.node, task, result)   
                     
+                    fail = self.exec_run (task, transport)
                 elif (task.type == Tasks.Operation.put):
                     print "TO IMPLEMENT"
                 elif (task.type == Tasks.Operation.get):




reply via email to

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