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;
296 char * usage_targets;
325 const char * log_pattern;
341 char * short_hostname;
359 globus_gram_job_manager_config_t;
365 globus_abstime_t jm_start_time;
367 int count_total_done;
368 int count_total_failed;
369 int count_total_canceled;
373 int count_current_jobs;
374 } globus_i_gram_usage_tracker_t;
376 typedef struct globus_i_gram_usage_job_tracker_s
378 globus_abstime_t unsubmitted_timestamp;
379 globus_abstime_t file_stage_in_timestamp;
380 globus_abstime_t pending_timestamp;
381 globus_abstime_t active_timestamp;
382 globus_abstime_t failed_timestamp;
383 globus_abstime_t file_stage_out_timestamp;
384 globus_abstime_t done_timestamp;
389 int unregister_count;
392 int file_clean_up_count;
393 int file_stage_in_http_count;
394 int file_stage_in_https_count;
395 int file_stage_in_ftp_count;
396 int file_stage_in_gsiftp_count;
397 int file_stage_in_shared_http_count;
398 int file_stage_in_shared_https_count;
399 int file_stage_in_shared_ftp_count;
400 int file_stage_in_shared_gsiftp_count;
401 int file_stage_out_http_count;
402 int file_stage_out_https_count;
403 int file_stage_out_ftp_count;
404 int file_stage_out_gsiftp_count;
405 char * client_address;
407 } globus_i_gram_usage_job_tracker_t;
416 int script_slots_available;
420 globus_gram_job_manager_scripts_t;
427 typedef struct globus_gram_job_manager_s
430 globus_gram_job_manager_config_t * config;
440 time_t seg_last_timestamp;
448 time_t validation_record_timestamp;
454 time_t cred_expiration_time;
460 globus_hashtable_t request_hash;
462 globus_hashtable_t job_id_hash;
471 globus_xio_handle_t active_job_manager_handle;
489 int state_callback_slots;
505 globus_i_gram_usage_tracker_t * usagetracker;
510 char * gt3_failure_message;
511 globus_xio_attr_t script_attr;
529 globus_gram_job_manager_t;
534 typedef struct globus_gram_job_manager_request_s
537 globus_gram_job_manager_config_t * config;
539 globus_gram_job_manager_t * manager;
566 time_t status_update_time;
580 char * gt3_failure_message;
585 char * gt3_failure_type;
590 char * gt3_failure_source;
595 char * gt3_failure_destination;
620 char * job_id_string;
628 char * original_job_id_string;
635 unsigned int poll_frequency;
654 int two_phase_commit;
662 time_t creation_time;
668 globus_symboltable_t symbol_table;
690 char * job_contact_path;
692 char * job_state_file;
694 char * scratch_dir_base;
703 char * remote_io_url;
705 char * remote_io_url_file;
707 char * x509_user_proxy;
723 globus_gram_jobmanager_state_t jobmanager_state;
725 globus_gram_jobmanager_state_t restart_state;
746 char * cache_location;
750 char * job_history_file;
752 int job_history_status;
756 char * cached_stdout;
760 char * cached_stderr;
762 gss_ctx_id_t response_context;
764 char * old_job_contact;
773 time_t seg_last_timestamp;
781 globus_i_gram_usage_job_tracker_t job_stats;
793 globus_gram_jobmanager_request_t;
795 typedef struct globus_gram_job_manager_ref_s
800 globus_gram_job_manager_t * manager;
804 globus_gram_jobmanager_request_t * request;
835 time_t expiration_time;
843 time_t seg_last_timestamp;
847 globus_off_t seg_last_size;
849 globus_gram_job_manager_ref_t;
853 globus_gram_job_manager_config_init(
854 globus_gram_job_manager_config_t * config,
859 globus_gram_job_manager_config_destroy(
860 globus_gram_job_manager_config_t * config);
863 globus_i_gram_parse_log_levels(
864 const char * unparsed_string,
866 char ** error_string);
870 #define GlobusGramJobManagerRequestLock(request) \ 872 globus_gram_job_manager_request_log( \ 874 "JM: [tid=%ld] Locking request (%s:%d) %p\n", \ 875 (long) globus_thread_self(), \ 879 globus_mutex_lock(&(request)->mutex); \ 882 #define GlobusGramJobManagerRequestUnlock(request) \ 884 globus_gram_job_manager_request_log( \ 886 "JM: [tid=%ld] Unlocking request (%s:%d) %p\n", \ 887 (long) globus_thread_self() \ 891 globus_mutex_unlock(&(request)->mutex); \ 894 #define GlobusGramJobManagerRequestLock(request) \ 895 globus_mutex_lock(&(request)->mutex) 896 #define GlobusGramJobManagerRequestUnlock(request) \ 897 globus_mutex_unlock(&(request)->mutex) 901 globus_gram_job_manager_request_init(
902 globus_gram_jobmanager_request_t ** request,
903 globus_gram_job_manager_t * manager,
905 gss_cred_id_t delegated_credential,
906 gss_ctx_id_t response_ctx,
907 const char * peer_address,
910 char ** old_job_contact,
911 globus_gram_jobmanager_request_t ** old_job_request,
912 char ** gt3_failure_message);
915 globus_gram_job_manager_request_destroy(
916 globus_gram_jobmanager_request_t * request);
919 globus_gram_job_manager_request_free(
920 globus_gram_jobmanager_request_t * request);
923 globus_gram_job_manager_request_set_status(
924 globus_gram_jobmanager_request_t * request,
928 globus_gram_job_manager_request_set_status_time(
929 globus_gram_jobmanager_request_t * request,
934 globus_gram_job_manager_request_log(
935 globus_gram_jobmanager_request_t * request,
936 globus_gram_job_manager_log_level_t level,
941 globus_gram_job_manager_request_acct(
942 globus_gram_jobmanager_request_t * request,
947 globus_gram_job_manager_symbol_table_populate(
948 globus_gram_jobmanager_request_t * request);
951 globus_gram_job_manager_history_file_set(
952 globus_gram_jobmanager_request_t * request);
955 globus_gram_job_manager_history_file_create(
956 globus_gram_jobmanager_request_t * request);
959 globus_gram_job_manager_request_load(
960 globus_gram_job_manager_t * manager,
963 gss_cred_id_t credential,
964 const char * peer_address,
966 size_t content_length,
967 globus_gram_jobmanager_request_t ** request,
968 gss_ctx_id_t * context,
970 int * job_state_mask,
971 char ** old_job_contact,
972 globus_gram_jobmanager_request_t ** old_job_request,
974 char ** gt3_failure_message);
977 globus_gram_job_manager_request_start(
978 globus_gram_job_manager_t * manager,
979 globus_gram_jobmanager_request_t * request,
981 const char * client_contact,
985 globus_gram_job_manager_destroy_directory(
986 globus_gram_jobmanager_request_t * request,
987 const char * directory);
990 globus_gram_job_manager_request_load_all(
991 globus_gram_job_manager_t * manager);
994 globus_i_gram_request_stdio_update(
995 globus_gram_jobmanager_request_t * request,
996 globus_rsl_t * update_rsl);
999 globus_i_gram_symbol_table_populate(
1000 globus_gram_job_manager_config_t * config,
1001 globus_symboltable_t * symbol_table);
1011 GLOBUS_GRAM_VALIDATE_JOB_SUBMIT = 1,
1012 GLOBUS_GRAM_VALIDATE_JOB_MANAGER_RESTART = 2,
1013 GLOBUS_GRAM_VALIDATE_STDIO_UPDATE = 4
1015 globus_gram_job_manager_validation_when_t;
1019 globus_gram_job_manager_validation_destroy(
1024 globus_gram_job_manager_validate_rsl(
1025 globus_gram_jobmanager_request_t * request,
1027 globus_gram_job_manager_validation_when_t
1032 globus_gram_job_manager_contact_add(
1033 globus_gram_jobmanager_request_t * request,
1034 const char * contact,
1035 int job_state_mask);
1038 globus_gram_job_manager_contact_remove(
1039 globus_gram_jobmanager_request_t * request,
1040 const char * contact);
1042 globus_gram_job_manager_contact_list_free(
1043 globus_gram_jobmanager_request_t * request);
1046 globus_gram_job_manager_contact_state_callback(
1047 globus_gram_jobmanager_request_t * request,
1051 globus_gram_job_manager_write_callback_contacts(
1052 globus_gram_jobmanager_request_t * request,
1056 globus_gram_job_manager_read_callback_contacts(
1057 globus_gram_jobmanager_request_t * request,
1062 const char * globus_i_gram_job_manager_state_strings[];
1065 globus_gram_job_manager_read_request(
1066 globus_gram_job_manager_t * manager,
1068 size_t content_length,
1070 char ** client_contact,
1071 int * job_state_mask,
1075 globus_gram_job_manager_reply(
1076 globus_gram_jobmanager_request_t * request,
1077 globus_gram_job_manager_t * manager,
1079 const char * job_contact,
1081 gss_ctx_id_t response_context,
1082 const char * gt3_failure_message);
1085 globus_gram_job_manager_validate_username(
1086 globus_gram_jobmanager_request_t * request);
1089 globus_gram_job_manager_state_machine_register(
1090 globus_gram_job_manager_t * manager,
1091 globus_gram_jobmanager_request_t * request,
1092 globus_reltime_t * delay);
1095 globus_i_gram_remote_io_url_update(
1096 globus_gram_jobmanager_request_t * request);
1099 globus_gram_job_manager_state_machine_callback(
1104 globus_gram_job_manager_import_sec_context(
1105 globus_gram_job_manager_t * manager,
1107 gss_ctx_id_t * response_contextp);
1110 globus_gram_job_manager_gsi_used(
1111 globus_gram_jobmanager_request_t * request);
1114 globus_gram_job_manager_gsi_register_proxy_timeout(
1115 globus_gram_job_manager_t * manager,
1121 globus_gram_job_manager_gsi_get_subject(
1122 char ** subject_name);
1125 globus_gram_job_manager_gsi_update_credential(
1126 globus_gram_job_manager_t * manager,
1127 globus_gram_jobmanager_request_t * request,
1128 gss_cred_id_t credential);
1131 globus_gram_job_manager_gsi_write_credential(
1132 globus_gram_jobmanager_request_t * request,
1133 gss_cred_id_t credential,
1137 globus_gram_job_manager_gsi_update_proxy_timeout(
1138 globus_gram_job_manager_t * manager,
1144 globus_gram_job_manager_gsi_relocate_proxy(
1145 globus_gram_jobmanager_request_t * request,
1146 const char * new_proxy);
1149 globus_gram_job_manager_call_authz_callout(
1150 globus_gram_job_manager_config_t * config,
1151 gss_ctx_id_t request_context,
1152 gss_ctx_id_t authz_context,
1153 const char * uniq_id,
1154 const globus_rsl_t * rsl,
1155 const char * auth_type);
1158 globus_gram_job_manager_authz_query(
1159 globus_gram_job_manager_t * manager,
1162 const char * auth_type);
1165 globus_gram_gsi_get_dn_hash(
1167 unsigned long * hash);
1171 globus_gram_job_manager_query_callback(
1180 globus_gram_job_manager_query_reply(
1181 globus_gram_jobmanager_request_t * request,
1182 globus_gram_job_manager_query_t * query);
1186 globus_gram_job_manager_staging_create_list(
1187 globus_gram_jobmanager_request_t * request);
1190 globus_gram_job_manager_streaming_list_replace(
1191 globus_gram_jobmanager_request_t * request);
1193 globus_gram_job_manager_staging_remove(
1194 globus_gram_jobmanager_request_t * request,
1195 globus_gram_job_manager_staging_type_t
1201 globus_gram_job_manager_staging_write_state(
1202 globus_gram_jobmanager_request_t * request,
1205 globus_gram_job_manager_staging_read_state(
1206 globus_gram_jobmanager_request_t * request,
1210 globus_gram_job_manager_staging_free_all(
1211 globus_gram_jobmanager_request_t * request);
1216 globus_rsl_t * base_rsl,
1217 globus_rsl_t * override_rsl);
1222 const char * attribute);
1225 globus_gram_job_manager_rsl_need_stage_in(
1226 globus_gram_jobmanager_request_t * request);
1229 globus_gram_job_manager_rsl_need_stage_out(
1230 globus_gram_jobmanager_request_t * request);
1233 globus_gram_job_manager_rsl_need_file_cleanup(
1234 globus_gram_jobmanager_request_t * request);
1237 globus_gram_job_manager_rsl_need_scratchdir(
1238 globus_gram_jobmanager_request_t * request);
1241 globus_gram_job_manager_rsl_need_restart(
1242 globus_gram_jobmanager_request_t * request);
1246 globus_rsl_t * ast_node,
1248 const char * value);
1252 globus_gram_jobmanager_request_t * request,
1262 globus_gram_job_manager_rsl_extract_relation(
1264 const char * attribute);
1267 globus_gram_job_manager_rsl_add_relation(
1269 globus_rsl_t * relation);
1272 globus_gram_job_manager_rsl_parse_value(
1273 char * value_string,
1274 globus_rsl_value_t ** rsl_value);
1277 globus_gram_job_manager_rsl_evaluate_value(
1278 globus_symboltable_t * symbol_table,
1279 globus_rsl_value_t * value,
1280 char ** value_string);
1283 globus_gram_job_manager_rsl_eval_string(
1284 globus_symboltable_t * symbol_table,
1285 const char *
string,
1286 char ** value_string);
1291 const char * attribute,
1292 const char ** value_ptr);
1297 const char * attribute,
1303 const char * attribute,
1308 globus_gram_jobmanager_request_t * request,
1310 const char * attribute,
1311 const char * value);
1315 globus_gram_jobmanager_request_t * request,
1317 const char * source,
1318 const char * destination);
1322 globus_gram_job_manager_state_file_set(
1323 globus_gram_jobmanager_request_t * request,
1324 char ** state_file);
1327 globus_gram_job_manager_file_lock(
1331 globus_gram_job_manager_state_file_read(
1332 globus_gram_jobmanager_request_t * request);
1334 globus_gram_job_manager_state_file_write(
1335 globus_gram_jobmanager_request_t * request);
1338 globus_gram_job_manager_state_file_register_update(
1339 globus_gram_jobmanager_request_t * request);
1343 globus_gram_job_manager_script_stage_in(
1344 globus_gram_jobmanager_request_t * request);
1346 globus_gram_job_manager_script_stage_out(
1347 globus_gram_jobmanager_request_t * request);
1349 globus_gram_job_manager_script_submit(
1350 globus_gram_jobmanager_request_t * request);
1352 globus_gram_job_manager_script_poll(
1353 globus_gram_jobmanager_request_t * request);
1355 globus_gram_job_manager_script_signal(
1356 globus_gram_jobmanager_request_t * request,
1357 globus_gram_job_manager_query_t * query);
1359 globus_gram_job_manager_script_cancel(
1360 globus_gram_jobmanager_request_t * request,
1361 globus_gram_job_manager_query_t * query);
1364 globus_i_gram_job_manager_script_valid_state_change(
1365 globus_gram_jobmanager_request_t * request,
1369 globus_gram_job_manager_script_close_all(
1370 globus_gram_job_manager_t * manager);
1373 globus_gram_script_close_idle(
1376 extern globus_xio_driver_t globus_i_gram_job_manager_popen_driver;
1377 extern globus_xio_stack_t globus_i_gram_job_manager_popen_stack;
1381 globus_gram_job_manager_init_seg(
1382 globus_gram_job_manager_t * request);
1385 globus_gram_job_manager_shutdown_seg(
1386 globus_gram_job_manager_t * manager);
1389 globus_gram_job_manager_seg_handle_event(
1390 globus_gram_jobmanager_request_t * request);
1393 globus_gram_job_manager_seg_pause(
1394 globus_gram_job_manager_t * manager);
1397 globus_gram_job_manager_seg_resume(
1398 globus_gram_job_manager_t * manager);
1401 globus_gram_job_manager_seg_parse_condor_id(
1402 globus_gram_jobmanager_request_t * request,
1407 globus_gram_job_manager_auditing_file_write(
1408 globus_gram_jobmanager_request_t * request);
1411 #ifdef DEBUG_THREADS 1412 #define GlobusGramJobManagerLock(manager) \ 1414 globus_gram_job_manager_log( \ 1416 "JM: [tid=%ld] Locking manager (%s:%d) %p\n", \ 1417 (long) globus_thread_self() \ 1421 globus_mutex_lock(&(manager)->mutex); \ 1424 #define GlobusGramJobManagerUnlock(manager) \ 1426 globus_gram_job_manager_log( \ 1428 "JM: [tid=%d] Unlocking manager (%s:%d) %p\n", \ 1429 (long) globus_thread_self() \ 1433 globus_mutex_unlock(&(manager)->mutex); \ 1435 #define GlobusGramJobManagerWait(manager) \ 1437 globus_gram_job_manager_log( \ 1439 GLOBUS_GRAM_LOG_TRACE, \ 1440 "JM: [tid=%ld] Condition Wait: Unlocking manager (%s:%d) %p\n", \ 1441 (long) globus_thread_self() \ 1445 globus_cond_wait(&(manager)->cond, &(manager)->mutex); \ 1446 globus_gram_job_manager_log( \ 1448 GLOBUS_GRAM_LOG_TRACE, \ 1449 "JM: [tid=%ld] Condition Wait Returns: Locking manager (%s:%d) %p\n", \ 1450 (long) globus_thread_self() \ 1456 #define GlobusGramJobManagerLock(manager) \ 1457 globus_mutex_lock(&(manager)->mutex) 1458 #define GlobusGramJobManagerUnlock(manager) \ 1459 globus_mutex_unlock(&(manager)->mutex) 1460 #define GlobusGramJobManagerWait(manager) \ 1461 globus_cond_wait(&(manager)->cond, &(manager)->mutex); 1464 globus_gram_job_manager_init(
1465 globus_gram_job_manager_t * manager,
1467 globus_gram_job_manager_config_t * config);
1470 globus_gram_job_manager_destroy(
1471 globus_gram_job_manager_t * manager);
1474 globus_gram_job_manager_log(
1475 globus_gram_job_manager_t * manager,
1476 globus_gram_job_manager_log_level_t level,
1477 const char * format,
1481 globus_gram_job_manager_add_request(
1482 globus_gram_job_manager_t * manager,
1484 globus_gram_jobmanager_request_t * request);
1487 globus_gram_job_manager_add_reference(
1488 globus_gram_job_manager_t * manager,
1490 const char * reason,
1491 globus_gram_jobmanager_request_t ** request);
1494 globus_gram_job_manager_remove_reference(
1495 globus_gram_job_manager_t * manager,
1496 const char * reason,
1500 globus_gram_job_manager_register_job_id(
1501 globus_gram_job_manager_t * manager,
1503 globus_gram_jobmanager_request_t * request,
1507 globus_gram_job_manager_unregister_job_id(
1508 globus_gram_job_manager_t * manager,
1512 globus_gram_job_manager_add_reference_by_jobid(
1513 globus_gram_job_manager_t * manager,
1515 const char * reason,
1516 globus_gram_jobmanager_request_t ** request);
1519 globus_gram_job_manager_get_job_id_list(
1520 globus_gram_job_manager_t * manager,
1524 globus_gram_job_manager_request_exists(
1525 globus_gram_job_manager_t * manager,
1529 globus_gram_job_manager_set_grace_period_timer(
1530 globus_gram_job_manager_t * manager);
1533 globus_gram_job_manager_expire_old_jobs(
1537 globus_gram_job_manager_set_status(
1538 globus_gram_job_manager_t * manager,
1545 globus_gram_job_manager_get_status(
1546 globus_gram_job_manager_t * manager,
1553 globus_gram_job_manager_stop_all_jobs(
1554 globus_gram_job_manager_t * manager);
1557 globus_gram_split_subjobs(
1558 const char * job_id,
1562 globus_i_gram_mkdir(
1567 globus_i_gram_usage_start_session_stats(
1568 globus_gram_job_manager_t * manager);
1571 globus_i_gram_usage_end_session_stats(
1572 globus_gram_job_manager_t * manager);
1575 globus_i_gram_send_session_stats(
1576 globus_gram_job_manager_t * manager);
1579 globus_i_gram_send_job_stats(
1580 globus_gram_jobmanager_request_t * request);
1583 globus_i_gram_send_job_failure_stats(
1584 globus_gram_job_manager_t * manager,
1588 globus_i_gram_usage_stats_init(
1589 globus_gram_job_manager_t * manager);
1592 globus_i_gram_usage_stats_destroy(
1593 globus_gram_job_manager_t * manager);
1597 globus_gram_job_manager_startup_lock(
1598 globus_gram_job_manager_t * manager,
1602 globus_gram_job_manager_startup_socket_init(
1603 globus_gram_job_manager_t * manager,
1604 globus_xio_handle_t * handle,
1608 globus_gram_job_manager_starter_send(
1609 globus_gram_job_manager_t * manager,
1613 gss_cred_id_t cred);
1616 globus_gram_job_manager_starter_send_v2(
1617 globus_gram_job_manager_t * manager,
1618 gss_cred_id_t cred);
1620 extern globus_xio_driver_t globus_i_gram_job_manager_file_driver;
1621 extern globus_xio_stack_t globus_i_gram_job_manager_file_stack;
1625 globus_i_gram_get_tg_gateway_user(
1626 gss_ctx_id_t context,
1628 char ** gateway_user);
1632 extern globus_logging_handle_t globus_i_gram_job_manager_log_stdio;
1633 extern globus_logging_handle_t globus_i_gram_job_manager_log_sys;
1637 globus_i_job_manager_log_rotate(
int sig);
1641 globus_gram_job_manager_logging_init(
1642 globus_gram_job_manager_config_t * config);
1646 globus_gram_job_manager_logging_destroy(
void);
1650 globus_gram_prepare_log_string(
1651 const char * instr);
1653 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:1140
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:350
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:84
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:156
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:72
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:781
List data type.
Definition: globus_list.h:43
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:1088
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:829
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:51
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:686
Priority Queue Structure.
Definition: globus_priority_q.h:97
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:1193
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:471
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:105