[Swift-devel] Re: Swift configuration interface

David Kelly dk0966 at cs.ship.edu
Mon Jun 21 09:49:41 CDT 2010


Hello,

Here are the plans for a database driven swiftconfig. Data will be stored in
a SQLite database file stored in the swift/etc. It will contain a global
information and local information. The global information will be a set of
common tc entries and site configurations. It will include the
profile/template information for multiple sites. It will be stored in the
following tables:

sqlite> .schema sites_default
CREATE TABLE sites_default(
    name varchar(256) primary key,
    filesys_provider varchar(256),
    filesys_url varchar(256),
    execution_provider varchar(256),
    execution_url varchar(256),
    execution_jobmanager varchar(256),
    workdirectory varchar(256)
);

sqlite> .schema sites_profiles_default
CREATE TABLE sites_profiles_default(
    name varchar(256) primary key,
    namespace varchar(256),
    key varchar(256),
    value varchar(256)
);

sqlite> .schema tc_default
CREATE TABLE tc_default(
    sitename varchar(256),
    transformation varchar(256),
    path varchar(256),
    installed varchar(256),
    platform varchar(256)
);

sqlite> .schema tc_profiles_default
CREATE TABLE tc_profiles_default(
    name varchar(256),
    profile varchar(256)
);

This default data will not be modified by swiftconfig, but instead serve as
a basis for customization. The custom/local information will be stored in
similar tables, without the "default" suffix (sites, sites_profiles, tc,
tc_profiles)

Swiftconfig will generate live configuration files tc.data and sites.xml. It
will determine the location based on, in this order, a specific file
location given to swift config, the location identified by $SWIFT_HOME, and
based on the location of 'swift' in $PATH.

Here are some examples of how it could run:

$ swiftconfig add teraport
This will take data from sites_default and sites_profiles_default, generate
the XML and add to sites.xml.

$ swiftconfig set maxtime 5000
Modify data from local tables, sites_default and sites_profiles, regenerate
XML and modifiy sites.xml.

$ swiftconfig remove teraport
Removes teraport config from sites and sites_profiles (keeping the original
profile unmodified)

$ swiftconfig apps convert composite
Transfers data from tc_default to tc, updates tc.data.

Writing the application in Python could help resolve some of the issues I
was having with Perl. Python has all the database, XML (as well as web and
GUI for later) modules I would need included by default, instead of having
to include compiled modules like DBI and DBD::sqlite in swift/lib.

Does these changes simplify things enough? Perhaps we could talk more about
it today on the call (or maybe a separate call, depending on how long it
would take)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/swift-devel/attachments/20100621/2fc7f8e6/attachment.html>


More information about the Swift-devel mailing list