00001 #ifndef __EDG_WORKLOAD_LOGGING_CLIENT_EVENTS_H__
00002 #define __EDG_WORKLOAD_LOGGING_CLIENT_EVENTS_H__
00003
00009 #ident "$Header: /local/reps/lcgware/workload/logging/client/events.h.T,v 1.25 2003/01/17 07:27:56 honik Exp $"
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <sys/time.h>
00019 #include <inttypes.h>
00020
00021 #include "edg/workload/common/jobid/jobid.h"
00022 #include "edg/workload/logging/client/context.h"
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028
00032 typedef char *edg_wll_LogLine;
00033
00034
00039 typedef enum _edg_wll_EventCode {
00041 EDG_WLL_EVENT_UNDEF = 0,
00042 EDG_WLL_EVENT_TRANSFER,
00043 EDG_WLL_EVENT_ACCEPTED,
00044 EDG_WLL_EVENT_REFUSED,
00045 EDG_WLL_EVENT_ENQUEUED,
00046 EDG_WLL_EVENT_DEQUEUED,
00047 EDG_WLL_EVENT_HELPERCALL,
00048 EDG_WLL_EVENT_HELPERRETURN,
00049 EDG_WLL_EVENT_RUNNING,
00050 EDG_WLL_EVENT_RESUBMISSION,
00051 EDG_WLL_EVENT_DONE,
00052 EDG_WLL_EVENT_CANCEL,
00053 EDG_WLL_EVENT_ABORT,
00054 EDG_WLL_EVENT_CLEAR,
00055 EDG_WLL_EVENT_PURGE,
00056 EDG_WLL_EVENT_MATCH,
00057 EDG_WLL_EVENT_PENDING,
00058 EDG_WLL_EVENT_REGJOB,
00059 EDG_WLL_EVENT_CHKPT,
00060 EDG_WLL_EVENT_LISTENER,
00061 EDG_WLL_EVENT_CURDESCR,
00062 EDG_WLL_EVENT_USERTAG,
00063 EDG_WLL_EVENT_CHANGEACL,
00064 EDG_WLL_EVENT__LAST,
00065 } edg_wll_EventCode;
00066
00074 extern edg_wll_EventCode edg_wll_StringToEvent(char *);
00075
00083 extern char *edg_wll_EventToString(edg_wll_EventCode);
00084
00085
00090 typedef enum _edg_wll_KeyNameCode {
00091 UNDEFINED,
00092 EDG_WLL_EVNT,
00093 ULM_DATE,
00094 ULM_HOST,
00095 ULM_LVL,
00096 EDG_WLL_COMMON_PRIORITY,
00097 EDG_WLL_COMMON_JOBID,
00098 EDG_WLL_COMMON_SEQCODE,
00099 EDG_WLL_COMMON_USER,
00100 EDG_WLL_COMMON_SOURCE,
00101 EDG_WLL_COMMON_SRC_INSTANCE,
00102 EDG_WLL_TRANSFER_DESTINATION,
00103 EDG_WLL_TRANSFER_DEST_HOST,
00104 EDG_WLL_TRANSFER_DEST_INSTANCE,
00105 EDG_WLL_TRANSFER_JOB,
00106 EDG_WLL_TRANSFER_RESULT,
00107 EDG_WLL_TRANSFER_REASON,
00108 EDG_WLL_TRANSFER_DEST_JOBID,
00109 EDG_WLL_ACCEPTED_FROM,
00110 EDG_WLL_ACCEPTED_FROM_HOST,
00111 EDG_WLL_ACCEPTED_FROM_INSTANCE,
00112 EDG_WLL_ACCEPTED_LOCAL_JOBID,
00113 EDG_WLL_REFUSED_FROM,
00114 EDG_WLL_REFUSED_FROM_HOST,
00115 EDG_WLL_REFUSED_FROM_INSTANCE,
00116 EDG_WLL_REFUSED_REASON,
00117 EDG_WLL_ENQUEUED_QUEUE,
00118 EDG_WLL_ENQUEUED_JOB,
00119 EDG_WLL_ENQUEUED_RESULT,
00120 EDG_WLL_ENQUEUED_REASON,
00121 EDG_WLL_DEQUEUED_QUEUE,
00122 EDG_WLL_DEQUEUED_LOCAL_JOBID,
00123 EDG_WLL_HELPERCALL_HELPER_NAME,
00124 EDG_WLL_HELPERCALL_HELPER_PARAMS,
00125 EDG_WLL_HELPERCALL_SRC_ROLE,
00126 EDG_WLL_HELPERRETURN_HELPER_NAME,
00127 EDG_WLL_HELPERRETURN_RETVAL,
00128 EDG_WLL_HELPERRETURN_SRC_ROLE,
00129 EDG_WLL_RUNNING_NODE,
00130 EDG_WLL_RESUBMISSION_RESULT,
00131 EDG_WLL_RESUBMISSION_REASON,
00132 EDG_WLL_RESUBMISSION_TAG,
00133 EDG_WLL_DONE_STATUS_CODE,
00134 EDG_WLL_DONE_REASON,
00135 EDG_WLL_DONE_EXIT_CODE,
00136 EDG_WLL_CANCEL_STATUS_CODE,
00137 EDG_WLL_CANCEL_REASON,
00138 EDG_WLL_ABORT_REASON,
00139 EDG_WLL_CLEAR_REASON,
00140 EDG_WLL_MATCH_DEST_ID,
00141 EDG_WLL_PENDING_REASON,
00142 EDG_WLL_REGJOB_JDL,
00143 EDG_WLL_REGJOB_NS,
00144 EDG_WLL_REGJOB_PARENT,
00145 EDG_WLL_REGJOB_JOBTYPE,
00146 EDG_WLL_REGJOB_NSUBJOBS,
00147 EDG_WLL_REGJOB_SEED,
00148 EDG_WLL_CHKPT_TAG,
00149 EDG_WLL_CHKPT_CLASSAD,
00150 EDG_WLL_LISTENER_SVC_NAME,
00151 EDG_WLL_LISTENER_SVC_HOST,
00152 EDG_WLL_LISTENER_SVC_PORT,
00153 EDG_WLL_CURDESCR_DESCR,
00154 EDG_WLL_USERTAG_NAME,
00155 EDG_WLL_USERTAG_VALUE,
00156 EDG_WLL_CHANGEACL_USER_ID,
00157 EDG_WLL_CHANGEACL_USER_ID_TYPE,
00158 EDG_WLL_CHANGEACL_PERMISSION,
00159 EDG_WLL_CHANGEACL_PERMISSION_TYPE,
00160 EDG_WLL_CHANGEACL_OPERATION,
00161 } edg_wll_KeyNameCode;
00162
00170 extern edg_wll_KeyNameCode edg_wll_StringToKeyName(char *);
00171
00179 extern char *edg_wll_KeyNameToString(edg_wll_KeyNameCode);
00180
00181
00191 enum edg_wll_Level {
00192 EDG_WLL_LEVEL_UNDEFINED,
00193 EDG_WLL_LEVEL_EMERGENCY,
00194 EDG_WLL_LEVEL_ALERT,
00195 EDG_WLL_LEVEL_ERROR,
00196 EDG_WLL_LEVEL_WARNING,
00197 EDG_WLL_LEVEL_AUTH,
00198 EDG_WLL_LEVEL_SECURITY,
00199 EDG_WLL_LEVEL_USAGE,
00200 EDG_WLL_LEVEL_SYSTEM,
00201 EDG_WLL_LEVEL_IMPORTANT,
00202 EDG_WLL_LEVEL_DEBUG,
00203 };
00204
00211 extern enum edg_wll_Level edg_wll_StringToLevel(char *name);
00212
00219 extern char *edg_wll_LevelToString(enum edg_wll_Level code);
00220
00221
00226 enum edg_wll_TransferResult {
00227 EDG_WLL_TRANSFER_UNDEFINED,
00228 EDG_WLL_TRANSFER_START,
00229 EDG_WLL_TRANSFER_OK,
00230 EDG_WLL_TRANSFER_REFUSED,
00231 EDG_WLL_TRANSFER_FAIL,
00232 };
00233
00240 extern enum edg_wll_TransferResult edg_wll_StringToTransferResult(char *name);
00241
00248 extern char *edg_wll_TransferResultToString(enum edg_wll_TransferResult code);
00249
00250
00255 enum edg_wll_EnQueuedResult {
00256 EDG_WLL_ENQUEUED_UNDEFINED,
00257 EDG_WLL_ENQUEUED_START,
00258 EDG_WLL_ENQUEUED_OK,
00259 EDG_WLL_ENQUEUED_REFUSED,
00260 EDG_WLL_ENQUEUED_FAIL,
00261 };
00262
00269 extern enum edg_wll_EnQueuedResult edg_wll_StringToEnQueuedResult(char *name);
00270
00277 extern char *edg_wll_EnQueuedResultToString(enum edg_wll_EnQueuedResult code);
00278
00279
00284 enum edg_wll_HelperCallSrc_role {
00285 EDG_WLL_HELPERCALL_UNDEFINED,
00286 EDG_WLL_HELPERCALL_CALLING,
00287 EDG_WLL_HELPERCALL_CALLED,
00288 };
00289
00296 extern enum edg_wll_HelperCallSrc_role edg_wll_StringToHelperCallSrc_role(char *name);
00297
00304 extern char *edg_wll_HelperCallSrc_roleToString(enum edg_wll_HelperCallSrc_role code);
00305
00306
00311 enum edg_wll_HelperReturnSrc_role {
00312 EDG_WLL_HELPERRETURN_UNDEFINED,
00313 EDG_WLL_HELPERRETURN_CALLING,
00314 EDG_WLL_HELPERRETURN_CALLED,
00315 };
00316
00323 extern enum edg_wll_HelperReturnSrc_role edg_wll_StringToHelperReturnSrc_role(char *name);
00324
00331 extern char *edg_wll_HelperReturnSrc_roleToString(enum edg_wll_HelperReturnSrc_role code);
00332
00333
00338 enum edg_wll_ResubmissionResult {
00339 EDG_WLL_RESUBMISSION_UNDEFINED,
00340 EDG_WLL_RESUBMISSION_WILLRESUB,
00341 EDG_WLL_RESUBMISSION_WONTRESUB,
00342 };
00343
00350 extern enum edg_wll_ResubmissionResult edg_wll_StringToResubmissionResult(char *name);
00351
00358 extern char *edg_wll_ResubmissionResultToString(enum edg_wll_ResubmissionResult code);
00359
00360
00365 enum edg_wll_DoneStatus_code {
00366 EDG_WLL_DONE_UNDEFINED,
00367 EDG_WLL_DONE_OK,
00368 EDG_WLL_DONE_FAILED,
00369 EDG_WLL_DONE_CANCELLED,
00370 };
00371
00378 extern enum edg_wll_DoneStatus_code edg_wll_StringToDoneStatus_code(char *name);
00379
00386 extern char *edg_wll_DoneStatus_codeToString(enum edg_wll_DoneStatus_code code);
00387
00388
00393 enum edg_wll_CancelStatus_code {
00394 EDG_WLL_CANCEL_UNDEFINED,
00395 EDG_WLL_CANCEL_REQ,
00396 EDG_WLL_CANCEL_REFUSE,
00397 EDG_WLL_CANCEL_DONE,
00398 EDG_WLL_CANCEL_ABORT,
00399 };
00400
00407 extern enum edg_wll_CancelStatus_code edg_wll_StringToCancelStatus_code(char *name);
00408
00415 extern char *edg_wll_CancelStatus_codeToString(enum edg_wll_CancelStatus_code code);
00416
00417
00422 enum edg_wll_ClearReason {
00423 EDG_WLL_CLEAR_UNDEFINED,
00424 EDG_WLL_CLEAR_USER,
00425 EDG_WLL_CLEAR_TIMEOUT,
00426 EDG_WLL_CLEAR_NOOUTPUT,
00427 };
00428
00435 extern enum edg_wll_ClearReason edg_wll_StringToClearReason(char *name);
00436
00443 extern char *edg_wll_ClearReasonToString(enum edg_wll_ClearReason code);
00444
00445
00450 enum edg_wll_RegJobJobtype {
00451 EDG_WLL_REGJOB_UNDEFINED,
00452 EDG_WLL_REGJOB_SIMPLE,
00453 EDG_WLL_REGJOB_DAG,
00454 EDG_WLL_REGJOB_PARTITIONABLE,
00455 EDG_WLL_REGJOB_PARTITIONED,
00456 };
00457
00464 extern enum edg_wll_RegJobJobtype edg_wll_StringToRegJobJobtype(char *name);
00465
00472 extern char *edg_wll_RegJobJobtypeToString(enum edg_wll_RegJobJobtype code);
00473
00474
00475
00480 #define _EDG_WLL_EVENT_COMMON \
00481 edg_wll_EventCode type;\
00482 struct timeval timestamp; \
00483 char * host; \
00484 int level; \
00485 int priority; \
00486 edg_wlc_JobId jobId; \
00487 char * seqcode; \
00488 char * user; \
00489 edg_wll_Source source; \
00490 char * src_instance; \
00491
00492
00493 typedef struct _edg_wll_AnyEvent {
00494 _EDG_WLL_EVENT_COMMON
00495 } edg_wll_AnyEvent;
00496
00497
00506 typedef struct _edg_wll_TransferEvent {
00507 _EDG_WLL_EVENT_COMMON
00508 edg_wll_Source destination;
00509 char * dest_host;
00510 char * dest_instance;
00511 char * job;
00512 enum edg_wll_TransferResult result;
00513 char * reason;
00514 char * dest_jobid;
00515 } edg_wll_TransferEvent;
00516
00521 typedef struct _edg_wll_AcceptedEvent {
00522 _EDG_WLL_EVENT_COMMON
00523 edg_wll_Source from;
00524 char * from_host;
00525 char * from_instance;
00526 char * local_jobid;
00527 } edg_wll_AcceptedEvent;
00528
00533 typedef struct _edg_wll_RefusedEvent {
00534 _EDG_WLL_EVENT_COMMON
00535 edg_wll_Source from;
00536 char * from_host;
00537 char * from_instance;
00538 char * reason;
00539 } edg_wll_RefusedEvent;
00540
00545 typedef struct _edg_wll_EnQueuedEvent {
00546 _EDG_WLL_EVENT_COMMON
00547 char * queue;
00548 char * job;
00549 enum edg_wll_EnQueuedResult result;
00550 char * reason;
00551 } edg_wll_EnQueuedEvent;
00552
00557 typedef struct _edg_wll_DeQueuedEvent {
00558 _EDG_WLL_EVENT_COMMON
00559 char * queue;
00560 char * local_jobid;
00561 } edg_wll_DeQueuedEvent;
00562
00567 typedef struct _edg_wll_HelperCallEvent {
00568 _EDG_WLL_EVENT_COMMON
00569 char * helper_name;
00570 char * helper_params;
00571 enum edg_wll_HelperCallSrc_role src_role;
00572 } edg_wll_HelperCallEvent;
00573
00578 typedef struct _edg_wll_HelperReturnEvent {
00579 _EDG_WLL_EVENT_COMMON
00580 char * helper_name;
00581 char * retval;
00582 enum edg_wll_HelperReturnSrc_role src_role;
00583 } edg_wll_HelperReturnEvent;
00584
00589 typedef struct _edg_wll_RunningEvent {
00590 _EDG_WLL_EVENT_COMMON
00591 char * node;
00592 } edg_wll_RunningEvent;
00593
00598 typedef struct _edg_wll_ResubmissionEvent {
00599 _EDG_WLL_EVENT_COMMON
00600 enum edg_wll_ResubmissionResult result;
00601 char * reason;
00602 char * tag;
00603 } edg_wll_ResubmissionEvent;
00604
00609 typedef struct _edg_wll_DoneEvent {
00610 _EDG_WLL_EVENT_COMMON
00611 enum edg_wll_DoneStatus_code status_code;
00612 char * reason;
00613 int exit_code;
00614 } edg_wll_DoneEvent;
00615
00620 typedef struct _edg_wll_CancelEvent {
00621 _EDG_WLL_EVENT_COMMON
00622 enum edg_wll_CancelStatus_code status_code;
00623 char * reason;
00624 } edg_wll_CancelEvent;
00625
00630 typedef struct _edg_wll_AbortEvent {
00631 _EDG_WLL_EVENT_COMMON
00632 char * reason;
00633 } edg_wll_AbortEvent;
00634
00639 typedef struct _edg_wll_ClearEvent {
00640 _EDG_WLL_EVENT_COMMON
00641 enum edg_wll_ClearReason reason;
00642 } edg_wll_ClearEvent;
00643
00648 typedef struct _edg_wll_PurgeEvent {
00649 _EDG_WLL_EVENT_COMMON
00650 } edg_wll_PurgeEvent;
00651
00656 typedef struct _edg_wll_MatchEvent {
00657 _EDG_WLL_EVENT_COMMON
00658 char * dest_id;
00659 } edg_wll_MatchEvent;
00660
00665 typedef struct _edg_wll_PendingEvent {
00666 _EDG_WLL_EVENT_COMMON
00667 char * reason;
00668 } edg_wll_PendingEvent;
00669
00674 typedef struct _edg_wll_RegJobEvent {
00675 _EDG_WLL_EVENT_COMMON
00676 char * jdl;
00677 char * ns;
00678 edg_wlc_JobId parent;
00679 enum edg_wll_RegJobJobtype jobtype;
00680 int nsubjobs;
00681 char * seed;
00682 } edg_wll_RegJobEvent;
00683
00688 typedef struct _edg_wll_ChkptEvent {
00689 _EDG_WLL_EVENT_COMMON
00690 char * tag;
00691 char * classad;
00692 } edg_wll_ChkptEvent;
00693
00698 typedef struct _edg_wll_ListenerEvent {
00699 _EDG_WLL_EVENT_COMMON
00700 char * svc_name;
00701 char * svc_host;
00702 uint16_t svc_port;
00703 } edg_wll_ListenerEvent;
00704
00709 typedef struct _edg_wll_CurDescrEvent {
00710 _EDG_WLL_EVENT_COMMON
00711 char * descr;
00712 } edg_wll_CurDescrEvent;
00713
00718 typedef struct _edg_wll_UserTagEvent {
00719 _EDG_WLL_EVENT_COMMON
00720 char * name;
00721 char * value;
00722 } edg_wll_UserTagEvent;
00723
00728 typedef struct _edg_wll_ChangeACLEvent {
00729 _EDG_WLL_EVENT_COMMON
00730 char * user_id;
00731 int user_id_type;
00732 int permission;
00733 int permission_type;
00734 int operation;
00735 } edg_wll_ChangeACLEvent;
00736
00737 #undef _EDG_WLL_EVENT_COMMON
00738
00739
00744 typedef union _edg_wll_Event {
00745 edg_wll_EventCode type;
00746 edg_wll_AnyEvent any;
00747 edg_wll_TransferEvent transfer;
00748 edg_wll_AcceptedEvent accepted;
00749 edg_wll_RefusedEvent refused;
00750 edg_wll_EnQueuedEvent enQueued;
00751 edg_wll_DeQueuedEvent deQueued;
00752 edg_wll_HelperCallEvent helperCall;
00753 edg_wll_HelperReturnEvent helperReturn;
00754 edg_wll_RunningEvent running;
00755 edg_wll_ResubmissionEvent resubmission;
00756 edg_wll_DoneEvent done;
00757 edg_wll_CancelEvent cancel;
00758 edg_wll_AbortEvent abort;
00759 edg_wll_ClearEvent clear;
00760 edg_wll_PurgeEvent purge;
00761 edg_wll_MatchEvent match;
00762 edg_wll_PendingEvent pending;
00763 edg_wll_RegJobEvent regJob;
00764 edg_wll_ChkptEvent chkpt;
00765 edg_wll_ListenerEvent listener;
00766 edg_wll_CurDescrEvent curDescr;
00767 edg_wll_UserTagEvent userTag;
00768 edg_wll_ChangeACLEvent changeACL;
00769 } edg_wll_Event;
00770
00771
00776 extern edg_wll_Event *edg_wll_InitEvent(edg_wll_EventCode eventcode);
00777
00778
00787 void edg_wll_FreeEvent(
00788 edg_wll_Event * event
00789 );
00790
00791
00792 #ifdef __cplusplus
00793 }
00794 #endif
00795
00796 #endif