[Swift-commit] r7798 - branches/release-0.95/bin
davidk at ci.uchicago.edu
davidk at ci.uchicago.edu
Thu Apr 24 15:37:07 CDT 2014
Author: davidk
Date: 2014-04-24 15:37:07 -0500 (Thu, 24 Apr 2014)
New Revision: 7798
Modified:
branches/release-0.95/bin/swiftrun
Log:
Verify swift properties
Modified: branches/release-0.95/bin/swiftrun
===================================================================
--- branches/release-0.95/bin/swiftrun 2014-04-24 18:34:47 UTC (rev 7797)
+++ branches/release-0.95/bin/swiftrun 2014-04-24 20:37:07 UTC (rev 7798)
@@ -26,42 +26,84 @@
my @new_swift_args; # New command line arguments
my @original_swift_args; # Original arguments
-# List of xml shortcuts
+# List of allowable site properties and their xml namespace
my %site_aliases = (
- 'allocationstepsize' => 'globus.allocationStepSize',
- 'condor' => 'globus.condor',
- 'delaybase' => 'karajan.delayBase',
- 'filesystem' => 'filesystem',
- 'highoverallocation' => 'globus.highOverallocation',
- 'initialscore' => 'karajan.initialScore',
- 'internalhostname' => 'globus.internalhostname',
- 'jobgranularity' => 'globus.nodeGranularity',
- 'jobmanager' => 'jobmanager',
- 'jobproject' => 'globus.project',
- 'jobqueue' => 'globus.queue',
- 'jobtype' => 'globus.jobType',
- 'jobwalltime' => 'globus.maxtime',
- 'jobwalltimereserve' => 'globus.reserve',
- 'lowoverallocation' => 'globus.lowOverallocation',
- 'maxjobs' => 'globus.slots',
- 'maxnodesperjob' => 'globus.maxNodes',
- 'maxsubmitrate' => 'karajan.maxSubmitRate',
- 'overallocationdecayfactor' => 'globus.overallocationDecayFactor',
- 'pe' => 'globus.pe',
- 'providerattributes' => 'globus.providerAttributes',
- 'remotemonitorenabled' => 'globus.remoteMonitorEnabled',
- 'slurm' => 'globus.slurm',
- 'taskdir' => 'globus.scratch',
- 'tasksperworker' => 'globus.jobsPerNode',
- 'taskthrottle' => 'karajan.jobThrottle',
- 'taskwalltime' => 'globus.maxwalltime',
- 'userhomeoverride' => 'globus.userHomeOverride',
- 'workdir' => 'workdir',
- 'workerloglevel' => 'globus.workerlogginglevel',
- 'workerlogdirectory' => 'globus.workerloggingdirectory',
- 'workermanager' => 'globus.workerManager',
+ 'allocationstepsize' => 'globus.allocationStepSize',
+ 'condor' => 'globus.condor',
+ 'delaybase' => 'karajan.delayBase',
+ 'filesystem' => 'filesystem',
+ 'highoverallocation' => 'globus.highOverallocation',
+ 'initialscore' => 'karajan.initialScore',
+ 'internalhostname' => 'globus.internalhostname',
+ 'jobgranularity' => 'globus.nodeGranularity',
+ 'jobmanager' => 'jobmanager',
+ 'jobproject' => 'globus.project',
+ 'jobqueue' => 'globus.queue',
+ 'jobtype' => 'globus.jobType',
+ 'jobwalltime' => 'globus.maxtime',
+ 'jobwalltimereserve' => 'globus.reserve',
+ 'lowoverallocation' => 'globus.lowOverallocation',
+ 'maxjobs' => 'globus.slots',
+ 'maxnodesperjob' => 'globus.maxNodes',
+ 'maxsubmitrate' => 'karajan.maxSubmitRate',
+ 'overallocationdecayfactor' => 'globus.overallocationDecayFactor',
+ 'pe' => 'globus.pe',
+ 'providerattributes' => 'globus.providerAttributes',
+ 'remotemonitorenabled' => 'globus.remoteMonitorEnabled',
+ 'slurm' => 'globus.slurm',
+ 'taskdir' => 'globus.scratch',
+ 'tasksperworker' => 'globus.jobsPerNode',
+ 'taskthrottle' => 'karajan.jobThrottle',
+ 'taskwalltime' => 'globus.maxwalltime',
+ 'userhomeoverride' => 'globus.userHomeOverride',
+ 'workdir' => 'workdir',
+ 'workerloglevel' => 'globus.workerlogginglevel',
+ 'workerlogdirectory' => 'globus.workerloggingdirectory',
+ 'workermanager' => 'globus.workerManager',
);
+# List of allowable swift properties and aliases
+my %property_aliases = (
+ 'caching.algorithm' => 'caching.algorithm',
+ 'clustering.enabled' => 'clustering.enabled',
+ 'clustering.min.time' => 'clustering.min.time',
+ 'clustering.queue.delay' => 'clustering.queue.delay',
+ 'config.rundirs' => 'config.rundirs',
+ 'execution.retries' => 'execution.retries',
+ 'foreach.max.threads' => 'foreach.max.threads',
+ 'kickstart.enabled' => 'kickstart.enabled',
+ 'kickstart.always.transfer' => 'kickstart.always.transfer',
+ 'lazy.errors' => 'lazy.errors',
+ 'pgraph' => 'pgraph',
+ 'pgraph.graph.options' => 'pgraph.graph.options',
+ 'pgraph.node.options' => 'pgraph.node.options',
+ 'provenance.log' => 'provenance.log',
+ 'provider.staging.pin.swiftfiles' => 'provider.staging.pin.swiftfiles',
+ 'replication.enabled' => 'replication.enabled',
+ 'replication.min.queue.time' => 'replication.min.queue.time',
+ 'replication.limit' => 'replication.limit',
+ 'sitedir.keep' => 'sitedir.keep',
+ 'sites.file' => 'sites.file',
+ 'status.mode' => 'status.mode',
+ 'swift.home' => 'swift.home',
+ 'tc.file' => 'tc.file',
+ 'tcp.port.range' => 'tcp.port.range',
+ 'throttle.file.operations' => 'throttle.file.operations',
+ 'throttle.host.submit' => 'throttle.host.submit',
+ 'throttle.score.job.factor' => 'throttle.score.job.factor',
+ 'throttle.submit' => 'throttle.submit',
+ 'throttle.transfers' => 'throttle.transfers',
+ 'ticker.date.format' => 'ticker.date.format',
+ 'ticker.disable' => 'ticker.disable',
+ 'ticker.prefix' => 'ticker.prefix',
+ 'tracing.enabled' => 'tracing.enabled',
+ 'use.wrapper.staging' => 'use.wrapper.staging',
+ 'use.provider.staging' => 'use.provider.staging',
+ 'wrapper.invocation.mode' => 'wrapper.invocation.mode',
+ 'wrapper.parameter.mode' => 'wrapper.parameter.mode',
+ 'wrapperlog.always.transfer' => 'wrapperlog.always.transfer',
+);
+
# Verify a property file exists and add it to the search path
sub add_property_file {
my $property_file = $_[0];
@@ -230,9 +272,13 @@
open( PROPERTY_FILE, ">$run_directory/$property_filename" ) || &swiftquit("Unable to open $run_directory/$property_filename");
while( my( $key, $value ) = each( %properties ) ) {
# Ignore properties that start with app. or site.
- next if $key =~ /^\s*app./;
- next if $key =~ /^\s*site/;
- print PROPERTY_FILE "$key=$value\n";
+ next if $key =~ /^\s*app\./;
+ next if $key =~ /^\s*site$/;
+ next if $key =~ /^\s*site\./;
+ if( !defined( $property_aliases{ $key } )) {
+ swiftquit("Error: Unknown property $key");
+ }
+ print PROPERTY_FILE "$property_aliases{$key}=$value\n";
}
push( @new_swift_args, "-config $run_directory/$property_filename" );
}
More information about the Swift-commit
mailing list