record fed jobs for continuous feeds only
authorAleš Křenek <ljocha@ics.muni.cz>
Thu, 16 Mar 2006 18:47:37 +0000 (18:47 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Thu, 16 Mar 2006 18:47:37 +0000 (18:47 +0000)
org.glite.jp.primary/src/feed.c
org.glite.jp.primary/src/feed.h
org.glite.jp.primary/src/soap_ops.c

index 948f9cf..9962d66 100644 (file)
@@ -460,7 +460,7 @@ static int drain_feed(glite_jp_context_t ctx, struct jpfeed *f,int done)
                int     i;
                ret = glite_jpps_multi_feed(ctx,f->id,done,f->njobs,f->destination,f->jobs,f->owners,f->job_attrs);
 
-               if (!ret) for (i=0; i<f->njobs; i++) glite_jppsbe_set_fed(ctx,f->id,f->jobs[i]);
+               if (!ret && f->continuous) for (i=0; i<f->njobs; i++) glite_jppsbe_set_fed(ctx,f->id,f->jobs[i]);
                drop_jobs(f);
        }
        return ret;
@@ -662,6 +662,7 @@ int glite_jpps_run_feed(
        const char *destination,
        char const * const *attrs,
        const glite_jp_query_rec_t *qry,
+       int continuous,
        char **feed_id)
 {
        struct jpfeed   *f;
@@ -670,6 +671,7 @@ int glite_jpps_run_feed(
        if (!*feed_id) *feed_id = generate_feedid();
 
                f = make_jpfeed(destination,attrs,qry,*feed_id,(time_t) 0);
+       f->continuous = continuous;
        glite_jp_add_deferred(ctx,run_feed_deferred,f);
 
        return 0;
index 1cfa907..05d64f5 100644 (file)
@@ -6,6 +6,7 @@ struct jpfeed {
 /* feed data */
        char    *id,*destination;
        time_t  expires;
+       int     continuous;
 
 /* complete and split query and attribute list */
        char    **attrs,**meta_attr,**other_attr;
@@ -29,7 +30,7 @@ struct jpfeed {
 int glite_jpps_match_attr(glite_jp_context_t,const char *,const glite_jp_attrval_t[]);
 int glite_jpps_match_file(glite_jp_context_t,const char *,const char *,const char *);
 int glite_jpps_match_tag(glite_jp_context_t,const char *,const char *,const char *);
-int glite_jpps_run_feed(glite_jp_context_t,const char *,char const * const *,const glite_jp_query_rec_t *,char **);
+int glite_jpps_run_feed(glite_jp_context_t,const char *,char const * const *,const glite_jp_query_rec_t *,int,char **);
 int glite_jpps_register_feed(glite_jp_context_t,const char *,char const * const *,const glite_jp_query_rec_t *,char **,time_t *);
 
 #endif
index 3943879..61ba754 100644 (file)
@@ -346,7 +346,7 @@ SOAP_FMAC5 int SOAP_FMAC6 __jpsrv__FeedIndex(
        for (i = 0; i<in->__sizeconditions; i++) s2jp_query(in->conditions[i],qry+i);
 
        if (in->history) {
-               if (glite_jpps_run_feed(ctx,in->destination,attrs,qry,&feed_id)) {
+               if (glite_jpps_run_feed(ctx,in->destination,attrs,qry,in->continuous,&feed_id)) {
                        err2fault(ctx,soap);
                        ret = SOAP_FAULT;
                        goto cleanup;