• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

XrdOlbConfig.hh

Go to the documentation of this file.
00001 #ifndef _OLB_CONFIG_H_
00002 #define _OLB_CONFIG_H_
00003 /******************************************************************************/
00004 /*                                                                            */
00005 /*                       X r d O l d C o n f i g . h h                        */
00006 /*                                                                            */
00007 /* (C) 2003 by the Board of Trustees of the Leland Stanford, Jr., University  */
00008 /*                            All Rights Reserved                             */
00009 /*   Produced by Andrew Hanushevsky for Stanford University under contract    */
00010 /*                DE-AC03-76-SFO0515 with the Deprtment of Energy             */
00011 /******************************************************************************/
00012 
00013 //         $Id: XrdOlbConfig.hh,v 1.20 2007/07/31 02:25:13 abh Exp $
00014 
00015 #include <sys/socket.h>
00016 
00017 #include "Xrd/XrdJob.hh"
00018 #include "XrdOlb/XrdOlbPList.hh"
00019 #include "XrdOlb/XrdOlbTypes.hh"
00020 #include "XrdOuc/XrdOucPList.hh"
00021 #include "XrdOuc/XrdOucTList.hh"
00022   
00023 class XrdScheduler;
00024 class XrdInet;
00025 class XrdNetSecurity;
00026 class XrdNetSocket;
00027 class XrdNetWork;
00028 class XrdSysError;
00029 class XrdOucName2Name;
00030 class XrdOucProg;
00031 class XrdOucStream;
00032 class XrdOlbXmi;
00033 
00034 class XrdOlbConfig : 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   GenMsgID(char *oldmid, char *buff, int blen);
00044 int   inSuspend();
00045 int   inNoStage();
00046 int   asManager() {return isManager;}
00047 int   asPeer()    {return isPeer;}
00048 int   asProxy()   {return isProxy;}
00049 int   asServer()  {return isServer;}
00050 int   asSolo()    {return isSolo;}
00051 
00052 int         LUPDelay;     // Maximum delay at look-up
00053 int         LUPHold;      // Maximum hold  at look-up (in millisconds)
00054 int         DRPDelay;     // Maximum delay for dropping an offline server
00055 int         PSDelay;      // Maximum delay time before peer is selected
00056 int         SRVDelay;     // Minimum delay at startup
00057 int         SUPCount;     // Minimum server count
00058 int         SUPLevel;     // Minimum server count as floating percentage
00059 int         SUPDelay;     // Maximum delay when server count falls below min
00060 int         SUSDelay;     // Maximum delay when suspended
00061 int         MaxLoad;      // Maximum load
00062 int         MaxDelay;     // Maximum load delay
00063 int         MsgTTL;       // Maximum msg lifetime
00064 int         RefReset;     // Min seconds    before a global ref count reset
00065 int         RefTurn;      // Min references before a global ref count reset
00066 int         AskPerf;      // Seconds between perf queries
00067 int         AskPing;      // Number of ping requests per AskPerf window
00068 int         LogPerf;      // AskPerf intervals before logging perf
00069 
00070 int         PortTCP;      // TCP Port to listen on
00071 XrdInet    *NetTCP;       // -> Network Object
00072 
00073 int         P_cpu;        // % CPU Capacity in load factor
00074 int         P_fuzz;       // %     Capacity to fuzz when comparing
00075 int         P_io;         // % I/O Capacity in load factor
00076 int         P_load;       // % MSC Capacity in load factor
00077 int         P_mem;        // % MEM Capacity in load factor
00078 int         P_pag;        // % PAG Capacity in load factor
00079 
00080 long long   DiskMin;      // Minimum KB needed of space in a partition
00081 long long   DiskHWM;      // Minimum KB needed of space to requalify
00082 int         DiskLinger;   // Manager Only
00083 int         DiskAsk;      // Seconds between disk space reclaculations
00084 int         DiskWT;       // Seconds to defer client while waiting for space
00085 int         DiskSS;       // This is a staging server
00086 int         PrepOK;       // Prepare processing configured
00087 
00088 int         sched_RR;     // 1 -> Simply do round robin scheduling
00089 int         doWait;       // 1 -> Wait for a data end-point
00090 int         Disabled;     // 1 -> Delay director requests
00091 
00092 XrdOucName2Name *xeq_N2N; // Server or Manager (non-null if library loaded)
00093 XrdOucName2Name *lcl_N2N; // Server Only
00094 
00095 char        *N2N_Lib;     // Server Only
00096 char        *N2N_Parms;   // Server Only
00097 char        *LocalRoot;   // Server Only
00098 char        *RemotRoot;   // Manager
00099 char        *MsgGID;
00100 int          MsgGIDL;
00101 const char  *myProg;
00102 const char  *myName;
00103 const char  *myDomain;
00104 const char  *myInsName;
00105 const char  *myInstance;
00106 const char  *mySID;
00107 XrdOucTList *myManagers;  // From depricated subscribe directive
00108 XrdOucTList *ManList;     // From preferred  manager   directive
00109 
00110 char        *NoStageFile;
00111 char        *SuspendFile;
00112 
00113 XrdOucProg  *ProgCH;      // Server only chmod
00114 XrdOucProg  *ProgMD;      // Server only mkdir
00115 XrdOucProg  *ProgMP;      // Server only mkpath
00116 XrdOucProg  *ProgMV;      // Server only mv
00117 XrdOucProg  *ProgRD;      // Server only rmdir
00118 XrdOucProg  *ProgRM;      // Server only rm
00119 
00120 unsigned long long DirFlags;
00121 XrdOlbPList_Anchor PathList;
00122 XrdOucPListAnchor  PexpList;
00123 XrdNetSocket      *AdminSock;
00124 XrdNetSocket      *AnoteSock;
00125 XrdNetSocket      *RedirSock;
00126 XrdNetSecurity    *Police;
00127 struct sockaddr    myAddr;
00128 
00129       XrdOlbConfig() : XrdJob("olbd startup") {ConfigDefaults();}
00130      ~XrdOlbConfig() {}
00131 
00132 private:
00133 
00134 void ConfigDefaults(void);
00135 int  ConfigN2N(void);
00136 int  ConfigProc(int getrole=0);
00137 int  isExec(XrdSysError *eDest, const char *ptype, char *prog);
00138 int  MergeP(void);
00139 int  PidFile(void);
00140 int  setupManager(void);
00141 int  setupServer(void);
00142 int  setupXmi(void);
00143 void Usage(int rc);
00144 int  xapath(XrdSysError *edest, XrdOucStream &CFile);
00145 int  xallow(XrdSysError *edest, XrdOucStream &CFile);
00146 int  xcache(XrdSysError *edest, XrdOucStream &CFile);
00147 int  Fsysadd(XrdSysError *edest, int chk, char *fn);
00148 int  xdelay(XrdSysError *edest, XrdOucStream &CFile);
00149 int  xdefs(XrdSysError *edest, XrdOucStream &CFile);
00150 int  xexpo(XrdSysError *edest, XrdOucStream &CFile);
00151 int  xfsxq(XrdSysError *edest, XrdOucStream &CFile);
00152 int  xfxhld(XrdSysError *edest, XrdOucStream &CFile);
00153 int  xlclrt(XrdSysError *edest, XrdOucStream &CFile);
00154 int  xmang(XrdSysError *edest, XrdOucStream &CFile);
00155 int  xnml(XrdSysError *edest, XrdOucStream &CFile);
00156 int  xpath(XrdSysError *edest, XrdOucStream &CFile);
00157 int  xperf(XrdSysError *edest, XrdOucStream &CFile);
00158 int  xpidf(XrdSysError *edest, XrdOucStream &CFile);
00159 int  xping(XrdSysError *edest, XrdOucStream &CFile);
00160 int  xport(XrdSysError *edest, XrdOucStream &CFile);
00161 int  xprep(XrdSysError *edest, XrdOucStream &CFile);
00162 int  xprepm(XrdSysError *edest, XrdOucStream &CFile);
00163 int  xrmtrt(XrdSysError *edest, XrdOucStream &CFile);
00164 int  xrole(XrdSysError *edest, XrdOucStream &CFile);
00165 int  xsched(XrdSysError *edest, XrdOucStream &CFile);
00166 int  xspace(XrdSysError *edest, XrdOucStream &CFile);
00167 int  xsubs(XrdSysError *edest, XrdOucStream &CFile);
00168 int  xtrace(XrdSysError *edest, XrdOucStream &CFile);
00169 int  xxmi(XrdSysError *edest, XrdOucStream &CFile);
00170 
00171 XrdNetWork       *NetTCPr;     // Network for supervisors
00172 XrdOucTList      *monPath;     // cache directive paths
00173 XrdOucTList      *monPathP;    // path  directive paths (w or s only)
00174 char             *AdminPath;
00175 int               AdminMode;
00176 char             *pidPath;
00177 char             *ConfigFN;
00178 char            **inArgv;
00179 int               inArgc;
00180 char             *XmiPath;
00181 char             *XmiParms;
00182 int               isManager;
00183 int               isPeer;
00184 int               isProxy;
00185 int               isServer;
00186 int               isSolo;
00187 char             *myRole;
00188 char             *perfpgm;
00189 int               perfint;
00190 int               cachelife;
00191 int               pendplife;
00192 };
00193 
00194 namespace XrdOlb
00195 {
00196 extern    XrdScheduler *Sched;
00197 extern    XrdOlbConfig  Config;
00198 extern    XrdOlbXmi    *Xmi_Chmod;
00199 extern    XrdOlbXmi    *Xmi_Load;
00200 extern    XrdOlbXmi    *Xmi_Mkdir;
00201 extern    XrdOlbXmi    *Xmi_Mkpath;
00202 extern    XrdOlbXmi    *Xmi_Prep;
00203 extern    XrdOlbXmi    *Xmi_Rename;
00204 extern    XrdOlbXmi    *Xmi_Remdir;
00205 extern    XrdOlbXmi    *Xmi_Remove;
00206 extern    XrdOlbXmi    *Xmi_Select;
00207 extern    XrdOlbXmi    *Xmi_Space;
00208 extern    XrdOlbXmi    *Xmi_Stat;
00209 }
00210 #endif

Generated on Wed Sep 1 2010 for xrootd by  doxygen 1.7.1