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