00001 #ifndef __EDG_WORKLOAD_LOGGING_CLIENT_EVENTS_H__
00002 #define __EDG_WORKLOAD_LOGGING_CLIENT_EVENTS_H__
00003
00008 #ident "$Header: /cvs/jra1mw/org.glite.lb.client-interface/interface/events.h.T,v 1.5 2005/08/03 09:30:10 akrenek Exp $"
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <sys/time.h>
00018 #include <inttypes.h>
00019
00020 #include "glite/wmsutils/jobid/cjobid.h"
00021 #include "glite/lb/context.h"
00022 #include "glite/lb/notifid.h"
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00038 typedef char *edg_wll_LogLine;
00039
00040
00045 typedef enum _edg_wll_EventCode {
00047 EDG_WLL_EVENT_UNDEF = 0,
00048 EDG_WLL_EVENT_TRANSFER,
00049 EDG_WLL_EVENT_ACCEPTED,
00050 EDG_WLL_EVENT_REFUSED,
00051 EDG_WLL_EVENT_ENQUEUED,
00052 EDG_WLL_EVENT_DEQUEUED,
00053 EDG_WLL_EVENT_HELPERCALL,
00054 EDG_WLL_EVENT_HELPERRETURN,
00055 EDG_WLL_EVENT_RUNNING,
00056 EDG_WLL_EVENT_RESUBMISSION,
00057 EDG_WLL_EVENT_DONE,
00058 EDG_WLL_EVENT_CANCEL,
00059 EDG_WLL_EVENT_ABORT,
00060 EDG_WLL_EVENT_CLEAR,
00061 EDG_WLL_EVENT_PURGE,
00062 EDG_WLL_EVENT_MATCH,
00063 EDG_WLL_EVENT_PENDING,
00064 EDG_WLL_EVENT_REGJOB,
00065 EDG_WLL_EVENT_CHKPT,
00066 EDG_WLL_EVENT_LISTENER,
00067 EDG_WLL_EVENT_CURDESCR,
00068 EDG_WLL_EVENT_USERTAG,
00069 EDG_WLL_EVENT_CHANGEACL,
00070 EDG_WLL_EVENT_NOTIFICATION,
00071 EDG_WLL_EVENT_RESOURCEUSAGE,
00072 EDG_WLL_EVENT_REALLYRUNNING,
00073 EDG_WLL_EVENT__LAST,
00074 } edg_wll_EventCode;
00075
00083 extern edg_wll_EventCode edg_wll_StringToEvent(const char *name);
00084
00092 extern char *edg_wll_EventToString(edg_wll_EventCode event);
00093
00094
00099 typedef enum _edg_wll_KeyNameCode {
00100 UNDEFINED,
00101 EDG_WLL_EVNT,
00102 ULM_DATE,
00103 ULM_ARR_DATE,
00104 ULM_HOST,
00105 ULM_LVL,
00106 EDG_WLL_COMMON_PRIORITY,
00107 EDG_WLL_COMMON_JOBID,
00108 EDG_WLL_COMMON_SEQCODE,
00109 EDG_WLL_COMMON_USER,
00110 EDG_WLL_COMMON_SOURCE,
00111 EDG_WLL_COMMON_SRC_INSTANCE,
00112 EDG_WLL_TRANSFER_DESTINATION,
00113 EDG_WLL_TRANSFER_DEST_HOST,
00114 EDG_WLL_TRANSFER_DEST_INSTANCE,
00115 EDG_WLL_TRANSFER_JOB,
00116 EDG_WLL_TRANSFER_RESULT,
00117 EDG_WLL_TRANSFER_REASON,
00118 EDG_WLL_TRANSFER_DEST_JOBID,
00119 EDG_WLL_ACCEPTED_FROM,
00120 EDG_WLL_ACCEPTED_FROM_HOST,
00121 EDG_WLL_ACCEPTED_FROM_INSTANCE,
00122 EDG_WLL_ACCEPTED_LOCAL_JOBID,
00123 EDG_WLL_REFUSED_FROM,
00124 EDG_WLL_REFUSED_FROM_HOST,
00125 EDG_WLL_REFUSED_FROM_INSTANCE,
00126 EDG_WLL_REFUSED_REASON,
00127 EDG_WLL_ENQUEUED_QUEUE,
00128 EDG_WLL_ENQUEUED_JOB,
00129 EDG_WLL_ENQUEUED_RESULT,
00130 EDG_WLL_ENQUEUED_REASON,
00131 EDG_WLL_DEQUEUED_QUEUE,
00132 EDG_WLL_DEQUEUED_LOCAL_JOBID,
00133 EDG_WLL_HELPERCALL_HELPER_NAME,
00134 EDG_WLL_HELPERCALL_HELPER_PARAMS,
00135 EDG_WLL_HELPERCALL_SRC_ROLE,
00136 EDG_WLL_HELPERRETURN_HELPER_NAME,
00137 EDG_WLL_HELPERRETURN_RETVAL,
00138 EDG_WLL_HELPERRETURN_SRC_ROLE,
00139 EDG_WLL_RUNNING_NODE,
00140 EDG_WLL_RESUBMISSION_RESULT,
00141 EDG_WLL_RESUBMISSION_REASON,
00142 EDG_WLL_RESUBMISSION_TAG,
00143 EDG_WLL_DONE_STATUS_CODE,
00144 EDG_WLL_DONE_REASON,
00145 EDG_WLL_DONE_EXIT_CODE,
00146 EDG_WLL_CANCEL_STATUS_CODE,
00147 EDG_WLL_CANCEL_REASON,
00148 EDG_WLL_ABORT_REASON,
00149 EDG_WLL_CLEAR_REASON,
00150 EDG_WLL_MATCH_DEST_ID,
00151 EDG_WLL_PENDING_REASON,
00152 EDG_WLL_REGJOB_JDL,
00153 EDG_WLL_REGJOB_NS,
00154 EDG_WLL_REGJOB_PARENT,
00155 EDG_WLL_REGJOB_JOBTYPE,
00156 EDG_WLL_REGJOB_NSUBJOBS,
00157 EDG_WLL_REGJOB_SEED,
00158 EDG_WLL_CHKPT_TAG,
00159 EDG_WLL_CHKPT_CLASSAD,
00160 EDG_WLL_LISTENER_SVC_NAME,
00161 EDG_WLL_LISTENER_SVC_HOST,
00162 EDG_WLL_LISTENER_SVC_PORT,
00163 EDG_WLL_CURDESCR_DESCR,
00164 EDG_WLL_USERTAG_NAME,
00165 EDG_WLL_USERTAG_VALUE,
00166 EDG_WLL_CHANGEACL_USER_ID,
00167 EDG_WLL_CHANGEACL_USER_ID_TYPE,
00168 EDG_WLL_CHANGEACL_PERMISSION,
00169 EDG_WLL_CHANGEACL_PERMISSION_TYPE,
00170 EDG_WLL_CHANGEACL_OPERATION,
00171 EDG_WLL_NOTIFICATION_NOTIFID,
00172 EDG_WLL_NOTIFICATION_OWNER,
00173 EDG_WLL_NOTIFICATION_DEST_HOST,
00174 EDG_WLL_NOTIFICATION_DEST_PORT,
00175 EDG_WLL_NOTIFICATION_JOBSTAT,
00176 EDG_WLL_RESOURCEUSAGE_RESOURCE,
00177 EDG_WLL_RESOURCEUSAGE_QUANTITY,
00178 EDG_WLL_RESOURCEUSAGE_UNIT,
00179 EDG_WLL_REALLYRUNNING_WN_SEQ,
00180 EDG_WLL_INTERNAL_TYPE,
00181 } edg_wll_KeyNameCode;
00182
00190 extern edg_wll_KeyNameCode edg_wll_StringToKeyName(const char *name);
00191
00199 extern char *edg_wll_KeyNameToString(edg_wll_KeyNameCode key);
00200
00201
00211 enum edg_wll_Level {
00212 EDG_WLL_LEVEL_UNDEFINED,
00213 EDG_WLL_LEVEL_EMERGENCY,
00214 EDG_WLL_LEVEL_ALERT,
00215 EDG_WLL_LEVEL_ERROR,
00216 EDG_WLL_LEVEL_WARNING,
00217 EDG_WLL_LEVEL_AUTH,
00218 EDG_WLL_LEVEL_SECURITY,
00219 EDG_WLL_LEVEL_USAGE,
00220 EDG_WLL_LEVEL_SYSTEM,
00221 EDG_WLL_LEVEL_IMPORTANT,
00222 EDG_WLL_LEVEL_DEBUG,
00223 };
00224
00231 extern enum edg_wll_Level edg_wll_StringToLevel(const char *name);
00232
00239 extern char *edg_wll_LevelToString(enum edg_wll_Level code);
00240
00241
00246 enum edg_wll_TransferResult {
00247 EDG_WLL_TRANSFER_UNDEFINED,
00248 EDG_WLL_TRANSFER_START,
00249 EDG_WLL_TRANSFER_OK,
00250 EDG_WLL_TRANSFER_REFUSED,
00251 EDG_WLL_TRANSFER_FAIL,
00252 };
00253
00260 extern enum edg_wll_TransferResult edg_wll_StringToTransferResult(const char *name);
00261
00268 extern char *edg_wll_TransferResultToString(enum edg_wll_TransferResult code);
00269
00270
00275 enum edg_wll_EnQueuedResult {
00276 EDG_WLL_ENQUEUED_UNDEFINED,
00277 EDG_WLL_ENQUEUED_START,
00278 EDG_WLL_ENQUEUED_OK,
00279 EDG_WLL_ENQUEUED_REFUSED,
00280 EDG_WLL_ENQUEUED_FAIL,
00281 };
00282
00289 extern enum edg_wll_EnQueuedResult edg_wll_StringToEnQueuedResult(const char *name);
00290
00297 extern char *edg_wll_EnQueuedResultToString(enum edg_wll_EnQueuedResult code);
00298
00299
00304 enum edg_wll_HelperCallSrc_role {
00305 EDG_WLL_HELPERCALL_UNDEFINED,
00306 EDG_WLL_HELPERCALL_CALLING,
00307 EDG_WLL_HELPERCALL_CALLED,
00308 };
00309
00316 extern enum edg_wll_HelperCallSrc_role edg_wll_StringToHelperCallSrc_role(const char *name);
00317
00324 extern char *edg_wll_HelperCallSrc_roleToString(enum edg_wll_HelperCallSrc_role code);
00325
00326
00331 enum edg_wll_HelperReturnSrc_role {
00332 EDG_WLL_HELPERRETURN_UNDEFINED,
00333 EDG_WLL_HELPERRETURN_CALLING,
00334 EDG_WLL_HELPERRETURN_CALLED,
00335 };
00336
00343 extern enum edg_wll_HelperReturnSrc_role edg_wll_StringToHelperReturnSrc_role(const char *name);
00344
00351 extern char *edg_wll_HelperReturnSrc_roleToString(enum edg_wll_HelperReturnSrc_role code);
00352
00353
00358 enum edg_wll_ResubmissionResult {
00359 EDG_WLL_RESUBMISSION_UNDEFINED,
00360 EDG_WLL_RESUBMISSION_WILLRESUB,
00361 EDG_WLL_RESUBMISSION_WONTRESUB,
00362 EDG_WLL_RESUBMISSION_SHALLOW,
00363 };
00364
00371 extern enum edg_wll_ResubmissionResult edg_wll_StringToResubmissionResult(const char *name);
00372
00379 extern char *edg_wll_ResubmissionResultToString(enum edg_wll_ResubmissionResult code);
00380
00381
00386 enum edg_wll_DoneStatus_code {
00387 EDG_WLL_DONE_UNDEFINED,
00388 EDG_WLL_DONE_OK,
00389 EDG_WLL_DONE_FAILED,
00390 EDG_WLL_DONE_CANCELLED,
00391 };
00392
00399 extern enum edg_wll_DoneStatus_code edg_wll_StringToDoneStatus_code(const char *name);
00400
00407 extern char *edg_wll_DoneStatus_codeToString(enum edg_wll_DoneStatus_code code);
00408
00409
00414 enum edg_wll_CancelStatus_code {
00415 EDG_WLL_CANCEL_UNDEFINED,
00416 EDG_WLL_CANCEL_REQ,
00417 EDG_WLL_CANCEL_REFUSE,
00418 EDG_WLL_CANCEL_DONE,
00419 EDG_WLL_CANCEL_ABORT,
00420 };
00421
00428 extern enum edg_wll_CancelStatus_code edg_wll_StringToCancelStatus_code(const char *name);
00429
00436 extern char *edg_wll_CancelStatus_codeToString(enum edg_wll_CancelStatus_code code);
00437
00438
00443 enum edg_wll_ClearReason {
00444 EDG_WLL_CLEAR_UNDEFINED,
00445 EDG_WLL_CLEAR_USER,
00446 EDG_WLL_CLEAR_TIMEOUT,
00447 EDG_WLL_CLEAR_NOOUTPUT,
00448 };
00449
00456 extern enum edg_wll_ClearReason edg_wll_StringToClearReason(const char *name);
00457
00464 extern char *edg_wll_ClearReasonToString(enum edg_wll_ClearReason code);
00465
00466
00471 enum edg_wll_RegJobJobtype {
00472 EDG_WLL_REGJOB_UNDEFINED,
00473 EDG_WLL_REGJOB_SIMPLE,
00474 EDG_WLL_REGJOB_DAG,
00475 EDG_WLL_REGJOB_PARTITIONABLE,
00476 EDG_WLL_REGJOB_PARTITIONED,
00477 };
00478
00485 extern enum edg_wll_RegJobJobtype edg_wll_StringToRegJobJobtype(const char *name);
00486
00493 extern char *edg_wll_RegJobJobtypeToString(enum edg_wll_RegJobJobtype code);
00494
00495
00496
00501 #define _EDG_WLL_EVENT_COMMON \
00502 edg_wll_EventCode type;\
00503 struct timeval timestamp; \
00504 struct timeval arrived; \
00505 char * host; \
00506 int level; \
00507 int priority; \
00508 edg_wlc_JobId jobId; \
00509 char * seqcode; \
00510 char * user; \
00511 edg_wll_Source source; \
00512 char * src_instance; \
00513
00514
00519 typedef struct _edg_wll_AnyEvent {
00520 _EDG_WLL_EVENT_COMMON
00521 } edg_wll_AnyEvent;
00522
00523
00532 typedef struct _edg_wll_TransferEvent {
00533 _EDG_WLL_EVENT_COMMON
00534 edg_wll_Source destination;
00535 char * dest_host;
00536 char * dest_instance;
00537 char * job;
00538 enum edg_wll_TransferResult result;
00539 char * reason;
00540 char * dest_jobid;
00541 } edg_wll_TransferEvent;
00542
00547 typedef struct _edg_wll_AcceptedEvent {
00548 _EDG_WLL_EVENT_COMMON
00549 edg_wll_Source from;
00550 char * from_host;
00551 char * from_instance;
00552 char * local_jobid;
00553 } edg_wll_AcceptedEvent;
00554
00559 typedef struct _edg_wll_RefusedEvent {
00560 _EDG_WLL_EVENT_COMMON
00561 edg_wll_Source from;
00562 char * from_host;
00563 char * from_instance;
00564 char * reason;
00565 } edg_wll_RefusedEvent;
00566
00571 typedef struct _edg_wll_EnQueuedEvent {
00572 _EDG_WLL_EVENT_COMMON
00573 char * queue;
00574 char * job;
00575 enum edg_wll_EnQueuedResult result;
00576 char * reason;
00577 } edg_wll_EnQueuedEvent;
00578
00583 typedef struct _edg_wll_DeQueuedEvent {
00584 _EDG_WLL_EVENT_COMMON
00585 char * queue;
00586 char * local_jobid;
00587 } edg_wll_DeQueuedEvent;
00588
00593 typedef struct _edg_wll_HelperCallEvent {
00594 _EDG_WLL_EVENT_COMMON
00595 char * helper_name;
00596 char * helper_params;
00597 enum edg_wll_HelperCallSrc_role src_role;
00598 } edg_wll_HelperCallEvent;
00599
00604 typedef struct _edg_wll_HelperReturnEvent {
00605 _EDG_WLL_EVENT_COMMON
00606 char * helper_name;
00607 char * retval;
00608 enum edg_wll_HelperReturnSrc_role src_role;
00609 } edg_wll_HelperReturnEvent;
00610
00615 typedef struct _edg_wll_RunningEvent {
00616 _EDG_WLL_EVENT_COMMON
00617 char * node;
00618 } edg_wll_RunningEvent;
00619
00624 typedef struct _edg_wll_ResubmissionEvent {
00625 _EDG_WLL_EVENT_COMMON
00626 enum edg_wll_ResubmissionResult result;
00627 char * reason;
00628 char * tag;
00629 } edg_wll_ResubmissionEvent;
00630
00635 typedef struct _edg_wll_DoneEvent {
00636 _EDG_WLL_EVENT_COMMON
00637 enum edg_wll_DoneStatus_code status_code;
00638 char * reason;
00639 int exit_code;
00640 } edg_wll_DoneEvent;
00641
00646 typedef struct _edg_wll_CancelEvent {
00647 _EDG_WLL_EVENT_COMMON
00648 enum edg_wll_CancelStatus_code status_code;
00649 char * reason;
00650 } edg_wll_CancelEvent;
00651
00656 typedef struct _edg_wll_AbortEvent {
00657 _EDG_WLL_EVENT_COMMON
00658 char * reason;
00659 } edg_wll_AbortEvent;
00660
00665 typedef struct _edg_wll_ClearEvent {
00666 _EDG_WLL_EVENT_COMMON
00667 enum edg_wll_ClearReason reason;
00668 } edg_wll_ClearEvent;
00669
00674 typedef struct _edg_wll_PurgeEvent {
00675 _EDG_WLL_EVENT_COMMON
00676 } edg_wll_PurgeEvent;
00677
00682 typedef struct _edg_wll_MatchEvent {
00683 _EDG_WLL_EVENT_COMMON
00684 char * dest_id;
00685 } edg_wll_MatchEvent;
00686
00691 typedef struct _edg_wll_PendingEvent {
00692 _EDG_WLL_EVENT_COMMON
00693 char * reason;
00694 } edg_wll_PendingEvent;
00695
00700 typedef struct _edg_wll_RegJobEvent {
00701 _EDG_WLL_EVENT_COMMON
00702 char * jdl;
00703 char * ns;
00704 edg_wlc_JobId parent;
00705 enum edg_wll_RegJobJobtype jobtype;
00706 int nsubjobs;
00707 char * seed;
00708 } edg_wll_RegJobEvent;
00709
00714 typedef struct _edg_wll_ChkptEvent {
00715 _EDG_WLL_EVENT_COMMON
00716 char * tag;
00717 char * classad;
00718 } edg_wll_ChkptEvent;
00719
00724 typedef struct _edg_wll_ListenerEvent {
00725 _EDG_WLL_EVENT_COMMON
00726 char * svc_name;
00727 char * svc_host;
00728 uint16_t svc_port;
00729 } edg_wll_ListenerEvent;
00730
00735 typedef struct _edg_wll_CurDescrEvent {
00736 _EDG_WLL_EVENT_COMMON
00737 char * descr;
00738 } edg_wll_CurDescrEvent;
00739
00744 typedef struct _edg_wll_UserTagEvent {
00745 _EDG_WLL_EVENT_COMMON
00746 char * name;
00747 char * value;
00748 } edg_wll_UserTagEvent;
00749
00754 typedef struct _edg_wll_ChangeACLEvent {
00755 _EDG_WLL_EVENT_COMMON
00756 char * user_id;
00757 int user_id_type;
00758 int permission;
00759 int permission_type;
00760 int operation;
00761 } edg_wll_ChangeACLEvent;
00762
00767 typedef struct _edg_wll_NotificationEvent {
00768 _EDG_WLL_EVENT_COMMON
00769 edg_wll_NotifId notifId;
00770 char * owner;
00771 char * dest_host;
00772 uint16_t dest_port;
00773 char * jobstat;
00774 } edg_wll_NotificationEvent;
00775
00780 typedef struct _edg_wll_ResourceUsageEvent {
00781 _EDG_WLL_EVENT_COMMON
00782 char * resource;
00783 int quantity;
00784 char * unit;
00785 } edg_wll_ResourceUsageEvent;
00786
00791 typedef struct _edg_wll_ReallyRunningEvent {
00792 _EDG_WLL_EVENT_COMMON
00793 char * wn_seq;
00794 } edg_wll_ReallyRunningEvent;
00795
00796 #undef _EDG_WLL_EVENT_COMMON
00797
00798
00803 typedef union _edg_wll_Event {
00804 edg_wll_EventCode type;
00805 edg_wll_AnyEvent any;
00806 edg_wll_TransferEvent transfer;
00807 edg_wll_AcceptedEvent accepted;
00808 edg_wll_RefusedEvent refused;
00809 edg_wll_EnQueuedEvent enQueued;
00810 edg_wll_DeQueuedEvent deQueued;
00811 edg_wll_HelperCallEvent helperCall;
00812 edg_wll_HelperReturnEvent helperReturn;
00813 edg_wll_RunningEvent running;
00814 edg_wll_ResubmissionEvent resubmission;
00815 edg_wll_DoneEvent done;
00816 edg_wll_CancelEvent cancel;
00817 edg_wll_AbortEvent abort;
00818 edg_wll_ClearEvent clear;
00819 edg_wll_PurgeEvent purge;
00820 edg_wll_MatchEvent match;
00821 edg_wll_PendingEvent pending;
00822 edg_wll_RegJobEvent regJob;
00823 edg_wll_ChkptEvent chkpt;
00824 edg_wll_ListenerEvent listener;
00825 edg_wll_CurDescrEvent curDescr;
00826 edg_wll_UserTagEvent userTag;
00827 edg_wll_ChangeACLEvent changeACL;
00828 edg_wll_NotificationEvent notification;
00829 edg_wll_ResourceUsageEvent resourceUsage;
00830 edg_wll_ReallyRunningEvent reallyRunning;
00831 } edg_wll_Event;
00832
00833
00838 extern edg_wll_Event *edg_wll_InitEvent(edg_wll_EventCode eventcode);
00839
00840
00849 void edg_wll_FreeEvent(
00850 edg_wll_Event * event
00851 );
00852
00853
00854
00855
00856
00857 #ifdef __cplusplus
00858 }
00859 #endif
00860
00861 #endif