[Swift-devel] a note on running coasters on osg's RENCI Engage site

Ben Clifford benc at hawaga.org.uk
Mon Jan 26 10:10:05 CST 2009


Coasters in the release don't work on RENCI Engage.

I fiddled with this a bit before, and just fiddled with it a bit more.

The external IP address of the cluster head node (152.54.1.231) is not 
accessible from the cluster worker nodes, which sit on a different 
network.

The headnode *is* accessible from its IP address on that network, 
192.168.1.11.

Forcing the URI passed to workers to use that IP address instead of the 
automatically determined one is sufficient to make coasters work on the 
RENCI Engage site.

The hack I made in my local install to test that is shown below for 
interest.

I can't see an easy way to automatically determine what this address 
should be in the general case. It might be useful to have a configuration 
parameter to allow it to be specified.

--- 
cog.orig/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java     
2008-11-04 17:28:42.000000000 +0000
+++ 
cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/job/manager/WorkerManager.java  
2009-01-26 15:51:44.000000000 +0000
@@ -14,6 +14,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -234,7 +235,18 @@
         JobSpecification js = new JobSpecificationImpl();
         js.setExecutable("/usr/bin/perl");
         js.addArgument(script.getAbsolutePath());
-        js.addArgument(callbackURI.toString());
+try {
+        logger.warn("original callback URI is "+callbackURI.toString());
+       URI internalcallbackURI=new URI(callbackURI.getScheme(),
+          callbackURI.getUserInfo(),
+                                   "192.168.1.11",
+           callbackURI.getPort(), callbackURI.getPath(),
+           callbackURI.getQuery(), callbackURI.getFragment());
+        logger.warn("internal callback URI is 
"+internalcallbackURI.toString());
+        js.addArgument(internalcallbackURI.toString());
+} catch(URISyntaxException use) { throw new RuntimeException(use); }
+//        js.addArgument(callbackURI.toString());
+
         // js.addArgument(id);
         return js;
     }


-- 




More information about the Swift-devel mailing list