Code Block | ||
---|---|---|
|
...
#////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 |
...
# Name : # Author : Avi # Revision : $Revision: #10 $ # # Copyright 2009-2019 ECMWF. # This software is licensed under the terms of the Apache Licence version 2.0 # which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. |
...
# In applying this licence, ECMWF does not waive the privileges and immunities |
...
# granted to it by virtue of its status as an intergovernmental organisation |
...
# nor does it submit to any jurisdiction. |
...
#////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 |
...
import ecflow |
...
import argparse # for |
...
argument parsing import sys if __name__ == "__main__": |
...
DESC = """Will list variables for any |
...
node Usage: Example1: List all the server variables ListVariables.py --host cca --port 4141 --path / Example2: List the variables for the given node ListVariables.py --host cca --port 4141 --path /path/to/node """ PARSER = argparse.ArgumentParser(description=DESC, |
...
formatter_class=argparse.RawDescriptionHelpFormatter) |
...
PARSER.add_argument('--host', default="localhost", |
...
help="The name of the host machine, defaults to 'localhost'") |
...
PARSER.add_argument('--port', default="3141", |
...
help="The port on the host, defaults to 3141") |
...
PARSER.add_argument('--path', default="/", |
...
help="The path to the node. i.e. /suite/family/task") |
...
ARGS = PARSER.parse_args() |
...
#print(ARGS) # =========================================================================== |
...
CL = ecflow.Client(ARGS.host, ARGS.port) |
...
try: CL.ping() |
...
# get the incremental changes, and merge with defs stored on the Client CL.sync_local() |
...
# check to see if definition exists in the server defs = CL.get_defs() |
...
if defs is None: print("No suites found, exiting..." |
...
) sys.exit(0) |
...
# print(defs) if ARGS.path == "/": |
...
for var in defs.server_variables: |
...
print("edit " + var.name() + " '" + var.value() + "'" |
...
) for var in defs.user_variables: |
...
print("edit " + var.name() + " '" + var.value() + "'" |
...
) else: node = defs.find_abs_node(ARGS.path) |
...
if node == None: print("No node found at path " + ARGS.path) else: for var in node.variables: print( "edit " + var.name() + " '" + var.value() + "'" |
...
) except RuntimeError as ex: print("Error: " + str(ex) |
...
) print "Check host and port number are correct." |