from ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event,Meter,Time,Day,Date
import os
import sys
version = sys.version_info
if version[1] < 7:
print("This example requires python version 2.7, but found : " + str(version))
exit(0)
print "Creating suite definition")
with Defs() as defs:
with defs.add_suite("test") as suite:
suite += Edit(ECF_HOME=os.path.join(os.getenv("HOME"), "course"))
suite += Edit(ECF_INCLUDE =os.path.join(os.getenv("HOME"), "course"))
with suite.add_family("f1") as f1:
f1 += Edit(SLEEP=20)
f1 += Task("t1", Meter("progress", 1, 100, 90))
f1 += Task("t2", Trigger("t1 == complete"), Event("a"), Event("b"))
f1 += Task("t3", Trigger("t2:a"))
f1 += Task("t4", Trigger("t2 == complete"), Complete("t2:b"))
f1 += Task("t5", Trigger("t1:progress ge 30"))
f1 += Task("t6", Trigger("t1:progress ge 60"))
f1 += Task("t7", Trigger("t1:progress ge 90"))
with suite.add_family("f2") as f2:
f2 += Edit(SLEEP=20)
f2 += Task("t1", Time("00:30 23:30 00:30"))
f2 += Task("t2", Day("sunday"))
f2 += Task("t3", Date(1, 0, 0), Time(12, 0))
f2 += Task("t4", Time(0, 2, True))
f2 += Task("t5", Time(0, 2))
print(defs)
print("Checking job creation: .ecf -> .job0")
print(defs.check_job_creation())
print("Checking trigger expressions")
printassert len(defs.check()) == 0, defs.check()
print("Saving definition to file 'test.def'")
defs.save_as_defs("test.def") |