Prechádzať zdrojové kódy

Added a new script that starts the enhanced "PN Interface" server: The MvC

Yentl Van Tendeloo 8 rokov pred
rodič
commit
27fc2ad1b0
1 zmenil súbory, kde vykonal 42 pridanie a 0 odobranie
  1. 42 0
      scripts/run_MvC_server.py

+ 42 - 0
scripts/run_MvC_server.py

@@ -0,0 +1,42 @@
+import subprocess
+import sys
+import threading
+import time
+import random
+import urllib
+import urllib2
+
+MVK_PORT = 8001
+MVK_ADDRESS = "http://localhost"
+ADMIN_USER = "admin"
+ADMIN_PASSWORD = "admin"
+SETUP_USER = "setup_user"
+
+address = "%s:%s" % (MVK_ADDRESS, MVK_PORT)
+
+# Compile the Statechart first
+subprocess.check_call([sys.executable, "-m", "sccd.compiler.sccdc", "-p", "threads", "server.xml"], cwd="hybrid_server")
+
+# Start up the MvK as a subprocess
+try:
+    obj = subprocess.Popen([sys.executable, "run_mvk_server.py", str(MVK_PORT), "--kernel=baseline-jit"], cwd="hybrid_server")
+
+    # Compile all MvC code
+    subprocess.call([sys.executable, "scripts/execute_model.py", address, SETUP_USER, "bootstrap/*.alc", "core/*.alc", "core/*.mvc"])
+
+    # Set the admin username and password
+    urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % ADMIN_USER, "username": SETUP_USER}))).read()
+    urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % ADMIN_PASSWORD, "username": SETUP_USER}))).read()
+    urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"%s"' % ADMIN_PASSWORD, "username": SETUP_USER}))).read()
+    urllib2.urlopen(urllib2.Request(address, urllib.urlencode({"op": "set_input", "value": '"exit"', "username": SETUP_USER}))).read()
+
+    while 1:
+        time.sleep(1)
+finally:
+    try:
+        obj.terminate()
+        time.sleep(1)
+        if not obj.poll():
+            obj.kill()
+    except:
+        pass