gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r28156 - in gnunet-planetlab/gplmt: . gplmt


From: gnunet
Subject: [GNUnet-SVN] r28156 - in gnunet-planetlab/gplmt: . gplmt
Date: Thu, 18 Jul 2013 14:31:06 +0200

Author: wachs
Date: 2013-07-18 14:31:06 +0200 (Thu, 18 Jul 2013)
New Revision: 28156

Modified:
   gnunet-planetlab/gplmt/gplmt.py
   gnunet-planetlab/gplmt/gplmt/Targets.py
   gnunet-planetlab/gplmt/gplmt/Worker.py
Log:
implemented worker factor


Modified: gnunet-planetlab/gplmt/gplmt/Targets.py
===================================================================
--- gnunet-planetlab/gplmt/gplmt/Targets.py     2013-07-18 12:22:33 UTC (rev 
28155)
+++ gnunet-planetlab/gplmt/gplmt/Targets.py     2013-07-18 12:31:06 UTC (rev 
28156)
@@ -24,12 +24,15 @@
 
 class Target ():
     undefined = 0
-    local = 1
-    remote_ssh = 2
-    planetlab = 3
+    test = 1
+    local = 2
+    remote_ssh = 3
+    planetlab = 4
     def __init__(self, Type = undefined):
         self.value = Type
     def __str__(self):
+        if self.value == Target.test:
+            return 'test'        
         if self.value == Target.local:
             return 'local'
         if self.value == Target.remote_ssh:
@@ -55,7 +58,9 @@
         return self.value==y.value
     @staticmethod
     def create (source_str):
-        if (str.lower(source_str) == str (Target (Target.local))):
+        if (str.lower(source_str) == str (Target (Target.test))):
+            return Target (Target.test)
+        elif (str.lower(source_str) == str (Target (Target.local))):
             return Target (Target.local)
         elif (str.lower(source_str) == str (Target (Target.remote_ssh))):
             return Target (Target.remote_ssh)

Modified: gnunet-planetlab/gplmt/gplmt/Worker.py
===================================================================
--- gnunet-planetlab/gplmt/gplmt/Worker.py      2013-07-18 12:22:33 UTC (rev 
28155)
+++ gnunet-planetlab/gplmt/gplmt/Worker.py      2013-07-18 12:31:06 UTC (rev 
28156)
@@ -37,6 +37,7 @@
     import gplmt.Configuration as Configuration
     import gplmt.Util as Util
     import gplmt.Tasks as Tasklist
+    import gplmt.Targets as Targets
     from gplmt.SCP import SCPClient
     from gplmt.SCP import SCPException
 except ImportError as e: 
@@ -394,18 +395,88 @@
         g_logger.log (self.node.hostname + " : All tasks done for " + 
self.node.hostname)
         
 
+class AbstractWorker(threading.Thread):
+    def __init__(self, threadID, node, tasks):
+        threading.Thread.__init__(self)
+        self.threadID = threadID
+        self.node = node
+        self.tasks = tasks    
+    def exec_run_per_host (self):
+        raise NotImplementedError        
+    def exec_run (self):
+        raise NotImplementedError
+    def exec_put (self):
+        raise NotImplementedError
+    def exec_get (self):
+        raise NotImplementedError
+    def run(self):    
+        print "run"
 
-class NodeWorker:
-    def __init__(self, node, tasks):
+class TestWorker (AbstractWorker):
+    def exec_run_per_host (self):
+        raise NotImplementedError        
+    def exec_run (self):
+        raise NotImplementedError
+    def exec_put (self):
+        raise NotImplementedError
+    def exec_get (self):
+        raise NotImplementedError    
+
+class LocalWorker (AbstractWorker):
+    def exec_run_per_host (self):
+        raise NotImplementedError        
+    def exec_run (self):
+        raise NotImplementedError
+    def exec_put (self):
+        raise NotImplementedError
+    def exec_get (self):
+        raise NotImplementedError        
+
+class RemoteSSHWorker (AbstractWorker):
+    def exec_run_per_host (self):
+        raise NotImplementedError        
+    def exec_run (self):
+        raise NotImplementedError
+    def exec_put (self):
+        raise NotImplementedError
+    def exec_get (self):
+        raise NotImplementedError        
+    
+class PlanetLabWorker (AbstractWorker):
+    def exec_run_per_host (self):
+        raise NotImplementedError        
+    def exec_run (self):
+        raise NotImplementedError
+    def exec_put (self):
+        raise NotImplementedError
+    def exec_get (self):
+        raise NotImplementedError   
+    
+
+class NodeWorker ():
+    def __init__(self, target, node, tasks):
+        assert (None != target)
         assert (None != node)
-        assert (None != tasks)
+        assert (None != tasks) 
+        self.target = target
         self.node = node
         self.tasks = tasks
         self.thread = None
+        
+        if (self.target == Targets.Target (Targets.Target.undefined)):
+            self.thread = AbstractWorker (1, self.node, self.tasks);
+        elif (self.target == Targets.Target (Targets.Target.test)):
+            self.thread = TestWorker (1, self.node, self.tasks);               
      
+        elif (self.target == Targets.Target (Targets.Target.local)):
+            self.thread = LocalWorker (1, self.node, self.tasks);
+        elif (self.target == Targets.Target (Targets.Target.remote_ssh)):
+            self.thread = RemoteSSHWorker (1, self.node, self.tasks);
+        elif (self.target == Targets.Target (Targets.Target.planetlab)):
+            self.thread = PlanetLabWorker (1, self.node, self.tasks);   
+        return        
     def start (self):
         g_logger.log ("Starting execution for node " + self.node.hostname)
         g_notifications.tasklist_started (self.node.hostname, self.tasks, "")
-        self.thread = NodeWorkerThread (1, self.node, self.tasks)
         self.thread.start()
     
 class Worker:
@@ -432,17 +503,20 @@
         g_notifications = notifications
         g_logger = logger;
     def start (self):
-        g_logger.log ("Starting execution")
-        for n in self.nodes.nodes:
-            nw = NodeWorker (n, self.tasks.copy())
+        g_logger.log ("Starting execution on target '" + str (self.target) + 
"'")
+
+        for node in self.nodes.nodes:
+            nw = NodeWorker (self.target, node, self.tasks.copy())
             workersList.append(nw)
             nw.start()
+            
+        return            
         # block main thread until all worker threads are finished to print 
summary
         threads_done = False
         while(not threads_done):
             threads_done = True
-            for w in workersList:
-                if(w.thread.isAlive()):
+            for nw in workersList:
+                if(nw.thread.isAlive()):
                     threads_done = False
                     break
             time.sleep(0.5)

Modified: gnunet-planetlab/gplmt/gplmt.py
===================================================================
--- gnunet-planetlab/gplmt/gplmt.py     2013-07-18 12:22:33 UTC (rev 28155)
+++ gnunet-planetlab/gplmt/gplmt.py     2013-07-18 12:31:06 UTC (rev 28156)
@@ -208,7 +208,6 @@
             notifications = Notifications.TaskListResultNotification 
(main.logger)
     except KeyboardInterrupt:
         sys.exit(0)
-    print str (target)
 # Start execution
     try:
         worker = Worker.Worker (main.logger, configuration, target, nodes, 
tasklist, notifications)




reply via email to

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