00001 #ifndef _CMS_CONFIG_H_
00002 #define _CMS_CONFIG_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <stdlib.h>
00016 #include <sys/socket.h>
00017
00018 #include "Xrd/XrdJob.hh"
00019 #include "XrdCms/XrdCmsPList.hh"
00020 #include "XrdCms/XrdCmsTypes.hh"
00021 #include "XrdOuc/XrdOucPList.hh"
00022 #include "XrdOuc/XrdOucTList.hh"
00023
00024 class XrdInet;
00025 class XrdScheduler;
00026 class XrdNetSecurity;
00027 class XrdNetSocket;
00028 class XrdOss;
00029 class XrdSysError;
00030 class XrdOucName2Name;
00031 class XrdOucProg;
00032 class XrdOucStream;
00033 class XrdCmsAdmin;
00034 class XrdCmsXmi;
00035
00036 class XrdCmsConfig : public XrdJob
00037 {
00038 public:
00039
00040 int Configure1(int argc, char **argv, char *cfn);
00041 int Configure2();
00042 int ConfigXeq(char *var, XrdOucStream &CFile, XrdSysError *eDest);
00043 void DoIt();
00044 int GenLocalPath(const char *oldp, char *newp);
00045 int asManager() {return isManager;}
00046 int asPeer() {return isPeer;}
00047 int asProxy() {return isProxy;}
00048 int asServer() {return isServer;}
00049 int asSolo() {return isSolo;}
00050
00051 int LUPDelay;
00052 int LUPHold;
00053 int DRPDelay;
00054 int PSDelay;
00055 int RWDelay;
00056 int SRVDelay;
00057 int SUPCount;
00058 int SUPLevel;
00059 int SUPDelay;
00060 int SUSDelay;
00061 int MaxLoad;
00062 int MaxDelay;
00063 int MsgTTL;
00064 int RefReset;
00065 int RefTurn;
00066 int AskPerf;
00067 int AskPing;
00068 int LogPerf;
00069
00070 int PortTCP;
00071 XrdInet *NetTCP;
00072
00073 int P_cpu;
00074 int P_dsk;
00075 int P_fuzz;
00076 int P_io;
00077 int P_load;
00078 int P_mem;
00079 int P_pag;
00080
00081 int DiskMin;
00082 int DiskHWM;
00083 short DiskMinP;
00084 short DiskHWMP;
00085 int DiskLinger;
00086 int DiskAsk;
00087 int DiskWT;
00088 int DiskSS;
00089 int DiskOK;
00090
00091 int sched_RR;
00092 int doWait;
00093
00094 XrdOucName2Name *xeq_N2N;
00095 XrdOucName2Name *lcl_N2N;
00096
00097 char *ossLib;
00098 char *ossParms;
00099 char *N2N_Lib;
00100 char *N2N_Parms;
00101 char *LocalRoot;
00102 char *RemotRoot;
00103 char *myPaths;
00104 const char *myProg;
00105 const char *myName;
00106 const char *myDomain;
00107 const char *myInsName;
00108 const char *myInstance;
00109 const char *mySID;
00110 XrdOucTList *ManList;
00111 XrdOucTList *NanList;
00112
00113 XrdOss *ossFS;
00114 XrdOucProg *ProgCH;
00115 XrdOucProg *ProgMD;
00116 XrdOucProg *ProgMP;
00117 XrdOucProg *ProgMV;
00118 XrdOucProg *ProgRD;
00119 XrdOucProg *ProgRM;
00120 XrdOucProg *ProgTR;
00121
00122 unsigned long long DirFlags;
00123 XrdCmsPList_Anchor PathList;
00124 XrdOucPListAnchor PexpList;
00125 XrdNetSocket *AdminSock;
00126 XrdNetSocket *AnoteSock;
00127 XrdNetSocket *RedirSock;
00128 XrdNetSecurity *Police;
00129 struct sockaddr myAddr;
00130
00131 XrdCmsConfig() : XrdJob("cmsd startup") {ConfigDefaults();}
00132 ~XrdCmsConfig() {}
00133
00134 private:
00135
00136 void ConfigDefaults(void);
00137 int ConfigN2N(void);
00138 int ConfigOSS(void);
00139 int ConfigProc(int getrole=0);
00140 int isExec(XrdSysError *eDest, const char *ptype, char *prog);
00141 int MergeP(void);
00142 int PidFile(void);
00143 int setupManager(void);
00144 int setupServer(void);
00145 char *setupSid();
00146 int setupXmi(void);
00147 void Usage(int rc);
00148 int xapath(XrdSysError *edest, XrdOucStream &CFile);
00149 int xallow(XrdSysError *edest, XrdOucStream &CFile);
00150 int Fsysadd(XrdSysError *edest, int chk, char *fn);
00151 int xdelay(XrdSysError *edest, XrdOucStream &CFile);
00152 int xdefs(XrdSysError *edest, XrdOucStream &CFile);
00153 int xexpo(XrdSysError *edest, XrdOucStream &CFile);
00154 int xfsxq(XrdSysError *edest, XrdOucStream &CFile);
00155 int xfxhld(XrdSysError *edest, XrdOucStream &CFile);
00156 int xlclrt(XrdSysError *edest, XrdOucStream &CFile);
00157 int xmang(XrdSysError *edest, XrdOucStream &CFile);
00158 int xnml(XrdSysError *edest, XrdOucStream &CFile);
00159 int xolib(XrdSysError *edest, XrdOucStream &CFile);
00160 int xperf(XrdSysError *edest, XrdOucStream &CFile);
00161 int xpidf(XrdSysError *edest, XrdOucStream &CFile);
00162 int xping(XrdSysError *edest, XrdOucStream &CFile);
00163 int xprep(XrdSysError *edest, XrdOucStream &CFile);
00164 int xprepm(XrdSysError *edest, XrdOucStream &CFile);
00165 int xrmtrt(XrdSysError *edest, XrdOucStream &CFile);
00166 int xrole(XrdSysError *edest, XrdOucStream &CFile);
00167 int xsched(XrdSysError *edest, XrdOucStream &CFile);
00168 int xsecl(XrdSysError *edest, XrdOucStream &CFile);
00169 int xspace(XrdSysError *edest, XrdOucStream &CFile);
00170 int xtrace(XrdSysError *edest, XrdOucStream &CFile);
00171 int xxmi(XrdSysError *edest, XrdOucStream &CFile);
00172
00173 XrdInet *NetTCPr;
00174 char *AdminPath;
00175 int AdminMode;
00176 char *pidPath;
00177 char *ConfigFN;
00178 char **inArgv;
00179 int inArgc;
00180 char *SecLib;
00181 char *XmiPath;
00182 char *XmiParms;
00183 int isManager;
00184 int isMeta;
00185 int isPeer;
00186 int isProxy;
00187 int isServer;
00188 int isSolo;
00189 char *myRole;
00190 char *perfpgm;
00191 int perfint;
00192 int cachelife;
00193 int pendplife;
00194 };
00195 namespace XrdCms
00196 {
00197 extern XrdCmsAdmin Admin;
00198 extern XrdCmsConfig Config;
00199 extern XrdScheduler *Sched;
00200 extern XrdCmsXmi *Xmi_Chmod;
00201 extern XrdCmsXmi *Xmi_Load;
00202 extern XrdCmsXmi *Xmi_Mkdir;
00203 extern XrdCmsXmi *Xmi_Mkpath;
00204 extern XrdCmsXmi *Xmi_Prep;
00205 extern XrdCmsXmi *Xmi_Rename;
00206 extern XrdCmsXmi *Xmi_Remdir;
00207 extern XrdCmsXmi *Xmi_Remove;
00208 extern XrdCmsXmi *Xmi_Select;
00209 extern XrdCmsXmi *Xmi_Space;
00210 extern XrdCmsXmi *Xmi_Stat;
00211 }
00212 #endif