- 26 May, 2017 1 commit
-
-
Cristina Moraru authored
This commit adds the feature of querying the drive for the Recommended Access Order (RAO) of a series of files and adds a test file for this feature. Changes of this commit: * Extend the DriveInterface with a virtual method queryRAO which takes as parameter the name of the file containing a set of files for which the RAO is requested. The line format of this file is the following: FILE_ID:BLOCK_START:BLOCK_END * Extend DriveGeneric class with the implementation of the method queryRAO, along with a few other auxiliary methods; some key auxiliary methods are getLimitUDS, generateRAO, receiveRAO * Add method queryRAO in object FakeDrive returning Exception: Not Implemented * Add auxiliary constants and structures in a new 'RAO' namespace * Add test file: BasicReadWriteTest.cpp which can perform 3 tests according to the setting of variable 'test' 1. BLOCK_TEST - basic read / write of blocks 2. FILE_TEST - writes a series of CASTOR files and reads a random one 3. RAO_TEST - performs a RAO query for a series of files given in the filename specified in argv[1]. The file format should respect the above mentioned order. Signed-off-by:
Cristina Moraru <cristina-gabriela.moraru@cern.ch>
-
- 11 Oct, 2016 1 commit
-
-
Victor Kotlyar authored
6b6374d6c2e209c98c0d4d7aa665e1df83d71aaa CASTOR-5350: Introduce encryption SCSI commands in tape drive backend Implementation of two methods: * setEncryptionKey(key): Sets encryption params to drive. * clearEncryptionKey: Clears encryption params from drive. 3cf91d48f5c7b0cb563c3037aee69ec769f5ab94 Added support for an interface script that will setup drive encryption per tape e9ca601687508de20fab7154e63bb0dbd1b25a8a Migrate TapeWriteSingleThread::TapeCleaning::~TapeCleaning() body to .cpp 266b02d8175b5cfc0b688135cbdc335e93060b CASTOR-5350: Refactor support for only external key management script 789b26a0bc69053ff1ab792a02676a7753f093ed Merge branch 'encryption_backend' into 'master' CASTOR-5350: Encryption backend ## Description The aim of this merge request is to incorporate encryption support into CASTOR. The proposed changes are to be used in conjunction with the operators' [ExternalEncryptionKeyScript](https://gitlab.cern.ch/slaskari/castor-get-encryption-key). The **aim** is to enable encryption in specific tape pools of CASTOR. ## Changes * Introduce encryption SCSI backend to DriveGeneric. * Introduce encryption control wrapper * (`castor/tape/tapeserver/daemon/EncryptionControl`) for * abstracting the two sub-components of: * Calling the `ExternalEncryptionKeyScript`, * Calling the equivalent DriveGeneric function for * passing/clearing the encryption parameters to/from the drive. * Add new configuration option in `castor.conf` for the external key * management script. * Create a Subprocess wrapper for executing external commands as * CASTOR children (`castor/server/Subprocess.{h,c}pp`). * Incorporate encryption handling in the: * DataTransferSession * LabelSession * CleanerSession * Add encryption control timer in the task Watchdog. See merge request !1 fa550707c42d80466bbd448e355aaf9be5ea8e04 Clear encryption key only when encryption enabled Changes include: - Making EncryptionControl stateful - Calling clearEncryptionKey on the drive only when encryption is on. Also includes a minor duplicate code fix on DriveGeneric. cf4eb9f3ae36c9cfc9c40349d69ab6642020e81e Merge branch 'encryption_changes' into 'master' Clear encryption key only when encryption enabled ## Description Changes include: - Making EncryptionControl stateful - Calling `clearEncryptionKey()` on the drive only when encryption is on. Also includes a minor duplicate code fix on **DriveGeneric.cpp**. See merge request !2 40366d963ee33ca081df6c991189b21369e461fd Check if the drive has encryption capability enabled: * Add isEncryptionCapEnabled() vendor-specific function * Check isEncryptionCapEnabled() before passing encryption params * Check isEncryptionCapEnabled() before clearing encryption params * Clear encryption key before unencrypted I/O 4ccc661d01eccfc3fdfb9ee2578d15a147a0c55a Merge branch 'encryption_capability_enabled' into 'master' Drive encryption capabilities inclusion ## Description The aim of this merge request is to address issues related to encryption on drive without the encryption capability enabled. More specifically: * It introduces a vendor-specific way of identifying if the drive * has encryption capability enabled * **IBM**: Through the SPIN index SCSI page * **Oracle**: Through the general INQUIRY SCSI page * If the data to be written are to be encrypted, an additional check * of the encryption capability of the drive is made. In case of * encrypted data, but no encryption capability, the session fails. In essence, all encryption related operations are made modulo the encryption capability of the drive. Last, in case of unencrypted I/O, we clear the keys of the drive (if encryption capable) to avoid encrypted data with previous keys on CASTOR's system failure. ## Testing Before the merge request's submission, the following tests were passed: On drives with **encryption capability enabled**: * Label session * Label with previously set encryption key * Write without encryption * Read without encryption * Write with encryption * Read with encryption * Write with previously set encryption key * Read with previously set encryption key On drive with **encryption cabability disabled**: * Label session * Write without encryption * Read without encryption * Write with encryption - session **should** fail * Read with encryption - session **should** fail See merge request !3 55b85a2cb4681d697565116c00ff98c6becea4fb Secure session against invalid encryption script output 3a54875c680fe6c1c9d5cf25cf98d2780196e0d1 Changes in encryption workflow - VMGR tag is updated only on write operations - Empty key signifies no encryption f5408cf0ccbae9a4ab94a533f3b6d7be323f72fb Minor encryption log enhancements * Error line in Read/Write session with ErrorMesage key * Fix for delimiter in the end of arguments in argsToString() 2e7204fb0dd24b472a959fa5e13320c34df4f017 Merging in improvements on tape encryption support. 92533a1746d0744ee528781558a720c63ca3c4d1 Removed nullptr which is not supported in SLC6's gcc. Added automatic deletion of json objects in EncryptionControl::parse_json_script_output. fca3bb9e7fce364b429fc0b5c036fb752fd67ff1 Fix log typo
-
- 29 Aug, 2016 1 commit
-
-
Steven Murray authored
-
- 24 Feb, 2016 1 commit
-
-
Julien Leduc authored
-
- 12 Nov, 2015 1 commit
-
-
Eric Cano authored
Extracted BackendPopulator and OStoreDBWithAgent from the XrootD plugin to avoid linking the plugin too widely.
-
- 16 Jul, 2015 2 commits
-
-
Steven Murray authored
-
Steven Murray authored
Renamed CTA/tapeserver/castor to CTA/tapeserver/castor_checkout in preparation for the moving the sub-directory CTA/tapeserver/castor/castor up the directory tree
-
- 15 Jul, 2015 2 commits
-
-
Steven Murray authored
-
Eric Cano authored
-
- 28 Oct, 2014 2 commits
-
-
Victor Kotlyar authored
This reverts commit 97bd05cb.
-
Victor Kotlyar authored
This reverts commit 10b8297d.
-
- 24 Oct, 2014 2 commits
-
-
Victor Kotlyar authored
on SCSI call TEST UNIT READY instead of st driver. Reiplemented drive::DriveGeneric::waitUntilReady to use TEST UNIT READY SCSI command.
-
root authored
-
- 15 Sep, 2014 1 commit
-
-
Victor Kotlyar authored
-
- 09 Sep, 2014 1 commit
-
-
Victor Kotlyar authored
with new IBM drives.
-
- 05 Aug, 2014 2 commits
-
-
David COME authored
-
David COME authored
-
- 03 Jul, 2014 1 commit
-
-
David COME authored
-
- 15 May, 2014 1 commit
-
-
David COME authored
-
- 18 Feb, 2014 1 commit
-
-
Eric Cano authored
-
- 07 Feb, 2014 1 commit
-
-
Daniele Kruse authored
-
- 04 Feb, 2014 1 commit
-
-
Eric Cano authored
- Fixed missing allocationLength in INQUIRY commands - Fixed misnamed struct member (typo) - Introduced setU32 utility function to replace fromLtoB32 (retired) - Replaced usage of ad-hoc structures with the automatically set classes (SCSI::Structures::LinuxSGIO_t, SCSI::Structures::senseData_t).
-
- 12 Dec, 2013 1 commit
-
-
Eric Cano authored
Fixed inheritance from std::exception (const correctness of what()). This required declaring m_what mutable. Created a multithreaded unit test. Created an automatic exception thrower for unhandled errors. Ported from previous proof of concept the threading primitves and made them production level (with error checking). Added unit tests for threading primitives.
-
- 05 Dec, 2013 2 commits
- 06 Nov, 2013 1 commit
-
-
Eric Cano authored
-
- 26 Sep, 2013 1 commit
-
-
Victor Kotlyar authored
from SCSI level.
-
- 20 Aug, 2013 1 commit
-
-
Eric Cano authored
Removed the author list from every file and added the complete list into a single file.
-
- 15 Aug, 2013 2 commits
-
-
Eric Cano authored
Added a helper function to set SCSI 16 bits values. Added test for Tape::Drive::getTapeAlerts Fixed Tape::Drive::getTapeAlerts Removed the -O2 from the compilation options: debugging was sometimes confusing, and compilation is now faster. Also removed optimisation from rpm build.
-
Eric Cano authored
Updated documentation which was inaccurate about padding of the strings in SCSI structures. Added comments around the correponding helper function.
-
- 14 Aug, 2013 1 commit
-
-
Victor Kotlyar authored
child function getSerialNumber was added.
-
- 07 Aug, 2013 5 commits
-
-
Eric Cano authored
-
Eric Cano authored
Moved definition of compiler flags so they become active. This fixes the lack of debug info in SLC6. Fixed superflous semicolon detected by -pedantic Fixed sign correctness in various places. Removed the use of LL suffix in 64 bits contants (they are not required). Some documentation clarifications.
-
Eric Cano authored
-
Eric Cano authored
-
Victor Kotlyar authored
We use MODE SENSE(6) to query the tape information and then MODE SELECT(6) to set parameters which we only change. By default we only enable compression.
-
- 06 Aug, 2013 2 commits
- 05 Aug, 2013 1 commit
-
-
Victor Kotlyar authored
(CASTOR way was just to fill everything with 0)
-
- 02 Aug, 2013 1 commit
-
-
Victor Kotlyar authored
We use READ POSTION command with data replay in SHORT FORM. Tested with mhvtl.
-