@@ -270,47 +270,54 @@ static int rsh_component_query(mca_base_module_t **module, int *priority)
270
270
return ret ;
271
271
}
272
272
if (MCA_BASE_VAR_SOURCE_DEFAULT != source ) {
273
- if (!mca_plm_rsh_component .disable_qrsh &&
274
- NULL != getenv ("SGE_ROOT" ) && NULL != getenv ("ARC" ) &&
275
- NULL != getenv ("PE_HOSTFILE" ) && NULL != getenv ("JOB_ID" )) {
276
- /* setup the search path for qrsh */
277
- asprintf (& tmp , "%s/bin/%s" , getenv ("SGE_ROOT" ), getenv ("ARC" ));
278
- /* see if the agent is available */
279
- if (ORTE_SUCCESS != rsh_launch_agent_lookup ("qrsh" , tmp )) {
280
- /* can't be SGE */
281
- opal_output_verbose (1 , orte_plm_base_framework .framework_output ,
282
- "%s plm:rsh: unable to be used: SGE indicated but cannot find path "
283
- "or execution permissions not set for launching agent qrsh" ,
284
- ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ));
285
- free (tmp );
286
- * module = NULL ;
287
- return ORTE_ERROR ;
288
- }
289
- mca_plm_rsh_component .agent = tmp ;
290
- mca_plm_rsh_component .using_qrsh = true;
291
- goto success ;
292
- } else if (!mca_plm_rsh_component .disable_llspawn &&
293
- NULL != getenv ("LOADL_STEP_ID" )) {
294
- /* We are running as a LOADLEVELER job.
295
- * Search for llspawn in the users PATH */
296
- if (ORTE_SUCCESS != rsh_launch_agent_lookup ("llspawn" , NULL )) {
297
- opal_output_verbose (1 , orte_plm_base_framework .framework_output ,
298
- "%s plm:rsh: unable to be used: LoadLeveler "
299
- "indicated but cannot find path or execution "
300
- "permissions not set for launching agent llspawn" ,
301
- ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ));
302
- * module = NULL ;
303
- return ORTE_ERROR ;
304
- }
305
- mca_plm_rsh_component .agent = strdup ("llspawn" );
306
- mca_plm_rsh_component .using_llspawn = true;
307
- goto success ;
273
+ /* if the user specified a launch agent, then
274
+ * respect that request */
275
+ goto lookup ;
276
+ }
277
+
278
+ /* check for SGE */
279
+ if (!mca_plm_rsh_component .disable_qrsh &&
280
+ NULL != getenv ("SGE_ROOT" ) && NULL != getenv ("ARC" ) &&
281
+ NULL != getenv ("PE_HOSTFILE" ) && NULL != getenv ("JOB_ID" )) {
282
+ /* setup the search path for qrsh */
283
+ asprintf (& tmp , "%s/bin/%s" , getenv ("SGE_ROOT" ), getenv ("ARC" ));
284
+ /* see if the agent is available */
285
+ if (ORTE_SUCCESS != rsh_launch_agent_lookup ("qrsh" , tmp )) {
286
+ /* can't be SGE */
287
+ opal_output_verbose (1 , orte_plm_base_framework .framework_output ,
288
+ "%s plm:rsh: unable to be used: SGE indicated but cannot find path "
289
+ "or execution permissions not set for launching agent qrsh" ,
290
+ ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ));
291
+ free (tmp );
292
+ * module = NULL ;
293
+ return ORTE_ERROR ;
308
294
}
295
+ mca_plm_rsh_component .agent = tmp ;
296
+ mca_plm_rsh_component .using_qrsh = true;
297
+ goto success ;
298
+ }
299
+
300
+ /* otherwise, check for LoadLeveler */
301
+ if (!mca_plm_rsh_component .disable_llspawn &&
302
+ NULL != getenv ("LOADL_STEP_ID" )) {
303
+ /* Search for llspawn in the users PATH */
304
+ if (ORTE_SUCCESS != rsh_launch_agent_lookup ("llspawn" , NULL )) {
305
+ opal_output_verbose (1 , orte_plm_base_framework .framework_output ,
306
+ "%s plm:rsh: unable to be used: LoadLeveler "
307
+ "indicated but cannot find path or execution "
308
+ "permissions not set for launching agent llspawn" ,
309
+ ORTE_NAME_PRINT (ORTE_PROC_MY_NAME ));
310
+ * module = NULL ;
311
+ return ORTE_ERROR ;
312
+ }
313
+ mca_plm_rsh_component .agent = strdup ("llspawn" );
314
+ mca_plm_rsh_component .using_llspawn = true;
315
+ goto success ;
309
316
}
310
317
311
318
/* if this isn't an Grid Engine or LoadLeveler environment, or
312
319
* if the user specified a launch agent, look for it */
313
-
320
+ lookup :
314
321
if (ORTE_SUCCESS != rsh_launch_agent_lookup (NULL , NULL )) {
315
322
/* if the user specified an agent and we couldn't find it,
316
323
* then we want to error out and not continue */
@@ -329,7 +336,8 @@ static int rsh_component_query(mca_base_module_t **module, int *priority)
329
336
* module = NULL ;
330
337
return ORTE_ERROR ;
331
338
}
332
- success :
339
+
340
+ success :
333
341
/* we are good - make ourselves available */
334
342
* priority = mca_plm_rsh_component .priority ;
335
343
* module = (mca_base_module_t * ) & orte_plm_rsh_module ;
0 commit comments