xrootd
XrdFrmAdmin.hh
Go to the documentation of this file.
1#ifndef __FRMADMIN__HH
2#define __FRMADMIN__HH
3/******************************************************************************/
4/* */
5/* X r d F r m A d m i n . h h */
6/* */
7/* (c) 2009 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* All Rights Reserved */
9/* Produced by Andrew Hanushevsky for Stanford University under contract */
10/* DE-AC02-76-SFO0515 with the Department of Energy */
11/* */
12/* This file is part of the XRootD software suite. */
13/* */
14/* XRootD is free software: you can redistribute it and/or modify it under */
15/* the terms of the GNU Lesser General Public License as published by the */
16/* Free Software Foundation, either version 3 of the License, or (at your */
17/* option) any later version. */
18/* */
19/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22/* License for more details. */
23/* */
24/* You should have received a copy of the GNU Lesser General Public License */
25/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27/* */
28/* The copyright holder's institutional names and contributor's names may not */
29/* be used to endorse or promote products derived from this software without */
30/* specific prior written permission of the institution or contributor. */
31/******************************************************************************/
32
33#include <stdlib.h>
34#include <sys/types.h>
35
36#include "XrdCks/XrdCksData.hh"
38
39class XrdFrcProxy;
40class XrdFrmFileset;
41class XrdOucArgs;
42class XrdOucTList;
43
45{
46public:
47
48int Audit();
49
50int Chksum();
51
52int Copy();
53
54int Create();
55
56int Find();
57
58int Help();
59
60int MakeLF();
61
62int Mark();
63
64int Mmap();
65
66int Mv();
67
68int Pin();
69
70int Query();
71
72int Quit() {exit(finalRC); return 0;}
73
74int Reloc();
75
76int Remove();
77
78int Rename();
79
80void setArgs(int argc, char **argv);
81
82void setArgs(char *argv);
83
84int xeqArgs(char *Cmd);
85
88
89private:
95int AuditNameXB(XrdFrmFileset *sP); // runOld
96int AuditNameXL(XrdFrmFileset *sP, int dorm); // runOld
99int AuditSpaceAX(const char *Path);
100int AuditSpaceAXDB(const char *Path);
101int AuditSpaceAXDC(const char *Path, XrdOucNSWalk::NSEnt *nP);
102int AuditSpaceAXDL(int dorm, const char *Path, const char *Dest);
103int AuditSpaceXA(const char *Space, const char *Path);
105int AuditSpaceXB(const char *Space, const char *Path); // runOld
106int AuditSpaceXANB(XrdFrmFileset *sP); // runOld
108int AuditUsage(char *Space);
109int AuditUsageAX(const char *Path);
110int AuditUsageXA(const char *Path, const char *Space);
112
113int ChksumList( const char *Lfn, const char *Pfn);
114void ChksumPrint(const char *Lfn, int rc);
115
123
124int Abbrev(const char *Spec, const char *Word, int minLen);
125
127
128void Emsg(const char *tx1, const char *tx2=0, const char *tx3=0,
129 const char *tx4=0, const char *tx5=0);
130void Emsg(int Enum, const char *tx2=0, const char *tx3=0,
131 const char *tx4=0, const char *tx5=0);
132void Msg(const char *tx1, const char *tx2=0, const char *tx3=0,
133 const char *tx4=0, const char *tx5=0);
134
135int Parse(const char *What, XrdOucArgs &Spec, const char **Reqs);
136int ParseKeep(const char *What, const char *kTime);
137int ParseOwner(const char *What, char *Uname);
138XrdOucTList *ParseSpace(char *Space, char **Path);
139int ParseType(const char *What, char *Type);
140
141char ckAttr(int What, const char *Lfn, char *Pfn, int Pfnsz);
142int mkLock(const char *Lfn);
143int mkFile(int What, const char *Path, const char *Data=0, int Dlen=0);
144int mkMark(const char *Lfn);
145int mkMmap(const char *Lfn);
146int mkPin(const char *Lfn);
147char mkStat(int What, const char *Lfn, char *Pfn, int Pfnsz);
148
149// For mkFile and mkStat the following options may be passed via What
150//
151static const int isPFN= 0x0001; // Filename is actual physical name
152static const int mkLF = 0x0002; // Make lock file or copy attribute
153static const int mkMF = 0x0004; // Make mmap file or mmap attribute
154static const int mkPF = 0x0008; // Make pin file or pin attribute
155
159int QuerySpace(const char *Pfn, char *Lnk=0, int Lsz=0);
162
163int Reloc(char *srcLfn, char *Space);
164int RelocCP(const char *srcpfn, const char *trgpfn, off_t srcSz);
165int RelocWR(const char *outFn, int oFD, char *Buff, size_t BLen, off_t Boff);
166
167int Unlink(const char *Path);
168int UnlinkDir(const char *Path, const char *lclPath);
170int UnlinkFile(const char *lclPath);
171
172int VerifyAll(char *path);
173char VerifyMP(const char *func, const char *path);
174
175// The following are for runOld conversion purposes and will be removed
176//
178int ConvTest(int doNames, int doSpaces);
179int New2Old(int doNames, int doSpaces);
180int Old2New(int doNames, int doSpaces);
181int o2nFiles(XrdFrmFileset *sP, int &numOld);
182int o2nSpace(XrdFrmFileset *sP, const char *Space);
184int x2xRemove(const char *Type, const char *Path, int cvt=0);
186
187static const char *AuditHelp;
188static const char *ChksumHelp;
189static const char *FindHelp;
190static const char *HelpHelp;
191static const char *MakeLFHelp;
192static const char *MarkHelp;
193static const char *MmapHelp;
194static const char *MvHelp;
195static const char *PinHelp;
196static const char *QueryHelp;
197static const char *RelocHelp;
198static const char *RemoveHelp;
199
200// Frm agent/proxy control
201//
204
205// Command control
206//
207char **ArgV;
208char *ArgS;
210
211// The following are common variables for audit functions
212//
213long long numBytes;
214long long numBLost;
220
221// Checksum control area
222//
224
225// Options from the command
226//
227struct {char All;
228 char Echo;
229 char Erase;
230 char Fix;
231 char Force;
232 char Keep;
234 char ktIdle;
235 char Local;
236 char MPType;
239 char *Args[2];
240 uid_t Uid;
241 gid_t Gid;
242 time_t KeepTime;
244};
245namespace XrdFrm
246{
247extern XrdFrmAdmin Admin;
248}
249#endif
Definition: XrdCksData.hh:38
Definition: XrdFrcProxy.hh:40
Definition: XrdFrmAdmin.hh:45
int QuerySpace(XrdOucArgs &Spec)
int FindUnmi(XrdOucArgs &Spec)
char Recurse
Definition: XrdFrmAdmin.hh:237
int AuditNameNB(XrdFrmFileset *sP)
static const int isPFN
Definition: XrdFrmAdmin.hh:151
void ChksumPrint(const char *Lfn, int rc)
int numFix
Definition: XrdFrmAdmin.hh:218
~XrdFrmAdmin()
Definition: XrdFrmAdmin.hh:87
int ParseType(const char *What, char *Type)
char * Args[2]
Definition: XrdFrmAdmin.hh:239
int QueryPfn(XrdOucArgs &Spec)
char Force
Definition: XrdFrmAdmin.hh:231
int AuditNameXB(XrdFrmFileset *sP)
int AuditUsageAX(const char *Path)
char mkStat(int What, const char *Lfn, char *Pfn, int Pfnsz)
int finalRC
Definition: XrdFrmAdmin.hh:219
int UnlinkFile(const char *lclPath)
int ChksumList(const char *Lfn, const char *Pfn)
int AuditSpaceAXDC(const char *Path, XrdOucNSWalk::NSEnt *nP)
int AuditSpaceXANB(XrdFrmFileset *sP)
void setArgs(int argc, char **argv)
char VerifyMP(const char *func, const char *path)
XrdCksData CksData
Definition: XrdFrmAdmin.hh:223
int numDirs
Definition: XrdFrmAdmin.hh:215
int AuditSpaceAX(const char *Path)
void setArgs(char *argv)
int AuditSpaceXB(const char *Space, const char *Path)
int mkPin(const char *Lfn)
int UnlinkDir(XrdOucNSWalk::NSEnt *&nP, XrdOucNSWalk::NSEnt *&dP)
int xeqArgs(char *Cmd)
char Keep
Definition: XrdFrmAdmin.hh:232
int AuditNames()
static const int mkMF
Definition: XrdFrmAdmin.hh:153
int FindPins(XrdOucArgs &Spec)
void Emsg(const char *tx1, const char *tx2=0, const char *tx3=0, const char *tx4=0, const char *tx5=0)
int AuditNameXA(XrdFrmFileset *sP)
char * ArgS
Definition: XrdFrmAdmin.hh:208
XrdOucTList * x2xSpaces()
char ckAttr(int What, const char *Lfn, char *Pfn, int Pfnsz)
static const char * RemoveHelp
Definition: XrdFrmAdmin.hh:198
char ktAlways
Definition: XrdFrmAdmin.hh:233
static const char * ChksumHelp
Definition: XrdFrmAdmin.hh:188
XrdFrcProxy * frmProxy
Definition: XrdFrmAdmin.hh:202
int mkLock(const char *Lfn)
char Echo
Definition: XrdFrmAdmin.hh:228
char ktIdle
Definition: XrdFrmAdmin.hh:234
static const char * PinHelp
Definition: XrdFrmAdmin.hh:195
int AuditUsage()
int Old2New(int doNames, int doSpaces)
int FindMmap(XrdOucArgs &Spec)
static const int mkPF
Definition: XrdFrmAdmin.hh:154
int AuditRemove(XrdFrmFileset *sP)
char Fix
Definition: XrdFrmAdmin.hh:230
int AuditSpaceAXDL(int dorm, const char *Path, const char *Dest)
int RelocCP(const char *srcpfn, const char *trgpfn, off_t srcSz)
int o2nFiles(XrdFrmFileset *sP, int &numOld)
time_t KeepTime
Definition: XrdFrmAdmin.hh:242
int numProb
Definition: XrdFrmAdmin.hh:217
static const int mkLF
Definition: XrdFrmAdmin.hh:152
int QuerySpace(const char *Pfn, char *Lnk=0, int Lsz=0)
XrdOucTList * ParseSpace(char *Space, char **Path)
long long numBLost
Definition: XrdFrmAdmin.hh:214
int AuditSpaceXA(XrdFrmFileset *sP)
XrdOucTList * x2xPaths()
static const char * MarkHelp
Definition: XrdFrmAdmin.hh:192
int x2xRemove(const char *Type, const char *Path, int cvt=0)
static const char * AuditHelp
Definition: XrdFrmAdmin.hh:187
int AuditSpace()
void Emsg(int Enum, const char *tx2=0, const char *tx3=0, const char *tx4=0, const char *tx5=0)
static const char * RelocHelp
Definition: XrdFrmAdmin.hh:197
struct XrdFrmAdmin::@69 Opt
int FindFail(XrdOucArgs &Spec)
int AuditSpaceXA(const char *Space, const char *Path)
int frmProxz
Definition: XrdFrmAdmin.hh:203
long long numBytes
Definition: XrdFrmAdmin.hh:213
int AuditSpaceAXDB(const char *Path)
int ParseOwner(const char *What, char *Uname)
static const char * HelpHelp
Definition: XrdFrmAdmin.hh:190
char Local
Definition: XrdFrmAdmin.hh:235
int New2Old(int doNames, int doSpaces)
int mkFile(int What, const char *Path, const char *Data=0, int Dlen=0)
XrdFrmAdmin()
Definition: XrdFrmAdmin.hh:86
char ** ArgV
Definition: XrdFrmAdmin.hh:207
int Reloc(char *srcLfn, char *Space)
int Parse(const char *What, XrdOucArgs &Spec, const char **Reqs)
int Abbrev(const char *Spec, const char *Word, int minLen)
int ArgC
Definition: XrdFrmAdmin.hh:209
char MPType
Definition: XrdFrmAdmin.hh:236
static const char * MakeLFHelp
Definition: XrdFrmAdmin.hh:191
int FindNolk(XrdOucArgs &Spec)
char Verbose
Definition: XrdFrmAdmin.hh:238
int AuditUsage(char *Space)
int VerifyAll(char *path)
int mkMark(const char *Lfn)
static const char * MmapHelp
Definition: XrdFrmAdmin.hh:193
int ConvTest(int doNames, int doSpaces)
uid_t Uid
Definition: XrdFrmAdmin.hh:240
int ParseKeep(const char *What, const char *kTime)
int numFiles
Definition: XrdFrmAdmin.hh:216
int AuditNameNL(XrdFrmFileset *sP)
int AuditNameNF(XrdFrmFileset *sP)
int Unlink(const char *Path)
char Erase
Definition: XrdFrmAdmin.hh:229
int FindPins(XrdFrmFileset *sP)
void Msg(const char *tx1, const char *tx2=0, const char *tx3=0, const char *tx4=0, const char *tx5=0)
static const char * FindHelp
Definition: XrdFrmAdmin.hh:189
void ConfigProxy()
int isXA(XrdOucNSWalk::NSEnt *nP)
int QueryXfrQ(XrdOucArgs &Spec)
int QueryUsage(XrdOucArgs &Spec)
int Quit()
Definition: XrdFrmAdmin.hh:72
static const char * MvHelp
Definition: XrdFrmAdmin.hh:194
int FindNocs(XrdOucArgs &Spec)
static const char * QueryHelp
Definition: XrdFrmAdmin.hh:196
int AuditNameXL(XrdFrmFileset *sP, int dorm)
int AuditUsageXA(const char *Path, const char *Space)
int mkMmap(const char *Lfn)
char All
Definition: XrdFrmAdmin.hh:227
gid_t Gid
Definition: XrdFrmAdmin.hh:241
int RelocWR(const char *outFn, int oFD, char *Buff, size_t BLen, off_t Boff)
int QueryRfn(XrdOucArgs &Spec)
int o2nSpace(XrdFrmFileset *sP, const char *Space)
int UnlinkDir(const char *Path, const char *lclPath)
Definition: XrdFrmFiles.hh:49
Definition: XrdOucArgs.hh:42
Definition: XrdOucTList.hh:42
Definition: XrdFrmAdmin.hh:246
XrdFrmAdmin Admin
Definition: XrdOucNSWalk.hh:47