- LB Proxy purge basics
authorJiří Škrábal <nykolas@ics.muni.cz>
Fri, 11 Mar 2005 07:53:48 +0000 (07:53 +0000)
committerJiří Škrábal <nykolas@ics.muni.cz>
Fri, 11 Mar 2005 07:53:48 +0000 (07:53 +0000)
org.glite.lb.server/src/db_store.c
org.glite.lb.server/src/purge.h
org.glite.lb.server/src/srv_purge.c

index 6887473..12e8eb0 100644 (file)
@@ -73,6 +73,19 @@ db_store(edg_wll_Context ctx,char *ucs, char *event)
         */
        if (   ev->any.type != EDG_WLL_EVENT_REGJOB
                && edg_wll_EventSendProxy(ctx, ev->any.jobId, event) ) goto err;
+
+       /* LB proxy purge
+        * XXX: Set propper set of states!
+        * TODO: Do the set of states configurable? 
+        */
+       switch ( ev->any.type ) {
+       case EDG_WLL_EVENT_CLEAR:
+       case EDG_WLL_EVENT_ABORT:
+       case EDG_WLL_EVENT_CANCEL:
+       case EDG_WLL_EVENT_DONE:
+               edg_wll_PurgeServerProxy(ctx, ev->any.jobId);
+               break;
+       }
   } else if ( newstat.state ) {
          edg_wll_NotifMatch(ctx, &newstat);
          edg_wll_FreeStatus(&newstat);
index 8841e12..91adb03 100644 (file)
@@ -10,6 +10,14 @@ int edg_wll_PurgeServer(
        const edg_wll_PurgeRequest *request
 );
 
+/** LB Proxy purge implementation
+ *     it gives no output - purge only one job from LB Proxy DB
+ */
+int edg_wll_PurgeServerProxy(
+       edg_wll_Context ctx,
+       edg_wlc_JobId job
+);
+
 #define                FILE_TYPE_ANY           ""
 #define                FILE_TYPE_PURGE         "purge"
 #define                FILE_TYPE_DUMP          "dump"
index 58a843d..39179cd 100644 (file)
@@ -182,6 +182,19 @@ int edg_wll_CreateFileStorage(edg_wll_Context ctx, char *file_type, char *prefix
        return retfd;
 }
 
+int edg_wll_PurgeServerProxy(edg_wll_Context ctx, edg_wlc_JobId job)
+{
+       switch ( purge_one(ctx, job, -1, 1) ) {
+       case 0:
+       case ENOENT:
+               edg_wll_ResetError(ctx);
+               return 0;
+
+       default:
+               return -1;
+       }
+}
+
 int edg_wll_PurgeServer(edg_wll_Context ctx,const edg_wll_PurgeRequest *request)
 {
        int     i,parse = 0,dumpfile = -1;