From 04b4564f752eb4356f0cf2ec44d230921c3cfb03 Mon Sep 17 00:00:00 2001
From: madsmpedersen <m@madsp.dk>
Date: Mon, 4 Apr 2016 13:31:02 +0200
Subject: [PATCH] added cluster_simulation.py

---
 wetb/hawc2/cluster_simulation.py | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 wetb/hawc2/cluster_simulation.py

diff --git a/wetb/hawc2/cluster_simulation.py b/wetb/hawc2/cluster_simulation.py
new file mode 100644
index 00000000..061d8ebf
--- /dev/null
+++ b/wetb/hawc2/cluster_simulation.py
@@ -0,0 +1,26 @@
+from wetb.hawc2.simulation import Simulation, SimulationThread, INITIALIZING, ERROR, FINISH
+from wetb.hawc2.htc_file import HTCFile
+from wetb.hawc2.log_file import LogFile
+from wetb.hawc2 import log_file
+import os
+import sys
+import time
+from threading import Timer, Thread
+class ClusterSimulation(Simulation):
+    def __init__(self, modelpath, htcfilename, hawc2exe="HAWC2MB.exe"):
+        Simulation.__init__(self, modelpath, htcfilename, hawc2exe=hawc2exe)
+        self.simulation_id = [f for f in os.listdir('.') if f.endswith('.in')][0][:-3]
+        self.simulationThread = SimulationThread(self, False)
+        self.thread = Thread(target=self.simulate)
+        self.start(1)
+        self.wait()
+        print (self.simulationThread.res[1])  # print hawc2 output to stdout
+        sys.exit(self.simulationThread.res[0])
+
+    def update_status(self, *args, **kwargs):
+        Simulation.update_status(self, *args, **kwargs)
+        with open("/home/mmpe/.hawc2launcher/status_%s" % self.simulation_id, 'w') as fid:
+            fid.write (";".join([self.status] + [str(getattr(self.logFile, v)) for v in ['status', 'pct', 'remaining_time', 'lastline']]) + "\n")
+
+    def show_status(self):
+        pass
-- 
GitLab