17 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
19 #ifndef GLOBUS_GRAM_JOB_MANAGER_INCLUDE
20 #define GLOBUS_GRAM_JOB_MANAGER_INCLUDE
31 #define GLOBUS_GRAM_AUTHZ_CALLOUT_TYPE "globus_gram_jobmanager_authz"
37 #define GLOBUS_GRAM_JOB_MANAGER_EXPIRATION_ATTR "expiration"
45 GLOBUS_GRAM_JOB_MANAGER_LOG_FATAL = 1 << 0,
46 GLOBUS_GRAM_JOB_MANAGER_LOG_ERROR = 1 << 1,
47 GLOBUS_GRAM_JOB_MANAGER_LOG_WARN = 1 << 2,
48 GLOBUS_GRAM_JOB_MANAGER_LOG_INFO = 1 << 3,
49 GLOBUS_GRAM_JOB_MANAGER_LOG_DEBUG = 1 << 4,
50 GLOBUS_GRAM_JOB_MANAGER_LOG_TRACE = 1 << 5
52 globus_gram_job_manager_log_level_t;
56 GLOBUS_GRAM_JOB_MANAGER_STATE_START,
57 GLOBUS_GRAM_JOB_MANAGER_STATE_TWO_PHASE,
58 GLOBUS_GRAM_JOB_MANAGER_STATE_TWO_PHASE_COMMITTED,
59 GLOBUS_GRAM_JOB_MANAGER_STATE_STAGE_IN,
60 GLOBUS_GRAM_JOB_MANAGER_STATE_SUBMIT,
61 GLOBUS_GRAM_JOB_MANAGER_STATE_POLL1,
62 GLOBUS_GRAM_JOB_MANAGER_STATE_POLL2,
63 GLOBUS_GRAM_JOB_MANAGER_STATE_CLOSE_OUTPUT,
64 GLOBUS_GRAM_JOB_MANAGER_STATE_STAGE_OUT,
65 GLOBUS_GRAM_JOB_MANAGER_STATE_TWO_PHASE_END,
66 GLOBUS_GRAM_JOB_MANAGER_STATE_TWO_PHASE_END_COMMITTED,
67 GLOBUS_GRAM_JOB_MANAGER_STATE_FILE_CLEAN_UP,
68 GLOBUS_GRAM_JOB_MANAGER_STATE_SCRATCH_CLEAN_UP,
69 GLOBUS_GRAM_JOB_MANAGER_STATE_CACHE_CLEAN_UP,
70 GLOBUS_GRAM_JOB_MANAGER_STATE_DONE,
71 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED,
72 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED_CLOSE_OUTPUT,
73 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED_TWO_PHASE,
74 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED_TWO_PHASE_COMMITTED,
75 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED_FILE_CLEAN_UP,
76 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED_SCRATCH_CLEAN_UP,
77 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED_CACHE_CLEAN_UP,
78 GLOBUS_GRAM_JOB_MANAGER_STATE_FAILED_DONE,
79 GLOBUS_GRAM_JOB_MANAGER_STATE_STOP,
80 GLOBUS_GRAM_JOB_MANAGER_STATE_POLL_QUERY1,
81 GLOBUS_GRAM_JOB_MANAGER_STATE_POLL_QUERY2,
83 GLOBUS_GRAM_JOB_MANAGER_STATE_PRE_CLOSE_OUTPUT = GLOBUS_GRAM_JOB_MANAGER_STATE_POLL_QUERY2+2,
84 GLOBUS_GRAM_JOB_MANAGER_STATE_TWO_PHASE_QUERY1,
85 GLOBUS_GRAM_JOB_MANAGER_STATE_TWO_PHASE_QUERY2
88 globus_gram_jobmanager_state_t;
92 GLOBUS_GRAM_JOB_MANAGER_STAGE_IN,
93 GLOBUS_GRAM_JOB_MANAGER_STAGE_IN_SHARED,
94 GLOBUS_GRAM_JOB_MANAGER_STAGE_OUT,
95 GLOBUS_GRAM_JOB_MANAGER_STAGE_STREAMS
97 globus_gram_job_manager_staging_type_t;
101 GLOBUS_GRAM_JOB_MANAGER_SIGNAL,
102 GLOBUS_GRAM_JOB_MANAGER_CANCEL,
103 GLOBUS_GRAM_JOB_MANAGER_PROXY_REFRESH
105 globus_gram_job_manager_query_type_t;
109 GLOBUS_GRAM_SCRIPT_PRIORITY_LEVEL_CANCEL,
110 GLOBUS_GRAM_SCRIPT_PRIORITY_LEVEL_SIGNAL,
111 GLOBUS_GRAM_SCRIPT_PRIORITY_LEVEL_SUBMIT,
112 GLOBUS_GRAM_SCRIPT_PRIORITY_LEVEL_STAGE_OUT,
113 GLOBUS_GRAM_SCRIPT_PRIORITY_LEVEL_STAGE_IN,
114 GLOBUS_GRAM_SCRIPT_PRIORITY_LEVEL_POLL
116 globus_gram_script_priority_level_t;
120 globus_gram_script_priority_level_t priority_level;
123 globus_gram_script_priority_t;
127 globus_gram_job_manager_staging_type_t
129 globus_rsl_value_t * from;
131 globus_rsl_value_t * to;
134 globus_gram_job_manager_staging_info_t;
141 globus_gram_job_manager_query_type_t
176 gss_cred_id_t delegated_credential;
178 globus_gram_job_manager_query_t;
199 char * globus_location;
203 char * target_globus_location;
211 char * jobmanager_type;
215 char * job_history_dir;
219 char * cache_location;
228 char * scratch_dir_base;
244 char * globus_gatekeeper_host;
246 char * globus_gatekeeper_port;
248 char * globus_gatekeeper_subject;
250 char * globus_host_manufacturer;
252 char * globus_host_cputype;
254 char * globus_host_osname;
256 char * globus_host_osversion;
261 char * tcp_port_range;
266 char * tcp_source_range;
268 char * job_state_file_dir;
272 char * x509_cert_dir;
288 char * globus_version;
317 const char * log_pattern;
333 char * short_hostname;
351 globus_gram_job_manager_config_t;
357 globus_abstime_t jm_start_time;
359 int count_total_done;
360 int count_total_failed;
361 int count_total_canceled;
365 int count_current_jobs;
366 } globus_i_gram_usage_tracker_t;
368 typedef struct globus_i_gram_usage_job_tracker_s
370 globus_abstime_t unsubmitted_timestamp;
371 globus_abstime_t file_stage_in_timestamp;
372 globus_abstime_t pending_timestamp;
373 globus_abstime_t active_timestamp;
374 globus_abstime_t failed_timestamp;
375 globus_abstime_t file_stage_out_timestamp;
376 globus_abstime_t done_timestamp;
381 int unregister_count;
384 int file_clean_up_count;
385 int file_stage_in_http_count;
386 int file_stage_in_https_count;
387 int file_stage_in_ftp_count;
388 int file_stage_in_gsiftp_count;
389 int file_stage_in_shared_http_count;
390 int file_stage_in_shared_https_count;
391 int file_stage_in_shared_ftp_count;
392 int file_stage_in_shared_gsiftp_count;
393 int file_stage_out_http_count;
394 int file_stage_out_https_count;
395 int file_stage_out_ftp_count;
396 int file_stage_out_gsiftp_count;
397 char * client_address;
399 } globus_i_gram_usage_job_tracker_t;
408 int script_slots_available;
412 globus_gram_job_manager_scripts_t;
419 typedef struct globus_gram_job_manager_s
422 globus_gram_job_manager_config_t * config;
432 time_t seg_last_timestamp;
440 time_t validation_record_timestamp;
446 time_t cred_expiration_time;
452 globus_hashtable_t request_hash;
454 globus_hashtable_t job_id_hash;
463 globus_xio_handle_t active_job_manager_handle;
481 int state_callback_slots;
497 globus_i_gram_usage_tracker_t * usagetracker;
502 char * gt3_failure_message;
503 globus_xio_attr_t script_attr;
521 globus_gram_job_manager_t;
526 typedef struct globus_gram_job_manager_request_s
529 globus_gram_job_manager_config_t * config;
531 globus_gram_job_manager_t * manager;
558 time_t status_update_time;
572 char * gt3_failure_message;
577 char * gt3_failure_type;
582 char * gt3_failure_source;
587 char * gt3_failure_destination;
612 char * job_id_string;
620 char * original_job_id_string;
627 unsigned int poll_frequency;
646 int two_phase_commit;
654 time_t creation_time;
660 globus_symboltable_t symbol_table;
682 char * job_contact_path;
684 char * job_state_file;
686 char * scratch_dir_base;
695 char * remote_io_url;
697 char * remote_io_url_file;
699 char * x509_user_proxy;
715 globus_gram_jobmanager_state_t jobmanager_state;
717 globus_gram_jobmanager_state_t restart_state;
738 char * cache_location;
742 char * job_history_file;
744 int job_history_status;
748 char * cached_stdout;
752 char * cached_stderr;
754 gss_ctx_id_t response_context;
756 char * old_job_contact;
765 time_t seg_last_timestamp;
773 globus_i_gram_usage_job_tracker_t job_stats;
785 globus_gram_jobmanager_request_t;
787 typedef struct globus_gram_job_manager_ref_s
792 globus_gram_job_manager_t * manager;
796 globus_gram_jobmanager_request_t * request;
827 time_t expiration_time;
835 time_t seg_last_timestamp;
839 globus_off_t seg_last_size;
841 globus_gram_job_manager_ref_t;
845 globus_gram_job_manager_config_init(
846 globus_gram_job_manager_config_t * config,
851 globus_gram_job_manager_config_destroy(
852 globus_gram_job_manager_config_t * config);
855 globus_i_gram_parse_log_levels(
856 const char * unparsed_string,
858 char ** error_string);
862 #define GlobusGramJobManagerRequestLock(request) \
864 globus_gram_job_manager_request_log( \
866 "JM: [tid=%ld] Locking request (%s:%d) %p\n", \
867 (long) globus_thread_self(), \
871 globus_mutex_lock(&(request)->mutex); \
874 #define GlobusGramJobManagerRequestUnlock(request) \
876 globus_gram_job_manager_request_log( \
878 "JM: [tid=%ld] Unlocking request (%s:%d) %p\n", \
879 (long) globus_thread_self() \
883 globus_mutex_unlock(&(request)->mutex); \
886 #define GlobusGramJobManagerRequestLock(request) \
887 globus_mutex_lock(&(request)->mutex)
888 #define GlobusGramJobManagerRequestUnlock(request) \
889 globus_mutex_unlock(&(request)->mutex)
893 globus_gram_job_manager_request_init(
894 globus_gram_jobmanager_request_t ** request,
895 globus_gram_job_manager_t * manager,
897 gss_cred_id_t delegated_credential,
898 gss_ctx_id_t response_ctx,
899 const char * peer_address,
902 char ** old_job_contact,
903 globus_gram_jobmanager_request_t ** old_job_request,
904 char ** gt3_failure_message);
907 globus_gram_job_manager_request_destroy(
908 globus_gram_jobmanager_request_t * request);
911 globus_gram_job_manager_request_free(
912 globus_gram_jobmanager_request_t * request);
915 globus_gram_job_manager_request_set_status(
916 globus_gram_jobmanager_request_t * request,
920 globus_gram_job_manager_request_set_status_time(
921 globus_gram_jobmanager_request_t * request,
926 globus_gram_job_manager_request_log(
927 globus_gram_jobmanager_request_t * request,
928 globus_gram_job_manager_log_level_t level,
933 globus_gram_job_manager_request_acct(
934 globus_gram_jobmanager_request_t * request,
939 globus_gram_job_manager_symbol_table_populate(
940 globus_gram_jobmanager_request_t * request);
943 globus_gram_job_manager_history_file_set(
944 globus_gram_jobmanager_request_t * request);
947 globus_gram_job_manager_history_file_create(
948 globus_gram_jobmanager_request_t * request);
951 globus_gram_job_manager_request_load(
952 globus_gram_job_manager_t * manager,
955 gss_cred_id_t credential,
956 const char * peer_address,
958 size_t content_length,
959 globus_gram_jobmanager_request_t ** request,
960 gss_ctx_id_t * context,
962 int * job_state_mask,
963 char ** old_job_contact,
964 globus_gram_jobmanager_request_t ** old_job_request,
966 char ** gt3_failure_message);
969 globus_gram_job_manager_request_start(
970 globus_gram_job_manager_t * manager,
971 globus_gram_jobmanager_request_t * request,
973 const char * client_contact,
977 globus_gram_job_manager_destroy_directory(
978 globus_gram_jobmanager_request_t * request,
979 const char * directory);
982 globus_gram_job_manager_request_load_all(
983 globus_gram_job_manager_t * manager);
986 globus_i_gram_request_stdio_update(
987 globus_gram_jobmanager_request_t * request,
988 globus_rsl_t * update_rsl);
991 globus_i_gram_symbol_table_populate(
992 globus_gram_job_manager_config_t * config,
993 globus_symboltable_t * symbol_table);
1003 GLOBUS_GRAM_VALIDATE_JOB_SUBMIT = 1,
1004 GLOBUS_GRAM_VALIDATE_JOB_MANAGER_RESTART = 2,
1005 GLOBUS_GRAM_VALIDATE_STDIO_UPDATE = 4
1007 globus_gram_job_manager_validation_when_t;
1011 globus_gram_job_manager_validation_destroy(
1016 globus_gram_job_manager_validate_rsl(
1017 globus_gram_jobmanager_request_t * request,
1019 globus_gram_job_manager_validation_when_t
1024 globus_gram_job_manager_contact_add(
1025 globus_gram_jobmanager_request_t * request,
1026 const char * contact,
1027 int job_state_mask);
1030 globus_gram_job_manager_contact_remove(
1031 globus_gram_jobmanager_request_t * request,
1032 const char * contact);
1034 globus_gram_job_manager_contact_list_free(
1035 globus_gram_jobmanager_request_t * request);
1038 globus_gram_job_manager_contact_state_callback(
1039 globus_gram_jobmanager_request_t * request,
1043 globus_gram_job_manager_write_callback_contacts(
1044 globus_gram_jobmanager_request_t * request,
1048 globus_gram_job_manager_read_callback_contacts(
1049 globus_gram_jobmanager_request_t * request,
1054 const char * globus_i_gram_job_manager_state_strings[];
1057 globus_gram_job_manager_read_request(
1058 globus_gram_job_manager_t * manager,
1060 size_t content_length,
1062 char ** client_contact,
1063 int * job_state_mask,
1067 globus_gram_job_manager_reply(
1068 globus_gram_jobmanager_request_t * request,
1069 globus_gram_job_manager_t * manager,
1071 const char * job_contact,
1073 gss_ctx_id_t response_context,
1074 const char * gt3_failure_message);
1077 globus_gram_job_manager_validate_username(
1078 globus_gram_jobmanager_request_t * request);
1081 globus_gram_job_manager_state_machine_register(
1082 globus_gram_job_manager_t * manager,
1083 globus_gram_jobmanager_request_t * request,
1084 globus_reltime_t * delay);
1087 globus_i_gram_remote_io_url_update(
1088 globus_gram_jobmanager_request_t * request);
1091 globus_gram_job_manager_state_machine_callback(
1096 globus_gram_job_manager_import_sec_context(
1097 globus_gram_job_manager_t * manager,
1099 gss_ctx_id_t * response_contextp);
1102 globus_gram_job_manager_gsi_used(
1103 globus_gram_jobmanager_request_t * request);
1106 globus_gram_job_manager_gsi_register_proxy_timeout(
1107 globus_gram_job_manager_t * manager,
1113 globus_gram_job_manager_gsi_get_subject(
1114 char ** subject_name);
1117 globus_gram_job_manager_gsi_update_credential(
1118 globus_gram_job_manager_t * manager,
1119 globus_gram_jobmanager_request_t * request,
1120 gss_cred_id_t credential);
1123 globus_gram_job_manager_gsi_write_credential(
1124 globus_gram_jobmanager_request_t * request,
1125 gss_cred_id_t credential,
1129 globus_gram_job_manager_gsi_update_proxy_timeout(
1130 globus_gram_job_manager_t * manager,
1136 globus_gram_job_manager_gsi_relocate_proxy(
1137 globus_gram_jobmanager_request_t * request,
1138 const char * new_proxy);
1141 globus_gram_job_manager_call_authz_callout(
1142 globus_gram_job_manager_config_t * config,
1143 gss_ctx_id_t request_context,
1144 gss_ctx_id_t authz_context,
1145 const char * uniq_id,
1146 const globus_rsl_t * rsl,
1147 const char * auth_type);
1150 globus_gram_job_manager_authz_query(
1151 globus_gram_job_manager_t * manager,
1154 const char * auth_type);
1157 globus_gram_gsi_get_dn_hash(
1159 unsigned long * hash);
1163 globus_gram_job_manager_query_callback(
1172 globus_gram_job_manager_query_reply(
1173 globus_gram_jobmanager_request_t * request,
1174 globus_gram_job_manager_query_t * query);
1178 globus_gram_job_manager_staging_create_list(
1179 globus_gram_jobmanager_request_t * request);
1182 globus_gram_job_manager_streaming_list_replace(
1183 globus_gram_jobmanager_request_t * request);
1185 globus_gram_job_manager_staging_remove(
1186 globus_gram_jobmanager_request_t * request,
1187 globus_gram_job_manager_staging_type_t
1193 globus_gram_job_manager_staging_write_state(
1194 globus_gram_jobmanager_request_t * request,
1197 globus_gram_job_manager_staging_read_state(
1198 globus_gram_jobmanager_request_t * request,
1202 globus_gram_job_manager_staging_free_all(
1203 globus_gram_jobmanager_request_t * request);
1208 globus_rsl_t * base_rsl,
1209 globus_rsl_t * override_rsl);
1214 const char * attribute);
1217 globus_gram_job_manager_rsl_need_stage_in(
1218 globus_gram_jobmanager_request_t * request);
1221 globus_gram_job_manager_rsl_need_stage_out(
1222 globus_gram_jobmanager_request_t * request);
1225 globus_gram_job_manager_rsl_need_file_cleanup(
1226 globus_gram_jobmanager_request_t * request);
1229 globus_gram_job_manager_rsl_need_scratchdir(
1230 globus_gram_jobmanager_request_t * request);
1233 globus_gram_job_manager_rsl_need_restart(
1234 globus_gram_jobmanager_request_t * request);
1238 globus_rsl_t * ast_node,
1240 const char * value);
1244 globus_gram_jobmanager_request_t * request,
1254 globus_gram_job_manager_rsl_extract_relation(
1256 const char * attribute);
1259 globus_gram_job_manager_rsl_add_relation(
1261 globus_rsl_t * relation);
1264 globus_gram_job_manager_rsl_parse_value(
1265 char * value_string,
1266 globus_rsl_value_t ** rsl_value);
1269 globus_gram_job_manager_rsl_evaluate_value(
1270 globus_symboltable_t * symbol_table,
1271 globus_rsl_value_t * value,
1272 char ** value_string);
1275 globus_gram_job_manager_rsl_eval_string(
1276 globus_symboltable_t * symbol_table,
1277 const char *
string,
1278 char ** value_string);
1283 const char * attribute,
1284 const char ** value_ptr);
1289 const char * attribute,
1295 const char * attribute,
1300 globus_gram_jobmanager_request_t * request,
1302 const char * attribute,
1303 const char * value);
1307 globus_gram_jobmanager_request_t * request,
1309 const char * source,
1310 const char * destination);
1314 globus_gram_job_manager_state_file_set(
1315 globus_gram_jobmanager_request_t * request,
1316 char ** state_file);
1319 globus_gram_job_manager_file_lock(
1323 globus_gram_job_manager_state_file_read(
1324 globus_gram_jobmanager_request_t * request);
1326 globus_gram_job_manager_state_file_write(
1327 globus_gram_jobmanager_request_t * request);
1330 globus_gram_job_manager_state_file_register_update(
1331 globus_gram_jobmanager_request_t * request);
1335 globus_gram_job_manager_script_stage_in(
1336 globus_gram_jobmanager_request_t * request);
1338 globus_gram_job_manager_script_stage_out(
1339 globus_gram_jobmanager_request_t * request);
1341 globus_gram_job_manager_script_submit(
1342 globus_gram_jobmanager_request_t * request);
1344 globus_gram_job_manager_script_poll(
1345 globus_gram_jobmanager_request_t * request);
1347 globus_gram_job_manager_script_signal(
1348 globus_gram_jobmanager_request_t * request,
1349 globus_gram_job_manager_query_t * query);
1351 globus_gram_job_manager_script_cancel(
1352 globus_gram_jobmanager_request_t * request,
1353 globus_gram_job_manager_query_t * query);
1356 globus_i_gram_job_manager_script_valid_state_change(
1357 globus_gram_jobmanager_request_t * request,
1361 globus_gram_job_manager_script_close_all(
1362 globus_gram_job_manager_t * manager);
1365 globus_gram_script_close_idle(
1368 extern globus_xio_driver_t globus_i_gram_job_manager_popen_driver;
1369 extern globus_xio_stack_t globus_i_gram_job_manager_popen_stack;
1373 globus_gram_job_manager_init_seg(
1374 globus_gram_job_manager_t * request);
1377 globus_gram_job_manager_shutdown_seg(
1378 globus_gram_job_manager_t * manager);
1381 globus_gram_job_manager_seg_handle_event(
1382 globus_gram_jobmanager_request_t * request);
1385 globus_gram_job_manager_seg_pause(
1386 globus_gram_job_manager_t * manager);
1389 globus_gram_job_manager_seg_resume(
1390 globus_gram_job_manager_t * manager);
1393 globus_gram_job_manager_seg_parse_condor_id(
1394 globus_gram_jobmanager_request_t * request,
1399 globus_gram_job_manager_auditing_file_write(
1400 globus_gram_jobmanager_request_t * request);
1403 #ifdef DEBUG_THREADS
1404 #define GlobusGramJobManagerLock(manager) \
1406 globus_gram_job_manager_log( \
1408 "JM: [tid=%ld] Locking manager (%s:%d) %p\n", \
1409 (long) globus_thread_self() \
1413 globus_mutex_lock(&(manager)->mutex); \
1416 #define GlobusGramJobManagerUnlock(manager) \
1418 globus_gram_job_manager_log( \
1420 "JM: [tid=%d] Unlocking manager (%s:%d) %p\n", \
1421 (long) globus_thread_self() \
1425 globus_mutex_unlock(&(manager)->mutex); \
1427 #define GlobusGramJobManagerWait(manager) \
1429 globus_gram_job_manager_log( \
1431 GLOBUS_GRAM_LOG_TRACE, \
1432 "JM: [tid=%ld] Condition Wait: Unlocking manager (%s:%d) %p\n", \
1433 (long) globus_thread_self() \
1437 globus_cond_wait(&(manager)->cond, &(manager)->mutex); \
1438 globus_gram_job_manager_log( \
1440 GLOBUS_GRAM_LOG_TRACE, \
1441 "JM: [tid=%ld] Condition Wait Returns: Locking manager (%s:%d) %p\n", \
1442 (long) globus_thread_self() \
1448 #define GlobusGramJobManagerLock(manager) \
1449 globus_mutex_lock(&(manager)->mutex)
1450 #define GlobusGramJobManagerUnlock(manager) \
1451 globus_mutex_unlock(&(manager)->mutex)
1452 #define GlobusGramJobManagerWait(manager) \
1453 globus_cond_wait(&(manager)->cond, &(manager)->mutex);
1456 globus_gram_job_manager_init(
1457 globus_gram_job_manager_t * manager,
1459 globus_gram_job_manager_config_t * config);
1462 globus_gram_job_manager_destroy(
1463 globus_gram_job_manager_t * manager);
1466 globus_gram_job_manager_log(
1467 globus_gram_job_manager_t * manager,
1468 globus_gram_job_manager_log_level_t level,
1469 const char * format,
1473 globus_gram_job_manager_add_request(
1474 globus_gram_job_manager_t * manager,
1476 globus_gram_jobmanager_request_t * request);
1479 globus_gram_job_manager_add_reference(
1480 globus_gram_job_manager_t * manager,
1482 const char * reason,
1483 globus_gram_jobmanager_request_t ** request);
1486 globus_gram_job_manager_remove_reference(
1487 globus_gram_job_manager_t * manager,
1488 const char * reason,
1492 globus_gram_job_manager_register_job_id(
1493 globus_gram_job_manager_t * manager,
1495 globus_gram_jobmanager_request_t * request,
1499 globus_gram_job_manager_unregister_job_id(
1500 globus_gram_job_manager_t * manager,
1504 globus_gram_job_manager_add_reference_by_jobid(
1505 globus_gram_job_manager_t * manager,
1507 const char * reason,
1508 globus_gram_jobmanager_request_t ** request);
1511 globus_gram_job_manager_get_job_id_list(
1512 globus_gram_job_manager_t * manager,
1516 globus_gram_job_manager_request_exists(
1517 globus_gram_job_manager_t * manager,
1521 globus_gram_job_manager_set_grace_period_timer(
1522 globus_gram_job_manager_t * manager);
1525 globus_gram_job_manager_expire_old_jobs(
1529 globus_gram_job_manager_set_status(
1530 globus_gram_job_manager_t * manager,
1537 globus_gram_job_manager_get_status(
1538 globus_gram_job_manager_t * manager,
1545 globus_gram_job_manager_stop_all_jobs(
1546 globus_gram_job_manager_t * manager);
1549 globus_gram_split_subjobs(
1550 const char * job_id,
1554 globus_i_gram_mkdir(
1559 globus_gram_job_manager_startup_lock(
1560 globus_gram_job_manager_t * manager,
1564 globus_gram_job_manager_startup_socket_init(
1565 globus_gram_job_manager_t * manager,
1566 globus_xio_handle_t * handle,
1570 globus_gram_job_manager_starter_send(
1571 globus_gram_job_manager_t * manager,
1575 gss_cred_id_t cred);
1578 globus_gram_job_manager_starter_send_v2(
1579 globus_gram_job_manager_t * manager,
1580 gss_cred_id_t cred);
1582 extern globus_xio_driver_t globus_i_gram_job_manager_file_driver;
1583 extern globus_xio_stack_t globus_i_gram_job_manager_file_stack;
1587 globus_i_gram_get_tg_gateway_user(
1588 gss_ctx_id_t context,
1590 char ** gateway_user);
1594 extern globus_logging_handle_t globus_i_gram_job_manager_log_stdio;
1595 extern globus_logging_handle_t globus_i_gram_job_manager_log_sys;
1599 globus_i_job_manager_log_rotate(
int sig);
1603 globus_gram_job_manager_logging_init(
1604 globus_gram_job_manager_config_t * config);
1608 globus_gram_job_manager_logging_destroy(
void);
1612 globus_gram_prepare_log_string(
1613 const char * instr);
1615 extern char globus_i_gram_default_rvf[];
Globus GSI Credential Library.
int globus_gram_job_manager_rsl_attribute_get_boolean_value(globus_rsl_t *rsl, const char *attribute, globus_bool_t *value_ptr)
Definition: globus_gram_job_manager_rsl.c:1141
int globus_gram_rsl_add_output(globus_gram_jobmanager_request_t *request, globus_rsl_t *rsl, const char *attribute, const char *value)
Add an output attribute to an RSL.
Definition: globus_gram_job_manager_rsl.c:351
globus_gram_protocol_error_t
Definition: globus_gram_protocol_constants.h:25
int globus_bool_t
Boolean type.
Definition: globus_types.h:93
struct globus_i_gass_cache_t * globus_gass_cache_t
GASS Cache Handle.
Definition: globus_gass_cache.h:85
int globus_callback_handle_t
Periodic callback handle.
Definition: globus_callback.h:102
struct globus_fifo_s * globus_fifo_t
Definition: globus_fifo.h:48
struct globus_l_gsi_cred_handle_s * globus_gsi_cred_handle_t
Definition: globus_gsi_credential.h:162
globus_gram_protocol_job_signal_t
Definition: globus_gram_protocol_constants.h:212
unsigned long globus_gram_protocol_handle_t
Unique GRAM protocol identifier.
Definition: globus_gram_protocol.h:73
int globus_gram_job_manager_rsl_remove_attribute(globus_rsl_t *rsl, char *attribute)
Remove an RSL attribute.
Definition: globus_gram_job_manager_rsl.c:782
List data type.
Definition: globus_list.h:44
int globus_gram_job_manager_rsl_attribute_get_string_value(globus_rsl_t *rsl, const char *attribute, const char **value_ptr)
Definition: globus_gram_job_manager_rsl.c:1089
int globus_gram_job_manager_rsl_eval_one_attribute(globus_gram_jobmanager_request_t *request, char *attribute, char **value)
Definition: globus_gram_job_manager_rsl.c:830
globus_rsl_t * globus_gram_job_manager_rsl_merge(globus_rsl_t *base_rsl, globus_rsl_t *override_rsl)
Merge two sets of RSL relations.
Definition: globus_gram_job_manager_rsl.c:52
Mutex.
Definition: globus_thread.h:107
Condition variable.
Definition: globus_thread.h:124
size_t globus_size_t
Standard size of memory objectThe globus_size_t is the size of a memory object. It is identical to si...
Definition: globus_types.h:48
unsigned char globus_byte_t
Unsigned byte datatypeThis is used for byte-addressable arrays of arbitrary data which is not subject...
Definition: globus_types.h:85
Thread-specific data key.
Definition: globus_thread.h:201
Headers common to all of Globus.
uint32_t globus_result_t
Definition: globus_types.h:99
int globus_gram_job_manager_rsl_env_add(globus_rsl_t *ast_node, const char *var, const char *value)
Add an environment variable to the job RSL.
Definition: globus_gram_job_manager_rsl.c:687
Priority Queue Structure.
Definition: globus_priority_q.h:98
int globus_gram_job_manager_rsl_attribute_get_int_value(globus_rsl_t *rsl, const char *attribute, int *value_ptr)
Definition: globus_gram_job_manager_rsl.c:1194
int globus_gram_rsl_add_stream_out(globus_gram_jobmanager_request_t *request, globus_rsl_t *rsl, const char *source, const char *destination)
Add a stage out value to the RSL.
Definition: globus_gram_job_manager_rsl.c:472
globus_gram_protocol_job_state_t
Definition: globus_gram_protocol_constants.h:270
globus_bool_t globus_gram_job_manager_rsl_attribute_exists(globus_rsl_t *rsl, const char *attribute)
Attribute exists in an RSL.
Definition: globus_gram_job_manager_rsl.c:106