From 83c7b1ff84ca47b1a654c4fbcd68723a55bbeb61 Mon Sep 17 00:00:00 2001 From: Steven Murray <Steven.Murray@cern.ch> Date: Tue, 11 Dec 2018 19:17:54 +0100 Subject: [PATCH] Added vo member variable to cta::common::dataStructures::Tape and cta::catalogue::TapeForWriting --- catalogue/CatalogueTest.cpp | 64 +++++++++ catalogue/RdbmsCatalogue.cpp | 248 ++++++++++++++++++--------------- catalogue/TapeForWriting.hpp | 5 + common/dataStructures/Tape.hpp | 1 + 4 files changed, 202 insertions(+), 116 deletions(-) diff --git a/catalogue/CatalogueTest.cpp b/catalogue/CatalogueTest.cpp index 3e80e27c88..d735f50ae8 100644 --- a/catalogue/CatalogueTest.cpp +++ b/catalogue/CatalogueTest.cpp @@ -2071,6 +2071,7 @@ TEST_P(cta_catalogue_CatalogueTest, createTape) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -2446,6 +2447,7 @@ TEST_P(cta_catalogue_CatalogueTest, createTape_9_exabytes_capacity) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -2616,6 +2618,7 @@ TEST_P(cta_catalogue_CatalogueTest, createTape_many_tapes) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibrary, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabled == tape.disabled); ASSERT_TRUE(full == tape.full); @@ -2765,6 +2768,7 @@ TEST_P(cta_catalogue_CatalogueTest, createTape_many_tapes) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibrary, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabled == tape.disabled); ASSERT_TRUE(full == tape.full); @@ -2838,6 +2842,7 @@ TEST_P(cta_catalogue_CatalogueTest, createTape_1_tape_with_write_log_1_tape_with ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -2923,6 +2928,7 @@ TEST_P(cta_catalogue_CatalogueTest, createTape_1_tape_with_write_log_1_tape_with ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -2989,6 +2995,7 @@ TEST_P(cta_catalogue_CatalogueTest, deleteTape) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3050,6 +3057,7 @@ TEST_P(cta_catalogue_CatalogueTest, deleteNonEmptyTape) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_EQ(0, tape.dataOnTapeInBytes); ASSERT_TRUE(disabledValue == tape.disabled); @@ -3106,6 +3114,7 @@ TEST_P(cta_catalogue_CatalogueTest, deleteNonEmptyTape) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_EQ(fileSize, tape.dataOnTapeInBytes); ASSERT_TRUE(disabledValue == tape.disabled); @@ -3170,6 +3179,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeMediaType) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3249,6 +3259,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeVendor) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3279,6 +3290,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeVendor) { ASSERT_EQ(anotherVendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3329,6 +3341,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeLogicalLibraryName) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3359,6 +3372,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeLogicalLibraryName) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(anotherLogicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3423,6 +3437,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeTapePoolName) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3453,6 +3468,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeTapePoolName) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(anotherTapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3518,6 +3534,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeCapacityInBytes) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3549,6 +3566,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeCapacityInBytes) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(modifiedCapacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3609,6 +3627,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeEncryptionKey) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3640,6 +3659,7 @@ TEST_P(cta_catalogue_CatalogueTest, modifyTapeEncryptionKey) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(modifiedEncryptionKey, tape.encryptionKey); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); @@ -3701,6 +3721,7 @@ TEST_P(cta_catalogue_CatalogueTest, tapeLabelled) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3733,6 +3754,7 @@ TEST_P(cta_catalogue_CatalogueTest, tapeLabelled) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3796,6 +3818,7 @@ TEST_P(cta_catalogue_CatalogueTest, tapeMountedForArchive) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3827,6 +3850,7 @@ TEST_P(cta_catalogue_CatalogueTest, tapeMountedForArchive) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3888,6 +3912,7 @@ TEST_P(cta_catalogue_CatalogueTest, tapeMountedForRetrieve) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3919,6 +3944,7 @@ TEST_P(cta_catalogue_CatalogueTest, tapeMountedForRetrieve) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -3980,6 +4006,7 @@ TEST_P(cta_catalogue_CatalogueTest, setTapeFull) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -4010,6 +4037,7 @@ TEST_P(cta_catalogue_CatalogueTest, setTapeFull) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(tape.full); @@ -4068,6 +4096,7 @@ TEST_P(cta_catalogue_CatalogueTest, noSpaceLeftOnTape) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -4098,6 +4127,7 @@ TEST_P(cta_catalogue_CatalogueTest, noSpaceLeftOnTape) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(tape.full); @@ -4156,6 +4186,7 @@ TEST_P(cta_catalogue_CatalogueTest, setTapeDisabled) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -4186,6 +4217,7 @@ TEST_P(cta_catalogue_CatalogueTest, setTapeDisabled) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(tape.disabled); ASSERT_FALSE(tape.full); @@ -4242,6 +4274,7 @@ TEST_P(cta_catalogue_CatalogueTest, getTapesForWriting) { ASSERT_EQ(mediaType, tape.mediaType); ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(tapePoolName, tape.tapePool); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(0, tape.lastFSeq); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_EQ(0, tape.dataOnTapeInBytes); @@ -6320,6 +6353,7 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -6345,6 +6379,7 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -6582,6 +6617,7 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -6607,6 +6643,7 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -7132,6 +7169,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName1, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -7158,6 +7196,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName2, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -7642,6 +7681,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -7667,6 +7707,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -7875,6 +7916,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -7900,6 +7942,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8102,6 +8145,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8307,6 +8351,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8332,6 +8377,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8492,6 +8538,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8517,6 +8564,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8677,6 +8725,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8702,6 +8751,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8862,6 +8912,7 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -8887,6 +8938,7 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9185,6 +9237,7 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9210,6 +9263,7 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot ASSERT_EQ(vendor, tape.vendor); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9544,6 +9598,7 @@ TEST_P(cta_catalogue_CatalogueTest, getAllTapes_many_tapes) { ASSERT_EQ(vendor, tapeItor->second.vendor); ASSERT_EQ(logicalLibraryName, tapeItor->second.logicalLibraryName); ASSERT_EQ(tapePoolName, tapeItor->second.tapePoolName); + ASSERT_EQ(vo, tapeItor->second.vo); ASSERT_EQ(capacityInBytes, tapeItor->second.capacityInBytes); ASSERT_EQ(disabledValue, tapeItor->second.disabled); ASSERT_EQ(fullValue, tapeItor->second.full); @@ -9584,6 +9639,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_0_no_tape_files) { ASSERT_EQ(0, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9617,6 +9673,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_0_no_tape_files) { ASSERT_EQ(0, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_FALSE(tape.full); @@ -9666,6 +9723,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_not_full_lastFSeq_0_no_tape_file ASSERT_EQ(0, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9723,6 +9781,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_no_tape_files) { ASSERT_EQ(0, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9823,6 +9882,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_no_tape_files) { ASSERT_EQ(1, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9860,6 +9920,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_no_tape_files) { ASSERT_EQ(1, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9895,6 +9956,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_no_tape_files) { ASSERT_EQ(0, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -9948,6 +10010,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_one_tape_file) { ASSERT_EQ(0, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); @@ -10049,6 +10112,7 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_one_tape_file) { ASSERT_EQ(1, tape.lastFSeq); ASSERT_EQ(logicalLibraryName, tape.logicalLibraryName); ASSERT_EQ(tapePoolName, tape.tapePoolName); + ASSERT_EQ(vo, tape.vo); ASSERT_EQ(capacityInBytes, tape.capacityInBytes); ASSERT_TRUE(disabledValue == tape.disabled); ASSERT_TRUE(fullValue == tape.full); diff --git a/catalogue/RdbmsCatalogue.cpp b/catalogue/RdbmsCatalogue.cpp index 884de7c8a6..f79411d820 100644 --- a/catalogue/RdbmsCatalogue.cpp +++ b/catalogue/RdbmsCatalogue.cpp @@ -1851,39 +1851,42 @@ std::list<common::dataStructures::Tape> RdbmsCatalogue::getTapes(rdbms::Conn &co std::list<common::dataStructures::Tape> tapes; std::string sql = "SELECT " - "VID AS VID," - "MEDIA_TYPE AS MEDIA_TYPE," - "VENDOR AS VENDOR," - "LOGICAL_LIBRARY_NAME AS LOGICAL_LIBRARY_NAME," - "TAPE_POOL_NAME AS TAPE_POOL_NAME," - "ENCRYPTION_KEY AS ENCRYPTION_KEY," - "CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," - "DATA_IN_BYTES AS DATA_IN_BYTES," - "LAST_FSEQ AS LAST_FSEQ," - "IS_DISABLED AS IS_DISABLED," - "IS_FULL AS IS_FULL," - "LBP_IS_ON AS LBP_IS_ON," - - "LABEL_DRIVE AS LABEL_DRIVE," - "LABEL_TIME AS LABEL_TIME," - - "LAST_READ_DRIVE AS LAST_READ_DRIVE," - "LAST_READ_TIME AS LAST_READ_TIME," - - "LAST_WRITE_DRIVE AS LAST_WRITE_DRIVE," - "LAST_WRITE_TIME AS LAST_WRITE_TIME," - - "USER_COMMENT AS USER_COMMENT," - - "CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," - "CREATION_LOG_HOST_NAME AS CREATION_LOG_HOST_NAME," - "CREATION_LOG_TIME AS CREATION_LOG_TIME," - - "LAST_UPDATE_USER_NAME AS LAST_UPDATE_USER_NAME," - "LAST_UPDATE_HOST_NAME AS LAST_UPDATE_HOST_NAME," - "LAST_UPDATE_TIME AS LAST_UPDATE_TIME " + "TAPE.VID AS VID," + "TAPE.MEDIA_TYPE AS MEDIA_TYPE," + "TAPE.VENDOR AS VENDOR," + "TAPE.LOGICAL_LIBRARY_NAME AS LOGICAL_LIBRARY_NAME," + "TAPE.TAPE_POOL_NAME AS TAPE_POOL_NAME," + "TAPE_POOL.VO AS VO," + "TAPE.ENCRYPTION_KEY AS ENCRYPTION_KEY," + "TAPE.CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," + "TAPE.DATA_IN_BYTES AS DATA_IN_BYTES," + "TAPE.LAST_FSEQ AS LAST_FSEQ," + "TAPE.IS_DISABLED AS IS_DISABLED," + "TAPE.IS_FULL AS IS_FULL," + "TAPE.LBP_IS_ON AS LBP_IS_ON," + + "TAPE.LABEL_DRIVE AS LABEL_DRIVE," + "TAPE.LABEL_TIME AS LABEL_TIME," + + "TAPE.LAST_READ_DRIVE AS LAST_READ_DRIVE," + "TAPE.LAST_READ_TIME AS LAST_READ_TIME," + + "TAPE.LAST_WRITE_DRIVE AS LAST_WRITE_DRIVE," + "TAPE.LAST_WRITE_TIME AS LAST_WRITE_TIME," + + "TAPE.USER_COMMENT AS USER_COMMENT," + + "TAPE.CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," + "TAPE.CREATION_LOG_HOST_NAME AS CREATION_LOG_HOST_NAME," + "TAPE.CREATION_LOG_TIME AS CREATION_LOG_TIME," + + "TAPE.LAST_UPDATE_USER_NAME AS LAST_UPDATE_USER_NAME," + "TAPE.LAST_UPDATE_HOST_NAME AS LAST_UPDATE_HOST_NAME," + "TAPE.LAST_UPDATE_TIME AS LAST_UPDATE_TIME " "FROM " - "TAPE"; + "TAPE " + "INNER JOIN TAPE_POOL ON " + "TAPE.TAPE_POOL_NAME = TAPE_POOL.TAPE_POOL_NAME"; if(searchCriteria.vid || searchCriteria.mediaType || @@ -1900,50 +1903,50 @@ std::list<common::dataStructures::Tape> RdbmsCatalogue::getTapes(rdbms::Conn &co bool addedAWhereConstraint = false; if(searchCriteria.vid) { - sql += " VID = :VID"; + sql += " TAPE.VID = :VID"; addedAWhereConstraint = true; } if(searchCriteria.mediaType) { if(addedAWhereConstraint) sql += " AND "; - sql += " MEDIA_TYPE = :MEDIA_TYPE"; + sql += " TAPE.MEDIA_TYPE = :MEDIA_TYPE"; addedAWhereConstraint = true; } if(searchCriteria.vendor) { if(addedAWhereConstraint) sql += " AND "; - sql += " VENDOR = :VENDOR"; + sql += " TAPE.VENDOR = :VENDOR"; addedAWhereConstraint = true; } if(searchCriteria.logicalLibrary) { if(addedAWhereConstraint) sql += " AND "; - sql += " LOGICAL_LIBRARY_NAME = :LOGICAL_LIBRARY_NAME"; + sql += " TAPE.LOGICAL_LIBRARY_NAME = :LOGICAL_LIBRARY_NAME"; addedAWhereConstraint = true; } if(searchCriteria.tapePool) { if(addedAWhereConstraint) sql += " AND "; - sql += " TAPE_POOL_NAME = :TAPE_POOL_NAME"; + sql += " TAPE.TAPE_POOL_NAME = :TAPE_POOL_NAME"; addedAWhereConstraint = true; } if(searchCriteria.capacityInBytes) { if(addedAWhereConstraint) sql += " AND "; - sql += " CAPACITY_IN_BYTES = :CAPACITY_IN_BYTES"; + sql += " TAPE.CAPACITY_IN_BYTES = :CAPACITY_IN_BYTES"; addedAWhereConstraint = true; } if(searchCriteria.disabled) { if(addedAWhereConstraint) sql += " AND "; - sql += " IS_DISABLED = :IS_DISABLED"; + sql += " TAPE.IS_DISABLED = :IS_DISABLED"; addedAWhereConstraint = true; } if(searchCriteria.full) { if(addedAWhereConstraint) sql += " AND "; - sql += " IS_FULL = :IS_FULL"; + sql += " TAPE.IS_FULL = :IS_FULL"; addedAWhereConstraint = true; } if(searchCriteria.lbp) { if(addedAWhereConstraint) sql += " AND "; - sql += " LBP_IS_ON = :LBP_IS_ON"; + sql += " TAPE.LBP_IS_ON = :LBP_IS_ON"; } - sql += " ORDER BY VID"; + sql += " ORDER BY TAPE.VID"; auto stmt = conn.createStmt(sql); @@ -1966,6 +1969,7 @@ std::list<common::dataStructures::Tape> RdbmsCatalogue::getTapes(rdbms::Conn &co tape.vendor = rset.columnString("VENDOR"); tape.logicalLibraryName = rset.columnString("LOGICAL_LIBRARY_NAME"); tape.tapePoolName = rset.columnString("TAPE_POOL_NAME"); + tape.vo = rset.columnString("VO"); tape.encryptionKey = rset.columnOptionalString("ENCRYPTION_KEY"); tape.capacityInBytes = rset.columnUint64("CAPACITY_IN_BYTES"); tape.dataOnTapeInBytes = rset.columnUint64("DATA_IN_BYTES"); @@ -2006,39 +2010,42 @@ common::dataStructures::VidToTapeMap RdbmsCatalogue::getTapesByVid(const std::se common::dataStructures::VidToTapeMap vidToTapeMap; std::string sql = "SELECT " - "VID AS VID," - "MEDIA_TYPE AS MEDIA_TYPE," - "VENDOR AS VENDOR," - "LOGICAL_LIBRARY_NAME AS LOGICAL_LIBRARY_NAME," - "TAPE_POOL_NAME AS TAPE_POOL_NAME," - "ENCRYPTION_KEY AS ENCRYPTION_KEY," - "CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," - "DATA_IN_BYTES AS DATA_IN_BYTES," - "LAST_FSEQ AS LAST_FSEQ," - "IS_DISABLED AS IS_DISABLED," - "IS_FULL AS IS_FULL," - "LBP_IS_ON AS LBP_IS_ON," - - "LABEL_DRIVE AS LABEL_DRIVE," - "LABEL_TIME AS LABEL_TIME," - - "LAST_READ_DRIVE AS LAST_READ_DRIVE," - "LAST_READ_TIME AS LAST_READ_TIME," - - "LAST_WRITE_DRIVE AS LAST_WRITE_DRIVE," - "LAST_WRITE_TIME AS LAST_WRITE_TIME," - - "USER_COMMENT AS USER_COMMENT," - - "CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," - "CREATION_LOG_HOST_NAME AS CREATION_LOG_HOST_NAME," - "CREATION_LOG_TIME AS CREATION_LOG_TIME," - - "LAST_UPDATE_USER_NAME AS LAST_UPDATE_USER_NAME," - "LAST_UPDATE_HOST_NAME AS LAST_UPDATE_HOST_NAME," - "LAST_UPDATE_TIME AS LAST_UPDATE_TIME " + "TAPE.VID AS VID," + "TAPE.MEDIA_TYPE AS MEDIA_TYPE," + "TAPE.VENDOR AS VENDOR," + "TAPE.LOGICAL_LIBRARY_NAME AS LOGICAL_LIBRARY_NAME," + "TAPE.TAPE_POOL_NAME AS TAPE_POOL_NAME," + "TAPE_POOL.VO AS VO," + "TAPE.ENCRYPTION_KEY AS ENCRYPTION_KEY," + "TAPE.CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," + "TAPE.DATA_IN_BYTES AS DATA_IN_BYTES," + "TAPE.LAST_FSEQ AS LAST_FSEQ," + "TAPE.IS_DISABLED AS IS_DISABLED," + "TAPE.IS_FULL AS IS_FULL," + "TAPE.LBP_IS_ON AS LBP_IS_ON," + + "TAPE.LABEL_DRIVE AS LABEL_DRIVE," + "TAPE.LABEL_TIME AS LABEL_TIME," + + "TAPE.LAST_READ_DRIVE AS LAST_READ_DRIVE," + "TAPE.LAST_READ_TIME AS LAST_READ_TIME," + + "TAPE.LAST_WRITE_DRIVE AS LAST_WRITE_DRIVE," + "TAPE.LAST_WRITE_TIME AS LAST_WRITE_TIME," + + "TAPE.USER_COMMENT AS USER_COMMENT," + + "TAPE.CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," + "TAPE.CREATION_LOG_HOST_NAME AS CREATION_LOG_HOST_NAME," + "TAPE.CREATION_LOG_TIME AS CREATION_LOG_TIME," + + "TAPE.LAST_UPDATE_USER_NAME AS LAST_UPDATE_USER_NAME," + "TAPE.LAST_UPDATE_HOST_NAME AS LAST_UPDATE_HOST_NAME," + "TAPE.LAST_UPDATE_TIME AS LAST_UPDATE_TIME " "FROM " - "TAPE"; + "TAPE " + "INNER JOIN TAPE_POOL ON " + "TAPE.TAPE_POOL_NAME = TAPE_POOL.TAPE_POOL_NAME"; if(!vids.empty()) { sql += " WHERE "; @@ -2049,7 +2056,7 @@ common::dataStructures::VidToTapeMap RdbmsCatalogue::getTapesByVid(const std::se if(1 < vidNb) { sql += " OR "; } - sql += "VID = :VID" + std::to_string(vidNb); + sql += "TAPE.VID = :VID" + std::to_string(vidNb); } } @@ -2073,6 +2080,7 @@ common::dataStructures::VidToTapeMap RdbmsCatalogue::getTapesByVid(const std::se tape.vendor = rset.columnString("VENDOR"); tape.logicalLibraryName = rset.columnString("LOGICAL_LIBRARY_NAME"); tape.tapePoolName = rset.columnString("TAPE_POOL_NAME"); + tape.vo = rset.columnString("VO"); tape.encryptionKey = rset.columnOptionalString("ENCRYPTION_KEY"); tape.capacityInBytes = rset.columnUint64("CAPACITY_IN_BYTES"); tape.dataOnTapeInBytes = rset.columnUint64("DATA_IN_BYTES"); @@ -2117,39 +2125,42 @@ common::dataStructures::VidToTapeMap RdbmsCatalogue::getAllTapes() const { common::dataStructures::VidToTapeMap vidToTapeMap; std::string sql = "SELECT " - "VID AS VID," - "MEDIA_TYPE AS MEDIA_TYPE," - "VENDOR AS VENDOR," - "LOGICAL_LIBRARY_NAME AS LOGICAL_LIBRARY_NAME," - "TAPE_POOL_NAME AS TAPE_POOL_NAME," - "ENCRYPTION_KEY AS ENCRYPTION_KEY," - "CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," - "DATA_IN_BYTES AS DATA_IN_BYTES," - "LAST_FSEQ AS LAST_FSEQ," - "IS_DISABLED AS IS_DISABLED," - "IS_FULL AS IS_FULL," - "LBP_IS_ON AS LBP_IS_ON," - - "LABEL_DRIVE AS LABEL_DRIVE," - "LABEL_TIME AS LABEL_TIME," - - "LAST_READ_DRIVE AS LAST_READ_DRIVE," - "LAST_READ_TIME AS LAST_READ_TIME," - - "LAST_WRITE_DRIVE AS LAST_WRITE_DRIVE," - "LAST_WRITE_TIME AS LAST_WRITE_TIME," - - "USER_COMMENT AS USER_COMMENT," - - "CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," - "CREATION_LOG_HOST_NAME AS CREATION_LOG_HOST_NAME," - "CREATION_LOG_TIME AS CREATION_LOG_TIME," - - "LAST_UPDATE_USER_NAME AS LAST_UPDATE_USER_NAME," - "LAST_UPDATE_HOST_NAME AS LAST_UPDATE_HOST_NAME," - "LAST_UPDATE_TIME AS LAST_UPDATE_TIME " + "TAPE.VID AS VID," + "TAPE.MEDIA_TYPE AS MEDIA_TYPE," + "TAPE.VENDOR AS VENDOR," + "TAPE.LOGICAL_LIBRARY_NAME AS LOGICAL_LIBRARY_NAME," + "TAPE.TAPE_POOL_NAME AS TAPE_POOL_NAME," + "TAPE_POOL.VO AS VO," + "TAPE.ENCRYPTION_KEY AS ENCRYPTION_KEY," + "TAPE.CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," + "TAPE.DATA_IN_BYTES AS DATA_IN_BYTES," + "TAPE.LAST_FSEQ AS LAST_FSEQ," + "TAPE.IS_DISABLED AS IS_DISABLED," + "TAPE.IS_FULL AS IS_FULL," + "TAPE.LBP_IS_ON AS LBP_IS_ON," + + "TAPE.LABEL_DRIVE AS LABEL_DRIVE," + "TAPE.LABEL_TIME AS LABEL_TIME," + + "TAPE.LAST_READ_DRIVE AS LAST_READ_DRIVE," + "TAPE.LAST_READ_TIME AS LAST_READ_TIME," + + "TAPE.LAST_WRITE_DRIVE AS LAST_WRITE_DRIVE," + "TAPE.LAST_WRITE_TIME AS LAST_WRITE_TIME," + + "TAPE.USER_COMMENT AS USER_COMMENT," + + "TAPE.CREATION_LOG_USER_NAME AS CREATION_LOG_USER_NAME," + "TAPE.CREATION_LOG_HOST_NAME AS CREATION_LOG_HOST_NAME," + "TAPE.CREATION_LOG_TIME AS CREATION_LOG_TIME," + + "TAPE.LAST_UPDATE_USER_NAME AS LAST_UPDATE_USER_NAME," + "TAPE.LAST_UPDATE_HOST_NAME AS LAST_UPDATE_HOST_NAME," + "TAPE.LAST_UPDATE_TIME AS LAST_UPDATE_TIME " "FROM " - "TAPE"; + "TAPE " + "INNER JOIN TAPE_POOL ON " + "TAPE.TAPE_POOL_NAME = TAPE_POOL.TAPE_POOL_NAME"; auto conn = m_connPool.getConn(); auto stmt = conn.createStmt(sql); @@ -2163,6 +2174,7 @@ common::dataStructures::VidToTapeMap RdbmsCatalogue::getAllTapes() const { tape.vendor = rset.columnString("VENDOR"); tape.logicalLibraryName = rset.columnString("LOGICAL_LIBRARY_NAME"); tape.tapePoolName = rset.columnString("TAPE_POOL_NAME"); + tape.vo = rset.columnString("VO"); tape.encryptionKey = rset.columnOptionalString("ENCRYPTION_KEY"); tape.capacityInBytes = rset.columnUint64("CAPACITY_IN_BYTES"); tape.dataOnTapeInBytes = rset.columnUint64("DATA_IN_BYTES"); @@ -4862,16 +4874,19 @@ std::list<TapeForWriting> RdbmsCatalogue::getTapesForWriting(const std::string & std::list<TapeForWriting> tapes; const char *const sql = "SELECT " - "VID AS VID," - "MEDIA_TYPE AS MEDIA_TYPE," - "VENDOR AS VENDOR," - "TAPE_POOL_NAME AS TAPE_POOL_NAME," - "CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," - "DATA_IN_BYTES AS DATA_IN_BYTES," - "LAST_FSEQ AS LAST_FSEQ " - "FROM " + "TAPE.VID AS VID," + "TAPE.MEDIA_TYPE AS MEDIA_TYPE," + "TAPE.VENDOR AS VENDOR," + "TAPE.TAPE_POOL_NAME AS TAPE_POOL_NAME," + "TAPE_POOL.VO AS VO," + "TAPE.CAPACITY_IN_BYTES AS CAPACITY_IN_BYTES," + "TAPE.DATA_IN_BYTES AS DATA_IN_BYTES," + "TAPE.LAST_FSEQ AS LAST_FSEQ " + "FROM " "TAPE " - "WHERE " + "INNER JOIN TAPE_POOL ON " + "TAPE.TAPE_POOL_NAME = TAPE_POOL.TAPE_POOL_NAME " + "WHERE " // "LBP_IS_ON IS NOT NULL AND " // Set when the tape has been labelled // "LABEL_DRIVE IS NOT NULL AND " // Set when the tape has been labelled // "LABEL_TIME IS NOT NULL AND " // Set when the tape has been labelled @@ -4889,6 +4904,7 @@ std::list<TapeForWriting> RdbmsCatalogue::getTapesForWriting(const std::string & tape.mediaType = rset.columnString("MEDIA_TYPE"); tape.vendor = rset.columnString("VENDOR"); tape.tapePool = rset.columnString("TAPE_POOL_NAME"); + tape.vo = rset.columnString("VO"); tape.capacityInBytes = rset.columnUint64("CAPACITY_IN_BYTES"); tape.dataOnTapeInBytes = rset.columnUint64("DATA_IN_BYTES"); tape.lastFSeq = rset.columnUint64("LAST_FSEQ"); diff --git a/catalogue/TapeForWriting.hpp b/catalogue/TapeForWriting.hpp index 837de00582..540711c706 100644 --- a/catalogue/TapeForWriting.hpp +++ b/catalogue/TapeForWriting.hpp @@ -70,6 +70,11 @@ struct TapeForWriting { * The name of the tape pool. */ std::string tapePool; + + /** + * The virtual organisation owning the tape. + */ + std::string vo; /** * The file sequence number of the last file successfully written to the tape. diff --git a/common/dataStructures/Tape.hpp b/common/dataStructures/Tape.hpp index a07a802e84..acb845e40a 100644 --- a/common/dataStructures/Tape.hpp +++ b/common/dataStructures/Tape.hpp @@ -48,6 +48,7 @@ struct Tape { uint64_t lastFSeq; std::string logicalLibraryName; std::string tapePoolName; + std::string vo; uint64_t capacityInBytes; uint64_t dataOnTapeInBytes; -- GitLab