You must also create a file t2.ecf in $HOME/course/test
. Simply copy t1.ecf
.
First, modify the suite definition
# Definition of the suite test suite test edit ECF_HOME "$HOME/course" # replace '$HOME' with the path to your home directory task t1 task t2 endsuite |
As before replace |
ecflow_client --load=test.def |
This will fail because the suite is already loaded |
Because the suite is already defined, you need to delete and reload it first:
ecflow_client --delete=_all_ ecflow_client --load=test.def |
Then restart the suite:
ecflow_client --begin=test |
ecflow_client --replace=/test test.def |
or to replace part of the suite:
ecflow_client --replace=/test/t2 test.def |
To delete the suite definition, reload and begin using the Client Server API: First update test.py to add task t2
import os from ecflow import Defs,Suite,Task,Edit print("Creating suite definition") home = os.path.join(os.getenv("HOME"), "course") defs = Defs( Suite('test', Edit(ECF_HOME=home), Task('t1'), Task('t2'))) print(defs) print("Checking job creation: .ecf -> .job0") print(defs.check_job_creation()) print("Saving definition to file 'test.def'") defs.save_as_defs("test.def") |
To delete all suites in the server and reload the modified test.def, we could update client.py
import ecflow print("Client -> Server: delete, then load a new definition") try: ci = ecflow.Client() ci.delete_all() # clear out the server ci.load("test.def") # load the definition into the server ci.begin_suite("test") # start the suite except RuntimeError as e: print("Failed:", e) |
import ecflow print("Client -> Server: replacing suite '/test' in the server, with a new definition") try: ci = ecflow.Client() ci.suspend("/test") # so that we can resume manually in ecflow_ui ci.replace("/test", "test.def") # replace suite /test with suite of same name in test.def except RuntimeError as e: print("Failed:", e) |
For brevity the examples that follow, will not show the loading of the suite. |
|