Loading...
Searching...
No Matches
XrdCmsClient Class Referenceabstract

`#include <XrdCmsClient.hh>`

Inheritance diagram for XrdCmsClient:
Collaboration diagram for XrdCmsClient:

## Public Types

enum | Persona { amLocal , amRemote , amTarget }

## Public Member Functions

| XrdCmsClient (Persona acting)
virtual | ~XrdCmsClient ()
| Destructor.
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

## Detailed Description

Definition at line 115 of file XrdCmsClient.hh.

## Member Enumeration Documentation

## Persona

enum XrdCmsClient::Persona

Constructor

Parameters

  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.

{amLocal,
amRemote,
amTarget
};
XrdCmsClient::amRemote
@ amRemote
Am a manager and issue redirects.
Definition XrdCmsClient.hh:353
XrdCmsClient::amTarget
@ amTarget
Am a server and field redirects.
Definition XrdCmsClient.hh:354
XrdCmsClient::amLocal
@ amLocal
Not affiliated with a cluster.
Definition XrdCmsClient.hh:352

## Constructor & Destructor Documentation

## XrdCmsClient()

XrdCmsClient::XrdCmsClient | ( | Persona | acting | ) |

inline

Definition at line 357 of file XrdCmsClient.hh.

: myPersona(acting) {}
XrdCmsClient::myPersona
Persona myPersona
Definition XrdCmsClient.hh:367

References myPersona.

Referenced by XrdCmsFinderRMT::XrdCmsFinderRMT(), XrdCmsFinderTRG::XrdCmsFinderTRG(), XrdCmsRedirLocal::XrdCmsRedirLocal(), and XrdCmsFinderTRG::Configure().

Here is the caller graph for this function:

## ~XrdCmsClient()

virtual XrdCmsClient::~XrdCmsClient | ( |  | ) |

inline virtual

Destructor.

Definition at line 363 of file XrdCmsClient.hh.

{}

## Member Function Documentation

## Added()

virtual void XrdCmsClient::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.

Parameters

  path | The logical file name.
  Pend | When true, the file is scheduled to be present in the future (e.g. copied in).

Reimplemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 128 of file XrdCmsClient.hh.

{ (void)path; (void)Pend; }

## Configure()

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

pure virtual

Configure the client object.

Parameters

  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.

Returns
  Success !0 Failure =0

Implemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Referenced by XrdOfsConfigPI::Configure().

Here is the caller graph for this function:

## Forward()

virtual int XrdCmsClient::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.

Parameters

  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

Returns
  As explained under "return conventions".

Reimplemented in XrdCmsFinderRMT, and XrdCmsRedirLocal.

Definition at line 173 of file XrdCmsClient.hh.

{
(void)Resp; (void)cmd; (void)arg1; (void)arg2; (void)Env1; (void)Env2;
return 0;
}

## isRemote()

virtual int XrdCmsClient::isRemote | ( |  | ) |

inline virtual

Check if this client is configured for a manager node.

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

Reimplemented in XrdCmsRedirLocal.

Definition at line 188 of file XrdCmsClient.hh.

{return myPersona == XrdCmsClient::amRemote;}

References amRemote, and myPersona.

## Locate()

virtual int XrdCmsClient::Locate | ( | XrdOucErrInfo & | Resp,
|  | const char * | path,
|  | int | flags,
|  | XrdOucEnv * | Info = 0 )

pure virtual

Retrieve file location information.

Parameters

  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>)).

Returns
  As explained under "return conventions".

Implemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

## Managers()

virtual XrdOucTList * XrdCmsClient::Managers | ( |  | ) |

inline virtual

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 in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 232 of file XrdCmsClient.hh.

{return 0;}

Referenced by XrdSsiCms::XrdSsiCms().

Here is the caller graph for this function:

## Prepare()

virtual int XrdCmsClient::Prepare | ( | XrdOucErrInfo & | Resp,
|  | XrdSfsPrep & | pargs,
|  | XrdOucEnv * | Info = 0 )

inline virtual

Start the preparation of a file for future processing.

Parameters

  Resp | Object where message or response is to be returned.
  pargs | Information on which and how to prepare the file.
  Info | Associated environmental information.

Returns
  As explained under "return conventions".

Reimplemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 244 of file XrdCmsClient.hh.

{
(void)Resp; (void)pargs; (void)Info;
return 0;
}

## Release()

virtual int XrdCmsClient::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.

Parameters

  n | The 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 in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 316 of file XrdCmsClient.hh.

{ (void)n; return 0;}

## Removed()

virtual void XrdCmsClient::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.

Parameters

  path | The logical file name that was removed.

Reimplemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 258 of file XrdCmsClient.hh.

{ (void)path; }

## Reserve()

virtual int XrdCmsClient::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.

Parameters

  n | The value by which resources are decreased (default 1).

Returns
  The amount of resource left.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 303 of file XrdCmsClient.hh.

{ (void)n; return 0;}

## Resource()

virtual int XrdCmsClient::Resource | ( | int | n | ) |

inline virtual

Enables the Reserve() & Release() methods.

Parameters

  n | a 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 in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 291 of file XrdCmsClient.hh.

{ (void)n; return 0;}

## Resume()

virtual void XrdCmsClient::Resume | ( | int | Perm = 1 | ) |

inline virtual

Resume service after a suspension.

Parameters

  Perm | When true the resume persist across server restarts. Otherwise, it is treated as a temporary request.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 267 of file XrdCmsClient.hh.

{ (void)Perm; }

## Space()

virtual int XrdCmsClient::Space | ( | XrdOucErrInfo & | Resp,
|  | const char * | path,
|  | XrdOucEnv * | Info = 0 )

pure virtual

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

Parameters

  Resp | Object to hold response or error message.
  path | Associated logical path for the space request.
  Info | Associated cgi information for path.

Returns
  Space information as defined by the response to kYR_statfs. For a typical implementation see XrdCmsNode::do_StatFS().

Implemented in XrdCmsFinderRMT, XrdCmsFinderTRG, and XrdCmsRedirLocal.

## Suspend()

virtual void XrdCmsClient::Suspend | ( | int | Perm = 1 | ) |

inline virtual

Suspend service.

Parameters

  Perm | When true the suspend persist across server restarts. Otherwise, it is treated as a temporary request.

Reimplemented in XrdCmsFinderTRG, and XrdCmsRedirLocal.

Definition at line 276 of file XrdCmsClient.hh.

{ (void)Perm; }

## Utilization()

virtual void XrdCmsClient::Utilization | ( | unsigned int | util,
|  | bool | alert = false )

inline virtual

Report utilization of this server. This may be used in lieu of general performance metric reporting. For consistent results use only one method.

Parameters

  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.

{(void)util; (void)alert;}

## Member Data Documentation

## myPersona

Persona XrdCmsClient::myPersona

protected

Definition at line 367 of file XrdCmsClient.hh.

Referenced by XrdCmsClient(), and isRemote().

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

- XrdCmsClient.hh