#include <XrdCmsRedirLocal.hh>
Public Member Functions | |
XrdCmsRedirLocal (XrdSysLogger *Logger, int opMode, int myPort, XrdOss *theSS) | |
~XrdCmsRedirLocal () | |
int | Configure (const char *cfn, char *Parms, XrdOucEnv *EnvInfo) |
void | loadConfig (const char *filename) |
int | Locate (XrdOucErrInfo &Resp, const char *path, int flags, XrdOucEnv *EnvInfo) |
int | Space (XrdOucErrInfo &Resp, const char *path, XrdOucEnv *EnvInfo) |
void | Added (const char *path, int Pend=0) |
int | Forward (XrdOucErrInfo &Resp, const char *cmd, const char *arg1=0, const char *arg2=0, XrdOucEnv *Env1=0, XrdOucEnv *Env2=0) |
int | isRemote () |
XrdOucTList * | Managers () |
int | Prepare (XrdOucErrInfo &Resp, XrdSfsPrep &pargs, XrdOucEnv *Info=0) |
void | Removed (const char *path) |
void | Resume (int Perm=1) |
void | Suspend (int Perm=1) |
int | Resource (int n) |
int | Reserve (int n=1) |
int | Release (int n=1) |
Public Attributes | |
XrdCmsClient * | nativeCmsFinder |
used to forward requests to CmsFinder with regular implementation | |
XrdOss * | theSS |
bool | readOnlyredirect |
XrdCmsRedirLocal::XrdCmsRedirLocal | ( | XrdSysLogger * | Logger, | |
int | opMode, | |||
int | myPort, | |||
XrdOss * | theSS | |||
) |
XrdCmsRedirLocal::~XrdCmsRedirLocal | ( | ) |
void XrdCmsRedirLocal::Added | ( | const char * | path, | |
int | Pend = 0 | |||
) | [inline, virtual] |
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 from XrdCmsClient.
References XrdCmsClient::Added(), and nativeCmsFinder.
int XrdCmsRedirLocal::Configure | ( | const char * | cfn, | |
char * | Parms, | |||
XrdOucEnv * | EnvInfo | |||
) | [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. |
Implements XrdCmsClient.
int XrdCmsRedirLocal::Forward | ( | XrdOucErrInfo & | Resp, | |
const char * | cmd, | |||
const char * | arg1 = 0 , |
|||
const char * | arg2 = 0 , |
|||
XrdOucEnv * | Env1 = 0 , |
|||
XrdOucEnv * | Env2 = 0 | |||
) | [inline, 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.
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 from XrdCmsClient.
References XrdCmsClient::Forward(), and nativeCmsFinder.
int XrdCmsRedirLocal::isRemote | ( | ) | [inline, virtual] |
Check if this client is configured for a manager node.
Reimplemented from XrdCmsClient.
References XrdCmsClient::isRemote(), and nativeCmsFinder.
void XrdCmsRedirLocal::loadConfig | ( | const char * | filename | ) |
int XrdCmsRedirLocal::Locate | ( | XrdOucErrInfo & | Resp, | |
const char * | path, | |||
int | flags, | |||
XrdOucEnv * | Info | |||
) | [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>)). |
Implements XrdCmsClient.
XrdOucTList* XrdCmsRedirLocal::Managers | ( | ) | [inline, virtual] |
Obtain the list of cmsd's being used by a manager node along with their associated index numbers, origin 1.
Reimplemented from XrdCmsClient.
References XrdCmsClient::Managers(), and nativeCmsFinder.
int XrdCmsRedirLocal::Prepare | ( | XrdOucErrInfo & | Resp, | |
XrdSfsPrep & | pargs, | |||
XrdOucEnv * | Info = 0 | |||
) | [inline, virtual] |
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 from XrdCmsClient.
References Info, nativeCmsFinder, and XrdCmsClient::Prepare().
int XrdCmsRedirLocal::Release | ( | int | n = 1 |
) | [inline, virtual] |
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 from XrdCmsClient.
References nativeCmsFinder, and XrdCmsClient::Release().
void XrdCmsRedirLocal::Removed | ( | const char * | path | ) | [inline, virtual] |
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 from XrdCmsClient.
References nativeCmsFinder, and XrdCmsClient::Removed().
int XrdCmsRedirLocal::Reserve | ( | int | n = 1 |
) | [inline, virtual] |
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 from XrdCmsClient.
References nativeCmsFinder, and XrdCmsClient::Reserve().
int XrdCmsRedirLocal::Resource | ( | int | n | ) | [inline, virtual] |
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 from XrdCmsClient.
References nativeCmsFinder, and XrdCmsClient::Resource().
void XrdCmsRedirLocal::Resume | ( | int | Perm = 1 |
) | [inline, virtual] |
Resume service after a suspension.
Perm | When true the resume persist across server restarts. Otherwise, it is treated as a temporary request. |
Reimplemented from XrdCmsClient.
References nativeCmsFinder, and XrdCmsClient::Resume().
int XrdCmsRedirLocal::Space | ( | XrdOucErrInfo & | Resp, | |
const char * | path, | |||
XrdOucEnv * | Info | |||
) | [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. |
Implements XrdCmsClient.
void XrdCmsRedirLocal::Suspend | ( | int | Perm = 1 |
) | [inline, virtual] |
Suspend service.
Perm | When true the suspend persist across server restarts. Otherwise, it is treated as a temporary request. |
Reimplemented from XrdCmsClient.
References nativeCmsFinder, and XrdCmsClient::Suspend().
used to forward requests to CmsFinder with regular implementation
Referenced by Added(), Forward(), isRemote(), Managers(), Prepare(), Release(), Removed(), Reserve(), Resource(), Resume(), and Suspend().