[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r28156 - in gnunet-planetlab/gplmt: . gplmt,
gnunet <=