[gavia-ms-commit] r1279 - trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia
commit at globus.org
commit at globus.org
Fri Jul 10 17:59:06 CDT 2009
Author: patricka
Date: 2009-07-10 17:59:04 -0500 (Fri, 10 Jul 2009)
New Revision: 1279
Modified:
trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia.in
trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia_job_manager_adapter.xml
Log:
Fixes Bug 6793: Adds support for configuring defaut rank and requirements from the gavia config file. If a rank or requirements section is defined in the config file, then it replaces the default rank in the gavia.in file.
Modified: trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia.in
===================================================================
--- trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia.in 2009-07-09 18:30:43 UTC (rev 1278)
+++ trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia.in 2009-07-10 22:59:04 UTC (rev 1279)
@@ -110,10 +110,7 @@
$log_config_file = $globus_location . "/etc/gavia_job_manager_adapter.xml";
- # Default universe for jobs submitted to this job manager
- $universe = "grid";
-
#
# Get Condor version
#
@@ -147,19 +144,19 @@
# 2.1 Insert new attributes in job description
# 2.1.1 Get atttrs from config file
- $gavia_config = XMLin($log_config_file, GroupTags => {'blacklist' => 'site'}, ForceArray => ['site']);
-
+ $gavia_config = XMLin($log_config_file,
+ GroupTags => {'blacklist' => 'site'},
+ ForceArray => ['site'], SuppressEmpty => 1);
$job_desc_log_dir = $gavia_config->{jobDescLogDir};
$adapter_log_file = $gavia_config->{adapterLogFile};
- $universe = $gavia_config->{defaultUniverse};
+ $universe = $gavia_config->{defaultUniverse} || "grid";
if (UNIVERSAL::isa( $gavia_config->{blacklist}, "ARRAY" )) {
@blacklist = @{$gavia_config->{blacklist}};
}
+ $config_requirements = $gavia_config->{requirements};
+ $config_rank = $gavia_config->{rank};
- ## print "#\n# extracted elements\n#\n";
- ## print " job_desc_log_dir = \"$tags->{'jobDescLogDir'}\"\n";
- ## print " adapter_log_file = \"$tags->{'adapterLogFile'}\"\n";
# 2.1.2 Insert attrs in job description
if ( $adapter_log_file ) {
@@ -331,31 +328,14 @@
my $dump = Dumper( $description->extensions() );
$self->log("\n DEBUG BEGIN:\n <extensions> element:\n ${dump} DEBUG END") if ( $dump );
+ my $extensions = $description->extensions();
+ $extensions = XMLin("<extensions>$extensions</extensions>");
- my $ext = $description->extensions();
- my $res = undef;
-
- #
- # Extract universe to $universe
- #
- $res = ($ext =~ /\<universe.*?\>(.*)\<\/universe\>.*/s);
- $universe = $1 if ($1 && $res);
- #$self->log("DEBUG:\nDEBUG universe = $universe\nDEBUG");
-
- #
- # Extract user's requirements to $user_req
- #
- $res = ($ext =~ /\<requirements.*?\>(.*)\<\/requirements\>.*/s);
- if ($1 && $res ) {
- $user_req = $1;
- $user_req =~ s/==/=?=/g;
- $user_req =~ s/!=/=!=/g;
- $user_req =~ s/"/\"/g;
- }
- if ( $user_req ) {
- $user_req = " && (". $user_req . ")";
- }
-
+ $universe = $extensions->{universe} if $extensions->{universe};
+ $user_req = $extensions->{requirements};
+ $user_req =~ s/"/\"/g;
+ $user_req =~ s/==/=?=/g;
+ $user_req =~ s/!=/=!=/g;
}
@@ -572,27 +552,37 @@
#
# Set $requirements
#
- $requirements = "(TARGET.resource_name =!= UNDEFINED)";
- if ( defined $job_service_host_port ) {
- $requirements .= " \
- && (TARGET.grid_type =!= UNDEFINED) \
- && (TARGET.grid_type =?= \"gt2\" || TARGET.grid_type =?= \"gt4\" ) \
- && (TARGET.gatekeeper_url =!= UNDEFINED ) \
- && (TARGET.gatekeeper_url =?= \"$job_service_host_port\") ";
+ if ($config_requirements) {
+ $requirements = $config_requirements;
}
- if ( defined $job_manager_type ) {
- $requirements .= " \
- && (TARGET.job_manager_type =!= UNDEFINED) \
- && (TARGET.job_manager_type =?= \"$job_manager_type\") ";
+ else {
+ $requirements = "(TARGET.resource_name =!= UNDEFINED) && (TARGET.Name =!= LastMatchName0)";
+ if ( defined $job_service_host_port ) {
+ $requirements .= " \
+ && (TARGET.grid_type =!= UNDEFINED) \
+ && (TARGET.grid_type =?= \"gt2\" || TARGET.grid_type =?= \"gt4\" ) \
+ && (TARGET.gatekeeper_url =!= UNDEFINED ) \
+ && (TARGET.gatekeeper_url =?= \"$job_service_host_port\") ";
+ }
+ if ( defined $job_manager_type ) {
+ $requirements .= " \
+ && (TARGET.job_manager_type =!= UNDEFINED) \
+ && (TARGET.job_manager_type =?= \"$job_manager_type\") ";
+ }
}
if ( $user_req ) {
- $requirements .= $user_req;
+ $requirements .= " && ($user_req)";
}
#
# Set $rank
#
- $rank = "Rank = ( -1.0 * CurMatches ) + GlueCEStateTotalCPUs";
+ if ($config_rank) {
+ $rank = $config_rank;
+ }
+ else {
+ $rank = "( -1.0 * CurMatches ) + GlueCEStateTotalCPUs";
+ }
#
@@ -692,7 +682,6 @@
# For debugging
- #print SCRIPT_FILE "globus_xml = $globus_xml</job>\n";
print SCRIPT_FILE "globus_xml = $globus_xml\n";
@@ -734,7 +723,6 @@
}
}
- $requirements .= " && (TARGET.Name =!= LastMatchName0)";
#
@@ -750,10 +738,7 @@
# rank
#
print SCRIPT_FILE "Requirements = $requirements\n";
- if ( $rank ne '' )
- {
- print SCRIPT_FILE "$rank\n";
- }
+ print SCRIPT_FILE "Rank = $rank\n" if $rank;
#
Modified: trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia_job_manager_adapter.xml
===================================================================
--- trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia_job_manager_adapter.xml 2009-07-09 18:30:43 UTC (rev 1278)
+++ trunk/MetaScheduling/Adapter/gpt-packages/globus_gram_job_manager_setup_gavia/gavia_job_manager_adapter.xml 2009-07-10 22:59:04 UTC (rev 1279)
@@ -7,6 +7,25 @@
<defaultUniverse>grid</defaultUniverse>
+
+ <!-- If you like, you can write custom rank and requirements
+ expressions to replace the Gavia defaults for your specific site.
+
+ Your rank and requirements should be in the Condor classad format.
+ Read about this here:
+
+ http://www.cs.wisc.edu/condor/manual/latest/4_1Condor_s_ClassAd.html
+
+ The default rank and requirements for Gavia are as follows:
+
+ <requirements>(TARGET.resource_name =!= UNDEFINED)</requirements>
+ <rank>( -1.0 * CurMatches ) + GlueCEStateTotalCPUs</rank>
+ -->
+ <requirements></requirements>
+ <rank></rank>
+
+
+
<!-- List machines that you would not like Gavia to schedule
jobs to. You can use the fill site name in the format:
More information about the gavia-ms-commit
mailing list