XRootD
Loading...
Searching...
No Matches
XrdCmsClientConfig Class Reference

#include <XrdCmsClientConfig.hh>

Collaboration diagram for XrdCmsClientConfig:

Public Types

enum  {
  FailOver = 'f' ,
  RoundRob = 'r'
}
enum  configHow {
  configMeta = 1 ,
  configNorm = 2 ,
  configProxy = 4
}
enum  configWhat {
  configMan = 1 ,
  configSuper = 2 ,
  configServer = 4
}

Public Member Functions

 XrdCmsClientConfig (XrdCmsPerfMon *cmsmon=0)
 ~XrdCmsClientConfig ()
int Configure (const char *cfn, configWhat What, configHow How)

Public Attributes

char * cidTag
char * CMSPath
int ConWait
int FwdWait
int haveMeta
XrdOucTListManList
const char * myHost
const char * myName
char * myVNID
XrdOucTListPanList
int perfInt
XrdCmsPerfMonperfMon
int PrepWait
int RepDelay
int RepNone
int RepWait
int RepWaitMS
unsigned char SMode
unsigned char SModeP

Detailed Description

Definition at line 43 of file XrdCmsClientConfig.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
FailOver 
RoundRob 

Definition at line 74 of file XrdCmsClientConfig.hh.

◆ configHow

Enumerator
configMeta 
configNorm 
configProxy 

Definition at line 47 of file XrdCmsClientConfig.hh.

◆ configWhat

Enumerator
configMan 
configSuper 
configServer 

Definition at line 48 of file XrdCmsClientConfig.hh.

Constructor & Destructor Documentation

◆ XrdCmsClientConfig()

XrdCmsClientConfig::XrdCmsClientConfig ( XrdCmsPerfMon * cmsmon = 0)
inline

Definition at line 76 of file XrdCmsClientConfig.hh.

77 : ConWait(10), RepWait(3), RepWaitMS(3000),
78 RepDelay(5), RepNone(8), PrepWait(33),
79 FwdWait(0), haveMeta(0), CMSPath(0),
80 myHost(0), myName(0), myVNID(0),
81 cidTag(0), ManList(0), PanList(0),
82 perfMon(0), perfInt(3*60),
84 VNID_Lib(0), VNID_Parms(0),
85 prfLib(0), prfParms(0), cmsMon(cmsmon),
86 isMeta(false), isMan(false), isServer(false) {}
XrdCmsPerfMon * perfMon

References cidTag, CMSPath, ConWait, FailOver, FwdWait, haveMeta, ManList, myHost, myName, myVNID, PanList, perfInt, perfMon, PrepWait, RepDelay, RepNone, RepWait, RepWaitMS, SMode, and SModeP.

◆ ~XrdCmsClientConfig()

XrdCmsClientConfig::~XrdCmsClientConfig ( )

Definition at line 74 of file XrdCmsClientConfig.cc.

75{
76 XrdOucTList *tp, *tpp;
77
78 tpp = ManList;
79 while((tp = tpp)) {tpp = tp->next; delete tp;}
80 tpp = PanList;
81 while((tp = tpp)) {tpp = tp->next; delete tp;}
82
83 if (VNID_Lib) free(VNID_Lib);
84 if (VNID_Parms) free(VNID_Parms);
85 if (prfLib) free(prfLib);
86 if (prfParms) free(prfParms);
87}
XrdOucTList * next

References ManList, XrdOucTList::next, and PanList.

Member Function Documentation

◆ Configure()

int XrdCmsClientConfig::Configure ( const char * cfn,
configWhat What,
configHow How )

Definition at line 93 of file XrdCmsClientConfig.cc.

