xrootd
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes
XrdCmsFinderRMT Class Reference

#include <XrdCmsFinder.hh>

Inheritance diagram for XrdCmsFinderRMT:
Inheritance graph
[legend]
Collaboration diagram for XrdCmsFinderRMT:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void Added (const char *path, int Pend=0)
int Configure (const char *cfn, char *Args, XrdOucEnv *EnvInfo)
int Forward (XrdOucErrInfo &Resp, const char *cmd, const char *arg1=0, const char *arg2=0, XrdOucEnv *Env1=0, XrdOucEnv *Env2=0)
int Locate (XrdOucErrInfo &Resp, const char *path, int flags, XrdOucEnv *Info=0)
XrdOucTList * Managers ()
int Prepare (XrdOucErrInfo &Resp, XrdSfsPrep &pargs, XrdOucEnv *Info=0)
void Removed (const char *path)
void setSS (XrdOss *thess)
int Space (XrdOucErrInfo &Resp, const char *path, XrdOucEnv *Info=0)
 XrdCmsFinderRMT (XrdSysLogger *lp, int whoami=0, int Port=0)
 ~XrdCmsFinderRMT ()
- Public Member Functions inherited from XrdCmsClient
virtual int isRemote ()
virtual void Resume (int Perm=1)
virtual void Suspend (int Perm=1)
virtual int Resource (int n)
virtual int Reserve (int n=1)
virtual int Release (int n=1)
 XrdCmsClient (Persona acting)
virtual ~XrdCmsClient ()
 Destructor.

Static Public Member Functions

static bool VCheck (XrdVersionInfo &urVersion)

Static Public Attributes

static const int MaxMan = 15

Private Member Functions

int Decode (char **resp)
void Inform (XrdCmsClientMan *xman, struct iovec xmsg[], int xnum)
XrdCmsClientMan * SelectManager (XrdOucErrInfo &Resp, const char *path)
void SelectManFail (XrdOucErrInfo &Resp)
int send2Man (XrdOucErrInfo &, const char *, struct iovec *, int)
int StartManagers (XrdOucTList *)

Private Attributes

XrdCmsClientMan * myManTable [MaxMan]
XrdCmsClientMan * myManagers
XrdOucTList * myManList
int myManCount
XrdSysMutex myData
char * CMSPath
int ConWait
int RepDelay
int RepNone
int RepWait
int FwdWait
int PrepWait
int isMeta
int isProxy
int isTarget
int myPort
unsigned char SMode
unsigned char sendID
unsigned char savePath

Additional Inherited Members

- Public Types inherited from XrdCmsClient
enum  Persona { amLocal, amRemote, amTarget }
- Protected Attributes inherited from XrdCmsClient
Persona myPersona

Constructor & Destructor Documentation

XrdCmsFinderRMT::XrdCmsFinderRMT ( XrdSysLogger *  lp,
int  whoami = 0,
int  Port = 0 
)
XrdCmsFinderRMT::~XrdCmsFinderRMT ( )

Member Function Documentation

void XrdCmsFinderRMT::Added ( const char *  path,
int  Pend = 0 
)
inlinevirtual

Notify the cms of a newly added file or a file whose state has changed on a data server node.

Parameters:
pathThe logical file name.
PendWhen true, the file is scheduled to be present in the future (e.g. copied in).

Reimplemented from XrdCmsClient.

int XrdCmsFinderRMT::Configure ( const char *  cfn,
char *  Parms,
XrdOucEnv *  EnvInfo 
)
virtual
int XrdCmsFinderRMT::Decode ( char **  resp)
private
int XrdCmsFinderRMT::Forward ( XrdOucErrInfo &  Resp,
const char *  cmd,
const char *  arg1 = 0,
const char *  arg2 = 0,
XrdOucEnv *  Env1 = 0,
XrdOucEnv *  Env2 = 0 
)
virtual

Relay a meta-operation to all nodes in the cluster.

This method is only used on manager nodes and is enabled by the ofs.forward directive.

Parameters:
RespObject where messages are to be returned.
cmdThe operation being performed (see table below). If it starts with a '+' then a response (2way) is needed. Otherwise, a best-effort is all that is all that is required and success can always be returned.
arg11st argument to cmd.
arg22nd argument to cmd, which may be null if none exists.
Env1Associated environmental information for arg1 (e.g., cgi info which can be retrieved by Env1->Env(<len>)).
Env2Associated environmental information for arg2 (e.g., cgi info which can be retrieved by Env1->Env(<len>)).

