... Let's try to keep the technical bit of this thread on dev@taverna - but feel free to contact me personally for private matters such as your commitments.
On 10 March 2015 at 19:25, Menaka Madushanka <[email protected]> wrote: > If I understood correctly, > I have to implement the generalized version of the command line tools by the > mid evaluation > https://github.com/apache/incubator-taverna-language/tree/master/taverna-scufl2-examples > https://github.com/apache/incubator-taverna-language/tree/master/taverna-scufl2-wfdesc > https://github.com/stain/ro-combine-archive Right - that sounds like a good plan. Once we have a prototype up and running we can see better what fits well. This should include writing some documentation on command line options, example usage etc. > After that update ExecuteWorkflow.... Perhaps we should flesh out a more detailed plan for ExecuteWorkflow. Having some kind of -verbose mode with proper logging was mentioned - I can help you show how to hook into the platform to get notifications. Perhaps this needs some kind of verbosity level as some workflows can be very active and thus be very noisy if everything is logged. Have you got any other suggestions? For instance on simplifying the command line options and perhaps moving some of these to a config file? Making it a bit more unix-like perhaps. stain@biggie-utopic:~/src/taverna/incubator-taverna-commandline/taverna-commandline-product/target/apache-taverna-commandline-3.1.0.incubating-SNAPSHOT-dev/apache-taverna-commandline-3.1.0.incubating-SNAPSHOT$ ./executeworkflow.sh --help OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=400m; support was removed in 8.0 usage: executeworkflow [options] [workflow] -bundle <bundle> Save outputs to a new Workflow Run Bundle (zip). -clientserver Connect as a client to a derby server instance. -cmdir <directory path> Absolute path to a directory where Credential Manager's files (keystore and truststore) are located. -cmpassword Indicate that the master password for Credential Manager will be provided on standard input. -dbproperties <filename> Load a properties file to configure the database. -embedded Connect to an embedded Derby database. This can prevent mulitple invocations. -help Display comprehensive help information. -inmemory Run the workflow with data stored in-memory rather than in a database (this is the default option). This can give performance inprovements, at the cost of overall memory usage. -inputdelimiter <inputname delimiter> Cause an inputvalue or inputfile to be split into a list according to the delimiter. The associated workflow input must be expected to receive a list. -inputdoc <document> Load inputs from a Baclava document. -inputfile <inputname filename> Load the named input from file or URL. -inputvalue <inputname value> Directly use the value for the named input. -logfile <filename> The logfile to which more verbose logging will be written to. -outputdir <directory> Save outputs as files in directory, default is to make a new directory workflowName_output. -port <portnumber> The port that the database is running on. If set requested to start its own internal server, this is the start port that will be used. -provenance Generate provenance information and store it in the database. -startdb Automatically start an internal Derby database server. By default, the workflow is executed using the -inmemory option, and the results are written out to a directory named after the workflow name. If this directory already exists then a new directory is created, and appended with _<n>, where n is incremented to the next available index. Results are written out to files named after the output port for that result. If a result is composed of lists, then a directory is created for the output port and individual list items are named after the list element index (with 1 being the first index). The the output is the result of an error, the filename is appended with '.error'. You can provide your own output directory with the -outputdir option. There will be an error if the directory already exists. You can also record your results to a Baclava document using -outputdoc option. The document will be overwritten if it already exists. Inputs can be provided in three ways. Both -inputfile and -inputvalue options can be used together; -inputdoc option must be used on its own. -inputfile and -inputvalue options both take two additional arguments, the name of the port for the input, and either a file containing the input data, or the input value itself respectively. If one of more of your workflow inputs is a list, you can create a list input by using the -inputdelimiter option, which may be used with either -inputfile or -inputvalue. This option takes two parameters - an input name and the delimiter by which to split the input into a list. The delimiter may be a simple character, such as a comma or a new-line character, or a regular expression. The input string, or file, will then be converted into a list being split by the delimiter specified. Make sure to put the delimiter character in quotes as it may be interpreted by the shell as a special character, e.g. ;. If a list of greater depth (i.e. a list or lists or deeper) is required then you will need to use the -inputdoc option. However, if you provide an input of lower depth to that required, then it will automatically be wrapped in one or more lists up to the required depth. Providing an input of greater depth than that required will result in an error. If a workflow has a high memory requirement, then it may be better to run it using a database to store data rather than storing it in memory, which is the default option. There are three options for using a database: -embedded option, runs with an embedded database. This is slightly faster than the -clientserver option (below), but has the limitation that only one executeworkflow script may be executed simultaneously. -clientserver option allows the workflow to be executed backed by the database running as a server. By default a database is not started for you, but may be started using -startdb option. -startdb option starts a database. It may be used without providing a workflow to allow a database to be started separately, allowing multiple simultaneous executeworkflow script runs. More advanced database configurations can be specified using -dbproperties option, allowing you to take full control over the database used. This takes a second argument, the filename of the properties file, for which the following example contains the default settings: in_memory = true provenance = false connector = derby port = 1527 dialect = org.hibernate.dialect.DerbyDialect start_derby = false driver = org.apache.derby.jdbc.EmbeddedDriver jdbcuri = jdbc:derby:t2-database;create=true;upgrade=true Note that when using -dbproperties together with other options, the other options take precedence. -cmdir option lets you specify an absolute path to a directory where Credential Manager's files (keystore and truststore - containing user's credentials and trusted certificates for accessing secure services) are stored. If not specified and the workflow requires access to these files, Taverna will try to find them in the default location in <TAVERNA_HOME>/security somewhere inside user's home directory (depending on the platform). -cmpassword option can be used to tell Taverna to expect the password for the Credential Manager on standard input. If the password is not piped in, Taverna will prompt you for it in the terminal and block until it is entered. Do not enter your password in the command line! If -cmpassword option is not specified and -cmdir option is used, Taverna will try to find the password in a special file password.txt in the directory specified with -cmdir option. -- Stian Soiland-Reyes Apache Taverna (incubating), Apache Commons RDF (incubating) http://orcid.org/0000-0001-9842-9718
