HTCondor Project List Archives



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-devel] Gridmanager without Globus



Erik Paulson wrote:
On Mon, Feb 25, 2008 at 05:05:10PM -0600, Jaime Frey wrote:
On Feb 24, 2008, at 9:53 AM, Matthew Farrellee wrote:

Currently, the condor_gridmanager is only compiled if HAVE_EXT_GLOBUS is defined, which only happens when Globus is available.

I think this is no longer correct. The gridmanager is used for Condor-C and ongoing EC2 work, which have nothing to do with Globus.

Attached is a patch to V7.0, but probably applies to V7.1, that always compiles the condor_gridmanager and selectively leaves out functionality based on available externals. For instance, GT4 code is left out if HAVE_EXT_GT4GAHP is not defined.

The patch compiled on all platforms, and appears to test fine as well. On my system, x86 F8, the job_condorc_ab_van and job_condor_abc_van tests pass when Globus is not available.

The patch looks good to me. I don't see a reason not to commit it.


The gridmanager continues to build with the GT4 code enabled, even if
the GT4 code is not available, right? ie all the gridmanager does is
respond to ASCII responses from the gahp. If anything, it should be
like the startd/schedd, which look to see which starter/shadows are
available at runtime and then decide what they'll support.

Why not just leave it on all the time? Of all the code bloat to worry
about, this seems like the least of our worries.

-Erik

It should, definitely. It seems to, on my machine.

Why were so many of these conditionally compiled when the functionality is determined at runtime? One strange one was the Cream code, compiled only if !defined(WIN32). Can we really tell if all of the grid universe back ends are available at runtime? We don't have tests for these cases.

It looks like the Oracle code is not so lucky.

Looking a little closer, it seems that condor_globus could be "compiled" all the time as well. It is really just the perl condor_glidein script.

Thoughts?

Best,


matt
diff --git a/src/Imakefile b/src/Imakefile
index 6595f01..f76d7df 100644
--- a/src/Imakefile
+++ b/src/Imakefile
@@ -13,12 +13,6 @@
 #define StdUnvProgs shadow.V6 starter.V5 
 #define StdUnvLibs ckpt syscall_lib
 
-#if HAVE_EXT_GLOBUS
-#define GlobusProgs gridmanager globus
-#else
-#define GlobusProgs
-#endif
-
 #if HAVE_EXT_CLASSADS && HAVE_EXT_GLOBUS
 #define CreddProgs credd
 #else
@@ -64,10 +58,10 @@
 		master.V6 negotiator.V6 schedd.V6 prio q.V6 rm.V6 \
 		scripts startd.V6 StdUnvProgs submit.V6 status.V6 \
 		tools KbddProgs collector.V6 dagman userlog Eventd \
-		GlobusProgs starter.V6.1 shadow.V6.1 dcskel c-gahp had \
+		globus starter.V6.1 shadow.V6.1 dcskel c-gahp had \
 		CreddProgs StorkProgs \
 		TTProgs DeploymentTools \
-		eventd.V2 transferd procd privsep vm-gahp
+		eventd.V2 transferd procd privsep vm-gahp gridmanager
 
 #define Libraries \
 		util_lib daemon_core.V6 daemon_client classad c++_util	\
@@ -284,10 +278,9 @@ condor_object_target(daemon_core.V6)
 condor_object_target(daemon_client)
 condor_object_target(prio)
 condor_object_target(scripts)
-#if HAVE_EXT_GLOBUS
-    condor_object_target(gridmanager)
-	condor_object_target(globus)
-#endif
+condor_object_target(gridmanager)
+condor_object_target(globus)
+
 #if HAVE_EXT_CLASSADS && HAVE_EXT_GLOBUS
 	condor_object_target(credd)
 #endif
diff --git a/src/condor_gridmanager/Imakefile b/src/condor_gridmanager/Imakefile
index cbc9e76..6529c2f 100644
--- a/src/condor_gridmanager/Imakefile
+++ b/src/condor_gridmanager/Imakefile
@@ -1,8 +1,8 @@
 NAME=condor_gridmanager
