blob: 0dd4c7a4792d6085034ee955aa203c03d3762473 [file] [edit]
/*****************************************************************************\
* config_functions.c - functions dealing with system configuration.
*****************************************************************************
* Copyright (C) 2009 Lawrence Livermore National Security.
* Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
* Written by Morris Jette <jette1@llnl.gov>
* CODE-OCEC-09-009. All rights reserved.
*
* This file is part of SLURM, a resource management program.
* For details, see <https://computing.llnl.gov/linux/slurm/>.
* Please also read the included file: DISCLAIMER.
*
* SLURM is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* In addition, as a special exception, the copyright holders give permission
* to link the code of portions of this program with the OpenSSL library under
* certain conditions as described in each individual source file, and
* distribute linked combinations including the two. You must obey the GNU
* General Public License in all respects for all of the code used other than
* OpenSSL. If you modify file(s) with this exception, you may extend this
* exception to your version of the file(s), but you are not obligated to do
* so. If you do not wish to do so, delete this exception statement from your
* version. If you delete this exception statement from all source files in
* the program, then also delete it here.
*
* SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along
* with SLURM; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
\*****************************************************************************/
#include "src/common/list.h"
#include "src/common/read_config.h"
#include "src/common/slurmdbd_defs.h"
#include "src/common/uid.h"
#include "src/common/xstring.h"
#include "src/sacctmgr/sacctmgr.h"
static char *acct_storage_backup_host = NULL;
static char *acct_storage_host = NULL;
static char *acct_storage_loc = NULL;
static char *acct_storage_pass = NULL;
static uint32_t acct_storage_port;
static char *acct_storage_type = NULL;
static char *acct_storage_user = NULL;
static char *auth_type = NULL;
static uint16_t msg_timeout;
static char *plugin_dir = NULL;
static uint16_t private_data;
static uint32_t slurm_user_id;
static uint16_t track_wckey;
static List dbd_config_list = NULL;
static void _load_dbd_config(void)
{
dbd_config_list = slurmdb_config_get(db_conn);
}
static void _print_dbd_config(void)
{
ListIterator iter = NULL;
config_key_pair_t *key_pair;
if (!dbd_config_list)
return;
printf("\nSlurmDBD configuration:\n");
iter = list_iterator_create(dbd_config_list);
while((key_pair = list_next(iter))) {
printf("%-22s = %s\n", key_pair->name, key_pair->value);
}
list_iterator_destroy(iter);
}
static void _free_dbd_config(void)
{
if (!dbd_config_list)
return;
list_destroy(dbd_config_list);
dbd_config_list = NULL;
}
static void _load_slurm_config(void)
{
acct_storage_backup_host = slurm_get_accounting_storage_backup_host();
acct_storage_host = slurm_get_accounting_storage_host();
acct_storage_loc = slurm_get_accounting_storage_loc();
acct_storage_pass = slurm_get_accounting_storage_pass();
acct_storage_port = slurm_get_accounting_storage_port();
acct_storage_type = slurm_get_accounting_storage_type();
acct_storage_user = slurm_get_accounting_storage_user();
auth_type = slurm_get_auth_type();
msg_timeout = slurm_get_msg_timeout();
plugin_dir = slurm_get_plugin_dir();
private_data = slurm_get_private_data();
slurm_user_id = slurm_get_slurm_user_id();
track_wckey = slurm_get_track_wckey();
}
static void _free_slurm_config(void)
{
xfree(acct_storage_backup_host);
xfree(acct_storage_host);
xfree(acct_storage_loc);
xfree(acct_storage_pass);
xfree(acct_storage_type);
xfree(acct_storage_user);
xfree(auth_type);
xfree(plugin_dir);
}
static void _print_slurm_config(void)
{
time_t now = time(NULL);
char tmp_str[128], *user_name = NULL;
slurm_make_time_str(&now, tmp_str, sizeof(tmp_str));
printf("Configuration data as of %s\n", tmp_str);
printf("AccountingStorageBackupHost = %s\n", acct_storage_backup_host);
printf("AccountingStorageHost = %s\n", acct_storage_host);
printf("AccountingStorageLoc = %s\n", acct_storage_loc);
printf("AccountingStoragePass = %s\n", acct_storage_pass);
printf("AccountingStoragePort = %u\n", acct_storage_port);
printf("AccountingStorageType = %s\n", acct_storage_type);
printf("AccountingStorageUser = %s\n", acct_storage_user);
printf("AuthType = %s\n", auth_type);
printf("MessageTimeout = %u sec\n", msg_timeout);
printf("PluginDir = %s\n", plugin_dir);
private_data_string(private_data, tmp_str, sizeof(tmp_str));
printf("PrivateData = %s\n", tmp_str);
user_name = uid_to_string(slurm_user_id);
printf("SlurmUserId = %s(%u)\n", user_name, slurm_user_id);
xfree(user_name);
printf("SLURM_CONF = %s\n", default_slurm_config_file);
printf("SLURM_VERSION = %s\n", SLURM_VERSION_STRING);
printf("TrackWCKey = %u\n", track_wckey);
}
extern int sacctmgr_list_config(bool have_db_conn)
{
_load_slurm_config();
_print_slurm_config();
_free_slurm_config();
if (have_db_conn) {
_load_dbd_config();
_print_dbd_config();
_free_dbd_config();
}
return SLURM_SUCCESS;
}