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
/* This file is part of the XRootD software suite. */
13
/* */
14
/* XRootD is free software: you can redistribute it and/or modify it under */
15
/* the terms of the GNU Lesser General Public License as published by the */
16
/* Free Software Foundation, either version 3 of the License, or (at your */
17
/* option) any later version. */
18
/* */
19
/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22
/* License for more details. */
23
/* */
24
/* You should have received a copy of the GNU Lesser General Public License */
25
/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26
/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27
/* */
28
/* The copyright holder's institutional names and contributor's names may not */
29
/* be used to endorse or promote products derived from this software without */
30
/* specific prior written permission of the institution or contributor. */
31
/******************************************************************************/
32
33
#include <stdlib.h>
34
#include <sys/socket.h>
35
36
#include "
Xrd/XrdJob.hh
"
37
#include "
XrdCms/XrdCmsPList.hh
"
38
#include "
XrdCms/XrdCmsTypes.hh
"
39
#include "
XrdOuc/XrdOucPList.hh
"
40
#include "
XrdOuc/XrdOucTList.hh
"
41
42
class
XrdInet
;
43
class
XrdScheduler
;
44
class
XrdNetSecurity
;
45
class
XrdNetSocket
;
46
class
XrdOss
;
47
class
XrdSysError
;
48
class
XrdOucName2Name
;
49
class
XrdOucProg
;
50
class
XrdOucStream
;
51
class
XrdCmsAdmin
;
52
class
XrdCmsXmi
;
53
54
struct
XrdVersionInfo
;
55
56
class
XrdCmsConfig
:
public
XrdJob
57
{
58
public
:
59
60
int
Configure1
(
int
argc,
char
**argv,
char
*cfn);
61
int
Configure2
();
62
int
ConfigXeq
(
char
*var,
XrdOucStream
&CFile,
XrdSysError
*
eDest
);
63
void
DoIt
();
64
int
GenLocalPath
(
const
char
*oldp,
char
*newp);
65
int
asManager
() {
return
isManager
;}
66
int
asMetaMan
() {
return
isManager
&&
isMeta
;}
67
int
asPeer
() {
return
isPeer
;}
68
int
asProxy
() {
return
isProxy
;}
69
int
asServer
() {
return
isServer
;}
70
int
asSolo
() {
return
isSolo
;}
71
72
int
LUPDelay
;
// Maximum delay at look-up
73
int
LUPHold
;
// Maximum hold at look-up (in millisconds)
74
int
DRPDelay
;
// Maximum delay for dropping an offline server
75
int
PSDelay
;
// Maximum delay time before peer is selected
76
int
RWDelay
;
// R/W lookup delay handling (0 | 1 | 2)
77
int
QryDelay
;
// Query Response Deadline
78
int
QryMinum
;
// Query Response Deadline Minimum Available
79
int
SRVDelay
;
// Minimum delay at startup
80
int
SUPCount
;
// Minimum server count
81
int
SUPLevel
;
// Minimum server count as floating percentage
82
int
SUPDelay
;
// Maximum delay when server count falls below min
83
int
SUSDelay
;
// Maximum delay when suspended
84
int
MaxLoad
;
// Maximum load
85
int
MaxDelay
;
// Maximum load delay
86
int
MsgTTL
;
// Maximum msg lifetime
87
int
RefReset
;
// Min seconds before a global ref count reset
88
int
RefTurn
;
// Min references before a global ref count reset
89
int
AskPerf
;
// Seconds between perf queries
90
int
AskPing
;
// Number of ping requests per AskPerf window
91
int
LogPerf
;
// AskPerf intervals before logging perf
92
93
int
PortTCP
;
// TCP Port to listen on
94
XrdInet
*
NetTCP
;
// -> Network Object
95
96
int
P_cpu
;
// % CPU Capacity in load factor
97
int
P_dsk
;
// % DSK Capacity in load factor
98
int
P_fuzz
;
// % Capacity to fuzz when comparing
99
int
P_gsdf
;
// % Global share default (0 -> no default)
100
int
P_gshr
;
// % Global share of requests allowed
101
int
P_io
;
// % I/O Capacity in load factor
102
int
P_load
;
// % MSC Capacity in load factor
103
int
P_mem
;
// % MEM Capacity in load factor
104
int
P_pag
;
// % PAG Capacity in load factor
105
106
int
DiskMin
;
// Minimum MB needed of space in a partition
107
int
DiskHWM
;
// Minimum MB needed of space to requalify
108
short
DiskMinP
;
// Minimum MB needed of space in a partition as %
109
short
DiskHWMP
;
// Minimum MB needed of space to requalify as %
110
int
DiskLinger
;
// Manager Only
111
int
DiskAsk
;
// Seconds between disk space reclaculations
112
int
DiskWT
;
// Seconds to defer client while waiting for space
113
int
DiskSS
;
// This is a staging server
114
int
DiskOK
;
// This configuration has data
115
116
int
sched_RR
;
// 1 -> Simply do round robin scheduling
117
int
doWait
;
// 1 -> Wait for a data end-point
118
119
int
adsPort
;
// Alternate server port
120
int
adsMon
;
// Alternate server monitoring
121
char
*
adsProt
;
// Alternate server protocol
122
123
XrdVersionInfo
*
myVInfo
;
// xrootd version used in compilation
124
125
XrdOucName2Name
*
xeq_N2N
;
// Server or Manager (non-null if library loaded)
126
XrdOucName2Name
*
lcl_N2N
;
// Server Only
127
128
char
*
ossLib
;
// -> oss library
129
char
*
ossParms
;
// -> oss library parameters
130
char
*
N2N_Lib
;
// Server Only
131
char
*
N2N_Parms
;
// Server Only
132
char
*
LocalRoot
;
// Server Only
133
char
*
RemotRoot
;
// Manager
134
char
*
myPaths
;
// Exported paths
135
short
RepStats
;
// Statistics to report (see RepStat_xxx below)
136
char
TimeZone
;
// Time zone we are in (|0x80 -> east of UTC)
137
char
myRoleID
;
138
char
myRType
[4];
139
char
*
myRole
;
140
const
char
*
myProg
;
141
const
char
*
myName
;
142
const
char
*
myDomain
;
143
const
char
*
myInsName
;
144
const
char
*
myInstance
;
145
const
char
*
mySID
;
146
XrdOucTList
*
ManList
;
// From manager directive
147
XrdOucTList
*
NanList
;
// From manager directive (managers only)
148
149
XrdOss
*
ossFS
;
// The filsesystem interface
150
XrdOucProg
*
ProgCH
;
// Server only chmod
151
XrdOucProg
*
ProgMD
;
// Server only mkdir
152
XrdOucProg
*
ProgMP
;
// Server only mkpath
153
XrdOucProg
*
ProgMV
;
// Server only mv
154
XrdOucProg
*
ProgRD
;
// Server only rmdir
155
XrdOucProg
*
ProgRM
;
// Server only rm
156
XrdOucProg
*
ProgTR
;
// Server only trunc
157
158
unsigned
long
long
DirFlags
;
159
XrdCmsPList_Anchor
PathList
;
160
XrdOucPListAnchor
PexpList
;
161
XrdNetSocket
*
AdminSock
;
162
XrdNetSocket
*
AnoteSock
;
163
XrdNetSocket
*
RedirSock
;
164
XrdNetSecurity
*
Police
;
165
struct
sockaddr
myAddr
;
166
167
XrdCmsConfig
() :
XrdJob
(
"cmsd startup"
) {
ConfigDefaults
();}
168
~XrdCmsConfig
() {}
169
170
// RepStats value via 'cms.repstats" directive
171
//
172
static
const
int
RepStat_frq
= 0x0001;
// Fast Response Queue
173
static
const
int
RepStat_shr
= 0x0002;
// Share
174
static
const
int
RepStat_All
= 0xffff;
// All
175
176
private
:
177
178
void
ConfigDefaults
(
void
);
179
int
ConfigN2N
(
void
);
180
int
ConfigOSS
(
void
);
181
int
ConfigProc
(
int
getrole=0);
182
int
isExec
(
XrdSysError
*eDest,
const
char
*ptype,
char
*prog);
183
int
MergeP
(
void
);
184
int
PidFile
(
void
);
185
int
setupManager
(
void
);
186
int
setupServer
(
void
);
187
char
*
setupSid
();
188
int
setupXmi
(
void
);
189
void
Usage
(
int
rc);
190
int
xapath
(
XrdSysError
*edest,
XrdOucStream
&CFile);
191
int
xallow
(
XrdSysError
*edest,
XrdOucStream
&CFile);
192
int
xaltds
(
XrdSysError
*edest,
XrdOucStream
&CFile);
193
int
Fsysadd
(
XrdSysError
*edest,
int
chk,
char
*fn);
194
int
xdelay
(
XrdSysError
*edest,
XrdOucStream
&CFile);
195
int
xdefs
(
XrdSysError
*edest,
XrdOucStream
&CFile);
196
int
xdfs
(
XrdSysError
*edest,
XrdOucStream
&CFile);
197
int
xexpo
(
XrdSysError
*edest,
XrdOucStream
&CFile);
198
int
xfsxq
(
XrdSysError
*edest,
XrdOucStream
&CFile);
199
int
xfxhld
(
XrdSysError
*edest,
XrdOucStream
&CFile);
200
int
xlclrt
(
XrdSysError
*edest,
XrdOucStream
&CFile);
201
int
xmang
(
XrdSysError
*edest,
XrdOucStream
&CFile);
202
int
xnml
(
XrdSysError
*edest,
XrdOucStream
&CFile);
203
int
xolib
(
XrdSysError
*edest,
XrdOucStream
&CFile);
204
int
xperf
(
XrdSysError
*edest,
XrdOucStream
&CFile);
205
int
xpidf
(
XrdSysError
*edest,
XrdOucStream
&CFile);
206
int
xping
(
XrdSysError
*edest,
XrdOucStream
&CFile);
207
int
xprep
(
XrdSysError
*edest,
XrdOucStream
&CFile);
208
int
xprepm
(
XrdSysError
*edest,
XrdOucStream
&CFile);
209
int
xreps
(
XrdSysError
*edest,
XrdOucStream
&CFile);
210
int
xrmtrt
(
XrdSysError
*edest,
XrdOucStream
&CFile);
211
int
xrole
(
XrdSysError
*edest,
XrdOucStream
&CFile);
212
int
xsched
(
XrdSysError
*edest,
XrdOucStream
&CFile);
213
int
xsecl
(
XrdSysError
*edest,
XrdOucStream
&CFile);
214
int
xspace
(
XrdSysError
*edest,
XrdOucStream
&CFile);
215
int
xtrace
(
XrdSysError
*edest,
XrdOucStream
&CFile);
216
int
xxmi
(
XrdSysError
*edest,
XrdOucStream
&CFile);
217
218
XrdInet
*
NetTCPr
;
// Network for supervisors
219
char
*
AdminPath
;
220
int
AdminMode
;
221
char
*
pidPath
;
222
char
*
ConfigFN
;
223
char
**
inArgv
;
224
int
inArgc
;
225
char
*
SecLib
;
226
char
*
XmiPath
;
227
char
*
XmiParms
;
228
int
isManager
;
229
int
isMeta
;
230
int
isPeer
;
231
int
isProxy
;
232
int
isServer
;
233
int
isSolo
;
234
char
*
perfpgm
;
235
int
perfint
;
236
int
cachelife
;
237
int
pendplife
;
238
int
FSlim
;
239
};
240
namespace
XrdCms
241
{
242
extern
XrdCmsAdmin
Admin
;
243
extern
XrdCmsConfig
Config
;
244
extern
XrdScheduler
*
Sched
;
245
extern
XrdCmsXmi
*
Xmi_Chmod
;
246
extern
XrdCmsXmi
*
Xmi_Load
;
247
extern
XrdCmsXmi
*
Xmi_Mkdir
;
248
extern
XrdCmsXmi
*
Xmi_Mkpath
;
249
extern
XrdCmsXmi
*
Xmi_Prep
;
250
extern
XrdCmsXmi
*
Xmi_Rename
;
251
extern
XrdCmsXmi
*
Xmi_Remdir
;
252
extern
XrdCmsXmi
*
Xmi_Remove
;
253
extern
XrdCmsXmi
*
Xmi_Select
;
254
extern
XrdCmsXmi
*
Xmi_Space
;
255
extern
XrdCmsXmi
*
Xmi_Stat
;
256
}
257
#endif
Generated by
1.8.3.1