+
 GT4GAHP_WRAPPER_NAME = gt4_gahp
 UNICOREGAHP_WRAPPER_NAME = unicore_gahp
 GRIDFTP_WRAPPER_NAME = gridftp_wrapper.sh
-all_target($(NAME) grid_monitor.sh $(GT4GAHP_WRAPPER_NAME) $(UNICOREGAHP_WRAPPER_NAME) $(GRIDFTP_WRAPPER_NAME))
 
 #if WANT_ORACLE_UNIVERSE
 ORACLE_JOB_FLAGS = -DORACLE_UNIVERSE -I/p/condor/workspaces/jfrey/oracle/OraHome1/rdbms/demo -I/p/condor/workspaces/jfrey/oracle/OraHome1/rdbms/public
@@ -16,26 +16,30 @@ LIB = $(ORACLE_JOB_LIB) $(DAEMONCORE_LIB) $(STD_LIBS)
 
 soapobjs(gridmanager)
 
-OBJ = gridmanager_main.o gridmanager.o globusjob.o globusresource.o gt4job.o gt4resource.o infnbatchjob.o mirrorjob.o mirrorresource.o condorjob.o condorresource.o unicorejob.o nordugridjob.o nordugridresource.o creamjob.o creamresource.o proxymanager.o gahp-client.o $(ORACLE_JOB_OBJ) basejob.o baseresource.o gridftpmanager.o gridmanager_instantiate.o $(SOAP_OBJS)
+OBJ = gridmanager_main.o gridmanager.o globusjob.o globusresource.o gt4job.o gt4resource.o nordugridjob.o nordugridresource.o infnbatchjob.o mirrorjob.o mirrorresource.o condorjob.o condorresource.o unicorejob.o creamjob.o creamresource.o proxymanager.o gahp-client.o $(ORACLE_JOB_OBJ) basejob.o baseresource.o gridftpmanager.o gridmanager_instantiate.o $(SOAP_OBJS)
 
 template_inst( gridmanager_instantiate.C, gridmanager_instantiate.o )
 
 public_c_plus_target($(NAME),sbin,$(OBJ),$(LIB))
 
-GT4GAHP_WRAPPER_OBJ = gt4_gahp_wrapper.o
 UNICOREGAHP_WRAPPER_OBJ = unicore_gahp_wrapper.o
-
+all_target($(NAME) grid_monitor.sh $(GT4GAHP_WRAPPER_NAME) $(UNICOREGAHP_WRAPPER_NAME) $(GRIDFTP_WRAPPER_NAME))
 public_c_plus_target($(UNICOREGAHP_WRAPPER_NAME),sbin,$(UNICOREGAHP_WRAPPER_OBJ),$(STD_LIBS))
 
+GT4GAHP_WRAPPER_OBJ = gt4_gahp_wrapper.o
 public_c_plus_target($(GT4GAHP_WRAPPER_NAME),sbin,$(GT4GAHP_WRAPPER_OBJ),$(STD_LIBS))
 
+#if HAVE_EXT_GAHP
 release_copy_target($(GAHP_DIR)/gahp_server.dynamic,sbin,gahp_server,EXECUTABLE_MODE)
 static_copy_target($(GAHP_DIR)/gahp_server.static,sbin,gahp_server,EXECUTABLE_MODE)
 strip_copy_target($(GAHP_DIR)/gahp_server.dynamic,sbin,gahp_server,EXECUTABLE_MODE)
+#endif
 
+#if HAVE_EXT_GLOBUS
 release_copy_target($(GLOBUS_DIR)/sbin/globus-gridftp-server.dynamic,libexec,globus-gridftp-server,EXECUTABLE_MODE)
 static_copy_target($(GLOBUS_DIR)/sbin/globus-gridftp-server.static,libexec,globus-gridftp-server,EXECUTABLE_MODE)
 strip_copy_target($(GLOBUS_DIR)/sbin/globus-gridftp-server.dynamic,libexec,globus-gridftp-server,EXECUTABLE_MODE)
