Per conversation with Josh H., remove the stale rsh component from the filem framework. Let the "raw" component do the job.
This commit was SVN r28338.
Этот коммит содержится в:
родитель
d6ac721e22
Коммит
1a54e52da4
@ -45,19 +45,6 @@ typedef uint8_t orte_filem_cmd_flag_t;
|
|||||||
#define ORTE_FILEM_GET_PROC_NODE_NAME_CMD 1
|
#define ORTE_FILEM_GET_PROC_NODE_NAME_CMD 1
|
||||||
#define ORTE_FILEM_GET_REMOTE_PATH_CMD 2
|
#define ORTE_FILEM_GET_REMOTE_PATH_CMD 2
|
||||||
|
|
||||||
/**
|
|
||||||
* FileM request object maintenance functions
|
|
||||||
*/
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_process_set_construct(orte_filem_base_process_set_t *obj);
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_process_set_destruct( orte_filem_base_process_set_t *obj);
|
|
||||||
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_file_set_construct(orte_filem_base_file_set_t *obj);
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_file_set_destruct( orte_filem_base_file_set_t *obj);
|
|
||||||
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_construct(orte_filem_base_request_t *obj);
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_destruct( orte_filem_base_request_t *obj);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Globals
|
* Globals
|
||||||
*/
|
*/
|
||||||
@ -69,10 +56,6 @@ ORTE_DECLSPEC extern bool orte_filem_base_is_active;
|
|||||||
* These are to be used when no component is selected.
|
* These are to be used when no component is selected.
|
||||||
* They just return success, and empty strings as necessary.
|
* They just return success, and empty strings as necessary.
|
||||||
*/
|
*/
|
||||||
ORTE_DECLSPEC int orte_filem_base_none_open(void);
|
|
||||||
ORTE_DECLSPEC int orte_filem_base_none_close(void);
|
|
||||||
ORTE_DECLSPEC int orte_filem_base_none_query(mca_base_module_t **module, int *priority);
|
|
||||||
|
|
||||||
int orte_filem_base_module_init(void);
|
int orte_filem_base_module_init(void);
|
||||||
int orte_filem_base_module_finalize(void);
|
int orte_filem_base_module_finalize(void);
|
||||||
|
|
||||||
@ -101,17 +84,6 @@ ORTE_DECLSPEC void orte_filem_base_recv(int status, orte_process_name_t* sender,
|
|||||||
void* cbdata);
|
void* cbdata);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Node Name for an ORTE process
|
|
||||||
*/
|
|
||||||
ORTE_DECLSPEC int orte_filem_base_get_proc_node_name(orte_process_name_t *proc, char **machine_name);
|
|
||||||
ORTE_DECLSPEC int orte_filem_base_get_remote_path(char **remote_ref, orte_process_name_t *peer, int *flag);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Setup request structure
|
|
||||||
*/
|
|
||||||
ORTE_DECLSPEC int orte_filem_base_prepare_request(orte_filem_base_request_t *request, int move_type);
|
|
||||||
|
|
||||||
END_C_DECLS
|
END_C_DECLS
|
||||||
|
|
||||||
#endif /* ORTE_FILEM_BASE_H */
|
#endif /* ORTE_FILEM_BASE_H */
|
||||||
|
@ -50,27 +50,22 @@
|
|||||||
/******************
|
/******************
|
||||||
* Object Stuff
|
* Object Stuff
|
||||||
******************/
|
******************/
|
||||||
ORTE_DECLSPEC OBJ_CLASS_INSTANCE(orte_filem_base_process_set_t,
|
static void process_set_construct(orte_filem_base_process_set_t *req) {
|
||||||
opal_list_item_t,
|
|
||||||
orte_filem_base_process_set_construct,
|
|
||||||
orte_filem_base_process_set_destruct);
|
|
||||||
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_process_set_construct(orte_filem_base_process_set_t *req) {
|
|
||||||
req->source = *ORTE_NAME_INVALID;
|
req->source = *ORTE_NAME_INVALID;
|
||||||
req->sink = *ORTE_NAME_INVALID;
|
req->sink = *ORTE_NAME_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_process_set_destruct( orte_filem_base_process_set_t *req) {
|
static void process_set_destruct( orte_filem_base_process_set_t *req) {
|
||||||
req->source = *ORTE_NAME_INVALID;
|
req->source = *ORTE_NAME_INVALID;
|
||||||
req->sink = *ORTE_NAME_INVALID;
|
req->sink = *ORTE_NAME_INVALID;
|
||||||
}
|
}
|
||||||
|
|
||||||
ORTE_DECLSPEC OBJ_CLASS_INSTANCE(orte_filem_base_file_set_t,
|
OBJ_CLASS_INSTANCE(orte_filem_base_process_set_t,
|
||||||
opal_list_item_t,
|
opal_list_item_t,
|
||||||
orte_filem_base_file_set_construct,
|
process_set_construct,
|
||||||
orte_filem_base_file_set_destruct);
|
process_set_destruct);
|
||||||
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_file_set_construct(orte_filem_base_file_set_t *req) {
|
static void file_set_construct(orte_filem_base_file_set_t *req) {
|
||||||
req->local_target = NULL;
|
req->local_target = NULL;
|
||||||
req->local_hint = ORTE_FILEM_HINT_NONE;
|
req->local_hint = ORTE_FILEM_HINT_NONE;
|
||||||
|
|
||||||
@ -81,7 +76,7 @@ ORTE_DECLSPEC void orte_filem_base_file_set_construct(orte_filem_base_file_set_t
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ORTE_DECLSPEC void orte_filem_base_file_set_destruct( orte_filem_base_file_set_t *req) {
|
static void file_set_destruct( orte_filem_base_file_set_t *req) {
|
||||||
if( NULL != req->local_target ) {
|
if( NULL != req->local_target ) {
|
||||||
free(req->local_target);
|
free(req->local_target);
|
||||||
req->local_target = NULL;
|
req->local_target = NULL;
|
||||||
@ -97,12 +92,12 @@ ORTE_DECLSPEC void orte_filem_base_file_set_destruct( orte_filem_base_file_set_t
|
|||||||
req->target_flag = ORTE_FILEM_TYPE_UNKNOWN;
|
req->target_flag = ORTE_FILEM_TYPE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
ORTE_DECLSPEC OBJ_CLASS_INSTANCE(orte_filem_base_request_t,
|
OBJ_CLASS_INSTANCE(orte_filem_base_file_set_t,
|
||||||
opal_list_item_t,
|
opal_list_item_t,
|
||||||
orte_filem_base_construct,
|
file_set_construct,
|
||||||
orte_filem_base_destruct);
|
file_set_destruct);
|
||||||
|
|
||||||
void orte_filem_base_construct(orte_filem_base_request_t *req) {
|
static void req_construct(orte_filem_base_request_t *req) {
|
||||||
OBJ_CONSTRUCT(&req->process_sets, opal_list_t);
|
OBJ_CONSTRUCT(&req->process_sets, opal_list_t);
|
||||||
OBJ_CONSTRUCT(&req->file_sets, opal_list_t);
|
OBJ_CONSTRUCT(&req->file_sets, opal_list_t);
|
||||||
|
|
||||||
@ -116,7 +111,7 @@ void orte_filem_base_construct(orte_filem_base_request_t *req) {
|
|||||||
req->movement_type = ORTE_FILEM_MOVE_TYPE_UNKNOWN;
|
req->movement_type = ORTE_FILEM_MOVE_TYPE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
void orte_filem_base_destruct( orte_filem_base_request_t *req) {
|
static void req_destruct( orte_filem_base_request_t *req) {
|
||||||
opal_list_item_t* item = NULL;
|
opal_list_item_t* item = NULL;
|
||||||
|
|
||||||
while( NULL != (item = opal_list_remove_first(&req->process_sets)) ) {
|
while( NULL != (item = opal_list_remove_first(&req->process_sets)) ) {
|
||||||
@ -149,27 +144,14 @@ void orte_filem_base_destruct( orte_filem_base_request_t *req) {
|
|||||||
req->movement_type = ORTE_FILEM_MOVE_TYPE_UNKNOWN;
|
req->movement_type = ORTE_FILEM_MOVE_TYPE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OBJ_CLASS_INSTANCE(orte_filem_base_request_t,
|
||||||
|
opal_list_item_t,
|
||||||
|
req_construct,
|
||||||
|
req_destruct);
|
||||||
|
|
||||||
/***********************
|
/***********************
|
||||||
* None component stuff
|
* None component stuff
|
||||||
************************/
|
************************/
|
||||||
int orte_filem_base_none_open(void)
|
|
||||||
{
|
|
||||||
return ORTE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
int orte_filem_base_none_close(void)
|
|
||||||
{
|
|
||||||
return ORTE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
int orte_filem_base_none_query(mca_base_module_t **module, int *priority)
|
|
||||||
{
|
|
||||||
*module = NULL;
|
|
||||||
*priority = 0;
|
|
||||||
|
|
||||||
return OPAL_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
int orte_filem_base_module_init(void)
|
int orte_filem_base_module_init(void)
|
||||||
{
|
{
|
||||||
return ORTE_SUCCESS;
|
return ORTE_SUCCESS;
|
||||||
@ -235,199 +217,3 @@ int orte_filem_base_none_link_local_files(orte_job_t *jdata,
|
|||||||
{
|
{
|
||||||
return ORTE_SUCCESS;
|
return ORTE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/********************
|
|
||||||
* Utility functions
|
|
||||||
********************/
|
|
||||||
int orte_filem_base_get_proc_node_name(orte_process_name_t *proc, char **machine_name) {
|
|
||||||
int ret;
|
|
||||||
orte_std_cntr_t count;
|
|
||||||
opal_buffer_t request, answer;
|
|
||||||
orte_filem_cmd_flag_t command=ORTE_FILEM_GET_PROC_NODE_NAME_CMD;
|
|
||||||
|
|
||||||
/* set default answer */
|
|
||||||
*machine_name = NULL;
|
|
||||||
|
|
||||||
if (ORTE_PROC_IS_HNP) {
|
|
||||||
/* if I am the HNP, then all the data structures are local to me - no
|
|
||||||
* need to send messages around to get the info
|
|
||||||
*/
|
|
||||||
orte_job_t *jdata;
|
|
||||||
orte_proc_t **procs;
|
|
||||||
|
|
||||||
/* get the job data object for this proc */
|
|
||||||
if (NULL == (jdata = orte_get_job_data_object(proc->jobid))) {
|
|
||||||
ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND);
|
|
||||||
return ORTE_ERR_NOT_FOUND;
|
|
||||||
}
|
|
||||||
/* get the proc object for it */
|
|
||||||
procs = (orte_proc_t**)jdata->procs->addr;
|
|
||||||
if (NULL == procs[proc->vpid] || NULL == procs[proc->vpid]->node) {
|
|
||||||
ORTE_ERROR_LOG(ORTE_ERR_NOT_FOUND);
|
|
||||||
return ORTE_ERR_NOT_FOUND;
|
|
||||||
}
|
|
||||||
*machine_name = strdup(procs[proc->vpid]->node->name);
|
|
||||||
return ORTE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if I am not the HNP, then I have to send a request to the HNP
|
|
||||||
* for the information
|
|
||||||
*/
|
|
||||||
OBJ_CONSTRUCT(&request, opal_buffer_t);
|
|
||||||
OBJ_CONSTRUCT(&answer, opal_buffer_t);
|
|
||||||
|
|
||||||
if (ORTE_SUCCESS != (ret = opal_dss.pack(&request, &command, 1, ORTE_FILEM_CMD))) {
|
|
||||||
ORTE_ERROR_LOG(ret);
|
|
||||||
goto CLEANUP;
|
|
||||||
}
|
|
||||||
if (ORTE_SUCCESS != (ret = opal_dss.pack(&request, proc, 1, ORTE_NAME))) {
|
|
||||||
ORTE_ERROR_LOG(ret);
|
|
||||||
goto CLEANUP;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (0 > (ret = orte_rml.send_buffer(ORTE_PROC_MY_HNP, &request, ORTE_RML_TAG_FILEM_BASE, 0))) {
|
|
||||||
ORTE_ERROR_LOG(ret);
|
|
||||||
goto CLEANUP;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* wait for answer */
|
|
||||||
if (0 > (ret = orte_rml.recv_buffer(ORTE_NAME_WILDCARD, &answer, ORTE_RML_TAG_FILEM_BASE_RESP, 0))) {
|
|
||||||
ORTE_ERROR_LOG(ret);
|
|
||||||
goto CLEANUP;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* unpack the machine name */
|
|
||||||
count = 1;
|
|
||||||
if (ORTE_SUCCESS != (ret = opal_dss.unpack(&answer, machine_name, &count, OPAL_STRING))) {
|
|
||||||
ORTE_ERROR_LOG(ret);
|
|
||||||
goto CLEANUP;
|
|
||||||
}
|
|
||||||
|
|
||||||
CLEANUP:
|
|
||||||
OBJ_DESTRUCT(&answer);
|
|
||||||
OBJ_DESTRUCT(&request);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This function is paired with the filem_base_process_get_remote_path_cmd() function on the remote machine
|
|
||||||
*/
|
|
||||||
int orte_filem_base_get_remote_path(char **remote_ref, orte_process_name_t *peer, int *flag) {
|
|
||||||
int ret, exit_status = ORTE_SUCCESS;
|
|
||||||
char *tmp_ref = NULL;
|
|
||||||
orte_std_cntr_t n;
|
|
||||||
opal_buffer_t request, answer;
|
|
||||||
int tmp_flag;
|
|
||||||
orte_filem_cmd_flag_t command=ORTE_FILEM_GET_REMOTE_PATH_CMD;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Ask for remote file information from the HNP
|
|
||||||
*/
|
|
||||||
OBJ_CONSTRUCT(&request, opal_buffer_t);
|
|
||||||
OBJ_CONSTRUCT(&answer, opal_buffer_t);
|
|
||||||
|
|
||||||
if (ORTE_SUCCESS != (ret = opal_dss.pack(&request, &command, 1, ORTE_FILEM_CMD))) {
|
|
||||||
ORTE_ERROR_LOG(ret);
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ORTE_SUCCESS != (ret = opal_dss.pack(&request, remote_ref, 1, OPAL_STRING))) {
|
|
||||||
exit_status = ret;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (0 > (ret = orte_rml.send_buffer(peer, &request, ORTE_RML_TAG_FILEM_BASE, 0))) {
|
|
||||||
exit_status = ret;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Get the response
|
|
||||||
*/
|
|
||||||
if( 0 > (ret = orte_rml.recv_buffer(peer, &answer, ORTE_RML_TAG_FILEM_BASE_RESP, 0)) ) {
|
|
||||||
exit_status = ret;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The absolute path for the remote file
|
|
||||||
*/
|
|
||||||
n = 1;
|
|
||||||
if ( ORTE_SUCCESS != (ret = opal_dss.unpack(&answer, &tmp_ref, &n, OPAL_STRING)) ) {
|
|
||||||
exit_status = ret;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The file type on the remote machine
|
|
||||||
*/
|
|
||||||
n = 1;
|
|
||||||
if ( ORTE_SUCCESS != (ret = opal_dss.unpack(&answer, &tmp_flag, &n, OPAL_INT)) ) {
|
|
||||||
exit_status = ret;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(NULL != *remote_ref)
|
|
||||||
free(*remote_ref);
|
|
||||||
|
|
||||||
*remote_ref = strdup(tmp_ref);
|
|
||||||
*flag = tmp_flag;
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
OBJ_DESTRUCT(&answer);
|
|
||||||
OBJ_DESTRUCT(&request);
|
|
||||||
|
|
||||||
if( NULL != tmp_ref)
|
|
||||||
free(tmp_ref);
|
|
||||||
|
|
||||||
return exit_status;
|
|
||||||
}
|
|
||||||
|
|
||||||
int orte_filem_base_prepare_request(orte_filem_base_request_t *request, int move_type)
|
|
||||||
{
|
|
||||||
int num_reqs = 0, i = 0;
|
|
||||||
|
|
||||||
if( ORTE_FILEM_MOVE_TYPE_RM == move_type ) {
|
|
||||||
num_reqs = opal_list_get_size(&request->process_sets);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
num_reqs = opal_list_get_size(&request->process_sets) * opal_list_get_size(&request->file_sets);
|
|
||||||
}
|
|
||||||
|
|
||||||
if( 0 >= num_reqs ) {
|
|
||||||
return ORTE_ERROR;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if( NULL != request->is_done ) {
|
|
||||||
free(request->is_done);
|
|
||||||
request->is_done = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( NULL != request->is_active ) {
|
|
||||||
free(request->is_active);
|
|
||||||
request->is_active = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( NULL != request->exit_status ) {
|
|
||||||
free(request->exit_status);
|
|
||||||
request->exit_status = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
request->num_mv = num_reqs;
|
|
||||||
request->is_done = (bool*) malloc(sizeof(bool) * num_reqs);
|
|
||||||
request->is_active = (bool*) malloc(sizeof(bool) * num_reqs);
|
|
||||||
request->exit_status = (int32_t*) malloc(sizeof(int32_t) * num_reqs);
|
|
||||||
for( i = 0; i < num_reqs; ++i) {
|
|
||||||
request->is_done[i] = false;
|
|
||||||
request->is_active[i] = false;
|
|
||||||
request->exit_status[i] = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
request->movement_type = move_type;
|
|
||||||
|
|
||||||
return ORTE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2004-2007 The Trustees of Indiana University.
|
|
||||||
# All rights reserved.
|
|
||||||
# Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
|
||||||
# All rights reserved.
|
|
||||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
||||||
# University of Stuttgart. All rights reserved.
|
|
||||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
|
||||||
# All rights reserved.
|
|
||||||
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
|
||||||
# $COPYRIGHT$
|
|
||||||
#
|
|
||||||
# Additional copyrights may follow
|
|
||||||
#
|
|
||||||
# $HEADER$
|
|
||||||
#
|
|
||||||
|
|
||||||
dist_pkgdata_DATA = help-orte-filem-rsh.txt
|
|
||||||
|
|
||||||
sources = \
|
|
||||||
filem_rsh.h \
|
|
||||||
filem_rsh_component.c \
|
|
||||||
filem_rsh_module.c
|
|
||||||
|
|
||||||
# Make the output library in this directory, and name it either
|
|
||||||
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
|
|
||||||
# (for static builds).
|
|
||||||
|
|
||||||
if MCA_BUILD_orte_filem_rsh_DSO
|
|
||||||
component_noinst =
|
|
||||||
component_install = mca_filem_rsh.la
|
|
||||||
else
|
|
||||||
component_noinst = libmca_filem_rsh.la
|
|
||||||
component_install =
|
|
||||||
endif
|
|
||||||
|
|
||||||
mcacomponentdir = $(pkglibdir)
|
|
||||||
mcacomponent_LTLIBRARIES = $(component_install)
|
|
||||||
mca_filem_rsh_la_SOURCES = $(sources)
|
|
||||||
mca_filem_rsh_la_LDFLAGS = -module -avoid-version
|
|
||||||
|
|
||||||
noinst_LTLIBRARIES = $(component_noinst)
|
|
||||||
libmca_filem_rsh_la_SOURCES = $(sources)
|
|
||||||
libmca_filem_rsh_la_LDFLAGS = -module -avoid-version
|
|
@ -1,83 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2004-2010 The Trustees of Indiana University.
|
|
||||||
* All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
|
||||||
* All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
||||||
* University of Stuttgart. All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* RSH FILEM component
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef MCA_FILEM_RSH_EXPORT_H
|
|
||||||
#define MCA_FILEM_RSH_EXPORT_H
|
|
||||||
|
|
||||||
#include "orte_config.h"
|
|
||||||
|
|
||||||
#include "opal/mca/mca.h"
|
|
||||||
#include "orte/mca/filem/filem.h"
|
|
||||||
|
|
||||||
BEGIN_C_DECLS
|
|
||||||
|
|
||||||
#define ORTE_FILEM_RSH_ASK 0
|
|
||||||
#define ORTE_FILEM_RSH_ALLOW 1
|
|
||||||
#define ORTE_FILEM_RSH_DONE 2
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Local Component structures
|
|
||||||
*/
|
|
||||||
struct orte_filem_rsh_component_t {
|
|
||||||
/** Base FILEM component */
|
|
||||||
orte_filem_base_component_t super;
|
|
||||||
|
|
||||||
/** RSH cp command: rsh = rcp, ssh = scp */
|
|
||||||
char * cp_command;
|
|
||||||
|
|
||||||
/** Unix cp command */
|
|
||||||
char * cp_local_command;
|
|
||||||
|
|
||||||
/** SSH remote login command */
|
|
||||||
char * remote_sh_command;
|
|
||||||
};
|
|
||||||
typedef struct orte_filem_rsh_component_t orte_filem_rsh_component_t;
|
|
||||||
ORTE_MODULE_DECLSPEC extern orte_filem_rsh_component_t mca_filem_rsh_component;
|
|
||||||
|
|
||||||
extern int orte_filem_rsh_max_incomming;
|
|
||||||
extern int orte_filem_rsh_max_outgoing;
|
|
||||||
extern int orte_filem_rsh_progress_meter;
|
|
||||||
|
|
||||||
int orte_filem_rsh_component_query(mca_base_module_t **module, int *priority);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Module functions
|
|
||||||
*/
|
|
||||||
int orte_filem_rsh_module_init(void);
|
|
||||||
int orte_filem_rsh_module_finalize(void);
|
|
||||||
|
|
||||||
int orte_filem_rsh_put(orte_filem_base_request_t *request);
|
|
||||||
int orte_filem_rsh_put_nb(orte_filem_base_request_t *request);
|
|
||||||
|
|
||||||
int orte_filem_rsh_get(orte_filem_base_request_t *request);
|
|
||||||
int orte_filem_rsh_get_nb(orte_filem_base_request_t *request);
|
|
||||||
|
|
||||||
int orte_filem_rsh_rm( orte_filem_base_request_t *request);
|
|
||||||
int orte_filem_rsh_rm_nb( orte_filem_base_request_t *request);
|
|
||||||
|
|
||||||
int orte_filem_rsh_wait( orte_filem_base_request_t *request);
|
|
||||||
int orte_filem_rsh_wait_all( opal_list_t *request_list);
|
|
||||||
|
|
||||||
END_C_DECLS
|
|
||||||
|
|
||||||
#endif /* MCA_FILEM_RSH_EXPORT_H */
|
|
@ -1,175 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2004-2010 The Trustees of Indiana University.
|
|
||||||
* All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
|
||||||
* All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
||||||
* University of Stuttgart. All rights reserved.
|
|
||||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
||||||
* All rights reserved.
|
|
||||||
* $COPYRIGHT$
|
|
||||||
*
|
|
||||||
* Additional copyrights may follow
|
|
||||||
*
|
|
||||||
* $HEADER$
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "orte_config.h"
|
|
||||||
#include "opal/util/output.h"
|
|
||||||
#include "orte/constants.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#include "orte/mca/filem/filem.h"
|
|
||||||
#include "orte/mca/filem/base/base.h"
|
|
||||||
#include "filem_rsh.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Public string for version number
|
|
||||||
*/
|
|
||||||
const char *orte_filem_rsh_component_version_string =
|
|
||||||
"ORTE FILEM rsh MCA component version " ORTE_VERSION;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Local functionality
|
|
||||||
*/
|
|
||||||
static int filem_rsh_register(void);
|
|
||||||
static int filem_rsh_open(void);
|
|
||||||
static int filem_rsh_close(void);
|
|
||||||
|
|
||||||
int orte_filem_rsh_max_incomming = 10;
|
|
||||||
int orte_filem_rsh_max_outgoing = 10;
|
|
||||||
int orte_filem_rsh_progress_meter = 0;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Instantiate the public struct with all of our public information
|
|
||||||
* and pointer to our public functions in it
|
|
||||||
*/
|
|
||||||
orte_filem_rsh_component_t mca_filem_rsh_component = {
|
|
||||||
/* First do the base component stuff */
|
|
||||||
{
|
|
||||||
/* Handle the general mca_component_t struct containing
|
|
||||||
* meta information about the component itrsh
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
ORTE_FILEM_BASE_VERSION_2_0_0,
|
|
||||||
/* Component name and version */
|
|
||||||
"rsh",
|
|
||||||
ORTE_MAJOR_VERSION,
|
|
||||||
ORTE_MINOR_VERSION,
|
|
||||||
ORTE_RELEASE_VERSION,
|
|
||||||
|
|
||||||
/* Component open and close functions */
|
|
||||||
filem_rsh_open,
|
|
||||||
filem_rsh_close,
|
|
||||||
orte_filem_rsh_component_query,
|
|
||||||
filem_rsh_register
|
|
||||||
},
|
|
||||||
{
|
|
||||||
/* The component is checkpoint ready */
|
|
||||||
MCA_BASE_METADATA_PARAM_CHECKPOINT
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
/* cp_command */
|
|
||||||
NULL,
|
|
||||||
|
|
||||||
/* cp_local_command */
|
|
||||||
NULL,
|
|
||||||
|
|
||||||
/* remote_sh_command */
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
static int filem_rsh_register(void)
|
|
||||||
{
|
|
||||||
mca_base_component_t *component = &mca_filem_rsh_component.super.base_version;
|
|
||||||
mca_filem_rsh_component.cp_command = "scp";
|
|
||||||
(void) mca_base_component_var_register(component, "rcp",
|
|
||||||
"The rsh cp command for the FILEM rsh component",
|
|
||||||
MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
|
|
||||||
OPAL_INFO_LVL_9,
|
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
|
||||||
&mca_filem_rsh_component.cp_command);
|
|
||||||
|
|
||||||
mca_filem_rsh_component.cp_local_command = "cp";
|
|
||||||
(void) mca_base_component_var_register(component, "cp",
|
|
||||||
"The Unix cp command for the FILEM rsh component",
|
|
||||||
MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
|
|
||||||
OPAL_INFO_LVL_9,
|
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
|
||||||
&mca_filem_rsh_component.cp_local_command);
|
|
||||||
|
|
||||||
mca_filem_rsh_component.remote_sh_command = "ssh";
|
|
||||||
(void) mca_base_component_var_register(component, "rsh",
|
|
||||||
"The remote shell command for the FILEM rsh component",
|
|
||||||
MCA_BASE_VAR_TYPE_STRING, NULL, 0, 0,
|
|
||||||
OPAL_INFO_LVL_9,
|
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
|
||||||
&mca_filem_rsh_component.remote_sh_command);
|
|
||||||
|
|
||||||
orte_filem_rsh_max_incomming = 10;
|
|
||||||
(void) mca_base_component_var_register(component, "max_incomming",
|
|
||||||
"Maximum number of incomming connections (0 = any)",
|
|
||||||
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
|
|
||||||
OPAL_INFO_LVL_9,
|
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
|
||||||
&orte_filem_rsh_max_incomming);
|
|
||||||
|
|
||||||
orte_filem_rsh_max_outgoing = 10;
|
|
||||||
(void) mca_base_component_var_register(component, "max_outgoing",
|
|
||||||
"Maximum number of out going connections (0 = any)",
|
|
||||||
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
|
|
||||||
OPAL_INFO_LVL_9,
|
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
|
||||||
&orte_filem_rsh_max_outgoing);
|
|
||||||
|
|
||||||
orte_filem_rsh_progress_meter = 0;
|
|
||||||
(void) mca_base_component_var_register(component, "progress_meter",
|
|
||||||
"Display Progress every X percentage done. [Default = 0/off]",
|
|
||||||
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
|
|
||||||
OPAL_INFO_LVL_9,
|
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
|
||||||
&orte_filem_rsh_progress_meter);
|
|
||||||
|
|
||||||
return ORTE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int filem_rsh_open(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
if( orte_filem_rsh_max_incomming < 0 ) {
|
|
||||||
orte_filem_rsh_max_incomming = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( orte_filem_rsh_max_outgoing < 0 ) {
|
|
||||||
orte_filem_rsh_max_outgoing = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
orte_filem_rsh_progress_meter = (orte_filem_rsh_progress_meter % 101);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Debug Output
|
|
||||||
*/
|
|
||||||
opal_output_verbose(10, orte_filem_base_framework.framework_output,
|
|
||||||
"filem:rsh: open()");
|
|
||||||
opal_output_verbose(20, orte_filem_base_framework.framework_output,
|
|
||||||
"filem:rsh: open: cp command = %s",
|
|
||||||
mca_filem_rsh_component.cp_command);
|
|
||||||
opal_output_verbose(20, orte_filem_base_framework.framework_output,
|
|
||||||
"filem:rsh: open: cp local command = %s",
|
|
||||||
mca_filem_rsh_component.cp_local_command);
|
|
||||||
opal_output_verbose(20, orte_filem_base_framework.framework_output,
|
|
||||||
"filem:rsh: open: rsh command = %s",
|
|
||||||
mca_filem_rsh_component.remote_sh_command);
|
|
||||||
|
|
||||||
return ORTE_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int filem_rsh_close(void)
|
|
||||||
{
|
|
||||||
opal_output_verbose(10, orte_filem_base_framework.framework_output,
|
|
||||||
"filem:rsh: close()");
|
|
||||||
|
|
||||||
return ORTE_SUCCESS;
|
|
||||||
}
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
@ -1,46 +0,0 @@
|
|||||||
-*- text -*-
|
|
||||||
#
|
|
||||||
# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
|
||||||
# University Research and Technology
|
|
||||||
# Corporation. All rights reserved.
|
|
||||||
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
||||||
# of Tennessee Research Foundation. All rights
|
|
||||||
# reserved.
|
|
||||||
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
||||||
# University of Stuttgart. All rights reserved.
|
|
||||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
|
||||||
# All rights reserved.
|
|
||||||
# $COPYRIGHT$
|
|
||||||
#
|
|
||||||
# Additional copyrights may follow
|
|
||||||
#
|
|
||||||
# $HEADER$
|
|
||||||
#
|
|
||||||
# This is the US/English general help file for ORTE FileM framework.
|
|
||||||
#
|
|
||||||
[orte-filem-rsh:get-file-exists]
|
|
||||||
WARNING: Could not preload specified file: File already exists.
|
|
||||||
|
|
||||||
Fileset: %s
|
|
||||||
Host: %s
|
|
||||||
|
|
||||||
Will continue attempting to launch the process.
|
|
||||||
|
|
||||||
[orte-filem-rsh:put-file-not-exist]
|
|
||||||
WARNING: Could not preload specified file: File does not exist.
|
|
||||||
|
|
||||||
Fileset: %s
|
|
||||||
Host: %s
|
|
||||||
|
|
||||||
Will continue attempting to launch the process.
|
|
||||||
|
|
||||||
[orte-filem-rsh:remote-get-failed]
|
|
||||||
WARNING: Remote peer (%s) failed to preload a file.
|
|
||||||
|
|
||||||
Exit Status: %d
|
|
||||||
Local File: %s
|
|
||||||
Remote File: %s
|
|
||||||
Command:
|
|
||||||
%s
|
|
||||||
|
|
||||||
Will continue attempting to launch the process(es).
|
|
Загрузка…
x
Ссылка в новой задаче
Block a user