xrootd
Main Page
Namespaces
Classes
Files
File List
File Members
src
XrdCms
XrdCmsConfig.hh
Go to the documentation of this file.
1
#ifndef _CMS_CONFIG_H_
2
#define _CMS_CONFIG_H_
3
/******************************************************************************/
4
/* */
5
/* X r d C m s C o n f i g . h h */
6
/* */
7
/* (c) 2011 by the Board of Trustees of the Leland Stanford, Jr., University */
8
/* All Rights Reserved */
9
/* Produced by Andrew Hanushevsky for Stanford University under contract */
10
/* DE-AC02-76-SFO0515 with the Department of Energy */
11
/******************************************************************************/
12
13
#include <stdlib.h>
14
#include <sys/socket.h>
15
16
#include "
Xrd/XrdJob.hh
"
17
#include "
XrdCms/XrdCmsPList.hh
"
18
#include "
XrdCms/XrdCmsTypes.hh
"
19
#include "
XrdOuc/XrdOucPList.hh
"
20
#include "
XrdOuc/XrdOucTList.hh
"
21
22
class
XrdInet
;
23
class
XrdScheduler
;
24
class
XrdNetSecurity
;
25
class
XrdNetSocket
;
26
class
XrdOss
;
27
class
XrdSysError
;
28
class
XrdOucName2Name
;
29
class
XrdOucProg
;
30
class
XrdOucStream
;
31
class
XrdCmsAdmin
;
32
class
XrdCmsXmi
;
33
34
class
XrdCmsConfig
:
public
XrdJob
35
{
36
public
:
37
38
int
Configure1
(
int
argc,
char
**argv,
char
*cfn);
39
int
Configure2
();
40
int
ConfigXeq
(
char
*var,
XrdOucStream
&CFile,
XrdSysError
*
eDest
);
41
void
DoIt
();
42
int
GenLocalPath
(
const
char
*oldp,
char
*newp);
43
int
asManager
() {
return
isManager
;}
44
int
asMetaMan
() {
return
isManager
&&
isMeta
;}
45
int
asPeer
() {
return
isPeer
;}
46
int
asProxy
() {
return
isProxy
;}
47
int
asServer
() {
return
isServer
;}
48
int
asSolo
() {
return
isSolo
;}
49
50
int
LUPDelay
;
// Maximum delay at look-up
51
int
LUPHold
;
// Maximum hold at look-up (in millisconds)
52
int
DRPDelay
;
// Maximum delay for dropping an offline server
53
int
PSDelay
;
// Maximum delay time before peer is selected
54
int
RWDelay
;
// R/W lookup delay handling (0 | 1 | 2)
55
int
QryDelay
;
// Query Response Deadline
56
int
QryMinum
;
// Query Response Deadline Minimum Available
57
int
SRVDelay
;
// Minimum delay at startup
58
int
SUPCount
;
// Minimum server count
59
int
SUPLevel
;
// Minimum server count as floating percentage
60
int
SUPDelay
;
// Maximum delay when server count falls below min
61
int
SUSDelay
;
// Maximum delay when suspended
62
int
MaxLoad
;
// Maximum load
63
int
MaxDelay
;
// Maximum load delay
64
int
MsgTTL
;
// Maximum msg lifetime
65
int
RefReset
;
// Min seconds before a global ref count reset
66
int
RefTurn
;
// Min references before a global ref count reset
67
int
AskPerf
;
// Seconds between perf queries
68
int
AskPing
;
// Number of ping requests per AskPerf window
69
int
LogPerf
;
// AskPerf intervals before logging perf
70
71
int
PortTCP
;
// TCP Port to listen on
72
XrdInet
*
NetTCP
;
// -> Network Object
73
74
int
P_cpu
;
// % CPU Capacity in load factor
75
int
P_dsk
;
// % DSK Capacity in load factor
76
int
P_fuzz
;
// % Capacity to fuzz when comparing
77
int
P_gsdf
;
// % Global share default (0 -> no default)
78
int
P_gshr
;
// % Global share of requests allowed
79
int
P_io
;
// % I/O Capacity in load factor
80
int
P_load
;
// % MSC Capacity in load factor
81
int
P_mem
;
// % MEM Capacity in load factor
82
int
P_pag
;
// % PAG Capacity in load factor
83
84
int
DiskMin
;
// Minimum MB needed of space in a partition
85
int
DiskHWM
;
// Minimum MB needed of space to requalify
86
short
DiskMinP
;
// Minimum MB needed of space in a partition as %
87
short
DiskHWMP
;
// Minimum MB needed of space to requalify as %
88
int
DiskLinger
;
// Manager Only
89
int
DiskAsk
;
// Seconds between disk space reclaculations
90
int
DiskWT
;
// Seconds to defer client while waiting for space
91
int
DiskSS
;
// This is a staging server
92
int
DiskOK
;
// This configuration has data
93
94
int
sched_RR
;
// 1 -> Simply do round robin scheduling
95
int
doWait
;
// 1 -> Wait for a data end-point
96
97
XrdOucName2Name
*
xeq_N2N
;
// Server or Manager (non-null if library loaded)
98
XrdOucName2Name
*
lcl_N2N
;
// Server Only
99
100
char
*
ossLib
;
// -> oss library
101
char
*
ossParms
;
// -> oss library parameters
102
char
*
N2N_Lib
;
// Server Only
103
char
*
N2N_Parms
;
// Server Only
104
char
*
LocalRoot
;
// Server Only
105
char
*
RemotRoot
;
// Manager
106
char
*
myPaths
;
// Exported paths
107
short
RepStats
;
// Statistics to report (see RepStat_xxx below)
108
char
TimeZone
;
// Time zone we are in (|0x80 -> east of UTC)
109
char
myRoleID
;
110
char
myRType
[4];
111
char
*
myRole
;
112
const
char
*
myProg
;
113
const
char
*
myName
;
114
const
char
*
myDomain
;
115
const
char
*
myInsName
;
116
const
char
*
myInstance
;
117
const
char
*
mySID
;
118
XrdOucTList
*
ManList
;
// From manager directive
119
XrdOucTList
*
NanList
;
// From manager directive (managers only)
120
121
XrdOss
*
ossFS
;
// The filsesystem interface
122
XrdOucProg
*
ProgCH
;
// Server only chmod
123
XrdOucProg
*
ProgMD
;
// Server only mkdir
124
XrdOucProg
*
ProgMP
;
// Server only mkpath
125
XrdOucProg
*
ProgMV
;
// Server only mv
126
XrdOucProg
*
ProgRD
;
// Server only rmdir
127
XrdOucProg
*
ProgRM
;
// Server only rm
128
XrdOucProg
*
ProgTR
;
// Server only trunc
129
130
unsigned
long
long
DirFlags
;
131
XrdCmsPList_Anchor
PathList
;
132
XrdOucPListAnchor
PexpList
;
133
XrdNetSocket
*
AdminSock
;
134
XrdNetSocket
*
AnoteSock
;
135
XrdNetSocket
*
RedirSock
;
136
XrdNetSecurity
*
Police
;
137
struct
sockaddr
myAddr
;
138
139
XrdCmsConfig
() :
XrdJob
(
"cmsd startup"
) {
ConfigDefaults
();}
140
~XrdCmsConfig
() {}
141
142
// RepStats value via 'cms.repstats" directive
143
//
144
static
const
int
RepStat_frq
= 0x0001;
// Fast Response Queue
145
static
const
int
RepStat_shr
= 0x0002;
// Share
146
static
const
int
RepStat_All
= 0xffff;
// All
147
148
private
:
149
150
void
ConfigDefaults
(
void
);
151
int
ConfigN2N
(
void
);
152
int
ConfigOSS
(
void
);
153
int
ConfigProc
(
int
getrole=0);
154
int
isExec
(
XrdSysError
*eDest,
const
char
*ptype,
char
*prog);
155
int
MergeP
(
void
);
156
int
PidFile
(
void
);
157
int
setupManager
(
void
);
158
int
setupServer
(
void
);
159
char
*
setupSid
();
160
int
setupXmi
(
void
);
161
void
Usage
(
int
rc);
162
int
xapath
(
XrdSysError
*edest,
XrdOucStream
&CFile);
163
int
xallow
(
XrdSysError
*edest,
XrdOucStream
&CFile);
164
int
Fsysadd
(
XrdSysError
*edest,
int
chk,
char
*fn);
165
int
xdelay
(
XrdSysError
*edest,
XrdOucStream
&CFile);
166
int
xdefs
(
XrdSysError
*edest,
XrdOucStream
&CFile);
167
int
xdfs
(
XrdSysError
*edest,
XrdOucStream
&CFile);
168
int
xexpo
(
XrdSysError
*edest,
XrdOucStream
&CFile);
169
int
xfsxq
(
XrdSysError
*edest,
XrdOucStream
&CFile);
170
int
xfxhld
(
XrdSysError
*edest,
XrdOucStream
&CFile);
171
int
xlclrt
(
XrdSysError
*edest,
XrdOucStream
&CFile);
172
int
xmang
(
XrdSysError
*edest,
XrdOucStream
&CFile);
173
int
xnml
(
XrdSysError
*edest,
XrdOucStream
&CFile);
174
int
xolib
(
XrdSysError
*edest,
XrdOucStream
&CFile);
175
int
xperf
(
XrdSysError
*edest,
XrdOucStream
&CFile);
176
int
xpidf
(
XrdSysError
*edest,
XrdOucStream
&CFile);
177
int
xping
(
XrdSysError
*edest,
XrdOucStream
&CFile);
178
int
xprep
(
XrdSysError
*edest,
XrdOucStream
&CFile);
179
int
xprepm
(
XrdSysError
*edest,
XrdOucStream
&CFile);
180
int
xreps
(
XrdSysError
*edest,
XrdOucStream
&CFile);
181
int
xrmtrt
(
XrdSysError
*edest,
XrdOucStream
&CFile);
182
int
xrole
(
XrdSysError
*edest,
XrdOucStream
&CFile);
183
int
xsched
(
XrdSysError
*edest,
XrdOucStream
&CFile);
184
int
xsecl
(
XrdSysError
*edest,
XrdOucStream
&CFile);
185
int
xspace
(
XrdSysError
*edest,
XrdOucStream
&CFile);
186
int
xtrace
(
XrdSysError
*edest,
XrdOucStream
&CFile);
187
int
xxmi
(
XrdSysError
*edest,
XrdOucStream
&CFile);
188
189
XrdInet
*
NetTCPr
;
// Network for supervisors
190
char
*
AdminPath
;
191
int
AdminMode
;
192
char
*
pidPath
;
193
char
*
ConfigFN
;
194
char
**
inArgv
;
195
int
inArgc
;
196
char
*
SecLib
;
197
char
*
XmiPath
;
198
char
*
XmiParms
;
199
int
isManager
;
200
int
isMeta
;
201
int
isPeer
;
202
int
isProxy
;
203
int
isServer
;
204
int
isSolo
;
205
char
*
perfpgm
;
206
int
perfint
;
207
int
cachelife
;
208
int
pendplife
;
209
int
FSlim
;
210
};
211
namespace
XrdCms
212
{
213
extern
XrdCmsAdmin
Admin
;
214
extern
XrdCmsConfig
Config
;
215
extern
XrdScheduler
*
Sched
;
216
extern
XrdCmsXmi
*
Xmi_Chmod
;
217
extern
XrdCmsXmi
*
Xmi_Load
;
218
extern
XrdCmsXmi
*
Xmi_Mkdir
;
219
extern
XrdCmsXmi
*
Xmi_Mkpath
;
220
extern
XrdCmsXmi
*
Xmi_Prep
;
221
extern
XrdCmsXmi
*
Xmi_Rename
;
222
extern
XrdCmsXmi
*
Xmi_Remdir
;
223
extern
XrdCmsXmi
*
Xmi_Remove
;
224
extern
XrdCmsXmi
*
Xmi_Select
;
225
extern
XrdCmsXmi
*
Xmi_Space
;
226
extern
XrdCmsXmi
*
Xmi_Stat
;
227
}
228
#endif
Generated by
1.8.1.2