1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/usr/bin/env python
- import sys
- sys.path.append("wrappers")
- from modelverse import *
- from subprocess import Popen, PIPE
- import json
- init(sys.argv[1])
- login("test_service", "my_password")
- def lola_service(port):
- json_input = service_get(port)
- input_data = json.loads(json_input)
- print input_data['petrinet']
- print input_data['query']
- query_formula = "--formula=EF ("+ input_data['query']+")"
- lola = Popen(["lola", "--path=path_output", query_formula, "--json=output.json"], stdin=PIPE, stdout=PIPE).communicate(input=input_data['petrinet'])
-
- output_file = open('output.json', 'r')
- result = json.load(output_file)
- output_file.close()
- # If safety query is violated resulting True in output
- path = ''
- if result['analysis']['result']:
- with open('path_output') as f:
- for transition in f:
- transition = transition.replace('\n',',')
- path = path + transition
- #json_result = '{"analysis_result": True , "path":\"'+path.rstrip(',') + '\"}'
- service_set(port, result['analysis']['result'])
- service_set(port, path.rstrip(','))
- service_register("lola", lola_service)
- while raw_input() != "STOP":
- # Stay active, as we shouldn't exit while the service is running!
- pass
- service_stop()
|