+#endif
 
 public_copy_target(grid_monitor.sh,sbin,grid_monitor.sh,EXECUTABLE_MODE)
 public_copy_target($(GRIDFTP_WRAPPER_NAME),libexec,$(GRIDFTP_WRAPPER_NAME),EXECUTABLE_MODE)
@@ -44,11 +48,13 @@ grid_monitor.sh: grid_monitor_wrapper grid_manager_monitor_agent
 	cat grid_monitor_wrapper grid_manager_monitor_agent > grid_monitor.sh
 	chmod 755 grid_monitor.sh
 
+#if HAVE_EXT_GT4GAHP
 public_copy_target($(GT4GAHP_DIR)/gt4-gahp.jar,lib,gt4-gahp.jar,TEXT_MODE)
 
 release_recursive_copy_target($(GT4GAHP_DIR)/gt4,lib/gt4)
 static_recursive_copy_target($(GT4GAHP_DIR)/gt4,lib/gt4)
 strip_recursive_copy_target($(GT4GAHP_DIR)/gt4,lib/gt4)
+#endif
 
 #if HAVE_EXT_BLAHP
 release_recursive_copy_target($(BLAHP_DIR)/dynamic,lib/glite)
@@ -56,15 +62,20 @@ static_recursive_copy_target($(BLAHP_DIR)/static,lib/glite)
 strip_recursive_copy_target($(BLAHP_DIR)/dynamic,lib/glite)
 #endif
 
+#if HAVE_EXT_UNICOREGAHP
 public_copy_target($(UNICOREGAHP_DIR)/ugahp.jar,lib,ugahp.jar,TEXT_MODE)
+#endif
 
+#if HAVE_EXT_NORDUGRIDGAHP
 release_copy_target($(NORDUGRIDGAHP_DIR)/bin/nordugrid_gahp.dynamic,sbin,nordugrid_gahp,EXECUTABLE_MODE)
 static_copy_target($(NORDUGRIDGAHP_DIR)/bin/nordugrid_gahp.static,sbin,nordugrid_gahp,EXECUTABLE_MODE)
 strip_copy_target($(NORDUGRIDGAHP_DIR)/bin/nordugrid_gahp.dynamic,sbin,nordugrid_gahp,EXECUTABLE_MODE)
+#endif
 
-
+#if HAVE_EXT_GAHP
 $(GAHP_DIR)/gahp_server:
 	/bin/true
+#endif
 
 html:
 testbin:: all
diff --git a/src/condor_gridmanager/gridmanager.C b/src/condor_gridmanager/gridmanager.C
index e85d71c..55b5a49 100644
--- a/src/condor_gridmanager/gridmanager.C
+++ b/src/condor_gridmanager/gridmanager.C
@@ -34,22 +34,19 @@
 #include "gahp-client.h"
 #include "gridftpmanager.h"
 
-#include "globusjob.h"
-
 #if defined(ORACLE_UNIVERSE)
 #include "oraclejob.h"
 #endif
 
 #include "nordugridjob.h"
+#include "gt4job.h"
 #include "unicorejob.h"
 #include "mirrorjob.h"
 #include "condorjob.h"
-#include "gt4job.h"
+#include "globusjob.h"
 #include "infnbatchjob.h"
 
-#if !defined(WIN32)
-#  include "creamjob.h"
-#endif
+#include "creamjob.h"
 
 #define QMGMT_TIMEOUT 15
 
@@ -323,7 +320,6 @@ Init()
 	jobTypes.Append( new_type );
 #endif
 
-#if !defined(WIN32)
 	new_type = new JobType;
 	new_type->Name = strdup( "Cream" );
 	new_type->InitFunc = CreamJobInit;
@@ -331,7 +327,6 @@ Init()
 	new_type->AdMatchFunc = CreamJobAdMatch;
 	new_type->CreateFunc = CreamJobCreate;
 	jobTypes.Append( new_type );
-#endif
 
 	new_type = new JobType;
 	new_type->Name = strdup( "Nordugrid" );