cmd arg1 arg2 cmd arg1 arg2


[+]chmod <path> <mode o> [+]rmdir <path> 0 [+]mkdir <path> <mode o> [+]mv <oldp> <newp> [+]mkpath <path> <mode o> [+]trunc <path> <size lld> [+]rm <path> 0

: As explained under "return conventions".

Reimplemented from XrdCmsClient.

References ConWait, XrdCmsClientMan::doDebug, XrdOucEnv::Env(), FwdWait, XrdOucErrInfo::getErrUser(), XrdCmsRRData::Ident, Inform(), XrdCms::kYR_chmod, XrdCms::kYR_dnf, XrdCms::kYR_mkdir, XrdCms::kYR_mkpath, XrdCms::kYR_mv, XrdCms::kYR_rm, XrdCms::kYR_rmdir, XrdCms::kYR_trunc, XrdSysMutex::Lock(), XrdCmsRRData::Mode, XrdCms::CmsRRHdr::modifier, XrdCmsRRData::Opaque, XrdCmsRRData::Opaque2, XrdCmsParser::Pack(), XrdCms::Parser, XrdCmsRRData::Path, XrdCmsRRData::Path2, RepDelay, XrdCmsRRData::Request, XrdCms::CmsRRHdr::rrCode, Say, SelectManager(), XrdCmsClientMan::Send(), send2Man(), XrdOucErrInfo::setErrInfo(), SFS_ERROR, XrdCms::CmsRRHdr::streamid, XrdSysMutex::UnLock(), and XrdSysTimer::Wait().

void XrdCmsFinderRMT::Inform ( XrdCmsClientMan *  xman,
struct iovec  xmsg[],
int  xnum 
)
private
int XrdCmsFinderRMT::Locate ( XrdOucErrInfo &  Resp,
const char *  path,
int  flags,
XrdOucEnv *  Info = 0 
)
virtual

Retrieve file location information.

Parameters:
RespObject where message or response is to be returned.
pathThe logical path whise location is wanted.
flagsOne or more of the following:
     SFS_O_LOCATE  - return the list of servers that have the file.
                     Otherwise, redirect to the best server for the file.
     SFS_O_NOWAIT  - w/ SFS_O_LOCATE return readily available info.
                     Otherwise, select online files only.
     SFS_O_CREAT   - file will be created.
     SFS_O_NOWAIT  - select server if file is online.
     SFS_O_REPLICA - a replica of the file will be made.
     SFS_O_STAT    - only stat() information wanted.
     SFS_O_TRUNC   - file will be truncated.

     For any the the above, additional flags are passed:
     SFS_O_META    - data will not change (inode operation only)
     SFS_O_RESET   - reset cached info and recaculate the location(s).
     SFS_O_WRONLY  - file will be only written    (o/w RDWR   or RDONLY).
     SFS_O_RDWR    - file may be read and written (o/w WRONLY or RDONLY).
InfoAssociated environmental information for arg2 (e.g., cgi info which can be retrieved by Env1->Env(<len>)).
Returns:
As explained under "return conventions".

Implements XrdCmsClient.

References XrdCmsRRData::Avoid, XrdCmsClientMan::doDebug, XrdOucEnv::Env(), XrdOucEnv::Get(), XrdOucErrInfo::getErrUser(), XrdCmsRRData::Ident, XrdCms::kYR_locate, XrdCms::kYR_select, XrdCms::kYR_trunc, XrdCms::CmsRRHdr::modifier, XrdCmsRRData::Opaque, XrdCmsRRData::Opts, XrdCmsParser::Pack(), XrdCms::Parser, XrdCmsRRData::Path, XrdCmsRRData::Request, XrdCms::CmsRRHdr::rrCode, send2Man(), XrdOucErrInfo::setErrInfo(), SFS_ERROR, SFS_O_CREAT, SFS_O_LOCATE, SFS_O_META, SFS_O_NOWAIT, SFS_O_RDWR, SFS_O_REPLICA, SFS_O_RESET, SFS_O_STAT, SFS_O_TRUNC, SFS_O_WRONLY, and XrdCms::CmsRRHdr::streamid.

XrdOucTList* XrdCmsFinderRMT::Managers ( )
inlinevirtual

