![]() |
XRootD
|
#include <XrdCmsClient.hh>
Public Types | |
enum | Persona { amLocal , amRemote , amTarget } |
Public Member Functions | |
XrdCmsClient (Persona acting) | |
virtual | ~XrdCmsClient () |
Destructor. More... | |
virtual void | Added (const char *path, int Pend=0) |
virtual int | Configure (const char *cfn, char *Parms, XrdOucEnv *EnvInfo)=0 |
virtual int | Forward (XrdOucErrInfo &Resp, const char *cmd, const char *arg1=0, const char *arg2=0, XrdOucEnv *Env1=0, XrdOucEnv *Env2=0) |
virtual int | isRemote () |
virtual int | Locate (XrdOucErrInfo &Resp, const char *path, int flags, XrdOucEnv *Info=0)=0 |
virtual XrdOucTList * | Managers () |
virtual int | Prepare (XrdOucErrInfo &Resp, XrdSfsPrep &pargs, XrdOucEnv *Info=0) |
virtual int | Release (int n=1) |
virtual void | Removed (const char *path) |
virtual int | Reserve (int n=1) |
virtual int | Resource (int n) |
virtual void | Resume (int Perm=1) |
virtual int | Space (XrdOucErrInfo &Resp, const char *path, XrdOucEnv *Info=0)=0 |
virtual void | Suspend (int Perm=1) |
virtual void | Utilization (unsigned int util, bool alert=false) |
Protected Attributes | |
Persona | myPersona |
Definition at line 115 of file XrdCmsClient.hh.
Constructor
acting | The type of function this object is performing. |
Enumerator | |
---|---|
amLocal | Not affiliated with a cluster. |
amRemote | Am a manager and issue redirects. |
amTarget | Am a server and field redirects. |
Definition at line 352 of file XrdCmsClient.hh.
|
inline |
Definition at line 357 of file XrdCmsClient.hh.
|
inlinevirtual |
|
inlinevirtual |
Notify the cms of a newly added file or a file whose state has changed on a data server node.
path | The logical file name. |
Pend | When true, the file is scheduled to be present in the future (e.g. copied in). |
Reimplemented in XrdCmsRedirLocal, XrdCmsFinderTRG, and XrdCmsFinderRMT.
Definition at line 128 of file XrdCmsClient.hh.
Referenced by XrdSsiCms::Added(), XrdCmsRedirLocal::Added(), XrdOfsFile::close(), XrdOfs::mkdir(), XrdOfsFile::open(), and XrdOfs::rename().
|
pure virtual |
Configure the client object.
cfn | The configuration file name. |
Parms | Any parameters specified in the cmslib directive. If none, the pointer may be null. |
EnvInfo | Environmental information of the caller. |
Implemented in XrdCmsRedirLocal, XrdCmsFinderTRG, and XrdCmsFinderRMT.
Referenced by XrdCmsRedirLocal::Configure(), and XrdOfsConfigPI::Configure().
|
inlinevirtual |
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.
Resp | Object where messages are to be returned. |
cmd | The 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. |
arg1 | 1st argument to cmd. |
arg2 | 2nd argument to cmd, which may be null if none exists. |
Env1 | Associated environmental information for arg1 (e.g., cgi info which can be retrieved by Env1->Env(<len>)). |
Env2 | Associated 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
Reimplemented in XrdCmsRedirLocal, and XrdCmsFinderRMT.
Definition at line 173 of file XrdCmsClient.hh.
Referenced by XrdCmsRedirLocal::Forward().
|
inlinevirtual |
Check if this client is configured for a manager node.
Reimplemented in XrdCmsRedirLocal.
Definition at line 188 of file XrdCmsClient.hh.
References amRemote, and myPersona.
Referenced by XrdOfs::chksum(), XrdOfs::chmod(), XrdOfs::exists(), XrdOfs::FAttr(), XrdOfs::fsctl(), XrdCmsRedirLocal::isRemote(), XrdOfs::mkdir(), XrdOfsDirectory::open(), XrdOfs::rename(), XrdOfs::stat(), and XrdOfs::truncate().
|
pure virtual |
Retrieve file location information.
Resp | Object where message or response is to be returned. |
path | The logical path whise location is wanted. |
flags | One 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). |
Info | Associated environmental information for arg2 (e.g., cgi info which can be retrieved by Env1->Env(<len>)). |
Implemented in XrdCmsFinderTRG, XrdCmsFinderRMT, and XrdCmsRedirLocal.
Referenced by XrdOfs::chksum(), XrdOfs::chmod(), XrdOfs::exists(), XrdOfs::FAttr(), XrdOfs::fsctl(), XrdCmsRedirLocal::Locate(), XrdOfs::mkdir(), XrdOfsDirectory::open(), XrdOfsFile::open(), XrdOfs::rename(), XrdOfs::stat(), and XrdOfs::truncate().
|
inlinevirtual |
Obtain the list of cmsd's being used by a manager node along with their associated index numbers, origin 1.
Reimplemented in XrdCmsRedirLocal, XrdCmsFinderTRG, and XrdCmsFinderRMT.
Definition at line 232 of file XrdCmsClient.hh.
Referenced by XrdSsiCms::XrdSsiCms(), and XrdCmsRedirLocal::Managers().
|
inlinevirtual |
Start the preparation of a file for future processing.
Resp | Object where message or response is to be returned. |
pargs | Information on which and how to prepare the file. |
Info | Associated environmental information. |
Reimplemented in XrdCmsRedirLocal, XrdCmsFinderTRG, and XrdCmsFinderRMT.
Definition at line 244 of file XrdCmsClient.hh.
References Info.
Referenced by XrdCmsRedirLocal::Prepare(), and XrdOfs::prepare().
|
inlinevirtual |
Increases the amount of resource available. When transitioning from a a non-positive to a positive resource amount, perform a resume so that additional clients may be dispatched to this data server.
n | The value to add to the resources available (default 1). The total amount is capped by the amount specified by Resource(). |
Reimplemented in XrdCmsRedirLocal, and XrdCmsFinderTRG.
Definition at line 316 of file XrdCmsClient.hh.
Referenced by XrdCmsRedirLocal::Release(), and XrdSsiCms::Release().
|
inlinevirtual |
Notify the cmsd that a file or directory has been deleted. It is only called called on a data server node.
path | The logical file name that was removed. |
Reimplemented in XrdCmsRedirLocal, XrdCmsFinderTRG, and XrdCmsFinderRMT.
Definition at line 258 of file XrdCmsClient.hh.
Referenced by XrdOfsFile::open(), XrdSsiCms::Removed(), XrdCmsRedirLocal::Removed(), XrdOfs::rename(), and XrdOfs::Unpersist().
|
inlinevirtual |
Decreases the amount of resources available. When the available resources becomes non-positive, perform a temporary suspend to prevent additional clients from being dispatched to this data server.
n | The value by which resources are decreased (default 1). |
Reimplemented in XrdCmsRedirLocal, and XrdCmsFinderTRG.
Definition at line 303 of file XrdCmsClient.hh.
Referenced by XrdCmsRedirLocal::Reserve(), and XrdSsiCms::Reserve().
|
inlinevirtual |
Enables the Reserve() & Release() methods.
n | a positive integer that specifies the amount of resource units that are available. It may be reset at any time. |
Reimplemented in XrdCmsRedirLocal, and XrdCmsFinderTRG.
Definition at line 291 of file XrdCmsClient.hh.
Referenced by XrdCmsRedirLocal::Resource(), and XrdSsiCms::Resource().
|
inlinevirtual |
Resume service after a suspension.
Perm | When true the resume persist across server restarts. Otherwise, it is treated as a temporary request. |
Reimplemented in XrdCmsRedirLocal, and XrdCmsFinderTRG.
Definition at line 267 of file XrdCmsClient.hh.
Referenced by XrdSsiCms::Resume(), and XrdCmsRedirLocal::Resume().
|
pure virtual |
Obtain the overall space usage of a cluster. Called only on manager nodes.
Resp | Object to hold response or error message. |
path | Associated logical path for the space request. |
Info | Associated cgi information for path. |
Implemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.
Referenced by XrdOfs::fsctl(), and XrdCmsRedirLocal::Space().
|
inlinevirtual |
Suspend service.
Perm | When true the suspend persist across server restarts. Otherwise, it is treated as a temporary request. |
Reimplemented in XrdCmsRedirLocal, and XrdCmsFinderTRG.
Definition at line 276 of file XrdCmsClient.hh.
Referenced by XrdSsiCms::Suspend(), and XrdCmsRedirLocal::Suspend().
|
inlinevirtual |
Report utilization of this server. This may be used in lieu of general performance metric reporting. For consistent results use only one method.
util | A value from 0 to 100 representing utilization. Values greater than 100 are set to be 100. |
alert | When true the utilization is forcibly report to the cluster managers. Otherwise, reporting is done only when it will significantly change server selection. |
Reimplemented in XrdCmsFinderTRG.
Definition at line 343 of file XrdCmsClient.hh.
Referenced by XrdSsiCms::Utilization().
|
protected |
Definition at line 367 of file XrdCmsClient.hh.
Referenced by isRemote().