|
The next step is to let ecflow_server know about your suite or to “load” the suite definition file.
This checks the file test.def and describes the suite to the ecflow_server.
This can be done in several ways, depending on how the suite was created.
Choose between the two methods below, to avoid errors associated with loading suite definition twice. |
From within the course directory do the following from the UNIX shell:
ecflow_client --load=test.def |
You will have already seen ecflow_client being used in head.h and tail.h include files.
Please ensure you have exported ECF_PORT, alternatively use --port <port_number> on the command line. |
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'))) 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 restore the definition from file 'test.def' we can use: # restored_defs = ecflow.Defs("test.def") |
If you called “defs.save_as_defs()” the file test.def will be written.
This can be loaded in the server as described earlier. (See Text)
try:
print("Load the in memory definition(defs) into the server")
ci = ecflow.Client()
ci.load(defs) # load the in memory python definition(def) into server
except RuntimeError as e:
print("Failed:",e)
import ecflow try: print("Loading definition in 'test.def' into the server") ci = ecflow.Client() ci.load("test.def") # read definition from disk and load into the server except RuntimeError as e: print("Failed:", e) |
If everything is OK, you should have defined a suite in the server.
Have a look in the window running the ecflow_server, and look at the log file
ecflow_client --delete /test |
ecflow_client --help replace ecflow_client --replace=/test test.def # e.g. to replace the whole suite ecflow_client --replace=/test/t1 test.def # or just the one task |
|