static int extract_raw_rdl (flux_t h, int64_t j, char **rdlstr) { int rc = 0; char key[20] = {'\0'}; snprintf (key, 20, "lwj.%ld.rdl", j); if (kvs_get_string (h, key, rdlstr) < 0) { flux_log (h, LOG_ERR, "extract %s: %s", key, strerror (errno)); rc = -1; } else flux_log (h, LOG_DEBUG, "rdl under %s extracted", key); return rc; }
static int extract_raw_rdl (flux_t h, int64_t j, char **rdlstr) { int rc = 0; char *key = xasprintf ("lwj.%"PRId64".rdl", j); if (kvs_get_string (h, key, rdlstr) < 0) { flux_log_error (h, "extract %s", key); rc = -1; } else flux_log (h, LOG_DEBUG, "rdl under %s extracted", key); free (key); return rc; }
static int extract_raw_state (flux_t h, int64_t j, int64_t *s) { int rc = 0; char key[20] = {'\0'}; char *state = NULL; snprintf (key, 20, "lwj.%ld.state", j); if (kvs_get_string (h, key, &state) < 0) { flux_log (h, LOG_ERR, "extract %s: %s", key, strerror (errno)); rc = -1; } else { *s = jsc_job_state2num (state); flux_log (h, LOG_DEBUG, "extract %s: %s", key, state); } if (state) free (state); return rc; }
static int extract_raw_state (flux_t h, int64_t j, int64_t *s) { int rc = 0; char *key = xasprintf ("lwj.%"PRId64".state", j); char *state = NULL; if (kvs_get_string (h, key, &state) < 0) { flux_log_error (h, "extract %s", key); rc = -1; } else { *s = jsc_job_state2num (state); flux_log (h, LOG_DEBUG, "extract %s: %s", key, state); } free (key); if (state) free (state); return rc; }
void getas (flux_t *h, const char *key, const char *type) { if (type == NULL) { char *value; if (kvs_get (h, key, &value) < 0) log_err_exit ("kvs_get %s", key); printf ("%s\n", value); free (value); } else if (!strcmp (type, "int")) { int value; if (kvs_get_int (h, key, &value) < 0) log_err_exit ("kvs_get_int %s", key); printf ("%d\n", value); } else if (!strcmp (type, "int64")) { int64_t value; if (kvs_get_int64 (h, key, &value) < 0) log_err_exit ("kvs_get_int64 %s", key); printf ("%" PRIi64 "\n", value); } else if (!strcmp (type, "boolean")) { bool value; if (kvs_get_boolean (h, key, &value) < 0) log_err_exit ("kvs_get_int64 %s", key); printf ("%s\n", value ? "true" : "false"); } else if (!strcmp (type, "double")) { double value; if (kvs_get_double (h, key, &value) < 0) log_err_exit ("kvs_get_int64 %s", key); printf ("%f\n", value); } else if (!strcmp (type, "string")) { char *s; if (kvs_get_string (h, key, &s) < 0) log_err_exit ("kvs_get_string %s", key); printf ("%s\n", s); free (s); } else { log_msg_exit ("unknown type (use int/int64/boolean/double/string)"); } }