本文整理汇总了C++中log_alter函数的典型用法代码示例。如果您正苦于以下问题:C++ log_alter函数的具体用法?C++ log_alter怎么用?C++ log_alter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了log_alter函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
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);
}
示例2: _handle_reconfig
static int
_handle_reconfig(int fd, slurmd_job_t *job, uid_t uid)
{
int rc = SLURM_SUCCESS;
int errnum = 0;
if (!_slurm_authorized_user(uid)) {
debug("job step reconfigure request from uid %ld "
"for job %u.%u ",
(long)uid, job->jobid, job->stepid);
rc = -1;
errnum = EPERM;
goto done;
}
/* We just want to make sure the file handle is correct on a
reconfigure since the file could had rolled thus making
the currect fd incorrect. */
log_alter(conf->log_opts, SYSLOG_FACILITY_DAEMON, conf->logfile);
debug("_handle_reconfigure for job %u.%u successful",
job->jobid, job->stepid);
done:
/* Send the return code and errno */
safe_write(fd, &rc, sizeof(int));
safe_write(fd, &errnum, sizeof(int));
return SLURM_SUCCESS;
rwfail:
return SLURM_FAILURE;
}
示例3: main
int main(int argc, char *argv[])
{
int rc = 0;
log_options_t opts = LOG_OPTS_STDERR_ONLY;
log_init("strigger", opts, SYSLOG_FACILITY_DAEMON, NULL);
slurm_conf_init(NULL);
parse_command_line(argc, argv);
if (params.verbose) {
opts.stderr_level += params.verbose;
log_alter(opts, SYSLOG_FACILITY_DAEMON, NULL);
}
if (params.mode_set)
rc = _set_trigger();
else if (params.mode_get)
rc = _get_trigger();
else if (params.mode_clear)
rc = _clear_trigger();
else {
error("Invalid mode");
rc = 1;
}
exit(rc);
}
示例4: handle_spank_mode
static int handle_spank_mode (int argc, char *argv[])
{
char prefix[64] = "spank-";
const char *mode = argv[2];
uid_t uid = (uid_t) -1;
uint32_t jobid = (uint32_t) -1;
log_options_t lopts = LOG_OPTS_INITIALIZER;
/*
* Not necessary to log to syslog
*/
lopts.syslog_level = LOG_LEVEL_QUIET;
/*
* Make our log prefix into spank-prolog: or spank-epilog:
*/
strcat (prefix, mode);
log_init(prefix, lopts, LOG_DAEMON, NULL);
/*
* When we are started from slurmd, a lightweight config is
* sent over the stdin fd. If we are able to read this conf
* use it to reinitialize the log.
* It is not a fatal error if we fail to read the conf file.
* This could happen if slurmstepd is run standalone for
* testing.
*/
if ((conf = read_slurmd_conf_lite (STDIN_FILENO)))
log_alter (conf->log_opts, 0, conf->logfile);
close (STDIN_FILENO);
if (slurm_conf_init(NULL) != SLURM_SUCCESS)
return error ("Failed to read slurm config");
if (get_jobid_uid_from_env (&jobid, &uid) < 0)
return error ("spank environment invalid");
verbose ("Running spank/%s for jobid [%u] uid [%u]",
mode, jobid, uid);
if (strcmp (mode, "prolog") == 0) {
if (spank_job_prolog (jobid, uid) < 0)
return (-1);
}
else if (strcmp (mode, "epilog") == 0) {
if (spank_job_epilog (jobid, uid) < 0)
return (-1);
}
else {
error ("Invalid mode %s specified!", mode);
return (-1);
}
return (0);
}
示例5: main
int main(int argc, char *argv[])
{
log_options_t opts = LOG_OPTS_STDERR_ONLY;
log_init("sbcast", opts, SYSLOG_FACILITY_DAEMON, NULL);
#ifdef HAVE_ALPS_CRAY
error("The sbcast command is not supported on Cray systems");
return 1;
#endif
#ifdef HAVE_BG
error("The sbcast command is not supported on IBM BlueGene systems");
return 1;
#endif
slurm_conf_init(NULL);
parse_command_line(argc, argv);
if (params.verbose) {
opts.stderr_level += params.verbose;
log_alter(opts, SYSLOG_FACILITY_DAEMON, NULL);
}
/* validate the source file */
if ((fd = open(params.src_fname, O_RDONLY)) < 0) {
error("Can't open `%s`: %s", params.src_fname,
strerror(errno));
exit(1);
}
if (fstat(fd, &f_stat)) {
error("Can't stat `%s`: %s", params.src_fname,
strerror(errno));
exit(1);
}
verbose("modes = %o", (unsigned int) f_stat.st_mode);
verbose("uid = %d", (int) f_stat.st_uid);
verbose("gid = %d", (int) f_stat.st_gid);
verbose("atime = %s", slurm_ctime(&f_stat.st_atime));
verbose("mtime = %s", slurm_ctime(&f_stat.st_mtime));
verbose("ctime = %s", slurm_ctime(&f_stat.st_ctime));
verbose("size = %ld", (long) f_stat.st_size);
verbose("-----------------------------");
/* identify the nodes allocated to the job */
_get_job_info();
/* transmit the file */
_bcast_file();
/* slurm_free_sbcast_cred_msg(sbcast_cred); */
exit(0);
}
示例6: _update_logging
/* Reset slurmdbd logging based upon configuration parameters */
static void _update_logging(bool startup)
{
/* Preserve execute line arguments (if any) */
if (debug_level) {
slurmdbd_conf->debug_level = MIN(
(LOG_LEVEL_INFO + debug_level),
(LOG_LEVEL_END - 1));
}
log_opts.stderr_level = slurmdbd_conf->debug_level;
log_opts.logfile_level = slurmdbd_conf->debug_level;
log_opts.syslog_level = slurmdbd_conf->debug_level;
if (foreground) {
log_opts.syslog_level = LOG_LEVEL_QUIET;
} else {
log_opts.stderr_level = LOG_LEVEL_QUIET;
if (!slurmdbd_conf->log_file &&
(slurmdbd_conf->syslog_debug == LOG_LEVEL_QUIET)) {
/* Insure fatal errors get logged somewhere */
log_opts.syslog_level = LOG_LEVEL_FATAL;
} else {
log_opts.syslog_level = slurmdbd_conf->syslog_debug;
}
}
log_alter(log_opts, SYSLOG_FACILITY_DAEMON, slurmdbd_conf->log_file);
log_set_timefmt(slurmdbd_conf->log_fmt);
if (startup && slurmdbd_conf->log_file) {
int rc;
gid_t slurm_user_gid;
slurm_user_gid = gid_from_uid(slurmdbd_conf->slurm_user_id);
rc = chown(slurmdbd_conf->log_file,
slurmdbd_conf->slurm_user_id, slurm_user_gid);
if (rc) {
error("chown(%s, %d, %d): %m",
slurmdbd_conf->log_file,
(int) slurmdbd_conf->slurm_user_id,
(int) slurm_user_gid);
}
}
debug("Log file re-opened");
}
示例7: main
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);
}
示例8: main
int
main (int argc, char *argv[])
{
log_options_t log_opts = LOG_OPTS_STDERR_ONLY ;
int rc = 0;
slurm_conf_init(NULL);
log_init (xbasename(argv[0]), log_opts, SYSLOG_FACILITY_DAEMON, NULL);
initialize_and_process_args(argc, argv);
if (opt.verbose) {
log_opts.stderr_level += opt.verbose;
log_alter (log_opts, SYSLOG_FACILITY_DAEMON, NULL);
}
if (opt.clusters)
rc = _multi_cluster(opt.clusters);
else
rc = _proc_cluster();
exit(rc);
}
示例9: _update_logging
/* Reset slurmctld logging based upon configuration parameters */
static void _update_logging(bool startup)
{
/* Preserve execute line arguments (if any) */
if (debug_level) {
slurmdbd_conf->debug_level = MIN(
(LOG_LEVEL_INFO + debug_level),
(LOG_LEVEL_END - 1));
}
log_opts.stderr_level = slurmdbd_conf->debug_level;
log_opts.logfile_level = slurmdbd_conf->debug_level;
log_opts.syslog_level = slurmdbd_conf->debug_level;
if (foreground)
log_opts.syslog_level = LOG_LEVEL_QUIET;
else {
log_opts.stderr_level = LOG_LEVEL_QUIET;
if (slurmdbd_conf->log_file)
log_opts.syslog_level = LOG_LEVEL_QUIET;
}
log_alter(log_opts, SYSLOG_FACILITY_DAEMON, slurmdbd_conf->log_file);
if (startup && slurmdbd_conf->log_file) {
int rc;
gid_t slurm_user_gid;
slurm_user_gid = gid_from_uid(slurmdbd_conf->slurm_user_id);
rc = chown(slurmdbd_conf->log_file,
slurmdbd_conf->slurm_user_id, slurm_user_gid);
if (rc) {
error("chown(%s, %d, %d): %m",
slurmdbd_conf->log_file,
(int) slurmdbd_conf->slurm_user_id,
(int) slurm_user_gid);
}
}
}
示例10: main
int main(int argc, char** argv)
{
select_ba_request_t *request = xmalloc(sizeof(select_ba_request_t));
log_options_t log_opts = LOG_OPTS_INITIALIZER;
int debug_level = 5;
List results;
// List results2;
// int i,j;
log_opts.stderr_level = debug_level;
log_opts.logfile_level = debug_level;
log_opts.syslog_level = debug_level;
log_alter(log_opts, LOG_DAEMON, "/dev/null");
DIM_SIZE[X]=0;
DIM_SIZE[Y]=0;
DIM_SIZE[Z]=0;
slurm_conf_reinit(NULL);
ba_init(NULL, 1);
/* [010x831] */
/* results = list_create(NULL); */
/* request->geometry[0] = 9; */
/* request->geometry[1] = 3; */
/* request->geometry[2] = 2; */
/* request->start[0] = 0; */
/* request->start[1] = 1; */
/* request->start[2] = 0; */
/* request->start_req = 1; */
/* // request->size = 16; */
/* request->rotate = 0; */
/* request->elongate = 0; */
/* request->conn_type = SELECT_TORUS; */
/* new_ba_request(request); */
/* print_ba_request(request); */
/* if (!allocate_block(request, results)) { */
/* debug("couldn't allocate %c%c%c", */
/* alpha_num[request->geometry[0]], */
/* alpha_num[request->geometry[1]], */
/* alpha_num[request->geometry[2]]); */
/* } */
/* list_destroy(results); */
/* /\* [001x801] *\/ */
/* results = list_create(NULL); */
/* request->geometry[0] = 9; */
/* request->geometry[1] = 1; */
/* request->geometry[2] = 1; */
/* request->start[0] = 0; */
/* request->start[1] = 0; */
/* request->start[2] = 1; */
/* request->start_req = 1; */
/* // request->size = 1; */
/* request->rotate = 0; */
/* request->elongate = 0; */
/* request->conn_type = SELECT_TORUS; */
/* new_ba_request(request); */
/* print_ba_request(request); */
/* if (!allocate_block(request, results)) { */
/* debug("couldn't allocate %c%c%c", */
/* request->geometry[0], */
/* request->geometry[1], */
/* request->geometry[2]); */
/* } */
/* list_destroy(results); */
/* [001x801] */
results = list_create(NULL);
request->geometry[0] = 7;
request->geometry[1] = 4;
request->geometry[2] = 2;
request->start[0] = 0;
request->start[1] = 0;
request->start[2] = 0;
request->start_req = 0;
// request->size = 1;
request->rotate = 1;
request->elongate = 1;
request->conn_type[0] = SELECT_TORUS;
new_ba_request(request);
print_ba_request(request);
if (!allocate_block(request, results)) {
debug("couldn't allocate %c%c%c",
request->geometry[0],
request->geometry[1],
request->geometry[2]);
}
list_destroy(results);
int dim,j;
int x,y,z;
int startx=0;
int starty=0;
int startz=0;
int endx=DIM_SIZE[X];
int endy=1;//DIM_SIZE[Y];
int endz=1;//DIM_SIZE[Z];
//.........这里部分代码省略.........
示例11: main
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 "
//.........这里部分代码省略.........
示例12: main
int main (int argc, char **argv)
{
log_options_t logopt = LOG_OPTS_STDERR_ONLY;
slurm_ctl_conf_t *conf = NULL;
shares_response_msg_t resp;
log_init(xbasename(argv[0]), logopt, 0, NULL);
xfree(slurmctld_conf.priority_type);
//logopt.stderr_level += 5;
logopt.prefix_level = 1;
log_alter(logopt, 0, NULL);
print_fields_have_header = 0;
print_fields_parsable_print = PRINT_FIELDS_PARSABLE_ENDING;
conf = slurm_conf_lock();
/* force priority type to be multifactor */
xfree(conf->priority_type);
conf->priority_type = xstrdup("priority/multifactor");
conf->priority_flags = PRIORITY_FLAGS_FAIR_TREE;
/* force accounting type to be slurmdbd (It doesn't really talk
* to any database, but needs this to work with fairshare
* calculation). */
xfree(conf->accounting_storage_type);
conf->accounting_storage_type = xstrdup("accounting_storage/slurmdbd");
/* set up a known environment to test against. Since we are
* only concerned about the fairshare we won't look at the other
* factors here. */
conf->priority_decay_hl = 1;
conf->priority_favor_small = 0;
conf->priority_max_age = conf->priority_decay_hl;
conf->priority_reset_period = 0;
conf->priority_weight_age = 0;
conf->priority_weight_fs = 10000;
conf->priority_weight_js = 0;
conf->priority_weight_part = 0;
conf->priority_weight_qos = 0;
slurm_conf_unlock();
/* we don't want to do any decay here so make the save state
* to /dev/null */
xfree(slurmctld_conf.state_save_location);
slurmctld_conf.state_save_location = "/dev/null";
/* now set up the association tree */
_setup_assoc_list();
/* now set up the job list */
job_list = list_create(_list_delete_job);
/* now init the priorities of the associations */
if (slurm_priority_init() != SLURM_SUCCESS)
fatal("failed to initialize priority plugin");
/* on some systems that don't have multiple cores we need to
* sleep to make sure the thread gets started. */
sleep(1);
memset(&resp, 0, sizeof(shares_response_msg_t));
resp.assoc_shares_list = assoc_mgr_get_shares(NULL, 0, NULL, NULL);
process(&resp, 0);
/* free memory */
if (slurm_priority_fini() != SLURM_SUCCESS)
fatal("failed to finalize priority plugin");
if (job_list)
list_destroy(job_list);
if (resp.assoc_shares_list)
list_destroy(resp.assoc_shares_list);
if (assoc_mgr_assoc_list)
list_destroy(assoc_mgr_assoc_list);
if (assoc_mgr_qos_list)
list_destroy(assoc_mgr_qos_list);
return 0;
}
示例13: _daemonize
/* Become a daemon (child of init) and
* "cd" to the LogFile directory (if one is configured) */
static void _daemonize(void)
{
if (daemon(1, 1))
error("daemon(): %m");
log_alter(log_opts, LOG_DAEMON, slurmdbd_conf->log_file);
}
示例14: main
int main(int argc, char *argv[])
{
log_options_t logopt = LOG_OPTS_STDERR_ONLY;
job_desc_msg_t desc;
resource_allocation_response_msg_t *alloc;
time_t before, after;
allocation_msg_thread_t *msg_thr;
char **env = NULL;
int status = 0;
int retries = 0;
pid_t pid = getpid();
pid_t tpgid = 0;
pid_t rc_pid = 0;
int i, rc = 0;
static char *msg = "Slurm job queue full, sleeping and retrying.";
slurm_allocation_callbacks_t callbacks;
log_init(xbasename(argv[0]), logopt, 0, NULL);
_set_exit_code();
if (spank_init_allocator() < 0) {
error("Failed to initialize plugin stack");
exit(error_exit);
}
/* Be sure to call spank_fini when salloc exits
*/
if (atexit((void (*) (void)) spank_fini) < 0)
error("Failed to register atexit handler for plugins: %m");
if (initialize_and_process_args(argc, argv) < 0) {
error("salloc parameter parsing");
exit(error_exit);
}
/* reinit log with new verbosity (if changed by command line) */
if (opt.verbose || opt.quiet) {
logopt.stderr_level += opt.verbose;
logopt.stderr_level -= opt.quiet;
logopt.prefix_level = 1;
log_alter(logopt, 0, NULL);
}
if (spank_init_post_opt() < 0) {
error("Plugin stack post-option processing failed");
exit(error_exit);
}
_set_spank_env();
_set_submit_dir_env();
if (opt.cwd && chdir(opt.cwd)) {
error("chdir(%s): %m", opt.cwd);
exit(error_exit);
}
if (opt.get_user_env_time >= 0) {
char *user = uid_to_string(opt.uid);
if (strcmp(user, "nobody") == 0) {
error("Invalid user id %u: %m", (uint32_t)opt.uid);
exit(error_exit);
}
env = env_array_user_default(user,
opt.get_user_env_time,
opt.get_user_env_mode);
xfree(user);
if (env == NULL)
exit(error_exit); /* error already logged */
_set_rlimits(env);
}
/*
* Job control for interactive salloc sessions: only if ...
*
* a) input is from a terminal (stdin has valid termios attributes),
* b) controlling terminal exists (non-negative tpgid),
* c) salloc is not run in allocation-only (--no-shell) mode,
* NOTE: d and e below are configuration dependent
* d) salloc runs in its own process group (true in interactive
* shells that support job control),
* e) salloc has been configured at compile-time to support background
* execution and is not currently in the background process group.
*/
if (tcgetattr(STDIN_FILENO, &saved_tty_attributes) < 0) {
/*
* Test existence of controlling terminal (tpgid > 0)
* after first making sure stdin is not redirected.
*/
} else if ((tpgid = tcgetpgrp(STDIN_FILENO)) < 0) {
if (!opt.no_shell) {
error("no controlling terminal: please set --no-shell");
exit(error_exit);
}
#ifdef SALLOC_RUN_FOREGROUND
} else if ((!opt.no_shell) && (pid == getpgrp())) {
if (tpgid == pid)
is_interactive = true;
while (tcgetpgrp(STDIN_FILENO) != pid) {
if (!is_interactive) {
error("Waiting for program to be placed in "
"the foreground");
//.........这里部分代码省略.........
示例15: _set_options
//.........这里部分代码省略.........
break;
case 'j':
params.job_id = strtol(optarg, &next_str, 10);
if (next_str[0] == '.')
params.step_id =
strtol(next_str+1, NULL, 10);
break;
case 'l':
params.level = xstrdup(optarg);
break;
case 'N':
params.node = xstrdup(optarg);
break;
case 'o':
params.output = xstrdup(optarg);
break;
case 'p':
params.dir = xstrdup(optarg);
break;
case 's':
params.series = xstrdup(optarg);
break;
case 'S':
params.keepfiles = 1;
break;
case 'u':
if (uid_from_string (optarg, &uid) < 0) {
error("--uid=\"%s\" invalid", optarg);
exit(1);
}
break;
case (int)'v':
params.verbose++;
break;
case (int)'V':
print_slurm_version();
exit(0);
break;
case ':':
case '?': /* getopt() has explained it */
exit(1);
}
}
if (params.help) {
switch (params.help) {
case 1:
case 3:
_help_msg();
break;
default:
fprintf(stderr, "bug: --help=%d\n",
params.help);
}
exit(0);
}
if (params.job_id == -1)
fatal("You need to supply a --jobs value.");
if (uid == -1)
uid = getuid();
params.user = uid_to_string(uid);
if (!params.dir)
acct_gather_profile_g_get(ACCT_GATHER_PROFILE_DIR, ¶ms.dir);
if (!params.dir)
fatal("You need to supply a --profiledir or be on a "
"node with a valid acct_gather.conf");
if (params.verbose) {
logopt.stderr_level += params.verbose;
log_alter(logopt, SYSLOG_FACILITY_USER, NULL);
}
/* FIXME : For now all these only work for extract. Seems
* like it would be easy to add the logic to "merge" as well.
*/
if (params.input || params.level || params.node
|| (params.step_id != -1) || params.series)
params.mode = SH5UTIL_MODE_EXTRACT;
if (params.mode == SH5UTIL_MODE_EXTRACT) {
if (!params.level)
params.level = xstrdup("Node:Totals");
if (!params.input)
params.input = xstrdup_printf(
"./job_%d.h5", params.job_id);
if (!params.output)
params.output = xstrdup_printf(
"./extract_%d.csv", params.job_id);
}
if (!params.output)
params.output = xstrdup_printf("./job_%d.h5", params.job_id);
}