xrootd
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
XrdCmsRedirLocal Class Reference

#include <XrdCmsRedirLocal.hh>

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

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 ()
 
XrdOucTListManagers ()
 
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 Member Functions inherited from XrdCmsClient
virtual void Utilization (unsigned int util, bool alert=false)
 
 XrdCmsClient (Persona acting)
 
virtual ~XrdCmsClient ()
 Destructor.
 

Public Attributes

XrdCmsClientnativeCmsFinder
 used to forward requests to CmsFinder with regular implementation
 
bool readOnlyredirect
 
bool httpRedirect
 
std::string localroot
 
XrdSysError Say
 

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ XrdCmsRedirLocal()

XrdCmsRedirLocal::XrdCmsRedirLocal ( XrdSysLogger Logger,
int  opMode,
int  myPort,
XrdOss theSS 
)

◆ ~XrdCmsRedirLocal()

XrdCmsRedirLocal::~XrdCmsRedirLocal ( )

Member Function Documentation

◆ Added()

void XrdCmsRedirLocal::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.

References XrdCmsClient::Added(), and nativeCmsFinder.

◆ Configure()

int XrdCmsRedirLocal::Configure ( const char *  cfn,
char *  Parms,
XrdOucEnv EnvInfo 
)
virtual

Configure the client object.

Parameters
cfnThe configuration file name.
ParmsAny parameters specified in the cmslib directive. If none, the pointer may be null.
EnvInfoEnvironmental information of the caller.
Returns
Success !0 Failure =0

Implements XrdCmsClient.

◆ Forward()

int XrdCmsRedirLocal::Forward ( XrdOucErrInfo Resp,
const char *  cmd,
const char *  arg1 = 0,
const char *  arg2 = 0,
XrdOucEnv Env1 = 0,
XrdOucEnv Env2 = 0 
)
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.

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
Returns
As explained under "return conventions".

Reimplemented from XrdCmsClient.

References XrdCmsClient::Forward(), and nativeCmsFinder.

◆ isRemote()

int XrdCmsRedirLocal::isRemote ( )
inlinevirtual

Check if this client is configured for a manager node.

Returns
!0 Yes, configured as a manager. =0 No.

Reimplemented from XrdCmsClient.

References XrdCmsClient::isRemote(), and nativeCmsFinder.

◆ loadConfig()

void XrdCmsRedirLocal::loadConfig ( const char *  filename)

◆ Locate()

int XrdCmsRedirLocal::Locate ( XrdOucErrInfo Resp,
const char *  path,
int  flags,
XrdOucEnv Info 
)
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.

◆ Managers()

XrdOucTList * XrdCmsRedirLocal::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 XrdCmsClient::Managers(), and nativeCmsFinder.

◆ Prepare()

int XrdCmsRedirLocal::Prepare ( XrdOucErrInfo Resp,
XrdSfsPrep pargs,
XrdOucEnv Info = 0 
)
inlinevirtual

Start the preparation of a file for future processing.

Parameters
RespObject where message or response is to be returned.
pargsInformation on which and how to prepare the file.
InfoAssociated environmental information.
Returns
As explained under "return conventions".

Reimplemented from XrdCmsClient.

References nativeCmsFinder, and XrdCmsClient::Prepare().

◆ Release()

int XrdCmsRedirLocal::Release ( int  n = 1)
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.

Parameters
nThe value to add to the resources available (default 1). The total amount is capped by the amount specified by Resource().
Returns
The amount of resource left.

Reimplemented from XrdCmsClient.

References nativeCmsFinder, and XrdCmsClient::Release().

◆ Removed()

void XrdCmsRedirLocal::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.

References nativeCmsFinder, and XrdCmsClient::Removed().

◆ Reserve()

int XrdCmsRedirLocal::Reserve ( int  n = 1)
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.

Parameters
nThe value by which resources are decreased (default 1).
Returns
The amount of resource left.

Reimplemented from XrdCmsClient.

References nativeCmsFinder, and XrdCmsClient::Reserve().

◆ Resource()

int XrdCmsRedirLocal::Resource ( int  n)
inlinevirtual

Enables the Reserve() & Release() methods.

Parameters
na positive integer that specifies the amount of resource units that are available. It may be reset at any time.
Returns
The previous resource value. This first call returns 0.

Reimplemented from XrdCmsClient.

References nativeCmsFinder, and XrdCmsClient::Resource().

◆ Resume()

void XrdCmsRedirLocal::Resume ( int  Perm = 1)
inlinevirtual

Resume service after a suspension.

Parameters
PermWhen true the resume persist across server restarts. Otherwise, it is treated as a temporary request.

Reimplemented from XrdCmsClient.

References nativeCmsFinder, and XrdCmsClient::Resume().

◆ Space()

int XrdCmsRedirLocal::Space ( XrdOucErrInfo Resp,
const char *  path,
XrdOucEnv Info 
)
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.

◆ Suspend()

void XrdCmsRedirLocal::Suspend ( int  Perm = 1)
inlinevirtual

Suspend service.

Parameters
PermWhen true the suspend persist across server restarts. Otherwise, it is treated as a temporary request.

Reimplemented from XrdCmsClient.

References nativeCmsFinder, and XrdCmsClient::Suspend().

Member Data Documentation

◆ httpRedirect

bool XrdCmsRedirLocal::httpRedirect

◆ localroot

std::string XrdCmsRedirLocal::localroot

◆ nativeCmsFinder

XrdCmsClient* XrdCmsRedirLocal::nativeCmsFinder

used to forward requests to CmsFinder with regular implementation

Referenced by Added(), Forward(), isRemote(), Managers(), Prepare(), Release(), Removed(), Reserve(), Resource(), Resume(), and Suspend().

◆ readOnlyredirect

bool XrdCmsRedirLocal::readOnlyredirect

◆ Say

XrdSysError XrdCmsRedirLocal::Say

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