- Jun 03, 2017
-
-
Michael Davis authored
-
- Jun 26, 2017
-
-
Steven Murray authored
Removed the member variable XrdCtaFile::error that was incorrectly shadowing XrdSfsFile::error.
-
Michael Davis authored
-
Steven Murray authored
Added the XrdCtaFile::m_listingArchiveFiles member variable and factorized XrdCtaFile::readFromCmdlineOutput() out from XrdCtaFile::read() so that in the future the XrdCtaFile::read() method will be able to treat the listing of archive files differently from other cta commands. Currently none of the cta commands are incrementally generating and streaming large result sets back to the cta command-line tool. All commands are generating the entire result in the constructor of XrdCtaFile. The result is streamed back to the cta command-line tool, but the result is generated in one single stepi before any streaming starts. The listing of archive files is being gradually modified to incrementaly generate the result in each call to XrdCtaFile::read(). This commit is one step in this larger modification.
-
Steven Murray authored
Put back the serialising of the command return code. This was once done within the XrdCtaFile::getMmap() method. It is now done within the XrdCtaFile::logRequestAndSetCmdlineResult() method. Please note that command return codes must be in the range "0" to "9" because the first ASCII character sent back from the CTA front-end to the cta command-line tool is the return code. The following code snippet from the implementation of the cta command-line tool shows the format of the reply from the CTA front-end to the cta command-line tool: // The cta frontend return code is the first char of the answer { uint64_t readOffset = 0; uint32_t bytesRead = 0; char rc_char = '0'; const XrdCl::XRootDStatus readStatus = xrootFile.Read(readOffset, 1, &rc_char, bytesRead); if(!readStatus.IsOK()) { throw std::runtime_error(std::string("Failed to read first byte from ") + cmdPath + ": " + readStatus.ToStr()); } if(bytesRead != 1) { throw std::runtime_error(std::string("Failed to read first byte from ") + cmdPath + ": Expected to read exactly 1 byte, actually read " + std::to_string((long long unsigned int)bytesRead) + " bytes"); } rc = rc_char - '0'; }
-
Steven Murray authored
Removed unnecessary member variable XrdCtaFile::m_cmdlineReturnCode
-
Steven Murray authored
Removed unused int return from logRequestAndSetCmdlineResult().
-
Steven Murray authored
Simplified the XrdCtaFile class. logRequestAndSetCmdlineResult()i is now only called by XrdCtaFile::open().
-
- Jun 23, 2017
-
-
Steven Murray authored
Revert "Revert "cta/CTA#139 cta af ls --vid XXXXX command times out if there are many files on a tape"" This reverts commit 460b9fdd.
-
Steven Murray authored
This reverts commit e30077f9. This revert is being made because the original commit broke the "cta logicallibrary add" command.
-
- Jun 22, 2017
-
-
Julien Leduc authored
-
Steven Murray authored
The CTA front-ends code for replying to requests is currently incompatible with streaming back large reply messages such as the contents of a tape. Executing the "cta" command-line tool results in the CTA front-end creating a temporary server side representation of a file. The XrdCtaFile class implements this server side representation of a file. The constructor of the XrdCtaFile class generates the entire contents of the file in one shot. The contents of the file are in fact the message a user of the "cta" command-line eventually sees on their screen (standard out). The entire single shot contents of the file are presented to the XRootD framework as a memory mapped file which is in fact a simple "one-shot" array of bytes. This memory mapped file approach is implemented by the XrdCtaFile::getMmap() method returning SFS_OK and setting the Addr and Size variables. This commit replaces the memory mapped file approach of XrdCtaFile::getMmap() with the stream interface approach of XrdCtaFile::read(). Please note that the CTA front-end is still not actually streaming the result of "cta af ls --vid XXXX". This commit is one step closer. The whole reply message is still generated in one shot by the constructor of XrdCtaFile. The contents are however now streamed off to the "cta" command-line tool via multiple calls to XrdCtaFile::read().
-
Steven Murray authored
Factorised out the RdbmsArchiveFileItor class so it is easier to work with and modify.
-
Steven Murray authored
-
Julien Leduc authored
-
Steven Murray authored
-
Eric Cano authored
-
Eric Cano authored
This branch is a workaround as buildtree runner does not work in master.
-
Eric Cano authored
This led to VID being marked as available during unmount, and another drive could try an mount the same tape. Added various logs. The following sequence was observed in tests (with a sleep(3) at the end of MigrationReportPacker::ReportDriveStatus::execute() ): [eric@localhost ~]$ date; kubectl -n cta exec ctacli -- cta dr ls VDSTK11 Thu Jun 22 11:19:10 CEST 2017 drive host library mountType status desiredUp forceDown vid VDSTK11 tpsrv VLSTK10 Archive Mounting UP V01001 [eric@localhost ~]$ date; kubectl -n cta exec ctacli -- cta dr ls VDSTK11 Thu Jun 22 11:19:12 CEST 2017 drive host library mountType status desiredUp forceDown vid VDSTK11 tpsrv VLSTK10 Archive Transfering UP V01001 [eric@localhost ~]$ date; kubectl -n cta exec ctacli -- cta dr ls VDSTK11 Thu Jun 22 11:19:16 CEST 2017 drive host library mountType status desiredUp forceDown vid VDSTK11 tpsrv VLSTK10 Archive CleaningUp UP V01001 [eric@localhost ~]$ date; kubectl -n cta exec ctacli -- cta dr ls VDSTK11 Thu Jun 22 11:19:18 CEST 2017 drive host library mountType status desiredUp forceDown vid VDSTK11 tpsrv VLSTK10 Archive Unloading UP V01001 [eric@localhost ~]$ date; kubectl -n cta exec ctacli -- cta dr ls VDSTK11 Thu Jun 22 11:19:22 CEST 2017 drive host library mountType status desiredUp forceDown vid VDSTK11 tpsrv VLSTK10 Archive Unmounting UP V01001 [eric@localhost ~]$ date; kubectl -n cta exec ctacli -- cta dr ls VDSTK11 Thu Jun 22 11:19:25 CEST 2017 drive host library mountType status desiredUp forceDown vid VDSTK11 tpsrv VLSTK10 NoMount Up UP -
-
- Jun 21, 2017
-
-
Steven Murray authored
This commit makes the "eos rm" command idempotent with respect to the CTA catalogue. If the "eos rm" command requests the CTA catalogue to delete a file that does not exist with the CTA catalogue, then this condition is no longer treated as an error.
-
Eric Cano authored
This branch is a workaround as buildtree runner does not work in master.
-
Eric Cano authored
Also added extra logs in ArchiveMount::getNextJobBatch().
-
Eric Cano authored
-
Eric Cano authored
-
Julien Leduc authored
Just use -D and -O options.
-
Julien Leduc authored
-
Julien Leduc authored
tests/simple_client_ar.sh is the previous simple archive retrieve test, tests/client_ar.sh allows to enter more parameters: number of files for test, their size and the number of parallel jobs to trigger the retrieve.
-
Julien Leduc authored
-
Julien Leduc authored
-
Julien Leduc authored
-
Julien Leduc authored
fixing rmcd log issue as /var/log/castor/rmcd_legacy.log was a named pipe and nothing was collected in artifacts.
-
Julien Leduc authored
-
Julien Leduc authored
and generating all the required krb5 keytabs
-
Julien Leduc authored
using root instead...
-
Julien Leduc authored
Only eosusers and powerusers can write to it, and powerusers only can drop replicas for all file in this directory. poweruser1 now drops the disk replica of the file before it is recalled in `client_ar.sh` test script.
-
Julien Leduc authored
-
Julien Leduc authored
-
Julien Leduc authored
adding all the missing bits to allow the simple systemtest to run on the client pod: - add user `daemon` to sudoer in eos so that we can xrdfs prepare as a `powerusers` user - add the `powerusers` group mount rule in cta - add the missing bits in client_test.sh
-
Julien Leduc authored
-
Julien Leduc authored
-