/*-------------------------------------------------------------------------*/ 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; }
/*-------------------------------------------------------------------------*/ 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; }
/*-------------------------------------------------------------------------*/ 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; }