Hello,<br><br>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:<br>
<br>sqlite> .schema sites_default<br>CREATE TABLE sites_default(<br>    name varchar(256) primary key, <br>    filesys_provider varchar(256), <br>    filesys_url varchar(256), <br>    execution_provider varchar(256), <br>
    execution_url varchar(256), <br>    execution_jobmanager varchar(256), <br>    workdirectory varchar(256)<br>);<br><br>sqlite> .schema sites_profiles_default<br>CREATE TABLE sites_profiles_default(<br>    name varchar(256) primary key, <br>
    namespace varchar(256), <br>    key varchar(256), <br>    value varchar(256)<br>);<br><br>sqlite> .schema tc_default<br>CREATE TABLE tc_default(<br>    sitename varchar(256), <br>    transformation varchar(256), <br>
    path varchar(256), <br>    installed varchar(256), <br>    platform varchar(256)<br>);<br><br>sqlite> .schema tc_profiles_default<br>CREATE TABLE tc_profiles_default(<br>    name varchar(256), <br>    profile varchar(256)<br>
);<br><br>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)<br>
<br>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.<br>
<br>Here are some examples of how it could run:<br><br>$ swiftconfig add teraport<br>This will take data from sites_default and sites_profiles_default, generate the XML and add to sites.xml.<br><br>$ swiftconfig set maxtime 5000<br>
Modify data from local tables, sites_default and sites_profiles, regenerate XML and modifiy sites.xml.<br><br>$ swiftconfig remove teraport<br>Removes teraport config from sites and sites_profiles (keeping the original profile unmodified)<br>
<br>$ swiftconfig apps convert composite<br>Transfers data from tc_default to tc, updates tc.data.<br><br>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.<br>
<br>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)<br><br>