Obtain the list of cmsd's being used by a manager node along with their associated index numbers, origin 1.

Returns:
The list of cmsd's being used. The list is considered permanent and is not deleted.

Reimplemented from XrdCmsClient.

References myManList.

int XrdCmsFinderRMT::Prepare ( XrdOucErrInfo &  Resp,
XrdSfsPrep &  pargs,
XrdOucEnv *  Info = 0 
)
virtual
void XrdCmsFinderRMT::Removed ( const char *  path)
inlinevirtual

Notify the cmsd that a file or directory has been deleted. It is only called called on a data server node.

Parameters:
pathThe logical file name that was removed.

Reimplemented from XrdCmsClient.

XrdCmsClientMan * XrdCmsFinderRMT::SelectManager ( XrdOucErrInfo &  Resp,
const char *  path 
)
private
void XrdCmsFinderRMT::SelectManFail ( XrdOucErrInfo &  Resp)
private
int XrdCmsFinderRMT::send2Man ( XrdOucErrInfo &  Resp,
const char *  path,
struct iovec *  xmsg,
int  xnum 
)
private
void XrdCmsFinderRMT::setSS ( XrdOss *  thess)
inline
int XrdCmsFinderRMT::Space ( XrdOucErrInfo &  Resp,
const char *  path,
XrdOucEnv *  Info = 0 
)
virtual

Obtain the overall space usage of a cluster. Called only on manager nodes.

Parameters:
RespObject to hold response or error message.
pathAssociated logical path for the space request.
InfoAssociated cgi information for path.
Returns:
Space information as defined by the response to kYR_statfs. For a typical implementation see XrdCmsNode::do_StatFS().

Implements XrdCmsClient.

References XrdCmsClientMan::doDebug, XrdOucErrInfo::getErrUser(), XrdCmsRRData::Ident, XrdCms::kYR_statfs, XrdCms::CmsRRHdr::modifier, XrdCmsParser::Pack(), XrdCms::Parser, XrdCmsRRData::Path, XrdCmsRRData::Request, XrdCms::CmsRRHdr::rrCode, send2Man(), XrdOucErrInfo::setErrInfo(), SFS_ERROR, and XrdCms::CmsRRHdr::streamid.

int XrdCmsFinderRMT::StartManagers ( XrdOucTList *  theManList)
private
bool XrdCmsFinderRMT::VCheck ( XrdVersionInfo &  urVersion)
static

References XrdSysPlugin::VerCmp().

Referenced by XrdOfs::ConfigRedir().


Member Data Documentation

char* XrdCmsFinderRMT::CMSPath
private

Referenced by Configure().

int XrdCmsFinderRMT::ConWait
private
int XrdCmsFinderRMT::FwdWait
private

Referenced by Configure(), and Forward().

int XrdCmsFinderRMT::isMeta
private

Referenced by Configure(), and XrdCmsFinderRMT().

int XrdCmsFinderRMT::isProxy
private

Referenced by Configure(), and XrdCmsFinderRMT().

int XrdCmsFinderRMT::isTarget
private

Referenced by Configure(), and XrdCmsFinderRMT().

const int XrdCmsFinderRMT::MaxMan = 15
static

Referenced by StartManagers().

XrdSysMutex XrdCmsFinderRMT::myData
private

Referenced by SelectManFail().

XrdCmsClientMan* XrdCmsFinderRMT::myManagers
private
int XrdCmsFinderRMT::myManCount
private
XrdOucTList* XrdCmsFinderRMT::myManList
private

Referenced by Managers().

XrdCmsClientMan* XrdCmsFinderRMT::myManTable[MaxMan]
private

Referenced by SelectManager(), and StartManagers().

int XrdCmsFinderRMT::myPort
private

Referenced by Configure(), and XrdCmsFinderRMT().

int XrdCmsFinderRMT::PrepWait
private

Referenced by Configure(), and Prepare().

int XrdCmsFinderRMT::RepDelay
private
int XrdCmsFinderRMT::RepNone
private

Referenced by Configure(), and StartManagers().

int XrdCmsFinderRMT::RepWait
private

Referenced by Configure(), and StartManagers().

unsigned char XrdCmsFinderRMT::savePath
private
unsigned char XrdCmsFinderRMT::sendID
private

Referenced by XrdCmsFinderRMT().

unsigned char XrdCmsFinderRMT::SMode
private

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