95{
96/*
97 Function: Establish configuration at start up time.
98
99 Input: None.
100
101 Output: 0 upon success or !0 otherwise.
102*/
103 XrdOucTList *tpe, *tpl;
104 int i, NoGo = 0;
105 const char *eText = 0;
106 char buff[256], *slash, *temp, *bP, sfx;
107
108// Preset some values
109//
110 myHost = getenv("XRDHOST");
111 if (!myHost) myHost = "localhost";
113 CMSPath = getenv("XRDADMINPATH");
114 if (CMSPath && *CMSPath) CMSPath = strdup(CMSPath);
116 isMeta = (How & configMeta) != 0;
117 isMan = (What& configMan) != 0;
118 isServer = What == configServer;
119
120// Process the configuration file
121//
122 if (!(NoGo = ConfigProc(cfn)) && isMan)
123 {if (How & configProxy) eText = (PanList ? 0 : "Proxy manager");
124 else if (!ManList)
125 eText = (How & configMeta ? "Meta manager" : "Manager");
126 if (eText) {Say.Emsg("Config", eText, "not specified."); NoGo=1;}
127 }
128
129// Reset tracing options
130//
131 if (getenv("XRDDEBUG")) Trace.What = TRACE_ALL;
132
133// Set proper local socket path
134//
135 temp = XrdOucUtils::genPath(CMSPath, (const char *)0, ".olb");
136 free(CMSPath); CMSPath = temp;
137 XrdOucEnv::Export("XRDCMSPATH", temp);
138 XrdOucEnv::Export("XRDOLBPATH", temp); //Compatibility
139
140// Determine what type of role we are playing
141//
142 if (What & configServer) sfx = 's';
143 else if (What & configSuper) sfx = 'u';
144 else sfx = 'm';
145
146// Determine which manager list we will be using
147//
148 if (How & configProxy)
149 {sfx = toupper(sfx);
150 tpl = PanList;
151 } else tpl = ManList;
152
153// Generate the system ID for this configuration.
154//
155 if (!ConfigSID(cfn, tpl, sfx)) NoGo = 1;
156
157// Export the manager list
158//
159 if (tpl)
160 {i = 0; tpe = tpl;
161 while(tpe) {i += strlen(tpe->text) + 9; tpe = tpe->next;}
162 bP = temp = (char *)malloc(i);
163 while(tpl)
164 {bP += sprintf(bP, "%s:%d ", tpl->text, tpl->val);
165 tpl = tpl->next;
166 }
167 *(bP-1) = '\0';
168 XrdOucEnv::Export("XRDCMSMAN", temp); free(temp);
169 }
170
171// Construct proper communications path for a supervisor node
172//
173 i = strlen(CMSPath);
174 if (What & configSuper)
175 {while((tpl = ManList)) {ManList = tpl->next; delete tpl;}
176 slash = (CMSPath[i-1] == '/' ? (char *)"" : (char *)"/");
177 sprintf(buff, "%s%solbd.super", CMSPath, slash);
178 ManList = new XrdOucTList(buff, -1, 0);
180 }
181
182// Construct proper old communication path for a target node
183//
184 temp = (What & (configMan|configSuper) ? (char *)"nimda" : (char *)"admin");
185 slash = (CMSPath[i-1] == '/' ? (char *)"" : (char *)"/");
186 sprintf(buff, "%s%solbd.%s", CMSPath, slash, temp);
187 free(CMSPath); CMSPath = strdup(buff);
188
189 RepWaitMS = RepWait * 1000;
190
191// Initialize the msg queue
192//
194 {Say.Emsg("Config", ENOMEM, "allocate initial msg objects");
195 NoGo = 1;
196 }
197
198// Load the performance monitor (server pre-screened) if specified.
199//
200 if (prfLib && cmsMon)
202 if (!perfMon || !perfMon->Configure(cfn, prfParms, *Say.logger(),
203 *cmsMon, 0, false))
204 {Say.Emsg("Config","Unable to configure performance monitor plugin.");
205 NoGo = 1;
206 }
207 }
208
209 return NoGo;
210}
#define TRACE_ALL
Definition XrdTrace.hh:35
static int Init()
static XrdCmsPerfMon * loadPerfMon(XrdSysError *eDest, const char *libPath, XrdVersionInfo &urVer)
Load the performance monitor plugin.
static int Export(const char *Var, const char *Val)
Definition XrdOucEnv.cc:170
static char * genPath(const char *path, const char *inst, const char *psfx=0)
static const char * InstName(int TranOpt=0)
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)
XrdSysLogger * logger(XrdSysLogger *lp=0)
XrdVersionInfo myVersion
XrdSysError Say
XrdSysTrace Trace("cms")

References CMSPath, configMan, configMeta, configProxy, configServer, configSuper, XrdOucEnv::Export(), FailOver, XrdOucUtils::genPath(), XrdCmsClientMsg::Init(), XrdOucUtils::InstName(), XrdCmsUtils::loadPerfMon(), ManList, myHost, myName, XrdCms::myVersion, XrdOucTList::next, PanList, perfMon, RepWait, RepWaitMS, XrdCms::Say, SMode, SModeP, XrdOucTList::text, XrdCms::Trace, and TRACE_ALL.

Referenced by XrdCmsFinderRMT::Configure(), and XrdCmsFinderTRG::Configure().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ cidTag

char* XrdCmsClientConfig::cidTag

Definition at line 65 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig().

◆ CMSPath

char* XrdCmsClientConfig::CMSPath

◆ ConWait

int XrdCmsClientConfig::ConWait

Definition at line 52 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and XrdCmsFinderRMT::Configure().

◆ FwdWait

int XrdCmsClientConfig::FwdWait

Definition at line 58 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and XrdCmsFinderRMT::Configure().

◆ haveMeta

int XrdCmsClientConfig::haveMeta

Definition at line 59 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and XrdCmsFinderRMT::Configure().

◆ ManList

◆ myHost

const char* XrdCmsClientConfig::myHost

Definition at line 62 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and Configure().

◆ myName

const char* XrdCmsClientConfig::myName

Definition at line 63 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and Configure().

◆ myVNID

char* XrdCmsClientConfig::myVNID

◆ PanList

◆ perfInt

int XrdCmsClientConfig::perfInt

Definition at line 70 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and XrdCmsFinderTRG::Configure().

◆ perfMon

XrdCmsPerfMon* XrdCmsClientConfig::perfMon

Definition at line 69 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), Configure(), and XrdCmsFinderTRG::Configure().

◆ PrepWait

int XrdCmsClientConfig::PrepWait

Definition at line 57 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and XrdCmsFinderRMT::Configure().

◆ RepDelay

int XrdCmsClientConfig::RepDelay

Definition at line 55 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and XrdCmsFinderRMT::Configure().

◆ RepNone

int XrdCmsClientConfig::RepNone

Definition at line 56 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and XrdCmsFinderRMT::Configure().

◆ RepWait

int XrdCmsClientConfig::RepWait

Definition at line 53 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), Configure(), and XrdCmsFinderRMT::Configure().

◆ RepWaitMS

int XrdCmsClientConfig::RepWaitMS

Definition at line 54 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), and Configure().

◆ SMode

unsigned char XrdCmsClientConfig::SMode

Definition at line 71 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), Configure(), and XrdCmsFinderRMT::Configure().

◆ SModeP

unsigned char XrdCmsClientConfig::SModeP

Definition at line 72 of file XrdCmsClientConfig.hh.

Referenced by XrdCmsClientConfig(), Configure(), and XrdCmsFinderRMT::Configure().


The documentation for this class was generated from the following files: