#include <XrdFrmAdmin.hh>
Definition at line 44 of file XrdFrmAdmin.hh.
◆ XrdFrmAdmin()
XrdFrmAdmin::XrdFrmAdmin |
( |
| ) |
|
|
inline |
Definition at line 86 of file XrdFrmAdmin.hh.
86 : frmProxy(0), frmProxz(0), finalRC(0) {}
◆ ~XrdFrmAdmin()
XrdFrmAdmin::~XrdFrmAdmin |
( |
| ) |
|
|
inline |
◆ Audit()
int XrdFrmAdmin::Audit |
( |
| ) |
|
Definition at line 71 of file XrdFrmAdmin.cc.
81 static const char *Reqs[] = {
"type", 0};
85 if (!Parse(
"audit ", Spec, Reqs))
return 1;
86 Opt.Args[1] = Spec.getarg();
90 if (!strcmp(Opt.Args[0],
"usage"))
return AuditUsage();
91 if (!Opt.Args[1]) Emsg(
"audit target not specified.");
92 else if (!strcmp(Opt.Args[0],
"names"))
return AuditNames();
93 else if (!strcmp(Opt.Args[0],
"space"))
return AuditSpace();
94 else Emsg(
"Unknown audit type - ", Opt.Args[0]);
References XrdOucArgs::getarg(), and XrdFrc::Say.
Referenced by xeqArgs().
◆ Chksum()
int XrdFrmAdmin::Chksum |
( |
| ) |
|
Definition at line 111 of file XrdFrmAdmin.cc.
117 "verbose", 1,
"v", (
const char *)0);
119 static const char *Reqs[] = {
"function",
"target", 0};
121 char pfnbuf[MAXPATHLEN], *Pfn, *Lfn, *csFunc;
128 {Emsg(
"Checksum support has not been configured!");
return 8;}
132 if (!Parse(
"chksum ", Spec, Reqs))
return 1;
133 csFunc = Opt.Args[0];
134 csName = CksData.
Name;
135 if (!*CksData.
Name) {Opt.All = 1; CksData.
Set(
Config.CksMan->Name());}
139 if (!strcmp (csFunc,
"set") || Abbrev(csFunc,
"verify", 3))
140 {
int n = strlen(Opt.Args[1]);
141 if (n != CksData.
Length*2 || !CksData.
Set(Opt.Args[1], n))
142 {Emsg(
"Invalid ", csName,
" checksum value - ", Opt.Args[1]);
145 if (!(Opt.Args[1] = Spec.getarg()))
146 {Emsg(
"chksum target not specified.");
return 4;}
151 Pfn = Lfn = Opt.Args[1];
152 if (Opt.MPType !=
'p')
153 {
if (!
Config.LocalPath(Opt.Args[1], pfnbuf,
sizeof(pfnbuf)))
return 4;
159 if (!strcmp(csFunc,
"calc"))
160 {
if (Opt.Force ||
Config.CksMan->Get(Pfn, CksData) <= 0)
161 rc =
Config.CksMan->Calc(Pfn, CksData, 1);
162 if (rc >= 0) {ChksumPrint(Lfn, rc);
return 0;}
165 else if (!strcmp(
"ls", csFunc))
166 {
if (!(rc = ChksumList(Lfn, Pfn)))
return 0;}
168 else if (!strcmp(csFunc,
"set"))
169 {
if (!(rc =
Config.CksMan->Set(Pfn, CksData)))
return 0;}
171 else if (!strcmp(csFunc,
"unset"))
172 {
if (!(rc =
Config.CksMan->Del(Pfn, CksData)))
return 0;}
174 else if (Abbrev(csFunc,
"verify", 3))
175 {
if ((rc =
Config.CksMan->Ver(Pfn, CksData)) > 0)
176 {
Say.
Say(CksData.
Name,
" checksums match for ", Lfn);
return 0;}
178 {
Say.
Say(CksData.
Name,
" checksums differ for ",Lfn);
return 1;}
181 else {Emsg(
"Unknown chksum function - ", csFunc);
return 4;}
185 if (rc == -EDOM) Emsg(
"Invalid ", csName,
" checksum length.");
186 else if (rc == -ENOTSUP) Emsg(csName,
" checksums are not supported.");
187 else if (rc == -ESRCH) Emsg(csName,
" checksum not set for ", Lfn);
188 else if (rc == -ESTALE) Emsg(csName,
" checksum no longer valid for ", Lfn);
189 else Emsg(-rc, csFunc,
" ", csName,
" checksum");
int Set(const char *csName)
void Say(const char *text1, const char *text2=0, const char *txt3=0, const char *text4=0, const char *text5=0, const char *txt6=0)
References XrdCms::Config, XrdOucArgs::getarg(), XrdFrc::Say, and XrdSysError::Say().
Referenced by xeqArgs().
◆ Copy()
int XrdFrmAdmin::Copy |
( |
| ) |
|
◆ Create()
int XrdFrmAdmin::Create |
( |
| ) |
|
◆ Find()
int XrdFrmAdmin::Find |
( |
| ) |
|
Definition at line 270 of file XrdFrmAdmin.cc.
273 "recursive", 1,
"r", (
const char *)0);
275 static const char *Reqs[] = {
"type",
"target", 0};
279 if (!Parse(
"find ", Spec, Reqs))
return 1;
283 if (Abbrev(Opt.Args[0],
"failfiles", 4))
return FindFail(Spec);
284 else if (Abbrev(Opt.Args[0],
"mmapped", 4))
return FindMmap(Spec);
285 else if (Abbrev(Opt.Args[0],
"nocs", 4))
return FindNocs(Spec);
286 else if (Abbrev(Opt.Args[0],
"nochksum", 8))
return FindNocs(Spec);
287 else if (Abbrev(Opt.Args[0],
"pinned", 3))
return FindPins(Spec);
288 else if (Abbrev(Opt.Args[0],
"unmigrated",4))
return FindUnmi(Spec);
292 Emsg(
"Unknown find type - ", Opt.Args[0]);
References XrdFrc::Say.
Referenced by xeqArgs().
◆ Help()
int XrdFrmAdmin::Help |
( |
| ) |
|
Definition at line 304 of file XrdFrmAdmin.cc.
306 static struct CmdInfo {
const char *Name;
311 CmdTab[] = {{
"audit", 5, 5, AuditHelp },
312 {
"chksum", 6, 6, ChksumHelp },
313 {
"find", 1, 4, FindHelp },
314 {
"makelf", 6, 6, MakeLFHelp},
315 {
"mark", 4, 4, MarkHelp },
316 {
"mmap", 4, 4, MmapHelp },
317 {
"mv", 2, 2, MvHelp },
318 {
"pin", 3, 3, PinHelp },
319 {
"query", 1, 5, QueryHelp },
320 {
"reloc", 5, 5, RelocHelp },
321 {
"rm", 2, 2, RemoveHelp}
323 static int CmdNum =
sizeof(CmdTab)/
sizeof(
struct CmdInfo);
324 const char *theHelp = HelpHelp;
330 if (!ArgS) Cmd = ArgV[0];
332 if ((Cmd = Tokens.GetLine())) Cmd = Tokens.GetToken();
339 for (i = 0; i < CmdNum; i++)
340 if (n <= CmdTab[i].maxL && n >= CmdTab[i].minL
341 && !strncmp(CmdTab[i].Name, Cmd, n))
break;
342 if (i < CmdNum) {Msg(
"Usage: ", CmdTab[i].
Help);
return 0;}
344 Emsg(0,
"Usage: ", theHelp);
References XrdOucTokenizer::GetLine(), XrdOucTokenizer::GetToken(), and Help.
Referenced by xeqArgs().
◆ MakeLF()
int XrdFrmAdmin::MakeLF |
( |
| ) |
|
Definition at line 359 of file XrdFrmAdmin.cc.
362 "migratable", 1,
"m",
368 static const char *Reqs[] = {
"lfn", 0};
370 char *lfn, buff[80], Resp;
375 if (!Parse(
"makelf ", Spec, Reqs))
return 1;
381 if (!Opt.MPType) Opt.MPType =
'm';
382 do {Opt.All = VerifyAll(lfn);
383 if ((Resp = VerifyMP(
"makelf", lfn)) ==
'y') ok = mkLock(lfn);
384 }
while(Resp !=
'a' && ok && (lfn = Spec.getarg()));
388 if (Resp ==
'a' || !ok) Msg(
"makelf aborted!");
389 sprintf(buff,
"%d lock file%s made.", numFiles, (numFiles == 1 ?
"" :
"s"));
References XrdOucArgs::getarg(), and XrdFrc::Say.
Referenced by xeqArgs().
◆ Mark()
int XrdFrmAdmin::Mark |
( |
| ) |
|
Definition at line 404 of file XrdFrmAdmin.cc.
408 "migratable", 1,
"m",
413 static const char *Reqs[] = {
"lfn", 0};
415 char *lfn, buff[80], Resp;
420 if (!Parse(
"mark ", Spec, Reqs))
return 1;
426 if (!Opt.MPType) Opt.MPType =
'm';
427 do {Opt.All = VerifyAll(lfn);
428 if ((Resp = VerifyMP(
"mark", lfn)) ==
'y') ok = mkMark(lfn);
429 }
while(Resp !=
'a' && ok && (lfn = Spec.getarg()));
433 if (Resp ==
'a' || !ok) Msg(
"mark aborted!");
434 sprintf(buff,
"%d file%s marked %s.", numFiles, (numFiles == 1 ?
"" :
"s"),
435 (Opt.MPType ==
'm' ?
"migratable" :
"purgeable"));
References XrdOucArgs::getarg(), and XrdFrc::Say.
Referenced by xeqArgs().
◆ Mmap()
int XrdFrmAdmin::Mmap |
( |
| ) |
|
Definition at line 450 of file XrdFrmAdmin.cc.
459 static const char *Reqs[] = {
"lfn", 0};
461 char *lfn, itbuff[80], Resp;
466 if (!Parse(
"pin ", Spec, Reqs))
return 1;
473 do {Opt.All = VerifyAll(lfn);
474 if ((Resp = VerifyMP(
"mmap", lfn)) ==
'y') ok = mkMmap(lfn);
475 }
while(Resp !=
'a' && ok && (lfn = Spec.getarg()));
479 if (Resp ==
'a' || !ok) Msg(
"mmap aborted!");
480 sprintf(itbuff,
"%d mmap%s processed.",numFiles,(numFiles==1?
"":
"s"));
References XrdOucArgs::getarg(), and XrdFrc::Say.
Referenced by xeqArgs().
◆ Mv()
Definition at line 491 of file XrdFrmAdmin.cc.
493 static XrdOucArgs Spec(&
Say,
"frm_admin: ",
"", (
const char *)0);
495 static const char *Reqs[] = {
"oldlfn",
"newlfn", 0};
501 if (!Parse(
"mv ", Spec, Reqs))
return 1;
506 Emsg(-rc,
"rename ", Opt.Args[0]);
507 else Msg(Opt.Args[0],
" renamed to ", Opt.Args[1]);
virtual int Rename(const char *oPath, const char *nPath, XrdOucEnv *oEnvP=0, XrdOucEnv *nEnvP=0)=0
References XrdCms::Config, XrdCmsConfig::ossFS, XrdOss::Rename(), and XrdFrc::Say.
Referenced by xeqArgs().
◆ Pin()
Definition at line 523 of file XrdFrmAdmin.cc.
530 static const char *Reqs[] = {
"lfn", 0};
533 char *lfn, itbuff[80], Resp;
538 if (!Parse(
"pin ", Spec, Reqs))
return 1;
545 do {Opt.All = VerifyAll(lfn);
546 if ((Resp = VerifyMP(
"pin", lfn)) ==
'y') ok = mkPin(lfn);
547 }
while(Resp !=
'a' && ok && (lfn = Spec.getarg()));
551 Act = (Opt.KeepTime || Opt.ktAlways ?
"" :
"un");
552 if (Resp ==
'a' || !ok) Msg(
"pin aborted!");
553 sprintf(itbuff,
"%d %spin%s processed.",numFiles,Act,(numFiles==1?
"":
"s"));
References XrdOucArgs::getarg(), and XrdFrc::Say.
Referenced by xeqArgs().
◆ Query()
int XrdFrmAdmin::Query |
( |
| ) |
|
Definition at line 571 of file XrdFrmAdmin.cc.
573 static XrdOucArgs Spec(&
Say,
"frm_admin: ",
"", (
const char *)0);
575 static const char *Reqs[] = {
"type", 0};
576 static struct CmdInfo {
const char *Name;
579 CmdTab[] = {{
"pfn", &XrdFrmAdmin::QueryPfn},
580 {
"rfn", &XrdFrmAdmin::QueryRfn},
581 {
"space", &XrdFrmAdmin::QuerySpace},
582 {
"usage", &XrdFrmAdmin::QueryUsage},
583 {
"xfrq", &XrdFrmAdmin::QueryXfrQ}
585 static int CmdNum =
sizeof(CmdTab)/
sizeof(
struct CmdInfo);
591 if (!Parse(
"query ", Spec, Reqs))
return 1;
595 for (i = 0; i < CmdNum; i++)
596 if (!strcmp(CmdTab[i].Name, Opt.Args[0]))
break;
601 {Emsg(
"Invalid query type - ", Opt.Args[0]);
607 return (*this.*CmdTab[i].Method)(Spec);
References XrdFrc::Say.
Referenced by xeqArgs().
◆ Quit()
int XrdFrmAdmin::Quit |
( |
| ) |
|
|
inline |
◆ Reloc()
int XrdFrmAdmin::Reloc |
( |
| ) |
|
Definition at line 616 of file XrdFrmAdmin.cc.
618 static XrdOucArgs Spec(&
Say,
"frm_admin: ",
"", (
const char *)0);
620 static const char *Reqs[] = {
"lfn",
"target", 0};
626 if (!Parse(
"reloc ", Spec, Reqs))
return 1;
631 Emsg(-rc,
"reloc ", Opt.Args[0]);
632 else Msg(Opt.Args[0],
" relocated to space ", Opt.Args[1]);
virtual int Reloc(const char *tident, const char *path, const char *cgName, const char *anchor=0)
References XrdCms::Config, XrdCmsConfig::ossFS, XrdOss::Reloc(), and XrdFrc::Say.
Referenced by xeqArgs().
◆ Remove()
int XrdFrmAdmin::Remove |
( |
| ) |
|
Definition at line 646 of file XrdFrmAdmin.cc.
654 static const char *Reqs[] = {
"lfn", 0};
656 const char *Txt =
"";
662 if (!Parse(
"rm ", Spec, Reqs))
return 1;
666 numDirs = numFiles = numProb = 0;
670 do {Opt.All = VerifyAll(Opt.Args[0]);
671 if ((rc = Unlink(Opt.Args[0])) < 0) aOK = 0;
672 }
while(rc && (Opt.Args[0] = Spec.getarg()));
674 if (!rc) {Txt =
"rm aborted; only "; finalRC = 4;}
675 else if (numProb || !aOK) {Txt =
"rm incomplete; only "; finalRC = 4;}
679 sprintf(buff,
"%s%d %s and %d %s deleted.", Txt,
680 numFiles, (numFiles != 1 ?
"files" :
"file"),
681 numDirs, (numDirs != 1 ?
"directories" :
"directory"));
References XrdOucArgs::getarg(), XrdFrc::Say, and Posix::Unlink().
Referenced by xeqArgs().
◆ Rename()
int XrdFrmAdmin::Rename |
( |
| ) |
|
◆ setArgs() [1/2]
void XrdFrmAdmin::setArgs |
( |
char * |
argv | ) |
|
◆ setArgs() [2/2]
void XrdFrmAdmin::setArgs |
( |
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Definition at line 690 of file XrdFrmAdmin.cc.
692 ArgC = argc; ArgV = argv; ArgS = 0;
◆ xeqArgs()
int XrdFrmAdmin::xeqArgs |
( |
char * |
Cmd | ) |
|
Definition at line 705 of file XrdFrmAdmin.cc.
707 static struct CmdInfo {
const char *Name;
727 static int CmdNum =
sizeof(CmdTab)/
sizeof(
struct CmdInfo);
729 int i, n = strlen(Cmd);
733 for (i = 0; i < CmdNum; i++)
734 if (n >= CmdTab[i].minLen && n <= CmdTab[i].maxLen
735 && !strncmp(CmdTab[i].Name, Cmd, n))
break;
740 {Emsg(
"Invalid command - ", Cmd);
746 return (*this.*CmdTab[i].Method)();
References Audit(), Chksum(), Find(), Help(), MakeLF(), Mark(), Mmap(), Mv(), Pin(), Query(), Quit(), Reloc(), and Remove().
The documentation for this class was generated from the following files: