Example #1
0
/*-------------------------------------------------------------------------*/
static Boolean qmonCalendarGetAsk(
lListElem *calp 
) {
   String cal_name = NULL;
   String year_calendar = NULL;
   String week_calendar = NULL;

   DENTER(GUI_LAYER, "qmonCalendarGetAsk");

   if (!calp) {
      DEXIT;
      return False;
   }

   cal_name = XmtInputFieldGetString(cal_name_w);
   if (!cal_name || cal_name[0] == '\0') {
      qmonMessageShow(cal_ask_layout, True, "Calendar name required !");
      DEXIT;
      return False;
   }
   lSetString(calp, CAL_name, cal_name);
  
   year_calendar = XmtInputFieldGetString(cal_year_w);
   if (year_calendar && year_calendar[0] != '\0') {
      year_calendar = qmon_trim(year_calendar);
      lSetString(calp, CAL_year_calendar, year_calendar);
   } else {
      lSetString(calp, CAL_year_calendar, "NONE");
   }   

   week_calendar = XmtInputFieldGetString(cal_week_w);
   if (week_calendar && week_calendar[0] != '\0') {
      week_calendar = qmon_trim(week_calendar);
      lSetString(calp, CAL_week_calendar, week_calendar);
   } else {  
      lSetString(calp, CAL_week_calendar, "NONE");
   }

   DEXIT;
   return True;
}
Example #2
0
/*-------------------------------------------------------------------------*/
static Boolean setCE_TypeValues(
lListElem *ep,
String *ce_entry 
) {
   int i, type, relop; 
   u_long32 requestable = REQU_NO;

   DENTER(GUI_LAYER, "setCE_TypeValues");
   
   if (!ep) {
      DEXIT;
      return False;
   }
      
   /* name type relation value */ 
   lSetString(ep, CE_name, ce_entry[CE_NAME] ? qmon_trim(ce_entry[CE_NAME]): "");
   lSetString(ep, CE_shortcut, ce_entry[CE_SHORTCUT] ? qmon_trim(ce_entry[CE_SHORTCUT]): "" );

   type = 0;
   for (i=TYPE_FIRST; !type && i<=TYPE_CE_LAST; i++) {
      if (!strcasecmp(ce_entry[CE_TYPE], map_type2str(i)))
         type = i;
   }
   if (!type) {
      DPRINTF(("setCE_TypeValues: unknown type\n"));
      DEXIT;
      return False;
   }
   lSetUlong(ep, CE_valtype, type);

   relop = 0;
   for (i=CMPLXEQ_OP; !relop && i<=CMPLXEXCL_OP; i++) {
      if (!strcmp(ce_entry[CE_RELOP], map_op2str(i)))
         relop = i;
   }
   if (!relop) {
      DPRINTF(("invalid relation operator: %s\n", ce_entry[CE_RELOP]));
      DEXIT;
      return False;
   }
   lSetUlong(ep, CE_relop, relop);

   if (!strcasecmp(ce_entry[CE_REQUEST], "y") 
            || !strcasecmp(ce_entry[CE_REQUEST], "yes"))
      requestable = REQU_YES;
   else if (!strcasecmp(ce_entry[CE_REQUEST], "n") 
            || !strcasecmp(ce_entry[CE_REQUEST], "no"))
      requestable = REQU_NO;
   else if (!strcasecmp(ce_entry[CE_REQUEST], "f") 
            || !strcasecmp(ce_entry[CE_REQUEST], "forced")) {
      requestable = REQU_FORCED;
   }
   else {
      DPRINTF(("invalid requestable entry: %s\n", ce_entry[CE_REQUEST]));
   }

   lSetUlong(ep, CE_requestable, requestable);

   if (!strcasecmp(ce_entry[CE_CONSUMABLE], "y") 
            || !strcasecmp(ce_entry[CE_CONSUMABLE], "yes"))
      lSetUlong(ep, CE_consumable, 1);
   else if (!strcasecmp(ce_entry[CE_CONSUMABLE], "j") 
            || !strcasecmp(ce_entry[CE_CONSUMABLE], "job"))
      lSetUlong(ep, CE_consumable, 2);
   else if (!strcasecmp(ce_entry[CE_CONSUMABLE], "n") 
            || !strcasecmp(ce_entry[CE_CONSUMABLE], "no"))
      lSetUlong(ep, CE_consumable, 0);

   lSetString(ep, CE_default, ce_entry[CE_DEFAULT] ? qmon_trim(ce_entry[CE_DEFAULT]): "");
   lSetString(ep, CE_urgency_weight, ce_entry[CE_URGENCY] ? qmon_trim(ce_entry[CE_URGENCY]): "");

   
   DEXIT;
   return True;
}
Example #3
0
/*-------------------------------------------------------------------------*/
static Boolean qmonCkptGetAsk(
    lListElem *ckp
) {
    String ckpt_name = NULL;
    String ckpt_interface = NULL;
    String ckpt_ckpt_command = NULL;
    String ckpt_migr_command = NULL;
    String ckpt_rest_command = NULL;
    String ckpt_clean_command = NULL;
    String ckpt_ckpt_dir = NULL;
    String ckpt_signal = NULL;
    int state;
    int i;
    char ckpt_when[20];
    static String ckpt_when_strings[] = {
        "s",  /* shutdown of execd    */
        "m",  /* minimum CPU interval */
        "x",  /* suspend of Job       */
        "r"   /* reschedule job       */
    };

    DENTER(GUI_LAYER, "qmonCkptGetAsk");

    if (!ckp) {
        DEXIT;
        return False;
    }

    ckpt_name = XmtInputFieldGetString(ckpt_name_w);
    if (!ckpt_name || ckpt_name[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint name required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_name, qmon_trim(ckpt_name));

    state = XmtChooserGetState(ckpt_interface_w);
    ckpt_interface = ckpt_interface_types[state];
    if (!ckpt_interface || ckpt_interface[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint interface required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_interface, ckpt_interface);

    ckpt_ckpt_command = XmtInputFieldGetString(ckpt_ckpt_command_w);
    if (!ckpt_ckpt_command || ckpt_ckpt_command[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint ckpt_command required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_ckpt_command, ckpt_ckpt_command);


    ckpt_migr_command = XmtInputFieldGetString(ckpt_migr_command_w);
    if (!ckpt_migr_command || ckpt_migr_command[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint migr_command required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_migr_command, ckpt_migr_command);

    ckpt_rest_command = XmtInputFieldGetString(ckpt_rest_command_w);
    if (!ckpt_rest_command || ckpt_rest_command[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint rest_command required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_rest_command, ckpt_rest_command);

    ckpt_clean_command = XmtInputFieldGetString(ckpt_clean_command_w);
    if (!ckpt_clean_command || ckpt_clean_command[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint clean_command required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_clean_command, ckpt_clean_command);

    ckpt_ckpt_dir = XmtInputFieldGetString(ckpt_ckpt_dir_w);
    if (!ckpt_ckpt_dir || ckpt_ckpt_dir[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint ckpt_dir required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_ckpt_dir, ckpt_ckpt_dir);

    state = XmtChooserGetState(ckpt_when_w);
    strcpy(ckpt_when, "");
    for (i=0; i<XtNumber(ckpt_when_strings); i++) {
        if (state & (1<<i))
            strcat(ckpt_when, ckpt_when_strings[i]);
    }
    if (ckpt_when[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint when required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_when, ckpt_when);

    ckpt_signal = XmtInputFieldGetString(ckpt_signal_w);
    if (!ckpt_signal || ckpt_signal[0] == '\0') {
        qmonMessageShow(ckpt_ask_layout, True, "Checkpoint signal required !");
        DEXIT;
        return False;
    }
    lSetString(ckp, CK_signal, ckpt_signal);

    DEXIT;
    return True;
}