[Swift-devel] swiftconfig
wilde at mcs.anl.gov
wilde at mcs.anl.gov
Mon Jun 7 22:11:22 CDT 2010
David, after reading the command line syntax you proposed, I realize this is going to take more thought and discussion.
What I was originally envisioning was a swiftconfig command that stored a set of templates for various sites, and adjusted them based on the individual user (eg the <workdirectory> and user-selected options (like local vs Globus vs ssh access; coasters vs non-coasters; and for coasters, a reduced set of options that could tailor the options similarly into a few common profiles).
Justin suggested in discussion today that we start by just building a manual catalog of a good set of examples that covers the local and grid systems that many of use use regularly, so that, at least, people can copy a documented example and adjust as needed.
This might a good exercise from which we could identify that patterns that a swiftconfig command could use to simplify the process.
I started trying to outline some of the patterns; we should match these up against profiles for the 8 or so systems that I mentioned in a message to this list last week (pads, fusion, ranger, etc).
Im starting to feel myself swayed by your suggests for an interactive interface, but I find it hard at the moment to see what that would look like. Possible a set of drop-downs or range selection boxes that adjust as the user narrows a site's profile in a fashion that mimics the outline below?
- Mike
1. Local immediate execution
1.1 without coasters
1.2 with coasters
2. Local scheduled execution
2.1 without coasters
2.1.1 PBS (eg: TeraPort, PADS, Fusion, many TG sites)
2.1.2 SGE (eg: Ranger, godzilla, sisboombah)
2.1.3 Condor (eg: Purdue TeraGrid Condor pool; HNL condor pool; UC Condor pool???)
1.2 with coasters
2.2.1 PBS (eg: TeraPort, PADS, Fusion, many TG sites
2.2.2 SGE (eg: Ranger, godzilla, sisboombah)
2.2.3 Condor (eg: Purdue TeraGrid Condor pool; HNL condor pool; UC Condor pool???)
3. ssh to remote sites
3.1 to local immediate
3.2 to coasters
to coasters pbs, sge, and condor
4. GT2 to remote sites
4.1 Non-Condor-G
4.1.1 Plain
4.1.2 Coasters
4.2 Condor-G
4.2.1 Plain
4.2.2 Coasters
----- "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