Hey everyone,<div>This is in reference to a problem I just sent to swift-support earlier.</div><div><br></div><div>In order to get coasters to work on a condor system without a shared file system, I suggested putting <a href="http://worker.pl">worker.pl</a> as an input file to condor which is then transferred.</div>

<div><br></div><div>The problem is that this needs to be translated through from the coasters provider or via some environmental inputs that I don't know how to do</div><div><br></div><div>However, here is a hacked proof of concept that "solves" the problem in a way specific to me.</div>

<div>What it does is rather than write the randomly generated cscript*.pl file in the "arguments" string, the condor provider now skips that argument and throws in the hard coded path to <a href="http://worker.pl">worker.pl</a></div>

<div><br></div><div>It would be nice for someone who actually knows what they're doing to make a general version of this fix</div><div><br></div><div>Best </div><div>Glen</div><div><br></div><div>------------------------</div>

<div><br></div><div> Index: provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/condor/CondorExecutor.java</div><div>===================================================================</div><div>--- provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/condor/CondorExecutor.java    (revision 3524)</div>

<div>+++ provider-localscheduler/src/org/globus/cog/abstraction/impl/scheduler/condor/CondorExecutor.java    (working copy)</div><div>@@ -53,6 +53,16 @@</div><div>                if ("MPI".equals(type)) {</div>
<div>
                        wr.write("universe = MPI\n");</div><div>                }</div><div>+               else if ("parallel".equals(type)) {</div><div>+                       wr.write("universe = parallel\n");</div>

<div>+               }</div><div>+                else if ("local-cloud".equals(type)){</div><div>+                       wr.write("universe = vanilla\n");</div><div>+                       wr.write("should_transfer_files = YES\n");</div>

<div>+                       wr.write("when_to_transfer_output = ON_EXIT_OR_EVICT\n");</div><div>+                       wr.write("Transfer_Executable = true\n");</div><div>+                        wr.write("transfer_input_files = /mnt/hadoop/hockyg/swiftwork/<a href="http://worker.pl">worker.pl</a>\n");</div>

<div>+                }</div><div>                else if("grid".equals(type)) {</div><div>                        grid = true;</div><div>                        String gridResource = (String) spec.getAttribute("gridResource");</div>

<div>@@ -69,10 +79,15 @@</div><div>                else {</div><div>                        wr.write("universe = vanilla\n");</div><div>                }</div><div>+</div><div>+                //set account group if specified</div>

<div>+               writeAttr("AccountingGroup", "+AccountingGroup = ", wr);</div><div>+</div><div>                if ("true".equals(spec.getAttribute("holdIsFailure"))) {</div><div>

                        wr.write("periodic_remove = JobStatus == 5\n");</div><div>                }</div><div>                writeAttr("count", "machine_count = ", wr);</div><div>+               writeAttr("count", "request_cpus = ", wr);</div>

<div>                if (spec.getStdInput() != null) {</div><div>                        wr.write("input = " + quote(spec.getStdInput()) + "\n");</div><div>                }</div><div>@@ -103,6 +118,9 @@</div>

<div>                if (args != null && args.size() > 0) {</div><div>                        wr.write("arguments = ");</div><div>                        i = args.iterator();</div><div>+                        //note: space at end of next line is important</div>

<div>+                        wr.write("/mnt/hadoop/hockyg/swiftwork/<a href="http://worker.pl">worker.pl</a> ");</div><div>+                        i.next();</div><div>                        while (i.hasNext()) {</div>

<div>                                wr.write(quote((String) i.next()));</div><div>                                if (i.hasNext()) {</div><div><br></div>