File: read_config.h

package info (click to toggle)
slurm-llnl 18.08.5.2-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 41,876 kB
  • sloc: ansic: 439,494; exp: 79,435; sh: 8,604; perl: 4,602; makefile: 4,019; python: 1,211
file content (148 lines) | stat: -rw-r--r-- 6,507 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/*****************************************************************************\
 *  read_config.h - functions and declarations for reading slurmdbd.conf
 *****************************************************************************
 *  Copyright (C) 2003-2007 The Regents of the University of California.
 *  Copyright (C) 2008-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://slurm.schedmd.com/>.
 *  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.
\*****************************************************************************/

#ifndef _DBD_READ_CONFIG_H
#define _DBD_READ_CONFIG_H

#include <inttypes.h>
#include <time.h>
#include <pthread.h>

#include "src/common/list.h"

#define DEFAULT_SLURMDBD_AUTHTYPE	"auth/munge"
//#define DEFAULT_SLURMDBD_JOB_PURGE	12
#define DEFAULT_SLURMDBD_PIDFILE	"/run/slurmdbd.pid"
#define DEFAULT_SLURMDBD_ARCHIVE_DIR	"/tmp"
//#define DEFAULT_SLURMDBD_STEP_PURGE	1

/* SlurmDBD configuration parameters */
typedef struct slurm_dbd_conf {
	time_t		last_update;	/* time slurmdbd.conf read	*/
	char *		archive_dir;    /* location to localy
					 * store data if not
					 * using a script               */
	char *		archive_script;	/* script to archive old data	*/
	char *		auth_info;	/* authentication info		*/
	char *		auth_type;	/* authentication mechanism	*/
	uint16_t        commit_delay;   /* On busy systems delay
					 * commits from slurmctld this
					 * many seconds                 */
	char *		dbd_addr;	/* network address of Slurm DBD	*/
	char *		dbd_backup;	/* hostname of Slurm DBD backup */
	char *		dbd_host;	/* hostname of Slurm DBD	*/
	uint16_t	dbd_port;	/* port number for RPCs to DBD	*/
	uint64_t	debug_flags;	/* Debug flags set              */
	uint16_t	debug_level;	/* Debug level, default=3	*/
	char *	 	default_qos;	/* default qos setting when
					 * adding clusters              */
	char *		log_file;	/* Log file			*/
	uint16_t	syslog_debug;	/* output to both logfile and syslog*/
	uint16_t        log_fmt;        /* Log file timestamt format    */
	uint32_t	max_time_range;	/* max time range for user queries */
	uint16_t        msg_timeout;    /* message timeout		*/
	char *		parameters;	/* parameters to change behavior with
					 * the slurmdbd directly	*/
	uint16_t        persist_conn_rc_flags; /* flags to be sent back on any
						* persist connection init
						*/
	char *		pid_file;	/* where to store current PID	*/
	char *		plugindir;	/* dir to look for plugins	*/
	uint16_t        private_data;   /* restrict information         */
					/* purge variable format
					 * controlled by PURGE_FLAGS	*/
	uint32_t        purge_event;    /* purge events older than
					 * this in months or days 	*/
	uint32_t	purge_job;	/* purge time for job info	*/
	uint32_t	purge_resv;	/* purge time for reservation info */
	uint32_t	purge_step;	/* purge time for step info	*/
	uint32_t        purge_suspend;  /* purge suspend data older
					 * than this in months or days	*/
	uint32_t        purge_txn;      /* purge transaction data older
					 * than this in months or days	*/
	uint32_t        purge_usage;    /* purge usage data older
					 * than this in months or days	*/
	uint32_t	slurm_user_id;	/* uid of slurm_user_name	*/
	char *		slurm_user_name;/* user that slurmcdtld runs as	*/
	char *		storage_backup_host;/* backup host where DB is
					     * running */
	char *		storage_host;	/* host where DB is running	*/
	char *		storage_loc;	/* database name		*/
	char *		storage_pass;   /* password for DB write	*/
	uint16_t	storage_port;	/* port DB is listening to	*/
	char *		storage_type;	/* DB to be used for storage	*/
	char *		storage_user;	/* user authorized to write DB	*/
	uint16_t        track_wckey;    /* Whether or not to track wckey*/
	uint16_t        track_ctld;     /* Whether or not track when a
					 * slurmctld goes down or not   */
	uint16_t        tcp_timeout;    /* tcp timeout			*/
} slurm_dbd_conf_t;

extern pthread_mutex_t conf_mutex;
extern slurm_dbd_conf_t *slurmdbd_conf;


/*
 * free_slurmdbd_conf - free storage associated with the global variable
 *	slurmdbd_conf
 */
extern void free_slurmdbd_conf(void);

/* Return the DbdPort value */
extern uint16_t get_dbd_port(void);

/* lock and unlock the dbd_conf */
extern void slurmdbd_conf_lock(void);
extern void slurmdbd_conf_unlock(void);

/* Log the current configuration using verbose() */
extern void log_config(void);

/*
 * read_slurmdbd_conf - load the SlurmDBD configuration from the slurmdbd.conf
 *	file. This function can be called more than once if so desired.
 * RET SLURM_SUCCESS if no error, otherwise an error code
 */
extern int read_slurmdbd_conf(void);

/* Dump the configuration in name,value pairs for output to
 *	"sacctmgr show config", caller must call list_destroy() */
extern List dump_config(void);

#endif /* !_DBD_READ_CONFIG_H */