38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from conductor.ConductorWorker import ConductorWorker
|
|
from pyexecplugins.pyexecplugins import Http
|
|
import configparser
|
|
import sys
|
|
import os
|
|
|
|
def log(task, message):
|
|
print("[{}:{}][{}:{}] - {}".format(task["workflowType"], task["workflowInstanceId"], task["taskDefName"], task["workflowTask"]["taskReferenceName"], message))
|
|
|
|
def pyrest(task):
|
|
log(task, "Starting execution ...")
|
|
log(task, "Data is {} {} {}".format(task["inputData"].get("method"), task["inputData"]["url"], task["inputData"].get("body")))
|
|
http = Http(task["inputData"])
|
|
try:
|
|
ret = http.execute()
|
|
return ret
|
|
except Exception as exc:
|
|
exc_type, exc_obj, exc_tb = sys.exc_info()
|
|
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
|
|
return {
|
|
"status" : "FAILED",
|
|
"output" : { "message" : "Internal error: {}".format(exc)}, "logs" : ["one","two"]
|
|
}
|
|
|
|
def main():
|
|
cfg = configparser.ConfigParser()
|
|
cfg.read("config.cfg")
|
|
|
|
threads = cfg["pyrest"].getint("threads")
|
|
pollrate = cfg["pyrest"].getfloat("pollrate")
|
|
server = os.environ.get('CONDUCTOR_SERVER', cfg["common"]["server"])
|
|
|
|
cc = ConductorWorker(server, threads, pollrate, "pyrest")
|
|
cc.start('pyrest', pyrest, True)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|