gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r28196 - gnunet-planetlab/gplmt/gplmt
Date: Fri, 19 Jul 2013 14:26:55 +0200

Author: wachs
Date: 2013-07-19 14:26:55 +0200 (Fri, 19 Jul 2013)
New Revision: 28196

Modified:
   gnunet-planetlab/gplmt/gplmt/Worker.py
Log:
implemented local worker run


Modified: gnunet-planetlab/gplmt/gplmt/Worker.py
===================================================================
--- gnunet-planetlab/gplmt/gplmt/Worker.py      2013-07-19 11:50:52 UTC (rev 
28195)
+++ gnunet-planetlab/gplmt/gplmt/Worker.py      2013-07-19 12:26:55 UTC (rev 
28196)
@@ -30,8 +30,8 @@
 import select
 import signal
 import inspect
+import subprocess
 
-
 try:
     import gplmt.Configuration as Configuration
     import gplmt.Util as Util
@@ -221,13 +221,40 @@
 
 class LocalWorker (AbstractWorker):
     def connect (self):
-        raise NotImplementedError (inspect.stack()[0][3]) 
+        g_logger.log ("LocalWorker connects to '" + self.node.hostname + "'")
+        try:
+            if not os.path.exists(self.node.hostname):            
+                os.makedirs(self.node.hostname)
+                g_logger.log ("Created " + self.node.hostname)
+        except os.error as e:
+            g_logger.log ("Could not created " + self.node.hostname)
+            return TaskExecutionResult(Tasks.Taskresult.fail, "Could not 
created '" + self.node.hostname, "' :"+ str (e))
+        return TaskExecutionResult(Tasks.Taskresult.success, "", "")    
     def disconnect (self):       
-        raise NotImplementedError     
+        return TaskExecutionResult(Tasks.Taskresult.success, "Disconnected", 
"")         
     def exec_run_per_host (self, task):
         raise NotImplementedError (inspect.stack()[0][3])        
     def exec_run (self, task):
-        raise NotImplementedError (inspect.stack()[0][3]) 
+        g_logger.log ("LocalWorker executes on '" + self.node.hostname + "' : 
" + task.command + " " + task.arguments)
+        result = Tasks.Taskresult.success
+        returncode = 0
+        output = ""
+        found = False
+        try:
+            output = subprocess.check_output(task.command + " " + 
task.arguments, shell=True)
+        except subprocess.CalledProcessError as e:
+            returncode = e.returncode
+        except Exception as e:
+            print e           
+        if (task.expected_return_code != -1) and (task.expected_return_code != 
returncode):
+            return 
TaskExecutionResult(Tasks.Taskresult.return_value_did_not_match, "Expected 
return code " + str(task.expected_return_code) +" but got " +str(returncode) 
+"", output)  
+        if (task.expected_output != None):
+            for l in output.splitlines():
+                if (task.expected_output in l):
+                    found = True
+            if (False == found):
+                return 
TaskExecutionResult(Tasks.Taskresult.return_value_did_not_match, "Expected 
return code " + str(task.expected_return_code) +" but got " +str(returncode) 
+"", output)        
+        return TaskExecutionResult(result, "succesful", output)                
     def exec_put (self, task):
         raise NotImplementedError (inspect.stack()[0][3]) 
     def exec_get (self, task):




reply via email to

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