[Swift-devel] swiftconfig

Michael Wilde wilde at mcs.anl.gov
Mon Jun 7 09:17:47 CDT 2010


Davis, good start. Attached is an example of a "run" script from a Swift application (protein folding). Its the one I mentioned that sets up sites.xml, tc.data, and swift.properties using shell "here documents" with variable substitution. Maybe you can get a few ideas from it.

A few thoughts on below:

- unless its very little work, I'd stay away from curses. Use either plain command like, or simple prompts if interaction is needed. Rather than curses, I'd think youre better off going to the web app that you originally proposed. Maybe thats not such a bad idea.

- things that less frequently changed, like the ssh auth parameters or swift.properties, seem more amenable to interactive or forms-based configuration.

I'll try to provide more substantive comments later.

Mike


----- "David Kelly" <dk0966 at cs.ship.edu> wrote:

> Hello all,
> 
> I am working on a utility to modify configuration files called
> swiftconfig. This is still in the early stages, so there is a lot of
> room for changes and new ideas. I believe there is some overlap
> between this project and what some other students will be doing this
> summer, so if anyone would like to work with me on this, please feel
> free.
> 
> I envision swiftconfig as a simple text-based configuration program.
> It will be written in Perl and use the curses library for easier
> editing. It should hopefully make swift configuration a little easier
> and prevent silly mistakes like typos in xml which could keep swift
> from running. Everything that can be done within the editor should
> also be able to be done directly from the command line. This should
> make it easier to expand upon in the future. For example, a web or GUI
> based application could be written fairly quickly that would only need
> to call swiftconfig with the correct command line options.
> 
> There are three files swiftconfig can modify: tc.data, sites.xml, and
> auth.defaults.
> 
> The options for transformation mode include
> 
> -host # Host name
> -name # Translation name
> -path # Path to executable
> -profile # Profile arguments, defaults to null
> -tcfile # Location of tc file. If not specified, find tc.data based on
> location of swift
> -overwrite # If a duplicate is found, overwrite the old entry without
> prompting
> 
> Since platform and installation status are no longer used, they will
> default to INTEL32::LINUX and INSTALLED.
> Here is an example of swiftconfig in transformation mode.
> 
> $ swiftconfig -host localhost -name wc -path /usr/bin/wc
> 
> tc.data should then have the line:
> localhost wc /usr/bin/wc INSTALLED INTEL32::LINUX null
> 
> If there is already an entry with the name wc, it should prompt the
> user to answer yes/no if the user wants to overwrite it (unless
> -overwrite is given)
> 
> For sites.xml, swiftconfig should allow the user to use existing
> examples or specify their own. Here are the options:
> 
> -template # Use existing commented example for defaults (skynet,
> teraport, etc)
> -entry # Name of new entry (pool handle)
> -gridftp # Specify gridftp url
> -jobuniverse # Specify jobmanager universe
> -joburl # Specify jobmanager url
> -jobmajor # Specify jobmanager major value
> -jobminor # Specify jobmanager minor value
> -directory # Work directory
> -exprovider # Execution provider
> -exmanager # Execution job manager
> -exurl # Execution url
> -remove # Remove (comment out) an entry from sites.xml
> 
> So, for example suppose a user has the following entry in sites.xml by
> default:
> 
> <!--
> <pool handle="teraport" >
> <gridftp url="gsiftp:// tp-grid1.uchicago.edu " />
> <jobmanager universe="vanilla" url="
> tp-grid1.uchicago.edu/jobmanager-pbs " major="2" />
> <workdirectory >/home/tiberius/scratch/SWIFT-WORK</workdirectory>
> </pool>
> -->
> 
> The command:
> 
> $ swiftconfig -template teraport
> 
> Which would uncomment that from sites.xml as is. The user could also
> modify just a part of it:
> 
> $ swiftconfig -template teraport -directory /tmp
> 
> That should modify only the workdirectory and leave everything else
> the same.
> 
> To create your own config, use -entry instead of -template
> 
> $ swiftconfig -entry mynetwork -gridftp ftp.foo -exprovider gt4 (..
> and so on)
> 
> The final mode of swiftconfig is for auth.log in ssh configurations.
> 
> -auth # Set to auth mode
> -sshhost # Name of remote ssh host
> -sshmode # Either password or passphrase
> -sshuser # SSH username
> -sshpassword # SSH password
> -sshpassphrase # SSH passphrase
> -sshkey # Location of SSH key
> 
> Any other ideas or suggestions on how swiftconfig should work are
> welcome.
> 
> David
> 
> 
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel

-- 
Michael Wilde
Computation Institute, University of Chicago
Mathematics and Computer Science Division
Argonne National Laboratory




More information about the Swift-devel mailing list