]> mj.ucw.cz Git - eval.git/blobdiff - submit/commands.c
Added command-line clients for remote submit and status.
[eval.git] / submit / commands.c
index 93f5b83509f6edf08c86046612afd1d8c4e61ed4..432e2deb2dd0dd3fbbfacb77c0570d76d9b47f62 100644 (file)
@@ -93,8 +93,9 @@ static void
 copy_attrs(struct odes *dest, struct odes *src)
 {
   for (struct oattr *a = src->attrs ; a; a=a->next)
-    for (struct oattr *aa = a; aa; aa=aa->same)
-      obj_add_attr(dest, aa->attr, aa->val);
+    if (a->attr < OBJ_ATTR_SON)
+      for (struct oattr *aa = a; aa; aa=aa->same)
+       obj_add_attr(dest, aa->attr, aa->val);
 }
 
 static void
@@ -108,6 +109,8 @@ cmd_status(struct conn *c)
       struct odes *to = task_status_find_task(c, t, 1);
       struct odes *tr = obj_add_son(c->reply, 'T' + OBJ_ATTR_SON);
       copy_attrs(tr, to);
+      CLIST_FOR_EACH(simp_node *, x, *t->extensions)
+       obj_add_attr(tr, 'A', x->s);
       CLIST_FOR_EACH(simp_node *, p, t->parts)
        {
          struct odes *po = task_status_find_part(to, p->s, 1);
@@ -224,6 +227,7 @@ cmd_submit(struct conn *c)
   struct odes *vero = obj_add_son(parto, 'V' + OBJ_ATTR_SON);
   obj_set_attr_num(vero, 'V', ++last_ver);
   obj_set_attr_num(vero, 'T', time(NULL));
+  obj_set_attr_num(vero, 'L', obj_find_anum(c->request, 'S', 0));
   obj_set_attr(vero, 'S', "submitted");
   obj_set_attr(vero, 'X', ext);
   // FIXME: hash