void gridftp_unlink_internal(gfal2_context_t context, GridFTPSessionHandler* sess, const char * path) { gfal_log(GFAL_VERBOSE_TRACE, " -> [GridFTPModule::unlink] "); GridFTPRequestState req(sess); // get connection session globus_result_t res = globus_ftp_client_delete(req.handler->get_ftp_client_handle(), path, req.handler->get_ftp_client_operationattr(), globus_ftp_client_done_callback, &req); gfal_globus_check_result(GFAL_GRIDFTP_SCOPE_UNLINK, res); req.wait(GFAL_GRIDFTP_SCOPE_UNLINK); gfal_log(GFAL_VERBOSE_TRACE, " <- [GridFTPModule::unlink] "); }
void ADIOI_GRIDFTP_Delete(char *filename, int *error_code) { char myname[]="ADIOI_GRIDFTP_Delete"; int myrank, nprocs; globus_ftp_client_handle_t handle; globus_result_t result; *error_code = MPI_SUCCESS; MPI_Comm_size(MPI_COMM_WORLD, &nprocs); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); globus_module_activate(GLOBUS_FTP_CLIENT_MODULE); result=globus_ftp_client_handle_init(&handle,GLOBUS_NULL); if (result != GLOBUS_SUCCESS ) { globus_err_handler("globus_ftp_client_handle_init",myname,result); *error_code= MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io", "**io %s", globus_object_printable_to_string(globus_error_get(result))); return; } delete_done=GLOBUS_FALSE; delete_success=GLOBUS_FALSE; result=globus_ftp_client_delete(&handle,filename,GLOBUS_NULL,delete_cb,GLOBUS_NULL); if (result != GLOBUS_SUCCESS ) { globus_err_handler("globus_ftp_client_delete",myname,result); *error_code= MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io", "**io %s", globus_object_printable_to_string(globus_error_get(result))); return; } globus_mutex_lock(&lock); while ( delete_done!=GLOBUS_TRUE ) globus_cond_wait(&cond,&lock); globus_mutex_unlock(&lock); result=globus_ftp_client_handle_destroy(&handle); if (result != GLOBUS_SUCCESS ) { globus_err_handler("globus_ftp_client_handle_destroy",myname,result); *error_code= MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io", "**io %s", globus_object_printable_to_string(globus_error_get(result))); return; } if ( delete_success!=GLOBUS_TRUE ) { *error_code= MPIO_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, myname, __LINE__, MPI_ERR_IO, "**io", "**io %s", globus_object_printable_to_string(globus_error_get(result))); } }
void gw_tm_ftp_transfer_rmdir_cb( void * user_arg, globus_ftp_client_handle_t * handle, globus_object_t * err) { gw_tm_ftp_transfer_t * xfr; gw_tm_ftp_stack_t * file; globus_result_t grc; int xfr_id; xfr_id = *( (int *) user_arg ); if ( ( xfr_id < GW_TM_FTP_XFR_POOL_MAX ) && (xfr_id >= 0 ) ) if ( gw_tm_ftp_xfr_pool[xfr_id] != NULL ) xfr = gw_tm_ftp_xfr_pool[xfr_id]; else { /*printf("RMDIR %d - FAILURE transfer does not exisit.\n", xfr_id);*/ free(user_arg); return; } else { /*printf("RMDIR %d - FAILURE invalid transfer id in callback.\n", xfr_id);*/ free(user_arg); return; } if(err != GLOBUS_SUCCESS) /* ERROR RMDIR OR EXPAND */ { printf("RMDIR %d - FAILURE ftp_client_delete/rmdir command.\n",xfr->jid); free(user_arg); return; } file = gw_tm_ftp_stack_pop(&(xfr->file_stack)); if( file != NULL ) { if ( (file->type == GW_TM_FTP_DIR) && (file->expanded == GW_FALSE) ) { gw_tm_ftp_transfer_flush (xfr); gw_tm_ftp_transfer_expand_url (xfr_id, file->file_name, gw_tm_ftp_transfer_rmdir_cb); free(file->file_name); free(file); free(user_arg); return; } else { if ( file->type == GW_TM_FTP_FILE ) grc = globus_ftp_client_delete (&(xfr->handle), file->file_name, &(xfr->op_attr), gw_tm_ftp_transfer_rmdir_cb, user_arg); else grc = globus_ftp_client_rmdir ( &(xfr->handle), file->file_name, &(xfr->op_attr), gw_tm_ftp_transfer_rmdir_cb, user_arg); if ( grc != GLOBUS_SUCCESS ) { printf("RMDIR %d - FAILURE ftp_client_delete/rmdir command\n", xfr->jid); free(user_arg); } free(file->file_name); free(file); return; } } printf("RMDIR %d - SUCCESS -\n", xfr->jid); free(user_arg); }