int main(int argc, char *argv[]) { log_options_t opts = LOG_OPTS_STDERR_ONLY; int rc = 0; slurm_conf_init(NULL); log_init(xbasename(argv[0]), opts, SYSLOG_FACILITY_USER, NULL); parse_command_line(argc, argv); if (params.verbose) { opts.stderr_level += params.verbose; log_alter(opts, SYSLOG_FACILITY_USER, NULL); } while (1) { if ((!params.no_header) && (params.iterate || params.verbose || params.long_output)) print_date(); if (!params.clusters) { if (_get_info(false)) rc = 1; } else if (_multi_cluster(params.clusters) != 0) rc = 1; if (params.iterate) { printf("\n"); sleep(params.iterate); } else break; } exit(rc); }
static void _button_one(EDITOR *e) { INFO *info; editor_save_book(e); info = _get_info(e->treeview); if (atol(info->offset) == 0) gtk_widget_set_sensitive(e->html_widget, FALSE); else gtk_widget_set_sensitive(e->html_widget, TRUE); if (e->module) g_free(e->module); e->module = g_strdup(info->book); if (e->key) g_free(e->key); e->key = g_strdup(info->offset); editor_load_book(e); g_free(info->book); g_free(info->local_name); g_free(info->offset); g_free(info); }
G_MODULE_EXPORT void on_remove_activate(GtkMenuItem *menuitem, gpointer user_data) { INFO *info; EDITOR *editor = (EDITOR *)user_data; GtkWidget *tree = GTK_WIDGET(editor->treeview); gchar *str; gchar *icon_name; info = _get_info(tree); str = g_strdup_printf("<span weight=\"bold\">%s</span>\n\n%s/%s", _("Remove the selected item"), info->book, info->local_name); #ifdef HAVE_GTK_310 icon_name = g_strdup("dialog-warning"); #else icon_name = g_strdup(GTK_STOCK_DIALOG_WARNING); #endif if (gui_yes_no_dialog(str, icon_name)) { gtk_tree_store_remove(GTK_TREE_STORE(info->model), &info->iter); main_treekey_remove(info->book, info->local_name, info->offset); } g_free(info->book); g_free(info->local_name); g_free(info->offset); g_free(info); g_free(str); g_free(icon_name); }
G_MODULE_EXPORT void on_add_sibling_activate(GtkMenuItem *menuitem, gpointer user_data) { INFO *info; EDITOR *e = (EDITOR *)user_data; GtkWidget *tree = GTK_WIDGET(e->treeview); gint test; GS_DIALOG *d; GtkTreeIter sibling; info = _get_info(tree); d = gui_new_dialog(); #ifdef HAVE_GTK_310 d->stock_icon = "dialog-question"; #else d->stock_icon = GTK_STOCK_DIALOG_QUESTION; #endif d->title = _("Prayer List/Journal Item"); d->label_top = _("New name"); d->label1 = _("Name: "); d->text1 = g_strdup(info->local_name); d->ok = TRUE; d->cancel = TRUE; test = gui_gs_dialog(d); if (test == GS_OK) { unsigned long l_offset = main_treekey_append_sibling(info->book, d->text1, info->offset); if (l_offset) { char *buf = g_strdup_printf("%ld", l_offset); gtk_tree_store_insert_after(GTK_TREE_STORE(info->model), &sibling, NULL, &info->iter); gtk_tree_store_set(GTK_TREE_STORE(info->model), &sibling, COL_OPEN_PIXBUF, pixbufs->pixbuf_helpdoc, COL_CLOSED_PIXBUF, NULL, COL_CAPTION, d->text1, COL_MODULE, info->book, COL_OFFSET, buf, -1); if (e->key) g_free(e->key); e->key = g_strdup(buf); editor_load_book(e); g_free(buf); } } g_free(info->book); g_free(info->local_name); g_free(info->offset); g_free(info); g_free(d->text1); g_free(d); }
static int _single_cluster(shares_request_msg_t *req_msg) { int rc = SLURM_SUCCESS; shares_response_msg_t *resp_msg = NULL; rc = _get_info(req_msg, &resp_msg); if (rc) { slurm_perror("Couldn't get shares from controller"); return rc; } process(resp_msg, options); slurm_free_shares_response_msg(resp_msg); return rc; }
static int _multi_cluster(List clusters) { ListIterator itr; bool first = true; int rc = 0, rc2; itr = list_iterator_create(clusters); while ((working_cluster_rec = list_next(itr))) { if (first) first = false; else printf("\n"); printf("CLUSTER: %s\n", working_cluster_rec->name); rc2 = _get_info(true); rc = MAX(rc, rc2); } list_iterator_destroy(itr); return rc; }
int main (int argc, char *argv[]) { log_options_t opts = LOG_OPTS_STDERR_ONLY ; int error_code = SLURM_SUCCESS; log_init(xbasename(argv[0]), opts, SYSLOG_FACILITY_USER, NULL); parse_command_line( argc, argv ); if (params.verbose) { opts.stderr_level += params.verbose; log_alter(opts, SYSLOG_FACILITY_USER, NULL); } max_line_size = _get_window_width( ); if (params.clusters) working_cluster_rec = list_peek(params.clusters); while (1) { if ((!params.no_header) && (params.iterate || params.verbose || params.long_list)) _print_date (); if (!params.clusters) { if (_get_info(false)) error_code = 1; } else if (_multi_cluster(params.clusters) != 0) error_code = 1; if ( params.iterate ) { printf( "\n"); sleep( params.iterate ); } else break; } if ( error_code != SLURM_SUCCESS ) exit (error_code); else exit (0); }
G_MODULE_EXPORT void on_edit_activate2(GtkMenuItem *menuitem, gpointer user_data) { INFO *info; EDITOR *editor = (EDITOR *)user_data; GtkWidget *tree = GTK_WIDGET(editor->treeview); gint test; GS_DIALOG *d; info = _get_info(tree); d = gui_new_dialog(); #ifdef HAVE_GTK_310 d->stock_icon = "dialog-question"; #else d->stock_icon = GTK_STOCK_DIALOG_QUESTION; #endif d->title = _("Prayer List/Journal Item"); d->label_top = _("New name"); d->label1 = _("Name: "); d->text1 = g_strdup(info->local_name); d->ok = TRUE; d->cancel = TRUE; test = gui_gs_dialog(d); if (test == GS_OK) { main_treekey_set_local_name(info->book, d->text1, info->offset); gtk_tree_store_set(GTK_TREE_STORE(info->model), &info->iter, COL_CAPTION, (gchar *)d->text1, -1); } g_free(info->book); g_free(info->local_name); g_free(info->offset); g_free(info); g_free(d->text1); g_free(d); }
int main(int argc, char *argv[]) { int rc = 0; parse_command_line(argc, argv); if (sdiag_param == STAT_COMMAND_RESET) { req.command_id = STAT_COMMAND_RESET; rc = slurm_reset_statistics((stats_info_request_msg_t *)&req); if (rc == SLURM_SUCCESS) printf("Reset scheduling statistics\n"); else slurm_perror("slurm_reset_statistics"); exit(rc); } else { rc = _get_info(); if (rc == SLURM_SUCCESS) rc = _print_info(); } exit(rc); }
int main (int argc, char *argv[]) { char *prio_type = NULL; int error_code = SLURM_SUCCESS; priority_factors_request_msg_t req_msg; priority_factors_response_msg_t *resp_msg = NULL; log_options_t opts = LOG_OPTS_STDERR_ONLY ; slurm_conf_init(NULL); log_init(xbasename(argv[0]), opts, SYSLOG_FACILITY_USER, NULL); parse_command_line( argc, argv ); if (params.verbose) { opts.stderr_level += params.verbose; log_alter(opts, SYSLOG_FACILITY_USER, NULL); } if (working_cluster_rec) { slurm_ctl_conf_info_msg_t *slurm_ctl_conf_ptr; error_code = slurm_load_ctl_conf((time_t) NULL, &slurm_ctl_conf_ptr); if (error_code) { slurm_perror ("slurm_load_ctl_conf error"); exit(error_code); } weight_age = slurm_ctl_conf_ptr->priority_weight_age; weight_fs = slurm_ctl_conf_ptr->priority_weight_fs; weight_js = slurm_ctl_conf_ptr->priority_weight_js; weight_part = slurm_ctl_conf_ptr->priority_weight_part; weight_qos = slurm_ctl_conf_ptr->priority_weight_qos; weight_tres = slurm_ctl_conf_ptr->priority_weight_tres; prio_type = xstrdup(slurm_ctl_conf_ptr->priority_type); slurm_free_ctl_conf(slurm_ctl_conf_ptr); } else { weight_age = slurm_get_priority_weight_age(); weight_fs = slurm_get_priority_weight_fairshare(); weight_js = slurm_get_priority_weight_job_size(); weight_part = slurm_get_priority_weight_partition(); weight_qos = slurm_get_priority_weight_qos(); weight_tres = slurm_get_priority_weight_tres(); prio_type = slurm_get_priority_type(); } /* Check to see if we are running a supported accounting plugin */ if (xstrcasecmp(prio_type, "priority/basic") == 0) { fprintf (stderr, "You are not running a supported " "priority plugin\n(%s).\n" "Only 'priority/multifactor' is supported.\n", prio_type); exit(1); } xfree(prio_type); memset(&req_msg, 0, sizeof(priority_factors_request_msg_t)); if (params.jobs) req_msg.job_id_list = params.job_list; else req_msg.job_id_list = NULL; if (params.users) req_msg.uid_list = params.user_list; else req_msg.uid_list = NULL; error_code = _get_info(&req_msg, &resp_msg); if (error_code) { slurm_perror("Couldn't get priority factors from controller"); exit(error_code); } if (params.format == NULL) { if (params.normalized) { if (params.long_list) params.format = "%.15i %.8u %10y %10a %10f " "%10j %10p %10q %20t"; else{ params.format = xstrdup("%.15i"); if (params.users) xstrcat(params.format, " %.8u"); xstrcat(params.format, " %10y"); if (weight_age) xstrcat(params.format, " %10a"); if (weight_fs) xstrcat(params.format, " %10f"); if (weight_js) xstrcat(params.format, " %10j"); if (weight_part) xstrcat(params.format, " %10p"); if (weight_qos) xstrcat(params.format, " %10q"); if (weight_tres) xstrcat(params.format, " %20t"); } } else { if (params.long_list) params.format = "%.15i %.8u %.10Y %.10A %.10F " "%.10J %.10P %.10Q %.6N %.20T"; else{ params.format = xstrdup("%.15i"); if (params.users) xstrcat(params.format, " %.8u"); xstrcat(params.format, " %.10Y"); if (weight_age) xstrcat(params.format, " %.10A"); if (weight_fs) xstrcat(params.format, " %.10F"); if (weight_js) xstrcat(params.format, " %.10J"); if (weight_part) xstrcat(params.format, " %.10P"); if (weight_qos) xstrcat(params.format, " %.10Q"); if (weight_tres) xstrcat(params.format, " %.20T"); } } } /* create the format list from the format */ parse_format(params.format); if (params.jobs && (!resp_msg || !resp_msg->priority_factors_list || !list_count(resp_msg->priority_factors_list))) { printf("Unable to find jobs matching user/id(s) specified\n"); } else if (resp_msg) { print_jobs_array(resp_msg->priority_factors_list, params.format_list); } #if 0 /* Free storage here if we want to verify that logic. * Since we exit next, this is not important */ FREE_NULL_LIST(params.format_list); slurm_free_priority_factors_response_msg(resp_msg); #endif exit (error_code); }
int main (int argc, char *argv[]) { int error_code = SLURM_SUCCESS, opt_char; log_options_t opts = LOG_OPTS_STDERR_ONLY; shares_request_msg_t req_msg; shares_response_msg_t *resp_msg = NULL; char *temp = NULL; int option_index; bool all_users = 0; uint16_t options = 0; static struct option long_options[] = { {"accounts", 1, 0, 'A'}, {"all", 0, 0, 'a'}, {"long", 0, 0, 'l'}, {"cluster", 1, 0, 'M'}, {"clusters", 1, 0, 'M'}, {"noheader", 0, 0, 'h'}, {"partition",0, 0, 'm'}, {"parsable", 0, 0, 'p'}, {"parsable2",0, 0, 'P'}, {"users", 1, 0, 'u'}, {"Users", 0, 0, 'U'}, {"verbose", 0, 0, 'v'}, {"version", 0, 0, 'V'}, {"help", 0, 0, OPT_LONG_HELP}, {"usage", 0, 0, OPT_LONG_USAGE}, {NULL, 0, 0, 0} }; exit_code = 0; long_flag = 0; quiet_flag = 0; verbosity = 0; memset(&req_msg, 0, sizeof(shares_request_msg_t)); slurm_conf_init(NULL); log_init("sshare", opts, SYSLOG_FACILITY_DAEMON, NULL); while((opt_char = getopt_long(argc, argv, "aA:hlM:npPqUu:t:vVm", long_options, &option_index)) != -1) { switch (opt_char) { case (int)'?': fprintf(stderr, "Try \"sshare --help\" " "for more information\n"); exit(1); break; case 'a': all_users = 1; break; case 'A': if (!req_msg.acct_list) req_msg.acct_list = list_create(slurm_destroy_char); slurm_addto_char_list(req_msg.acct_list, optarg); break; case 'h': print_fields_have_header = 0; break; exit(exit_code); break; case 'l': long_flag = 1; break; case 'M': FREE_NULL_LIST(clusters); if (!(clusters = slurmdb_get_info_cluster(optarg))) { print_db_notok(optarg, 0); exit(1); } working_cluster_rec = list_peek(clusters); break; case 'm': options |= PRINT_PARTITIONS; break; case 'n': print_fields_have_header = 0; break; case 'p': print_fields_parsable_print = PRINT_FIELDS_PARSABLE_ENDING; break; case 'P': print_fields_parsable_print = PRINT_FIELDS_PARSABLE_NO_ENDING; break; case 'u': if (!strcmp(optarg, "-1")) { all_users = 1; break; } all_users = 0; if (!req_msg.user_list) req_msg.user_list = list_create(slurm_destroy_char); _addto_name_char_list(req_msg.user_list, optarg, 0); break; case 'U': options |= PRINT_USERS_ONLY; break; case 'v': quiet_flag = -1; verbosity++; break; case 'V': _print_version(); exit(exit_code); break; case OPT_LONG_HELP: case OPT_LONG_USAGE: _usage(); exit(0); default: exit_code = 1; fprintf(stderr, "getopt error, returned %c\n", opt_char); exit(exit_code); } } if (verbosity) { opts.stderr_level += verbosity; opts.prefix_level = 1; log_alter(opts, 0, NULL); } if (all_users) { if (req_msg.user_list && list_count(req_msg.user_list)) { FREE_NULL_LIST(req_msg.user_list); } if (verbosity) fprintf(stderr, "Users requested:\n\t: all\n"); } else if (verbosity && req_msg.user_list && list_count(req_msg.user_list)) { fprintf(stderr, "Users requested:\n"); ListIterator itr = list_iterator_create(req_msg.user_list); while((temp = list_next(itr))) fprintf(stderr, "\t: %s\n", temp); list_iterator_destroy(itr); } else if (!req_msg.user_list || !list_count(req_msg.user_list)) { struct passwd *pwd = getpwuid(getuid()); if (!req_msg.user_list) req_msg.user_list = list_create(slurm_destroy_char); temp = xstrdup(pwd->pw_name); list_append(req_msg.user_list, temp); if (verbosity) { fprintf(stderr, "Users requested:\n"); fprintf(stderr, "\t: %s\n", temp); } } if (req_msg.acct_list && list_count(req_msg.acct_list)) { if (verbosity) { fprintf(stderr, "Accounts requested:\n"); ListIterator itr = list_iterator_create(req_msg.acct_list); while((temp = list_next(itr))) fprintf(stderr, "\t: %s\n", temp); list_iterator_destroy(itr); } } else { if (req_msg.acct_list && list_count(req_msg.acct_list)) { FREE_NULL_LIST(req_msg.acct_list); } if (verbosity) fprintf(stderr, "Accounts requested:\n\t: all\n"); } error_code = _get_info(&req_msg, &resp_msg); FREE_NULL_LIST(req_msg.acct_list); FREE_NULL_LIST(req_msg.user_list); if (error_code) { slurm_perror("Couldn't get shares from controller"); exit(error_code); } /* do stuff with it */ process(resp_msg, options); slurm_free_shares_response_msg(resp_msg); exit(exit_code); }