diff --git a/catalogue/ArchiveFileRow.cpp b/catalogue/ArchiveFileRow.cpp index d6bdeb287985a6a8650e7d74a6b82b796d3ac806..4f84bcf9bf1e617eafc07ec4cde0edadfa36ad77 100644 --- a/catalogue/ArchiveFileRow.cpp +++ b/catalogue/ArchiveFileRow.cpp @@ -38,8 +38,8 @@ bool ArchiveFileRow::operator==(const ArchiveFileRow &rhs) const { diskInstance == rhs.diskInstance && diskFileId == rhs.diskFileId && diskFilePath == rhs.diskFilePath && - diskFileUser == rhs.diskFileUser && - diskFileGroup == rhs.diskFileGroup && + diskFileOwnerUid == rhs.diskFileOwnerUid && + diskFileGid == rhs.diskFileGid && size == rhs.size && checksumType == rhs.checksumType && checksumValue == rhs.checksumValue && @@ -56,8 +56,8 @@ std::ostream &operator<<(std::ostream &os, const ArchiveFileRow &obj) { "diskInstance=" << obj.diskInstance << "diskFileId=" << obj.diskFileId << "diskFilePath=" << obj.diskFilePath << - "diskFileUser=" << obj.diskFileUser << - "diskFileGroup=" << obj.diskFileGroup << + "diskFileOwnerUid=" << obj.diskFileOwnerUid << + "diskFileGid=" << obj.diskFileGid << "size=" << obj.size << "checksumType=" << obj.checksumType << "checksumValue=" << obj.checksumValue << "storageClassName=" << obj.storageClassName << diff --git a/catalogue/ArchiveFileRow.hpp b/catalogue/ArchiveFileRow.hpp index 3e3a92600f90af1ff37f0a51982bf6b3f389dd94..a76a4eee1b22203961996bcb773a1f42f607adb8 100644 --- a/catalogue/ArchiveFileRow.hpp +++ b/catalogue/ArchiveFileRow.hpp @@ -69,14 +69,14 @@ struct ArchiveFileRow { std::string diskFilePath; /** - * The user name of the source disk file within its host disk system. + * The user ID of the owner of the source disk file within its host disk system. */ - std::string diskFileUser; + uint32_t diskFileOwnerUid; /** - * The group name of the source disk file within its host disk system. + * The group ID of the source disk file within its host disk system. */ - std::string diskFileGroup; + uint32_t diskFileGid; /** * The uncompressed size of the tape file in bytes. diff --git a/catalogue/Catalogue.hpp b/catalogue/Catalogue.hpp index bae3e06e34bf1bfc35120710f1e96cd654713523..667fdd84b8abea96d36c6fa6f5cf26bb3f36f4ed 100644 --- a/catalogue/Catalogue.hpp +++ b/catalogue/Catalogue.hpp @@ -52,7 +52,7 @@ #include "common/dataStructures/TapeCopyToPoolMap.hpp" #include "common/dataStructures/TapeFile.hpp" #include "common/dataStructures/UpdateFileInfoRequest.hpp" -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" #include "common/dataStructures/VidToTapeMap.hpp" #include "common/dataStructures/WriteTestResult.hpp" #include "common/exception/UserError.hpp" @@ -114,7 +114,7 @@ public: virtual uint64_t checkAndGetNextArchiveFileId( const std::string &diskInstanceName, const std::string &storageClassName, - const common::dataStructures::UserIdentity &user) = 0; + const common::dataStructures::RequesterIdentity &user) = 0; /** * Returns the information required to queue an archive request. @@ -133,7 +133,7 @@ public: virtual common::dataStructures::ArchiveFileQueueCriteria getArchiveFileQueueCriteria( const std::string &diskInstanceName, const std::string &storageClassName, - const common::dataStructures::UserIdentity &user) = 0; + const common::dataStructures::RequesterIdentity &user) = 0; /** * Returns the list of tapes that can be written to by a tape drive in the @@ -184,7 +184,7 @@ public: virtual common::dataStructures::RetrieveFileQueueCriteria prepareToRetrieveFile( const std::string &diskInstanceName, const uint64_t archiveFileId, - const common::dataStructures::UserIdentity &user, + const common::dataStructures::RequesterIdentity &user, const optional<std::string> & activity, log::LogContext &lc) = 0; diff --git a/catalogue/CatalogueRetryWrapper.hpp b/catalogue/CatalogueRetryWrapper.hpp index b5af2b2c8ef568d92b50d931cf85dd643d6adbd4..32d80406b31d6b8d26ccf0f39efcb86a6d03af9e 100644 --- a/catalogue/CatalogueRetryWrapper.hpp +++ b/catalogue/CatalogueRetryWrapper.hpp @@ -68,12 +68,12 @@ public: return retryOnLostConnection(m_log, [&]{return m_catalogue->tapeLabelled(vid, drive);}, m_maxTriesToConnect); } - uint64_t checkAndGetNextArchiveFileId(const std::string &diskInstanceName, const std::string &storageClassName, const common::dataStructures::UserIdentity &user) override { + uint64_t checkAndGetNextArchiveFileId(const std::string &diskInstanceName, const std::string &storageClassName, const common::dataStructures::RequesterIdentity &user) override { return retryOnLostConnection(m_log, [&]{return m_catalogue->checkAndGetNextArchiveFileId(diskInstanceName, storageClassName, user);}, m_maxTriesToConnect); } common::dataStructures::ArchiveFileQueueCriteria getArchiveFileQueueCriteria(const std::string &diskInstanceName, - const std::string &storageClassName, const common::dataStructures::UserIdentity &user) override { + const std::string &storageClassName, const common::dataStructures::RequesterIdentity &user) override { return retryOnLostConnection(m_log, [&]{return m_catalogue->getArchiveFileQueueCriteria(diskInstanceName, storageClassName, user);}, m_maxTriesToConnect); } @@ -89,7 +89,7 @@ public: return retryOnLostConnection(m_log, [&]{return m_catalogue->tapeMountedForArchive(vid, drive);}, m_maxTriesToConnect); } - common::dataStructures::RetrieveFileQueueCriteria prepareToRetrieveFile(const std::string& diskInstanceName, const uint64_t archiveFileId, const common::dataStructures::UserIdentity& user, const optional<std::string>& activity, log::LogContext& lc) override { + common::dataStructures::RetrieveFileQueueCriteria prepareToRetrieveFile(const std::string& diskInstanceName, const uint64_t archiveFileId, const common::dataStructures::RequesterIdentity& user, const optional<std::string>& activity, log::LogContext& lc) override { return retryOnLostConnection(m_log, [&]{return m_catalogue->prepareToRetrieveFile(diskInstanceName, archiveFileId, user, activity, lc);}, m_maxTriesToConnect); } diff --git a/catalogue/CatalogueTest.cpp b/catalogue/CatalogueTest.cpp index de27102d4e1c269a888c5b4d83b5ff1adf308b06..96a3d87b7f626940fb26584d734a0f204297ecd7 100644 --- a/catalogue/CatalogueTest.cpp +++ b/catalogue/CatalogueTest.cpp @@ -57,6 +57,13 @@ namespace unitTests { +const uint32_t PUBLIC_DISK_USER = 9751; +const uint32_t PUBLIC_DISK_GROUP = 9752; +const uint32_t DISK_FILE_OWNER_UID = 9753; +const uint32_t DISK_FILE_GID = 9754; +const uint32_t NON_EXISTENT_DISK_FILE_OWNER_UID = 9755; +const uint32_t NON_EXISTENT_DISK_FILE_GID = 9756; + //------------------------------------------------------------------------------ // constructor //------------------------------------------------------------------------------ @@ -3457,8 +3464,8 @@ TEST_P(cta_catalogue_CatalogueTest, createTape_1_tape_with_write_log_1_tape_with file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = fileSize; file1Written.checksumType = "checksum_type"; file1Written.checksumValue = "checksum_value"; @@ -3661,8 +3668,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteNonEmptyTape) { file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = fileSize; file1Written.checksumType = "checksum_type"; file1Written.checksumValue = "checksum_value"; @@ -6240,11 +6247,11 @@ TEST_P(cta_catalogue_CatalogueTest, checkAndGetNextArchiveFileId_no_archive_rout storageClass.comment = "Create storage class"; m_catalogue->createStorageClass(m_admin, storageClass); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; - ASSERT_THROW(m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, userIdentity), + ASSERT_THROW(m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, requesterIdentity), exception::UserError); } @@ -6256,7 +6263,6 @@ TEST_P(cta_catalogue_CatalogueTest, checkAndGetNextArchiveFileId_no_mount_rules) ASSERT_TRUE(m_catalogue->getArchiveRoutes().empty()); const std::string diskInstanceName = "disk_instance_name"; - common::dataStructures::UserIdentity userIdentity; common::dataStructures::StorageClass storageClass; storageClass.diskInstance = diskInstanceName; @@ -6295,10 +6301,11 @@ TEST_P(cta_catalogue_CatalogueTest, checkAndGetNextArchiveFileId_no_mount_rules) ASSERT_EQ(creationLog, lastModificationLog); const std::string requesterName = "requester_name"; - userIdentity.name = requesterName; - userIdentity.group = "group"; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; - ASSERT_THROW(m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, userIdentity), + ASSERT_THROW(m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, requesterIdentity), exception::UserError); } @@ -6380,14 +6387,14 @@ TEST_P(cta_catalogue_CatalogueTest, checkAndGetNextArchiveFileId_requester_mount const common::dataStructures::EntryLog lastModificationLog = route.lastModificationLog; ASSERT_EQ(creationLog, lastModificationLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; std::set<uint64_t> archiveFileIds; for(uint64_t i = 0; i<10; i++) { const uint64_t archiveFileId = - m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, userIdentity); + m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, requesterIdentity); const bool archiveFileIdIsNew = archiveFileIds.end() == archiveFileIds.find(archiveFileId); ASSERT_TRUE(archiveFileIdIsNew); @@ -6471,14 +6478,14 @@ TEST_P(cta_catalogue_CatalogueTest, checkAndGetNextArchiveFileId_requester_group const common::dataStructures::EntryLog lastModificationLog = route.lastModificationLog; ASSERT_EQ(creationLog, lastModificationLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = "username"; - userIdentity.group = requesterGroupName; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = "username"; + requesterIdentity.group = requesterGroupName; std::set<uint64_t> archiveFileIds; for(uint64_t i = 0; i<10; i++) { const uint64_t archiveFileId = - m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, userIdentity); + m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, requesterIdentity); const bool archiveFileIdIsNew = archiveFileIds.end() == archiveFileIds.find(archiveFileId); ASSERT_TRUE(archiveFileIdIsNew); @@ -6581,14 +6588,14 @@ TEST_P(cta_catalogue_CatalogueTest, checkAndGetNextArchiveFileId_requester_mount const common::dataStructures::EntryLog lastModificationLog = route.lastModificationLog; ASSERT_EQ(creationLog, lastModificationLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; std::set<uint64_t> archiveFileIds; for(uint64_t i = 0; i<10; i++) { const uint64_t archiveFileId = - m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, userIdentity); + m_catalogue->checkAndGetNextArchiveFileId(storageClass.diskInstance, storageClass.name, requesterIdentity); const bool archiveFileIdIsNew = archiveFileIds.end() == archiveFileIds.find(archiveFileId); ASSERT_TRUE(archiveFileIdIsNew); @@ -6645,11 +6652,11 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFileQueueCriteria_no_archive_route storageClass.comment = "Create storage class"; m_catalogue->createStorageClass(m_admin, storageClass); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; - ASSERT_THROW(m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, userIdentity), + ASSERT_THROW(m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, requesterIdentity), exception::UserError); } @@ -6731,10 +6738,10 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFileQueueCriteria_requester_mount_ const common::dataStructures::EntryLog lastModificationLog = route.lastModificationLog; ASSERT_EQ(creationLog, lastModificationLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; - m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, userIdentity); + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; + m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, requesterIdentity); } TEST_P(cta_catalogue_CatalogueTest, getArchiveFileQueueCriteria_requester_group_mount_rule) { @@ -6814,10 +6821,10 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFileQueueCriteria_requester_group_ const common::dataStructures::EntryLog lastModificationLog = route.lastModificationLog; ASSERT_EQ(creationLog, lastModificationLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = "username"; - userIdentity.group = requesterGroupName; - m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, userIdentity); + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = "username"; + requesterIdentity.group = requesterGroupName; + m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, requesterIdentity); } TEST_P(cta_catalogue_CatalogueTest, getArchiveFileQueueCriteria_requester_mount_rule_overide) { @@ -6916,10 +6923,10 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFileQueueCriteria_requester_mount_ const common::dataStructures::EntryLog lastModificationLog = route.lastModificationLog; ASSERT_EQ(creationLog, lastModificationLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; - m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, userIdentity); + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; + m_catalogue->getArchiveFileQueueCriteria(storageClass.diskInstance, storageClass.name, requesterIdentity); } TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { @@ -7031,8 +7038,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -7056,8 +7063,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -7079,8 +7086,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -7104,8 +7111,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(2, archiveFile.tapeFiles.size()); @@ -7164,11 +7171,11 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { log::LogContext dummyLc(m_dummyLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; const common::dataStructures::RetrieveFileQueueCriteria queueCriteria = - m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, userIdentity, cta::nullopt, dummyLc); + m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, requesterIdentity, cta::nullopt, dummyLc); ASSERT_EQ(2, queueCriteria.archiveFile.tapeFiles.size()); ASSERT_EQ(archivePriority, queueCriteria.mountPolicy.archivePriority); @@ -7176,7 +7183,7 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId) { ASSERT_EQ(maxDrivesAllowed, queueCriteria.mountPolicy.maxDrivesAllowed); // Check that the diskInstanceName mismatch detection works - ASSERT_THROW(m_catalogue->prepareToRetrieveFile(diskInstanceName2, archiveFileId, userIdentity, cta::nullopt, dummyLc), + ASSERT_THROW(m_catalogue->prepareToRetrieveFile(diskInstanceName2, archiveFileId, requesterIdentity, cta::nullopt, dummyLc), exception::UserError); } @@ -7287,8 +7294,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -7312,8 +7319,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -7335,8 +7342,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -7360,8 +7367,8 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(2, archiveFile.tapeFiles.size()); @@ -7420,13 +7427,13 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa log::LogContext dummyLc(m_dummyLog); - common::dataStructures::UserIdentity userIdentity; - userIdentity.name = requesterName; - userIdentity.group = "group"; + common::dataStructures::RequesterIdentity requesterIdentity; + requesterIdentity.name = requesterName; + requesterIdentity.group = "group"; { const common::dataStructures::RetrieveFileQueueCriteria queueCriteria = - m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, userIdentity, cta::nullopt, dummyLc); + m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, requesterIdentity, cta::nullopt, dummyLc); ASSERT_EQ(archivePriority, queueCriteria.mountPolicy.archivePriority); ASSERT_EQ(minArchiveRequestAge, queueCriteria.mountPolicy.archiveMinRequestAge); @@ -7458,7 +7465,7 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa { const common::dataStructures::RetrieveFileQueueCriteria queueCriteria = - m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, userIdentity, cta::nullopt, dummyLc); + m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, requesterIdentity, cta::nullopt, dummyLc); ASSERT_EQ(archivePriority, queueCriteria.mountPolicy.archivePriority); ASSERT_EQ(minArchiveRequestAge, queueCriteria.mountPolicy.archiveMinRequestAge); @@ -7478,7 +7485,7 @@ TEST_P(cta_catalogue_CatalogueTest, prepareToRetrieveFileUsingArchiveFileId_disa m_catalogue->setTapeDisabled(m_admin, vid2, true); - ASSERT_THROW(m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, userIdentity, cta::nullopt, dummyLc), + ASSERT_THROW(m_catalogue->prepareToRetrieveFile(diskInstanceName1, archiveFileId, requesterIdentity, cta::nullopt, dummyLc), exception::UserError); } @@ -7499,7 +7506,7 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFiles_disk_file_group_without_inst ASSERT_FALSE(m_catalogue->getArchiveFilesItor().hasMore()); catalogue::TapeFileSearchCriteria searchCriteria; - searchCriteria.diskFileGroup = "disk_file_group"; + searchCriteria.diskFileGid = DISK_FILE_GID; ASSERT_THROW(m_catalogue->getArchiveFilesItor(searchCriteria), exception::UserError); } @@ -7510,7 +7517,7 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFiles_non_existant_disk_file_group catalogue::TapeFileSearchCriteria searchCriteria; searchCriteria.diskInstance = "non_existant_disk_instance"; - searchCriteria.diskFileGroup = "non_existant_disk_file_group"; + searchCriteria.diskFileGid = NON_EXISTENT_DISK_FILE_GID; ASSERT_THROW(m_catalogue->getArchiveFilesItor(searchCriteria), exception::UserError); } @@ -7565,7 +7572,7 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFiles_disk_file_user_without_insta ASSERT_FALSE(m_catalogue->getArchiveFilesItor().hasMore()); catalogue::TapeFileSearchCriteria searchCriteria; - searchCriteria.diskFileUser = "disk_file_user"; + searchCriteria.diskFileOwnerUid = DISK_FILE_OWNER_UID; ASSERT_THROW(m_catalogue->getArchiveFilesItor(searchCriteria), exception::UserError); } @@ -7576,7 +7583,7 @@ TEST_P(cta_catalogue_CatalogueTest, getArchiveFiles_non_existant_disk_file_user) catalogue::TapeFileSearchCriteria searchCriteria; searchCriteria.diskInstance = "non_existant_disk_instance"; - searchCriteria.diskFileUser = "non_existant_disk_file_user"; + searchCriteria.diskFileOwnerUid = NON_EXISTENT_DISK_FILE_OWNER_UID; ASSERT_THROW(m_catalogue->getArchiveFilesItor(searchCriteria), exception::UserError); } @@ -7835,8 +7842,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -7897,8 +7904,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -7951,8 +7958,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { searchCriteria.diskInstance = storageClass.diskInstance; searchCriteria.diskFileId = std::to_string(12345678); searchCriteria.diskFilePath = "/public_dir/public_file_1"; - searchCriteria.diskFileUser = "public_disk_user"; - searchCriteria.diskFileGroup = "public_disk_group"; + searchCriteria.diskFileOwnerUid = PUBLIC_DISK_USER; + searchCriteria.diskFileGid = PUBLIC_DISK_GROUP; searchCriteria.storageClass = storageClass.name; searchCriteria.vid = vid1; searchCriteria.tapeFileCopyNb = 1; @@ -7969,8 +7976,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(searchCriteria.diskInstance, archiveFile.diskInstance); ASSERT_EQ(searchCriteria.diskFileId, archiveFile.diskFileId); ASSERT_EQ(searchCriteria.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(searchCriteria.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(searchCriteria.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(searchCriteria.diskFileOwnerUid, static_cast<uint64_t>(archiveFile.diskFileInfo.owner_uid)); + ASSERT_EQ(searchCriteria.diskFileGid, static_cast<uint64_t>(archiveFile.diskFileInfo.gid)); ASSERT_EQ(searchCriteria.storageClass, archiveFile.storageClass); ASSERT_EQ(1, archiveFile.tapeFiles.size()); ASSERT_EQ(searchCriteria.vid, archiveFile.tapeFiles.begin()->vid); @@ -7992,8 +7999,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { fileWritten1.diskInstance = storageClass.diskInstance; fileWritten1.diskFileId = diskFileId.str(); fileWritten1.diskFilePath = diskFilePath.str(); - fileWritten1.diskFileUser = "public_disk_user"; - fileWritten1.diskFileGroup = "public_disk_group"; + fileWritten1.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten1.diskFileGid = PUBLIC_DISK_GROUP; fileWritten1.size = archiveFileSize; fileWritten1.checksumType = checksumType; fileWritten1.checksumValue = checksumValue; @@ -8014,8 +8021,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(fileWritten1.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten1.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten1.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten1.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten1.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten1.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten1.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten1.size, archiveFile.fileSize); ASSERT_EQ(fileWritten1.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten1.checksumValue, archiveFile.checksumValue); @@ -8065,8 +8072,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { fileWritten1.diskInstance = storageClass.diskInstance; fileWritten1.diskFileId = diskFileId.str(); fileWritten1.diskFilePath = diskFilePath.str(); - fileWritten1.diskFileUser = "public_disk_user"; - fileWritten1.diskFileGroup = "public_disk_group"; + fileWritten1.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten1.diskFileGid = PUBLIC_DISK_GROUP; fileWritten1.size = archiveFileSize; fileWritten1.checksumType = checksumType; fileWritten1.checksumValue = checksumValue; @@ -8087,8 +8094,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(fileWritten1.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten1.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten1.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten1.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten1.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten1.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten1.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten1.size, archiveFile.fileSize); ASSERT_EQ(fileWritten1.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten1.checksumValue, archiveFile.checksumValue); @@ -8140,8 +8147,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -8158,8 +8165,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(fileWritten.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten.size, archiveFile.fileSize); ASSERT_EQ(fileWritten.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten.checksumValue, archiveFile.checksumValue); @@ -8201,8 +8208,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -8219,8 +8226,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(fileWritten.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten.size, archiveFile.fileSize); ASSERT_EQ(fileWritten.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten.checksumValue, archiveFile.checksumValue); @@ -8262,8 +8269,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -8280,8 +8287,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { ASSERT_EQ(fileWritten.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten.size, archiveFile.fileSize); ASSERT_EQ(fileWritten.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten.checksumValue, archiveFile.checksumValue); @@ -8361,7 +8368,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { { catalogue::TapeFileSearchCriteria searchCriteria; searchCriteria.diskInstance = storageClass.diskInstance; - searchCriteria.diskFileUser = "public_disk_user"; + searchCriteria.diskFileOwnerUid = PUBLIC_DISK_USER; auto archiveFileItor = m_catalogue->getArchiveFilesItor(searchCriteria); const auto m = archiveFileItorToMap(archiveFileItor); ASSERT_EQ(nbArchiveFiles, m.size()); @@ -8374,7 +8381,7 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_many_archive_files) { { catalogue::TapeFileSearchCriteria searchCriteria; searchCriteria.diskInstance = storageClass.diskInstance; - searchCriteria.diskFileGroup = "public_disk_group"; + searchCriteria.diskFileGid = PUBLIC_DISK_GROUP; auto archiveFileItor = m_catalogue->getArchiveFilesItor(searchCriteria); const auto m = archiveFileItorToMap(archiveFileItor); ASSERT_EQ(nbArchiveFiles, m.size()); @@ -8555,8 +8562,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ fileWritten.diskInstance = m_storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = m_archiveFileSize; fileWritten.checksumType = m_checksumType; fileWritten.checksumValue = m_checksumValue; @@ -8867,8 +8874,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ searchCriteria.diskInstance = storageClass.diskInstance; searchCriteria.diskFileId = std::to_string(12345678); searchCriteria.diskFilePath = "/public_dir/public_file_1"; - searchCriteria.diskFileUser = "public_disk_user"; - searchCriteria.diskFileGroup = "public_disk_group"; + searchCriteria.diskFileOwnerUid = PUBLIC_DISK_USER; + searchCriteria.diskFileGid = PUBLIC_DISK_GROUP; searchCriteria.storageClass = storageClass.name; searchCriteria.vid = vid1; searchCriteria.tapeFileCopyNb = 1; @@ -8885,8 +8892,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ ASSERT_EQ(searchCriteria.diskInstance, archiveFile.diskInstance); ASSERT_EQ(searchCriteria.diskFileId, archiveFile.diskFileId); ASSERT_EQ(searchCriteria.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(searchCriteria.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(searchCriteria.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(searchCriteria.diskFileOwnerUid, static_cast<uint64_t>(archiveFile.diskFileInfo.owner_uid)); + ASSERT_EQ(searchCriteria.diskFileGid, static_cast<uint64_t>(archiveFile.diskFileInfo.gid)); ASSERT_EQ(searchCriteria.storageClass, archiveFile.storageClass); ASSERT_EQ(1, archiveFile.tapeFiles.size()); ASSERT_EQ(searchCriteria.vid, archiveFile.tapeFiles.begin()->vid); @@ -8922,8 +8929,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ fileWritten1.diskInstance = storageClass.diskInstance; fileWritten1.diskFileId = diskFileId.str(); fileWritten1.diskFilePath = diskFilePath.str(); - fileWritten1.diskFileUser = "public_disk_user"; - fileWritten1.diskFileGroup = "public_disk_group"; + fileWritten1.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten1.diskFileGid = PUBLIC_DISK_GROUP; fileWritten1.size = archiveFileSize; fileWritten1.checksumType = checksumType; fileWritten1.checksumValue = checksumValue; @@ -8946,8 +8953,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ ASSERT_EQ(fileWritten1.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten1.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten1.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten1.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten1.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten1.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten1.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten1.size, archiveFile.fileSize); ASSERT_EQ(fileWritten1.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten1.checksumValue, archiveFile.checksumValue); @@ -8999,8 +9006,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ fileWritten1.diskInstance = storageClass.diskInstance; fileWritten1.diskFileId = diskFileId.str(); fileWritten1.diskFilePath = diskFilePath.str(); - fileWritten1.diskFileUser = "public_disk_user"; - fileWritten1.diskFileGroup = "public_disk_group"; + fileWritten1.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten1.diskFileGid = PUBLIC_DISK_GROUP; fileWritten1.size = archiveFileSize; fileWritten1.checksumType = checksumType; fileWritten1.checksumValue = checksumValue; @@ -9023,8 +9030,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ ASSERT_EQ(fileWritten1.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten1.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten1.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten1.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten1.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten1.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten1.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten1.size, archiveFile.fileSize); ASSERT_EQ(fileWritten1.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten1.checksumValue, archiveFile.checksumValue); @@ -9079,8 +9086,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -9097,8 +9104,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ ASSERT_EQ(fileWritten.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten.size, archiveFile.fileSize); ASSERT_EQ(fileWritten.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten.checksumValue, archiveFile.checksumValue); @@ -9143,8 +9150,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -9161,8 +9168,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ ASSERT_EQ(fileWritten.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten.size, archiveFile.fileSize); ASSERT_EQ(fileWritten.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten.checksumValue, archiveFile.checksumValue); @@ -9207,8 +9214,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = "public_disk_user"; - fileWritten.diskFileGroup = "public_disk_group"; + fileWritten.diskFileOwnerUid = PUBLIC_DISK_USER; + fileWritten.diskFileGid = PUBLIC_DISK_GROUP; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; @@ -9225,8 +9232,8 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ ASSERT_EQ(fileWritten.diskInstance, archiveFile.diskInstance); ASSERT_EQ(fileWritten.diskFileId, archiveFile.diskFileId); ASSERT_EQ(fileWritten.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(fileWritten.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(fileWritten.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(fileWritten.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(fileWritten.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(fileWritten.size, archiveFile.fileSize); ASSERT_EQ(fileWritten.checksumType, archiveFile.checksumType); ASSERT_EQ(fileWritten.checksumValue, archiveFile.checksumValue); @@ -9306,7 +9313,7 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ { catalogue::TapeFileSearchCriteria searchCriteria; searchCriteria.diskInstance = storageClass.diskInstance; - searchCriteria.diskFileUser = "public_disk_user"; + searchCriteria.diskFileOwnerUid = PUBLIC_DISK_USER; auto archiveFileItor = m_catalogue->getArchiveFilesItor(searchCriteria); const auto m = archiveFileItorToMap(archiveFileItor); ASSERT_EQ(nbArchiveFiles, m.size()); @@ -9319,7 +9326,7 @@ TEST_P(cta_catalogue_CatalogueTest, DISABLED_concurrent_filesWrittenToTape_many_ { catalogue::TapeFileSearchCriteria searchCriteria; searchCriteria.diskInstance = storageClass.diskInstance; - searchCriteria.diskFileGroup = "public_disk_group"; + searchCriteria.diskFileGid = PUBLIC_DISK_GROUP; auto archiveFileItor = m_catalogue->getArchiveFilesItor(searchCriteria); const auto m = archiveFileItorToMap(archiveFileItor); ASSERT_EQ(nbArchiveFiles, m.size()); @@ -9521,8 +9528,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -9555,8 +9562,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -9578,8 +9585,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -9613,8 +9620,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(2, archiveFile.tapeFiles.size()); @@ -9749,8 +9756,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -9783,8 +9790,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -9806,8 +9813,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -9841,8 +9848,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); // If there are two or more tape copies with the same copy number then // only one of them will be active (<=> supersededByVid.empty()). @@ -9947,8 +9954,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -9981,8 +9988,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -10004,8 +10011,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -10039,8 +10046,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); // If there are two or more tape copies with the same copy number then // only one of them will be active (<=> supersededByVid.empty()). @@ -10173,8 +10180,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize1; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -10207,8 +10214,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -10232,8 +10239,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize2; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -10356,8 +10363,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType1; file1Written.checksumValue = checksumValue; @@ -10390,8 +10397,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -10415,8 +10422,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType2; file2Written.checksumValue = checksumValue; @@ -10539,8 +10546,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue1; @@ -10573,8 +10580,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -10598,8 +10605,8 @@ TEST_P(cta_catalogue_CatalogueTest, filesWrittenToTape_1_archive_file_2_tape_cop file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue2; @@ -10722,8 +10729,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -10762,8 +10769,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -10789,8 +10796,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -10812,8 +10819,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -10855,8 +10862,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(2, archiveFile.tapeFiles.size()); @@ -10894,8 +10901,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile) { ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(2, archiveFile.tapeFiles.size()); @@ -11035,8 +11042,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -11075,8 +11082,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -11102,8 +11109,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -11125,8 +11132,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot file2Written.diskInstance = file1Written.diskInstance; file2Written.diskFileId = file1Written.diskFileId; file2Written.diskFilePath = file1Written.diskFilePath; - file2Written.diskFileUser = file1Written.diskFileUser; - file2Written.diskFileGroup = file1Written.diskFileGroup; + file2Written.diskFileOwnerUid = file1Written.diskFileOwnerUid; + file2Written.diskFileGid = file1Written.diskFileGid; file2Written.size = archiveFileSize; file2Written.checksumType = checksumType; file2Written.checksumValue = checksumValue; @@ -11168,8 +11175,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(2, archiveFile.tapeFiles.size()); @@ -11207,8 +11214,8 @@ TEST_P(cta_catalogue_CatalogueTest, deleteArchiveFile_by_archive_file_id_of_anot ASSERT_EQ(file2Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file2Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file2Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file2Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file2Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file2Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(2, archiveFile.tapeFiles.size()); @@ -11549,8 +11556,8 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_no_tape_files) { file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -11574,8 +11581,8 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_no_tape_files) { ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); @@ -11774,8 +11781,8 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_one_tape_file) { file1Written.diskInstance = storageClass.diskInstance; file1Written.diskFileId = "5678"; file1Written.diskFilePath = "/public_dir/public_file"; - file1Written.diskFileUser = "public_disk_user"; - file1Written.diskFileGroup = "public_disk_group"; + file1Written.diskFileOwnerUid = PUBLIC_DISK_USER; + file1Written.diskFileGid = PUBLIC_DISK_GROUP; file1Written.size = archiveFileSize; file1Written.checksumType = checksumType; file1Written.checksumValue = checksumValue; @@ -11799,8 +11806,8 @@ TEST_P(cta_catalogue_CatalogueTest, reclaimTape_full_lastFSeq_1_one_tape_file) { ASSERT_EQ(file1Written.diskInstance, archiveFile.diskInstance); ASSERT_EQ(file1Written.diskFilePath, archiveFile.diskFileInfo.path); - ASSERT_EQ(file1Written.diskFileUser, archiveFile.diskFileInfo.owner); - ASSERT_EQ(file1Written.diskFileGroup, archiveFile.diskFileInfo.group); + ASSERT_EQ(file1Written.diskFileOwnerUid, archiveFile.diskFileInfo.owner_uid); + ASSERT_EQ(file1Written.diskFileGid, archiveFile.diskFileInfo.gid); ASSERT_EQ(1, archiveFile.tapeFiles.size()); auto copyNbToTapeFile1Itor = archiveFile.tapeFiles.find(1); diff --git a/catalogue/DummyCatalogue.hpp b/catalogue/DummyCatalogue.hpp index 6e964cfaceeb0dd666dfec0bd7fe9136e09cdcee..b9e6beadc4152ad3c0e09e58444b6c57ecfee8c2 100644 --- a/catalogue/DummyCatalogue.hpp +++ b/catalogue/DummyCatalogue.hpp @@ -107,10 +107,10 @@ public: void noSpaceLeftOnTape(const std::string& vid) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void ping() override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } std::map<std::string, uint64_t> getSchemaVersion() const override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } - uint64_t checkAndGetNextArchiveFileId(const std::string &diskInstanceName, const std::string &storageClassName, const common::dataStructures::UserIdentity &user) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } + uint64_t checkAndGetNextArchiveFileId(const std::string &diskInstanceName, const std::string &storageClassName, const common::dataStructures::RequesterIdentity &user) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } common::dataStructures::ArchiveFileQueueCriteria getArchiveFileQueueCriteria(const std::string &diskInstanceName, - const std::string &storageClassName, const common::dataStructures::UserIdentity &user) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } - common::dataStructures::RetrieveFileQueueCriteria prepareToRetrieveFile(const std::string& diskInstanceName, const uint64_t archiveFileId, const common::dataStructures::UserIdentity& user, const optional<std::string>& activity, log::LogContext& lc) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } + const std::string &storageClassName, const common::dataStructures::RequesterIdentity &user) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } + common::dataStructures::RetrieveFileQueueCriteria prepareToRetrieveFile(const std::string& diskInstanceName, const uint64_t archiveFileId, const common::dataStructures::RequesterIdentity& user, const optional<std::string>& activity, log::LogContext& lc) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void reclaimTape(const common::dataStructures::SecurityIdentity& admin, const std::string& vid) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void setTapeDisabled(const common::dataStructures::SecurityIdentity& admin, const std::string& vid, const bool disabledValue) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } void setTapeFull(const common::dataStructures::SecurityIdentity& admin, const std::string& vid, const bool fullValue) override { throw exception::Exception(std::string("In ")+__PRETTY_FUNCTION__+": not implemented"); } diff --git a/catalogue/MysqlCatalogue.cpp b/catalogue/MysqlCatalogue.cpp index fc8ba44c69078da759b3f09b4ec90e1858bb0292..ed14d94f7dfccd72a3dfa822ed311a29795e5a24 100644 --- a/catalogue/MysqlCatalogue.cpp +++ b/catalogue/MysqlCatalogue.cpp @@ -205,8 +205,7 @@ common::dataStructures::Tape MysqlCatalogue::selectTapeForUpdate(rdbms::Conn &co tape.comment = rset.columnString("USER_COMMENT"); - common::dataStructures::UserIdentity creatorUI; - creatorUI.name = rset.columnString("CREATION_LOG_USER_NAME"); + // std::string creatorUIname = rset.columnString("CREATION_LOG_USER_NAME"); common::dataStructures::EntryLog creationLog; creationLog.username = rset.columnString("CREATION_LOG_USER_NAME"); @@ -215,8 +214,7 @@ common::dataStructures::Tape MysqlCatalogue::selectTapeForUpdate(rdbms::Conn &co tape.creationLog = creationLog; - common::dataStructures::UserIdentity updaterUI; - updaterUI.name = rset.columnString("LAST_UPDATE_USER_NAME"); + // std::string updaterUIname = rset.columnString("LAST_UPDATE_USER_NAME"); common::dataStructures::EntryLog updateLog; updateLog.username = rset.columnString("LAST_UPDATE_USER_NAME"); @@ -320,8 +318,8 @@ void MysqlCatalogue::fileWrittenToTape(rdbms::Conn &conn, const TapeFileWritten row.checksumValue = event.checksumValue; row.storageClassName = event.storageClassName; row.diskFilePath = event.diskFilePath; - row.diskFileUser = event.diskFileUser; - row.diskFileGroup = event.diskFileGroup; + row.diskFileOwnerUid = event.diskFileOwnerUid; + row.diskFileGid = event.diskFileGid; insertArchiveFile(conn, row); } catch(exception::DatabasePrimaryKeyError &) { // Ignore this error @@ -437,8 +435,8 @@ void MysqlCatalogue::deleteArchiveFile(const std::string &diskInstanceName, cons archiveFile->diskInstance = selectRset.columnString("DISK_INSTANCE_NAME"); archiveFile->diskFileId = selectRset.columnString("DISK_FILE_ID"); archiveFile->diskFileInfo.path = selectRset.columnString("DISK_FILE_PATH"); - archiveFile->diskFileInfo.owner = selectRset.columnString("DISK_FILE_UID"); - archiveFile->diskFileInfo.group = selectRset.columnString("DISK_FILE_GID"); + archiveFile->diskFileInfo.owner_uid = selectRset.columnUint64("DISK_FILE_UID"); + archiveFile->diskFileInfo.gid = selectRset.columnUint64("DISK_FILE_GID"); archiveFile->fileSize = selectRset.columnUint64("SIZE_IN_BYTES"); archiveFile->checksumType = selectRset.columnString("CHECKSUM_TYPE"); archiveFile->checksumValue = selectRset.columnString("CHECKSUM_VALUE"); @@ -482,8 +480,8 @@ void MysqlCatalogue::deleteArchiveFile(const std::string &diskInstanceName, cons .add("requestDiskInstance", diskInstanceName) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) @@ -547,8 +545,8 @@ void MysqlCatalogue::deleteArchiveFile(const std::string &diskInstanceName, cons .add("diskInstance", archiveFile->diskInstance) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) diff --git a/catalogue/OracleCatalogue.cpp b/catalogue/OracleCatalogue.cpp index 55f13a90064f5ed8269acdb15c1feef51489ce9f..5d53f1ed5e27a07e53ad0379fab2314f0a62479d 100644 --- a/catalogue/OracleCatalogue.cpp +++ b/catalogue/OracleCatalogue.cpp @@ -269,8 +269,7 @@ common::dataStructures::Tape OracleCatalogue::selectTapeForUpdate(rdbms::Conn &c tape.comment = rset.columnString("USER_COMMENT"); - common::dataStructures::UserIdentity creatorUI; - creatorUI.name = rset.columnString("CREATION_LOG_USER_NAME"); + //std::string creatorUIname = rset.columnString("CREATION_LOG_USER_NAME"); common::dataStructures::EntryLog creationLog; creationLog.username = rset.columnString("CREATION_LOG_USER_NAME"); @@ -279,8 +278,7 @@ common::dataStructures::Tape OracleCatalogue::selectTapeForUpdate(rdbms::Conn &c tape.creationLog = creationLog; - common::dataStructures::UserIdentity updaterUI; - updaterUI.name = rset.columnString("LAST_UPDATE_USER_NAME"); + //std::string updaterUIname = rset.columnString("LAST_UPDATE_USER_NAME"); common::dataStructures::EntryLog updateLog; updateLog.username = rset.columnString("LAST_UPDATE_USER_NAME"); @@ -537,8 +535,8 @@ void OracleCatalogue::idempotentBatchInsertArchiveFiles(rdbms::Conn &conn, const archiveFileBatch.diskInstance.setFieldLenToValueLen(i, event.diskInstance); archiveFileBatch.diskFileId.setFieldLenToValueLen(i, event.diskFileId); archiveFileBatch.diskFilePath.setFieldLenToValueLen(i, event.diskFilePath); - archiveFileBatch.diskFileUser.setFieldLenToValueLen(i, event.diskFileUser); - archiveFileBatch.diskFileGroup.setFieldLenToValueLen(i, event.diskFileGroup); + archiveFileBatch.diskFileUser.setFieldLenToValueLen(i, event.diskFileOwnerUid); + archiveFileBatch.diskFileGroup.setFieldLenToValueLen(i, event.diskFileGid); archiveFileBatch.size.setFieldLenToValueLen(i, event.size); archiveFileBatch.checksumType.setFieldLenToValueLen(i, event.checksumType); archiveFileBatch.checksumValue.setFieldLenToValueLen(i, event.checksumValue); @@ -555,8 +553,8 @@ void OracleCatalogue::idempotentBatchInsertArchiveFiles(rdbms::Conn &conn, const archiveFileBatch.diskInstance.setFieldValue(i, event.diskInstance); archiveFileBatch.diskFileId.setFieldValue(i, event.diskFileId); archiveFileBatch.diskFilePath.setFieldValue(i, event.diskFilePath); - archiveFileBatch.diskFileUser.setFieldValue(i, event.diskFileUser); - archiveFileBatch.diskFileGroup.setFieldValue(i, event.diskFileGroup); + archiveFileBatch.diskFileUser.setFieldValue(i, event.diskFileOwnerUid); + archiveFileBatch.diskFileGroup.setFieldValue(i, event.diskFileGid); archiveFileBatch.size.setFieldValue(i, event.size); archiveFileBatch.checksumType.setFieldValue(i, event.checksumType); archiveFileBatch.checksumValue.setFieldValue(i, event.checksumValue); @@ -825,8 +823,8 @@ void OracleCatalogue::deleteArchiveFile(const std::string &diskInstanceName, con archiveFile->diskInstance = selectRset.columnString("DISK_INSTANCE_NAME"); archiveFile->diskFileId = selectRset.columnString("DISK_FILE_ID"); archiveFile->diskFileInfo.path = selectRset.columnString("DISK_FILE_PATH"); - archiveFile->diskFileInfo.owner = selectRset.columnString("DISK_FILE_UID"); - archiveFile->diskFileInfo.group = selectRset.columnString("DISK_FILE_GID"); + archiveFile->diskFileInfo.owner_uid = selectRset.columnUint64("DISK_FILE_UID"); + archiveFile->diskFileInfo.gid = selectRset.columnUint64("DISK_FILE_GID"); archiveFile->fileSize = selectRset.columnUint64("SIZE_IN_BYTES"); archiveFile->checksumType = selectRset.columnString("CHECKSUM_TYPE"); archiveFile->checksumValue = selectRset.columnString("CHECKSUM_VALUE"); @@ -870,8 +868,8 @@ void OracleCatalogue::deleteArchiveFile(const std::string &diskInstanceName, con .add("requestDiskInstance", diskInstanceName) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) @@ -932,8 +930,8 @@ void OracleCatalogue::deleteArchiveFile(const std::string &diskInstanceName, con .add("diskInstance", archiveFile->diskInstance) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) diff --git a/catalogue/PostgresCatalogue.cpp b/catalogue/PostgresCatalogue.cpp index c455afcad871664bec63a728819313f5f6b36b55..2a293f6e2ab113dd3547db218976785d125ae6c0 100644 --- a/catalogue/PostgresCatalogue.cpp +++ b/catalogue/PostgresCatalogue.cpp @@ -260,8 +260,7 @@ common::dataStructures::Tape PostgresCatalogue::selectTapeForUpdate(rdbms::Conn tape.comment = rset.columnString("USER_COMMENT"); - common::dataStructures::UserIdentity creatorUI; - creatorUI.name = rset.columnString("CREATION_LOG_USER_NAME"); + //std::string creatorUIname = rset.columnString("CREATION_LOG_USER_NAME"); common::dataStructures::EntryLog creationLog; creationLog.username = rset.columnString("CREATION_LOG_USER_NAME"); @@ -270,8 +269,7 @@ common::dataStructures::Tape PostgresCatalogue::selectTapeForUpdate(rdbms::Conn tape.creationLog = creationLog; - common::dataStructures::UserIdentity updaterUI; - updaterUI.name = rset.columnString("LAST_UPDATE_USER_NAME"); + //std::string updaterUIname = rset.columnString("LAST_UPDATE_USER_NAME"); common::dataStructures::EntryLog updateLog; updateLog.username = rset.columnString("LAST_UPDATE_USER_NAME"); @@ -506,8 +504,8 @@ void PostgresCatalogue::idempotentBatchInsertArchiveFiles(rdbms::Conn &conn, archiveFileBatch.diskInstance.setFieldValue(i, event.diskInstance); archiveFileBatch.diskFileId.setFieldValue(i, event.diskFileId); archiveFileBatch.diskFilePath.setFieldValue(i, event.diskFilePath); - archiveFileBatch.diskFileUser.setFieldValue(i, event.diskFileUser); - archiveFileBatch.diskFileGroup.setFieldValue(i, event.diskFileGroup); + archiveFileBatch.diskFileUser.setFieldValue(i, event.diskFileOwnerUid); + archiveFileBatch.diskFileGroup.setFieldValue(i, event.diskFileGid); archiveFileBatch.size.setFieldValue(i, event.size); archiveFileBatch.checksumType.setFieldValue(i, event.checksumType); archiveFileBatch.checksumValue.setFieldValue(i, event.checksumValue); @@ -756,8 +754,8 @@ void PostgresCatalogue::deleteArchiveFile(const std::string &diskInstanceName, c archiveFile->diskInstance = selectRset.columnString("DISK_INSTANCE_NAME"); archiveFile->diskFileId = selectRset.columnString("DISK_FILE_ID"); archiveFile->diskFileInfo.path = selectRset.columnString("DISK_FILE_PATH"); - archiveFile->diskFileInfo.owner = selectRset.columnString("DISK_FILE_UID"); - archiveFile->diskFileInfo.group = selectRset.columnString("DISK_FILE_GID"); + archiveFile->diskFileInfo.owner_uid = selectRset.columnUint64("DISK_FILE_UID"); + archiveFile->diskFileInfo.gid = selectRset.columnUint64("DISK_FILE_GID"); archiveFile->fileSize = selectRset.columnUint64("SIZE_IN_BYTES"); archiveFile->checksumType = selectRset.columnString("CHECKSUM_TYPE"); archiveFile->checksumValue = selectRset.columnString("CHECKSUM_VALUE"); @@ -801,8 +799,8 @@ void PostgresCatalogue::deleteArchiveFile(const std::string &diskInstanceName, c .add("requestDiskInstance", diskInstanceName) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) @@ -865,8 +863,8 @@ void PostgresCatalogue::deleteArchiveFile(const std::string &diskInstanceName, c .add("diskInstance", archiveFile->diskInstance) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) diff --git a/catalogue/RdbmsCatalogue.cpp b/catalogue/RdbmsCatalogue.cpp index 3c8d5dab6a656274b678234090cf02caa69011bc..a1727e2b2805837cf7d149f9fe8e7f4e81baca63 100644 --- a/catalogue/RdbmsCatalogue.cpp +++ b/catalogue/RdbmsCatalogue.cpp @@ -774,7 +774,7 @@ bool RdbmsCatalogue::diskFilePathExists(rdbms::Conn &conn, const std::string &di // diskFileUserExists //------------------------------------------------------------------------------ bool RdbmsCatalogue::diskFileUserExists(rdbms::Conn &conn, const std::string &diskInstanceName, - const std::string &diskFileUser) const { + uint32_t diskFileOwnerUid) const { try { const char *const sql = "SELECT " @@ -787,7 +787,7 @@ bool RdbmsCatalogue::diskFileUserExists(rdbms::Conn &conn, const std::string &di "DISK_FILE_UID = :DISK_FILE_UID"; auto stmt = conn.createStmt(sql); stmt.bindString(":DISK_INSTANCE_NAME", diskInstanceName); - stmt.bindString(":DISK_FILE_UID", diskFileUser); + stmt.bindUint64(":DISK_FILE_UID", diskFileOwnerUid); auto rset = stmt.executeQuery(); return rset.next(); } catch(exception::UserError &) { @@ -802,7 +802,7 @@ bool RdbmsCatalogue::diskFileUserExists(rdbms::Conn &conn, const std::string &di // diskFileGroupExists //------------------------------------------------------------------------------ bool RdbmsCatalogue::diskFileGroupExists(rdbms::Conn &conn, const std::string &diskInstanceName, - const std::string &diskFileGroup) const { + uint32_t diskFileGid) const { try { const char *const sql = "SELECT " @@ -815,7 +815,7 @@ bool RdbmsCatalogue::diskFileGroupExists(rdbms::Conn &conn, const std::string &d "DISK_FILE_GID = :DISK_FILE_GID"; auto stmt = conn.createStmt(sql); stmt.bindString(":DISK_INSTANCE_NAME", diskInstanceName); - stmt.bindString(":DISK_FILE_GID", diskFileGroup); + stmt.bindUint64(":DISK_FILE_GID", diskFileGid); auto rset = stmt.executeQuery(); return rset.next(); } catch(exception::UserError &) { @@ -4247,8 +4247,8 @@ void RdbmsCatalogue::insertArchiveFile(rdbms::Conn &conn, const ArchiveFileRow & stmt.bindString(":DISK_INSTANCE_NAME", row.diskInstance); stmt.bindString(":DISK_FILE_ID", row.diskFileId); stmt.bindString(":DISK_FILE_PATH", row.diskFilePath); - stmt.bindString(":DISK_FILE_UID", row.diskFileUser); - stmt.bindString(":DISK_FILE_GID", row.diskFileGroup); + stmt.bindUint64(":DISK_FILE_UID", row.diskFileOwnerUid); + stmt.bindUint64(":DISK_FILE_GID", row.diskFileGid); stmt.bindUint64(":SIZE_IN_BYTES", row.size); stmt.bindString(":CHECKSUM_TYPE", row.checksumType); stmt.bindString(":CHECKSUM_VALUE", row.checksumValue); @@ -4279,15 +4279,15 @@ void RdbmsCatalogue::checkTapeFileSearchCriteria(const TapeFileSearchCriteria &s } } - if(searchCriteria.diskFileGroup && !searchCriteria.diskInstance) { - throw exception::UserError(std::string("Disk file group ") + searchCriteria.diskFileGroup.value() + " is ambiguous " - "without disk instance name"); + if(searchCriteria.diskFileGid && !searchCriteria.diskInstance) { + throw exception::UserError(std::string("Disk file group ") + std::to_string(searchCriteria.diskFileGid.value()) + + " is ambiguous without disk instance name"); } - if(searchCriteria.diskInstance && searchCriteria.diskFileGroup) { - if(!diskFileGroupExists(conn, searchCriteria.diskInstance.value(), searchCriteria.diskFileGroup.value())) { + if(searchCriteria.diskInstance && searchCriteria.diskFileGid) { + if(!diskFileGroupExists(conn, searchCriteria.diskInstance.value(), searchCriteria.diskFileGid.value())) { throw exception::UserError(std::string("Disk file group ") + searchCriteria.diskInstance.value() + "::" + - searchCriteria.diskFileGroup.value() + " does not exist"); + std::to_string(searchCriteria.diskFileGid.value()) + " does not exist"); } } @@ -4315,15 +4315,15 @@ void RdbmsCatalogue::checkTapeFileSearchCriteria(const TapeFileSearchCriteria &s } } - if(searchCriteria.diskFileUser && !searchCriteria.diskInstance) { - throw exception::UserError(std::string("Disk file user ") + searchCriteria.diskFileUser.value() + " is ambiguous " - "without disk instance name"); + if(searchCriteria.diskFileOwnerUid && !searchCriteria.diskInstance) { + throw exception::UserError(std::string("Disk file user ") + std::to_string(searchCriteria.diskFileOwnerUid.value()) + + " is ambiguous without disk instance name"); } - if(searchCriteria.diskInstance && searchCriteria.diskFileUser) { - if(!diskFileUserExists(conn, searchCriteria.diskInstance.value(), searchCriteria.diskFileUser.value())) { + if(searchCriteria.diskInstance && searchCriteria.diskFileOwnerUid) { + if(!diskFileUserExists(conn, searchCriteria.diskInstance.value(), searchCriteria.diskFileOwnerUid.value())) { throw exception::UserError(std::string("Disk file user ") + searchCriteria.diskInstance.value() + "::" + - searchCriteria.diskFileUser.value() + " does not exist"); + std::to_string(searchCriteria.diskFileOwnerUid.value()) + " does not exist"); } } @@ -4429,8 +4429,8 @@ std::list<common::dataStructures::ArchiveFile> RdbmsCatalogue::getFilesForRepack archiveFile.diskInstance = rset.columnString("DISK_INSTANCE_NAME"); archiveFile.diskFileId = rset.columnString("DISK_FILE_ID"); archiveFile.diskFileInfo.path = rset.columnString("DISK_FILE_PATH"); - archiveFile.diskFileInfo.owner = rset.columnString("DISK_FILE_UID"); - archiveFile.diskFileInfo.group = rset.columnString("DISK_FILE_GID"); + archiveFile.diskFileInfo.owner_uid = rset.columnUint64("DISK_FILE_UID"); + archiveFile.diskFileInfo.gid = rset.columnUint64("DISK_FILE_GID"); archiveFile.fileSize = rset.columnUint64("SIZE_IN_BYTES"); archiveFile.checksumType = rset.columnString("CHECKSUM_TYPE"); archiveFile.checksumValue = rset.columnString("CHECKSUM_VALUE"); @@ -4506,8 +4506,8 @@ common::dataStructures::ArchiveFileSummary RdbmsCatalogue::getTapeFileSummary( searchCriteria.diskInstance || searchCriteria.diskFileId || searchCriteria.diskFilePath || - searchCriteria.diskFileUser || - searchCriteria.diskFileGroup || + searchCriteria.diskFileOwnerUid || + searchCriteria.diskFileGid || searchCriteria.storageClass || searchCriteria.vid || searchCriteria.tapeFileCopyNb || @@ -4536,12 +4536,12 @@ common::dataStructures::ArchiveFileSummary RdbmsCatalogue::getTapeFileSummary( sql += "ARCHIVE_FILE.DISK_FILE_PATH = :DISK_FILE_PATH"; addedAWhereConstraint = true; } - if(searchCriteria.diskFileUser) { + if(searchCriteria.diskFileOwnerUid) { if(addedAWhereConstraint) sql += " AND "; sql += "ARCHIVE_FILE.DISK_FILE_UID = :DISK_FILE_UID"; addedAWhereConstraint = true; } - if(searchCriteria.diskFileGroup) { + if(searchCriteria.diskFileGid) { if(addedAWhereConstraint) sql += " AND "; sql += "ARCHIVE_FILE.DISK_FILE_GID = :DISK_FILE_GID"; addedAWhereConstraint = true; @@ -4580,11 +4580,11 @@ common::dataStructures::ArchiveFileSummary RdbmsCatalogue::getTapeFileSummary( if(searchCriteria.diskFilePath) { stmt.bindString(":DISK_FILE_PATH", searchCriteria.diskFilePath.value()); } - if(searchCriteria.diskFileUser) { - stmt.bindString(":DISK_FILE_UID", searchCriteria.diskFileUser.value()); + if(searchCriteria.diskFileOwnerUid) { + stmt.bindUint64(":DISK_FILE_UID", searchCriteria.diskFileOwnerUid.value()); } - if(searchCriteria.diskFileGroup) { - stmt.bindString(":DISK_FILE_GID", searchCriteria.diskFileGroup.value()); + if(searchCriteria.diskFileGid) { + stmt.bindUint64(":DISK_FILE_GID", searchCriteria.diskFileGid.value()); } if(searchCriteria.storageClass) { stmt.bindString(":STORAGE_CLASS_NAME", searchCriteria.storageClass.value()); @@ -4673,7 +4673,7 @@ void RdbmsCatalogue::tapeLabelled(const std::string &vid, const std::string &dri // checkAndGetNextArchiveFileId //------------------------------------------------------------------------------ uint64_t RdbmsCatalogue::checkAndGetNextArchiveFileId(const std::string &diskInstanceName, - const std::string &storageClassName, const common::dataStructures::UserIdentity &user) { + const std::string &storageClassName, const common::dataStructures::RequesterIdentity &user) { try { const auto storageClass = StorageClass(diskInstanceName, storageClassName); const auto copyToPoolMap = getCachedTapeCopyToPoolMap(storageClass); @@ -4726,7 +4726,7 @@ uint64_t RdbmsCatalogue::checkAndGetNextArchiveFileId(const std::string &diskIns //------------------------------------------------------------------------------ common::dataStructures::ArchiveFileQueueCriteria RdbmsCatalogue::getArchiveFileQueueCriteria( const std::string &diskInstanceName, - const std::string &storageClassName, const common::dataStructures::UserIdentity &user) { + const std::string &storageClassName, const common::dataStructures::RequesterIdentity &user) { try { const StorageClass storageClass = StorageClass(diskInstanceName, storageClassName); const common::dataStructures::TapeCopyToPoolMap copyToPoolMap = getCachedTapeCopyToPoolMap(storageClass); @@ -4915,7 +4915,7 @@ void RdbmsCatalogue::updateTape( common::dataStructures::RetrieveFileQueueCriteria RdbmsCatalogue::prepareToRetrieveFile( const std::string &diskInstanceName, const uint64_t archiveFileId, - const common::dataStructures::UserIdentity &user, + const common::dataStructures::RequesterIdentity &user, const optional<std::string>& activity, log::LogContext &lc) { try { @@ -5371,8 +5371,8 @@ std::unique_ptr<common::dataStructures::ArchiveFile> RdbmsCatalogue::getArchiveF archiveFile->diskInstance = rset.columnString("DISK_INSTANCE_NAME"); archiveFile->diskFileId = rset.columnString("DISK_FILE_ID"); archiveFile->diskFileInfo.path = rset.columnString("DISK_FILE_PATH"); - archiveFile->diskFileInfo.owner = rset.columnString("DISK_FILE_UID"); - archiveFile->diskFileInfo.group = rset.columnString("DISK_FILE_GID"); + archiveFile->diskFileInfo.owner_uid = rset.columnUint64("DISK_FILE_UID"); + archiveFile->diskFileInfo.gid = rset.columnUint64("DISK_FILE_GID"); archiveFile->fileSize = rset.columnUint64("SIZE_IN_BYTES"); archiveFile->checksumType = rset.columnString("CHECKSUM_TYPE"); archiveFile->checksumValue = rset.columnString("CHECKSUM_VALUE"); @@ -5464,8 +5464,8 @@ std::unique_ptr<common::dataStructures::ArchiveFile> RdbmsCatalogue::getArchiveF archiveFile->diskInstance = rset.columnString("DISK_INSTANCE_NAME"); archiveFile->diskFileId = rset.columnString("DISK_FILE_ID"); archiveFile->diskFileInfo.path = rset.columnString("DISK_FILE_PATH"); - archiveFile->diskFileInfo.owner = rset.columnString("DISK_FILE_UID"); - archiveFile->diskFileInfo.group = rset.columnString("DISK_FILE_GID"); + archiveFile->diskFileInfo.owner_uid = rset.columnUint64("DISK_FILE_UID"); + archiveFile->diskFileInfo.gid = rset.columnUint64("DISK_FILE_GID"); archiveFile->fileSize = rset.columnUint64("SIZE_IN_BYTES"); archiveFile->checksumType = rset.columnString("CHECKSUM_TYPE"); archiveFile->checksumValue = rset.columnString("CHECKSUM_VALUE"); @@ -5610,8 +5610,8 @@ std::unique_ptr<common::dataStructures::ArchiveFile> RdbmsCatalogue::getArchiveF archiveFile->diskInstance = rset.columnString("DISK_INSTANCE_NAME"); archiveFile->diskFileId = rset.columnString("DISK_FILE_ID"); archiveFile->diskFileInfo.path = rset.columnString("DISK_FILE_PATH"); - archiveFile->diskFileInfo.owner = rset.columnString("DISK_FILE_UID"); - archiveFile->diskFileInfo.group = rset.columnString("DISK_FILE_GID"); + archiveFile->diskFileInfo.owner_uid = rset.columnUint64("DISK_FILE_UID"); + archiveFile->diskFileInfo.gid = rset.columnUint64("DISK_FILE_GID"); archiveFile->fileSize = rset.columnUint64("SIZE_IN_BYTES"); archiveFile->checksumType = rset.columnString("CHECKSUM_TYPE"); archiveFile->checksumValue = rset.columnString("CHECKSUM_VALUE"); @@ -5707,8 +5707,8 @@ std::unique_ptr<common::dataStructures::ArchiveFile> RdbmsCatalogue::getArchiveF archiveFile->diskInstance = rset.columnString("DISK_INSTANCE_NAME"); archiveFile->diskFileId = rset.columnString("DISK_FILE_ID"); archiveFile->diskFileInfo.path = rset.columnString("DISK_FILE_PATH"); - archiveFile->diskFileInfo.owner = rset.columnString("DISK_FILE_UID"); - archiveFile->diskFileInfo.group = rset.columnString("DISK_FILE_GID"); + archiveFile->diskFileInfo.owner_uid = rset.columnUint64("DISK_FILE_UID"); + archiveFile->diskFileInfo.gid = rset.columnUint64("DISK_FILE_GID"); archiveFile->fileSize = rset.columnUint64("SIZE_IN_BYTES"); archiveFile->checksumType = rset.columnString("CHECKSUM_TYPE"); archiveFile->checksumValue = rset.columnString("CHECKSUM_VALUE"); @@ -5813,8 +5813,8 @@ void RdbmsCatalogue::checkTapeFileWrittenFieldsAreSet(const std::string &calling if(event.diskInstance.empty()) throw exception::Exception("diskInstance is an empty string"); if(event.diskFileId.empty()) throw exception::Exception("diskFileId is an empty string"); if(event.diskFilePath.empty()) throw exception::Exception("diskFilePath is an empty string"); - if(event.diskFileUser.empty()) throw exception::Exception("diskFileUser is an empty string"); - if(event.diskFileGroup.empty()) throw exception::Exception("diskFileGroup is an empty string"); + if(0 == event.diskFileOwnerUid) throw exception::Exception("diskFileOwnerUid is 0"); + if(0 == event.diskFileGid) throw exception::Exception("diskFileGid is 0"); if(0 == event.size) throw exception::Exception("size is 0"); if(event.checksumType.empty()) throw exception::Exception("checksumType is an empty string"); if(event.checksumValue.empty()) throw exception::Exception("checksumValue is an empty string"); diff --git a/catalogue/RdbmsCatalogue.hpp b/catalogue/RdbmsCatalogue.hpp index d6cdbfe7f960a7f22c9730040468bc01b71d0c1e..55b777211666b8f9fa91ea2a4b6dee919e9575d0 100644 --- a/catalogue/RdbmsCatalogue.hpp +++ b/catalogue/RdbmsCatalogue.hpp @@ -116,7 +116,7 @@ public: uint64_t checkAndGetNextArchiveFileId( const std::string &diskInstanceName, const std::string &storageClassName, - const common::dataStructures::UserIdentity &user) override; + const common::dataStructures::RequesterIdentity &user) override; /** * Returns the information required to queue an archive request. @@ -135,7 +135,7 @@ public: common::dataStructures::ArchiveFileQueueCriteria getArchiveFileQueueCriteria( const std::string &diskInstanceName, const std::string &storageClassName, - const common::dataStructures::UserIdentity &user) override; + const common::dataStructures::RequesterIdentity &user) override; /** * Returns the list of tapes that can be written to by a tape drive in the @@ -179,7 +179,7 @@ public: common::dataStructures::RetrieveFileQueueCriteria prepareToRetrieveFile( const std::string &diskInstanceName, const uint64_t archiveFileId, - const common::dataStructures::UserIdentity &user, + const common::dataStructures::RequesterIdentity &user, const optional<std::string> & activity, log::LogContext &lc) override; @@ -703,26 +703,22 @@ protected: /** * Returns true if the specified disk file user exists. * - * @param conn The database connection. - * @param diskInstanceName The name of the disk instance to which the disk - * file user belongs. - * @param diskFileUSer The name of the disk file user. - * @return True if the disk file user exists. + * @param conn The database connection. + * @param diskInstanceName The name of the disk instance to which the disk file user belongs. + * @param diskFileOwnerUid The user ID of the disk file owner. + * @return True if the disk file user exists. */ - bool diskFileUserExists(rdbms::Conn &conn, const std::string &diskInstanceName, const std::string &diskFileUser) - const; + bool diskFileUserExists(rdbms::Conn &conn, const std::string &diskInstanceName, uint32_t diskFileOwnerUid) const; /** * Returns true if the specified disk file group exists. * - * @param conn The database connection. - * @param diskInstanceName The name of the disk instance to which the disk - * file group belongs. - * @param diskFileGroup The name of the disk file group. - * @return True if the disk file group exists. + * @param conn The database connection. + * @param diskInstanceName The name of the disk instance to which the disk file group belongs. + * @param diskFileGid The group ID of the disk file. + * @return True if the disk file group exists. */ - bool diskFileGroupExists(rdbms::Conn &conn, const std::string &diskInstanceName, const std::string &diskFileGroup) - const; + bool diskFileGroupExists(rdbms::Conn &conn, const std::string &diskInstanceName, uint32_t diskFileGid) const; /** * Returns true if the specified archive route exists. diff --git a/catalogue/RdbmsCatalogueGetArchiveFilesForRepackItor.cpp b/catalogue/RdbmsCatalogueGetArchiveFilesForRepackItor.cpp index 1d0ebaaacb40a56788960fdad29bf63186cf03a2..9d4441042a3745feebb270f7217a911acedd0ee9 100644 --- a/catalogue/RdbmsCatalogueGetArchiveFilesForRepackItor.cpp +++ b/catalogue/RdbmsCatalogueGetArchiveFilesForRepackItor.cpp @@ -44,8 +44,8 @@ namespace { archiveFile.diskInstance = rset.columnString("DISK_INSTANCE_NAME"); archiveFile.diskFileId = rset.columnString("DISK_FILE_ID"); archiveFile.diskFileInfo.path = rset.columnString("DISK_FILE_PATH"); - archiveFile.diskFileInfo.owner = rset.columnString("DISK_FILE_UID"); - archiveFile.diskFileInfo.group = rset.columnString("DISK_FILE_GID"); + archiveFile.diskFileInfo.owner_uid = rset.columnUint64("DISK_FILE_UID"); + archiveFile.diskFileInfo.gid = rset.columnUint64("DISK_FILE_GID"); archiveFile.fileSize = rset.columnUint64("SIZE_IN_BYTES"); archiveFile.checksumType = rset.columnString("CHECKSUM_TYPE"); archiveFile.checksumValue = rset.columnString("CHECKSUM_VALUE"); diff --git a/catalogue/RdbmsCatalogueGetArchiveFilesItor.cpp b/catalogue/RdbmsCatalogueGetArchiveFilesItor.cpp index fce3667a78aa27976a1ed0cf86bd1e87f8abb46e..ff6cb76a0be5087b7e8f4abc23f34f1d77dcc4a1 100644 --- a/catalogue/RdbmsCatalogueGetArchiveFilesItor.cpp +++ b/catalogue/RdbmsCatalogueGetArchiveFilesItor.cpp @@ -44,8 +44,8 @@ namespace { archiveFile.diskInstance = rset.columnString("DISK_INSTANCE_NAME"); archiveFile.diskFileId = rset.columnString("DISK_FILE_ID"); archiveFile.diskFileInfo.path = rset.columnString("DISK_FILE_PATH"); - archiveFile.diskFileInfo.owner = rset.columnString("DISK_FILE_UID"); - archiveFile.diskFileInfo.group = rset.columnString("DISK_FILE_GID"); + archiveFile.diskFileInfo.owner_uid = rset.columnUint64("DISK_FILE_UID"); + archiveFile.diskFileInfo.gid = rset.columnUint64("DISK_FILE_GID"); archiveFile.fileSize = rset.columnUint64("SIZE_IN_BYTES"); archiveFile.checksumType = rset.columnString("CHECKSUM_TYPE"); archiveFile.checksumValue = rset.columnString("CHECKSUM_VALUE"); @@ -126,8 +126,8 @@ RdbmsCatalogueGetArchiveFilesItor::RdbmsCatalogueGetArchiveFilesItor( searchCriteria.diskInstance || searchCriteria.diskFileId || searchCriteria.diskFilePath || - searchCriteria.diskFileUser || - searchCriteria.diskFileGroup || + searchCriteria.diskFileOwnerUid || + searchCriteria.diskFileGid || searchCriteria.storageClass || searchCriteria.vid || searchCriteria.tapeFileCopyNb || @@ -158,12 +158,12 @@ RdbmsCatalogueGetArchiveFilesItor::RdbmsCatalogueGetArchiveFilesItor( sql += "ARCHIVE_FILE.DISK_FILE_PATH = :DISK_FILE_PATH"; addedAWhereConstraint = true; } - if(searchCriteria.diskFileUser) { + if(searchCriteria.diskFileOwnerUid) { if(addedAWhereConstraint) sql += " AND "; sql += "ARCHIVE_FILE.DISK_FILE_UID = :DISK_FILE_UID"; addedAWhereConstraint = true; } - if(searchCriteria.diskFileGroup) { + if(searchCriteria.diskFileGid) { if(addedAWhereConstraint) sql += " AND "; sql += "ARCHIVE_FILE.DISK_FILE_GID = :DISK_FILE_GID"; addedAWhereConstraint = true; @@ -210,11 +210,11 @@ RdbmsCatalogueGetArchiveFilesItor::RdbmsCatalogueGetArchiveFilesItor( if(searchCriteria.diskFilePath) { m_stmt.bindString(":DISK_FILE_PATH", searchCriteria.diskFilePath.value()); } - if(searchCriteria.diskFileUser) { - m_stmt.bindString(":DISK_FILE_UID", searchCriteria.diskFileUser.value()); + if(searchCriteria.diskFileOwnerUid) { + m_stmt.bindUint64(":DISK_FILE_UID", searchCriteria.diskFileOwnerUid.value()); } - if(searchCriteria.diskFileGroup) { - m_stmt.bindString(":DISK_FILE_GID", searchCriteria.diskFileGroup.value()); + if(searchCriteria.diskFileGid) { + m_stmt.bindUint64(":DISK_FILE_GID", searchCriteria.diskFileGid.value()); } if(searchCriteria.storageClass) { m_stmt.bindString(":STORAGE_CLASS_NAME", searchCriteria.storageClass.value()); diff --git a/catalogue/SqliteCatalogue.cpp b/catalogue/SqliteCatalogue.cpp index 83554b9d75cdbc0a4cb19649d7e0bdfc9e73dfb5..fefed7f25a3fa91983790572cde40628f1628f30 100644 --- a/catalogue/SqliteCatalogue.cpp +++ b/catalogue/SqliteCatalogue.cpp @@ -84,8 +84,8 @@ void SqliteCatalogue::deleteArchiveFile(const std::string &diskInstanceName, con .add("requestDiskInstance", diskInstanceName) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) @@ -150,8 +150,8 @@ void SqliteCatalogue::deleteArchiveFile(const std::string &diskInstanceName, con .add("diskInstance", archiveFile->diskInstance) .add("diskFileId", archiveFile->diskFileId) .add("diskFileInfo.path", archiveFile->diskFileInfo.path) - .add("diskFileInfo.owner", archiveFile->diskFileInfo.owner) - .add("diskFileInfo.group", archiveFile->diskFileInfo.group) + .add("diskFileInfo.owner_uid", archiveFile->diskFileInfo.owner_uid) + .add("diskFileInfo.gid", archiveFile->diskFileInfo.gid) .add("fileSize", std::to_string(archiveFile->fileSize)) .add("checksumType", archiveFile->checksumType) .add("checksumValue", archiveFile->checksumValue) @@ -312,7 +312,7 @@ common::dataStructures::Tape SqliteCatalogue::selectTape(rdbms::Conn &conn, cons tape.comment = rset.columnString("USER_COMMENT"); - common::dataStructures::UserIdentity creatorUI; + common::dataStructures::RequesterIdentity creatorUI; creatorUI.name = rset.columnString("CREATION_LOG_USER_NAME"); common::dataStructures::EntryLog creationLog; @@ -322,7 +322,7 @@ common::dataStructures::Tape SqliteCatalogue::selectTape(rdbms::Conn &conn, cons tape.creationLog = creationLog; - common::dataStructures::UserIdentity updaterUI; + common::dataStructures::RequesterIdentity updaterUI; updaterUI.name = rset.columnString("LAST_UPDATE_USER_NAME"); common::dataStructures::EntryLog updateLog; @@ -430,8 +430,8 @@ void SqliteCatalogue::fileWrittenToTape(rdbms::Conn &conn, const TapeFileWritten row.checksumValue = event.checksumValue; row.storageClassName = event.storageClassName; row.diskFilePath = event.diskFilePath; - row.diskFileUser = event.diskFileUser; - row.diskFileGroup = event.diskFileGroup; + row.diskFileOwnerUid = event.diskFileOwnerUid; + row.diskFileGid = event.diskFileGid; insertArchiveFile(conn, row); } catch(exception::DatabasePrimaryKeyError &) { // Ignore this error diff --git a/catalogue/TapeFileSearchCriteria.hpp b/catalogue/TapeFileSearchCriteria.hpp index b85eb9da03436ae5e12ead7033acc809c7ef6dcf..4ac9f622247f589e7907f3274cc66dfef47bfb9f 100644 --- a/catalogue/TapeFileSearchCriteria.hpp +++ b/catalogue/TapeFileSearchCriteria.hpp @@ -62,12 +62,12 @@ struct TapeFileSearchCriteria { /** * The owner of a file within its disk instance. */ - optional<std::string> diskFileUser; + optional<uint64_t> diskFileOwnerUid; /** * The group of a file within its disk instance. */ - optional<std::string> diskFileGroup; + optional<uint64_t> diskFileGid; /** * The storage class name of the file. diff --git a/catalogue/TapeFileWritten.cpp b/catalogue/TapeFileWritten.cpp index 3f24656b603cf13e602ab05d2b69bf7e2f028042..675b2f614433fe80a0fc46c8e1840e3f2777013c 100644 --- a/catalogue/TapeFileWritten.cpp +++ b/catalogue/TapeFileWritten.cpp @@ -26,6 +26,8 @@ namespace catalogue { //------------------------------------------------------------------------------ TapeFileWritten::TapeFileWritten() : archiveFileId(0), + diskFileOwnerUid(0), + diskFileGid(0), size(0), blockId(0), copyNb(0) { @@ -41,8 +43,8 @@ bool TapeFileWritten::operator==(const TapeFileWritten &rhs) const { diskInstance == rhs.diskInstance && diskFileId == rhs.diskFileId && diskFilePath == rhs.diskFilePath && - diskFileUser == rhs.diskFileUser && - diskFileGroup == rhs.diskFileGroup && + diskFileOwnerUid == rhs.diskFileOwnerUid && + diskFileGid == rhs.diskFileGid && size == rhs.size && checksumType == rhs.checksumType && checksumValue == rhs.checksumValue && @@ -62,8 +64,8 @@ std::ostream &operator<<(std::ostream &os, const TapeFileWritten &obj) { "diskInstance=" << obj.diskInstance << "," "diskFileId=" << obj.diskFileId << "," "diskFilePath=" << obj.diskFilePath << "," - "diskFileUser=" << obj.diskFileUser << "," - "diskFileGroup=" << obj.diskFileGroup << "," + "diskFileOwnerUid=" << obj.diskFileOwnerUid << "," + "diskFileGid=" << obj.diskFileGid << "," "size=" << obj.size << "," "checksumType=" << obj.checksumType << "checksumValue=" << obj.checksumValue << "," "storageClassName=" << obj.storageClassName << "," diff --git a/catalogue/TapeFileWritten.hpp b/catalogue/TapeFileWritten.hpp index 722be7b702c794a19d4ca4667f4d580cfa3e2473..e007157f7d2625f8d3e05866c77901a0dc7638f7 100644 --- a/catalogue/TapeFileWritten.hpp +++ b/catalogue/TapeFileWritten.hpp @@ -71,12 +71,12 @@ struct TapeFileWritten: public TapeItemWritten { /** * The user name of the source disk file within its host disk system. */ - std::string diskFileUser; + uint32_t diskFileOwnerUid; /** * The group name of the source disk file within its host disk system. */ - std::string diskFileGroup; + uint32_t diskFileGid; /** * The uncompressed size of the tape file in bytes. diff --git a/cmdline/CtaAdminCmdParse.hpp b/cmdline/CtaAdminCmdParse.hpp index 5e4c146d70cbf4f238c9d3b0f808e6b8e9d2c8be..53a183179c742fd5ecb2c076a23d39cb3f928ff2 100644 --- a/cmdline/CtaAdminCmdParse.hpp +++ b/cmdline/CtaAdminCmdParse.hpp @@ -266,6 +266,7 @@ const std::map<std::string, OptionUInt64::Key> uint64Options = { { "--capacity", OptionUInt64::CAPACITY }, { "--copynb", OptionUInt64::COPY_NUMBER }, { "--firstfseq", OptionUInt64::FIRST_FSEQ }, + { "--gid", OptionUInt64::GID }, { "--id", OptionUInt64::ARCHIVE_FILE_ID }, { "--lastfseq", OptionUInt64::LAST_FSEQ }, { "--maxdrivesallowed", OptionUInt64::MAX_DRIVES_ALLOWED }, @@ -275,7 +276,8 @@ const std::map<std::string, OptionUInt64::Key> uint64Options = { { "--partial", OptionUInt64::PARTIAL }, { "--partialtapesnumber", OptionUInt64::PARTIAL_TAPES_NUMBER }, { "--retrievepriority", OptionUInt64::RETRIEVE_PRIORITY }, - { "--size", OptionUInt64::FILE_SIZE } + { "--size", OptionUInt64::FILE_SIZE }, + { "--uid", OptionUInt64::OWNER_UID } }; @@ -290,7 +292,6 @@ const std::map<std::string, OptionString::Key> strOptions = { { "--drive", OptionString::DRIVE }, { "--encryptionkey", OptionString::ENCRYPTION_KEY }, { "--file", OptionString::FILENAME }, - { "--group", OptionString::GROUP }, { "--hostname", OptionString::HOSTNAME }, { "--input", OptionString::INPUT }, { "--instance", OptionString::INSTANCE }, @@ -298,7 +299,6 @@ const std::map<std::string, OptionString::Key> strOptions = { { "--mediatype", OptionString::MEDIA_TYPE }, { "--mountpolicy", OptionString::MOUNT_POLICY }, { "--output", OptionString::OUTPUT }, - { "--owner", OptionString::OWNER }, { "--path", OptionString::PATH }, { "--storageclass", OptionString::STORAGE_CLASS }, { "--supply", OptionString::SUPPLY }, @@ -371,7 +371,7 @@ const Option opt_filename { Option::OPT_STR, "--file", const Option opt_firstfseq { Option::OPT_UINT, "--firstfseq", "-f", " <first_fseq>" }; const Option opt_force { Option::OPT_BOOL, "--force", "-f", " <\"true\" or \"false\">" }; const Option opt_force_flag { Option::OPT_FLAG, "--force", "-f", "" }; -const Option opt_group { Option::OPT_STR, "--group", "-g", " <group>" }; +const Option opt_gid { Option::OPT_UINT, "--gid", "-g", " <group_id>" }; const Option opt_hostname_alias { Option::OPT_STR, "--name", "-n", " <host_name>", "--hostname" }; const Option opt_input { Option::OPT_STR, "--input", "-i", " <\"zero\" or \"urandom\">" }; @@ -396,7 +396,7 @@ const Option opt_number_of_files { Option::OPT_UINT, "--nbfiles", const Option opt_number_of_files_alias{ Option::OPT_UINT, "--number", "-n", " <number_of_files>", "--nbfiles" }; const Option opt_output { Option::OPT_STR, "--output", "-o", " <\"null\" or output_dir>" }; -const Option opt_owner { Option::OPT_STR, "--owner", "-o", " <owner>" }; +const Option opt_owner_uid { Option::OPT_UINT, "--uid", "-u", " <owner_uid>" }; const Option opt_partialfiles { Option::OPT_UINT, "--partial", "-p", " <number_of_files_per_tape>" }; const Option opt_partialtapes { Option::OPT_UINT, "--partialtapesnumber", "-p", " <number_of_partial_tapes>" }; const Option opt_path { Option::OPT_STR, "--path", "-p", " <full_path>" }; @@ -432,7 +432,7 @@ const std::map<cmd_key_t, cmd_val_t> cmdOptions = { /*----------------------------------------------------------------------------------------------------*/ {{ AdminCmd::CMD_ARCHIVEFILE, AdminCmd::SUBCMD_LS }, { opt_archivefileid.optional(), opt_diskid.optional(), opt_copynb.optional(), - opt_vid.optional(), opt_tapepool.optional(), opt_owner.optional(), opt_group.optional(), + opt_vid.optional(), opt_tapepool.optional(), opt_owner_uid.optional(), opt_gid.optional(), opt_storageclass.optional(), opt_path.optional(), opt_instance.optional(), opt_all.optional(), opt_summary.optional() }}, /*----------------------------------------------------------------------------------------------------*/ diff --git a/cmdline/EosCtaStub.cpp b/cmdline/EosCtaStub.cpp index e53d4c16ca997085c820f47f55090f3c568a7379..94538506a34777e69f2de0fb50976cf14f963b15 100644 --- a/cmdline/EosCtaStub.cpp +++ b/cmdline/EosCtaStub.cpp @@ -217,8 +217,8 @@ void fillNotification(cta::eos::Notification ¬ification, int argc, const char else if(argstr == "--dsturl") notification.mutable_transport()->set_dst_url(argval); // for retrieve WF else if(argstr == "--diskid") notification.mutable_file()->set_fid(std::stoi(argval)); - else if(argstr == "--diskfileowner") notification.mutable_file()->mutable_owner()->set_username(argval); - else if(argstr == "--diskfilegroup") notification.mutable_file()->mutable_owner()->set_groupname(argval); + else if(argstr == "--diskfileowner") notification.mutable_file()->mutable_owner()->set_uid(std::stoi(argval)); + else if(argstr == "--diskfilegroup") notification.mutable_file()->mutable_owner()->set_gid(std::stoi(argval)); else if(argstr == "--size") notification.mutable_file()->set_size(std::stoi(argval)); else if(argstr == "--checksumtype") notification.mutable_file()->mutable_cks()->set_type(argval); else if(argstr == "--checksumvalue") notification.mutable_file()->mutable_cks()->set_value(argval); @@ -231,13 +231,6 @@ void fillNotification(cta::eos::Notification ¬ification, int argc, const char google::protobuf::MapPair<std::string,std::string> id("CTA_ArchiveFileId", argval); notification.mutable_file()->mutable_xattr()->insert(id); } - else if(argstr == "--diskpool") {} // = default? - else if(argstr == "--throughput") {} // = 10000? - else if(argstr == "--recoveryblob:base64") try { - base64Decode(notification, argval); - } catch(...) { - throw std::runtime_error("Invalid recovery blob: " + argval); - } else throw std::runtime_error("Unrecognised key " + argstr); } } diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 5c0965ce33438e166a913155209838590cc863b8..cfe8958700bb3b788c2a4e517c29b538e08879ee 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -50,10 +50,12 @@ set (COMMON_LIB_SRC_FILES dataStructures/LogicalLibrary.cpp dataStructures/MountType.cpp dataStructures/MountPolicy.cpp + dataStructures/OwnerIdentity.cpp dataStructures/QueueAndMountSummary.cpp dataStructures/ReadTestResult.cpp dataStructures/RepackInfo.cpp dataStructures/RequesterGroupMountRule.cpp + dataStructures/RequesterIdentity.cpp dataStructures/RequesterMountRule.cpp dataStructures/RetrieveFileQueueCriteria.cpp dataStructures/RetrieveJob.cpp @@ -66,7 +68,7 @@ set (COMMON_LIB_SRC_FILES dataStructures/TestSourceType.cpp dataStructures/UpdateFileInfoRequest.cpp dataStructures/UpdateFileStorageClassRequest.cpp - dataStructures/UserIdentity.cpp + dataStructures/VerifyInfo.cpp dataStructures/WriteTestResult.cpp dataStructures/utils.cpp checksum/Checksum.cpp @@ -143,7 +145,6 @@ set (COMMON_LIB_SRC_FILES ConfigurationFile.cpp SourcedParameter.cpp Timer.cpp - UserIdentity.cpp optional.cpp) add_library (ctacommon SHARED @@ -193,7 +194,6 @@ set (COMMON_UNIT_TESTS_LIB_SRC_FILES utils/GetOptThreadSafeTest.cpp utils/RegexTest.cpp utils/UtilsTest.cpp - UserIdentityTest.cpp optionalTest.cpp rangeTest.cpp) diff --git a/common/CreationLog.cpp b/common/CreationLog.cpp index e905ad54f292455475903ad327f675cfb7f08df2..823e1788835a341990b0deb4376ac4d9032fc024 100644 --- a/common/CreationLog.cpp +++ b/common/CreationLog.cpp @@ -30,6 +30,6 @@ cta::CreationLog::CreationLog(): // constructor //------------------------------------------------------------------------------ -cta::CreationLog::CreationLog(const UserIdentity& user, +cta::CreationLog::CreationLog(const cta::common::dataStructures::OwnerIdentity& user, const std::string& host, const time_t time, const std::string& comment): user(user), host(host), time(time), comment(comment) {} diff --git a/common/CreationLog.hpp b/common/CreationLog.hpp index 3f4c5e94c397ae6afb1c2d777aa3e88acedb14f9..f2ce28999e9ca7d677d6257c14f16113bb22d830 100644 --- a/common/CreationLog.hpp +++ b/common/CreationLog.hpp @@ -18,10 +18,10 @@ #pragma once -#include "common/UserIdentity.hpp" - #include <string> +#include "common/dataStructures/OwnerIdentity.hpp" + namespace cta { /** @@ -38,13 +38,13 @@ struct CreationLog { /** * Constructor. */ - CreationLog(const UserIdentity &user, const std::string &host, + CreationLog(const common::dataStructures::OwnerIdentity &user, const std::string &host, const time_t time, const std::string & comment = ""); /** * The identity of the creator. */ - UserIdentity user; + common::dataStructures::OwnerIdentity user; /** * The network name of the host from which they are submitting a request. diff --git a/common/UserIdentity.hpp b/common/UserIdentity.hpp deleted file mode 100644 index fae4e09de3a46dd72128827202349f4251c7c9ce..0000000000000000000000000000000000000000 --- a/common/UserIdentity.hpp +++ /dev/null @@ -1,81 +0,0 @@ -/* - * The CERN Tape Archive (CTA) project - * Copyright (C) 2015 CERN - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#pragma once - -#include <ostream> -#include <stdint.h> -#include <string> - -namespace cta { - -/** - * Class representing the identity of a user. - */ -struct UserIdentity { - - /** - * Constructor. - * - * Initialises all integer member-variables to non-valid values (max int). - */ - UserIdentity() throw(); - - /** - * Constructor. - * - * @param uid The user ID of the user. - * @param gid The group ID of the user. - */ - UserIdentity(const uint32_t uid, const uint32_t gid) throw(); - - /** - * Returns true if the specified right-hand side is equal to this object. - * - * @param rhs The object on the right-hand side of the == operator. - * @return True if the specified right-hand side is equal to this object. - */ - bool operator==(const UserIdentity &rhs) const; - - /** - * Returns true if the specified right-hand side is not euqal to this object. - * - * @param rhs The object on the right-hand side of the != operator. - * @return True if the specified right-hand side is not equal to this object. - */ - bool operator!=(const UserIdentity &rhs) const; - - /** - * The user ID of the user. - */ - uint32_t uid; - - /** - * The group ID of the user. - */ - uint32_t gid; - - -}; // class UserIdentity - -} // namespace cta - -/** - * Output stream operator for the cta::UserIdentity class. - */ -std::ostream &operator<<(std::ostream &os, const cta::UserIdentity &obj); diff --git a/common/UserIdentityTest.cpp b/common/UserIdentityTest.cpp deleted file mode 100644 index a7dec0a0740896b28083eefbf391f08e9c15d8c9..0000000000000000000000000000000000000000 --- a/common/UserIdentityTest.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * The CERN Tape Archive (CTA) project - * Copyright (C) 2015 CERN - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "common/UserIdentity.hpp" - -#include <gtest/gtest.h> - -namespace unitTests { - -class cta_UserIdentityTest: public ::testing::Test { -protected: - - virtual void SetUp() { - } - - virtual void TearDown() { - } -}; - -TEST_F(cta_UserIdentityTest, equals_operator) { - using namespace cta; - - const uint16_t uid1 = 1111; - const uint16_t uid2 = 2222; - const uint16_t gid1 = 3333; - const uint16_t gid2 = 4444; - - const UserIdentity user(uid1, gid1); - const UserIdentity sameUserAndGroup(uid1, gid1); - const UserIdentity sameUserDifferrentGroup(uid1, gid2); - const UserIdentity differentUserSameGroup(uid2, gid1); - const UserIdentity differentUserDifferentGroup(uid2, gid2); - - ASSERT_TRUE(user == user); - ASSERT_TRUE(user == sameUserAndGroup); - ASSERT_TRUE(user == sameUserDifferrentGroup); - ASSERT_FALSE(user == differentUserSameGroup); - ASSERT_FALSE(user == differentUserDifferentGroup); -} - -TEST_F(cta_UserIdentityTest, not_equals_operator) { - using namespace cta; - - const uint16_t uid1 = 1111; - const uint16_t uid2 = 2222; - const uint16_t gid1 = 3333; - const uint16_t gid2 = 4444; - - const UserIdentity user(uid1, gid1); - const UserIdentity sameUserAndGroup(uid1, gid1); - const UserIdentity sameUserDifferrentGroup(uid1, gid2); - const UserIdentity differentUserSameGroup(uid2, gid1); - const UserIdentity differentUserDifferentGroup(uid2, gid2); - - ASSERT_FALSE(user != user); - ASSERT_FALSE(user != sameUserAndGroup); - ASSERT_FALSE(user != sameUserDifferrentGroup); - ASSERT_TRUE(user != differentUserSameGroup); - ASSERT_TRUE(user != differentUserDifferentGroup); -} - -} // namespace unitTests diff --git a/common/dataStructures/ArchiveFileTest.cpp b/common/dataStructures/ArchiveFileTest.cpp index 0053b5d8d2d51e9f44191989bcd38f2bb25603e2..734fe529d1f6aa2792785818a6f08ecda82f1d76 100644 --- a/common/dataStructures/ArchiveFileTest.cpp +++ b/common/dataStructures/ArchiveFileTest.cpp @@ -23,6 +23,9 @@ namespace unitTests { +const uint32_t RECOVERY_OWNER_UID = 9751; +const uint32_t RECOVERY_GID = 9752; + class cta_common_dataStructures_ArchiveFileTest : public ::testing::Test { protected: @@ -47,8 +50,8 @@ TEST_F(cta_common_dataStructures_ArchiveFileTest, copy_constructor) { archiveFile1.diskInstance = "recovery_instance"; archiveFile1.diskFileInfo.path = "recovery_path"; - archiveFile1.diskFileInfo.owner = "recovery_owner"; - archiveFile1.diskFileInfo.group = "recovery_group"; + archiveFile1.diskFileInfo.owner_uid = RECOVERY_OWNER_UID; + archiveFile1.diskFileInfo.gid = RECOVERY_GID; TapeFile tapeFile1; tapeFile1.vid = "VID1"; @@ -83,8 +86,8 @@ TEST_F(cta_common_dataStructures_ArchiveFileTest, copy_constructor) { ASSERT_EQ(archiveFile1.diskInstance, archiveFile2.diskInstance); ASSERT_EQ(archiveFile1.diskFileInfo.path, archiveFile2.diskFileInfo.path); - ASSERT_EQ(archiveFile1.diskFileInfo.owner, archiveFile2.diskFileInfo.owner); - ASSERT_EQ(archiveFile1.diskFileInfo.group, archiveFile2.diskFileInfo.group); + ASSERT_EQ(archiveFile1.diskFileInfo.owner_uid, archiveFile2.diskFileInfo.owner_uid); + ASSERT_EQ(archiveFile1.diskFileInfo.gid, archiveFile2.diskFileInfo.gid); ASSERT_EQ(2, archiveFile2.tapeFiles.size()); diff --git a/common/dataStructures/ArchiveRequest.hpp b/common/dataStructures/ArchiveRequest.hpp index a2dbadb73e43c0ac07807a7fffb68004fd49a29f..cebefbf89809fe634875ce90ada03c3797d7985d 100644 --- a/common/dataStructures/ArchiveRequest.hpp +++ b/common/dataStructures/ArchiveRequest.hpp @@ -20,7 +20,7 @@ #include "common/dataStructures/DiskFileInfo.hpp" #include "common/dataStructures/EntryLog.hpp" -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" #include <list> #include <map> @@ -42,7 +42,7 @@ struct ArchiveRequest { bool operator!=(const ArchiveRequest &rhs) const; - UserIdentity requester; + RequesterIdentity requester; std::string diskFileID; std::string srcURL; diff --git a/common/dataStructures/CancelRetrieveRequest.hpp b/common/dataStructures/CancelRetrieveRequest.hpp index 1721fbf7ca4ffb3b81ae34efee31c25b89523b8a..02af7c07fd1f1ab14c9809fc537b7e783f3d5d3b 100644 --- a/common/dataStructures/CancelRetrieveRequest.hpp +++ b/common/dataStructures/CancelRetrieveRequest.hpp @@ -24,7 +24,7 @@ #include <string> #include "common/dataStructures/DiskFileInfo.hpp" -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" namespace cta { namespace common { @@ -41,7 +41,7 @@ struct CancelRetrieveRequest { bool operator!=(const CancelRetrieveRequest &rhs) const; - UserIdentity requester; + RequesterIdentity requester; uint64_t archiveFileID; std::string dstURL; DiskFileInfo diskFileInfo; diff --git a/common/dataStructures/DeleteArchiveRequest.hpp b/common/dataStructures/DeleteArchiveRequest.hpp index fd0730d20c41338059904a169a10fd592e0b8d29..949222a61aaffdd9132fd6caf361f9187e9b2de1 100644 --- a/common/dataStructures/DeleteArchiveRequest.hpp +++ b/common/dataStructures/DeleteArchiveRequest.hpp @@ -23,7 +23,7 @@ #include <stdint.h> #include <string> -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" namespace cta { namespace common { @@ -41,7 +41,7 @@ struct DeleteArchiveRequest { bool operator!=(const DeleteArchiveRequest &rhs) const; - UserIdentity requester; + RequesterIdentity requester; uint64_t archiveFileID; }; // struct DeleteArchiveRequest diff --git a/common/dataStructures/DiskFileInfo.cpp b/common/dataStructures/DiskFileInfo.cpp index 948572716611eb82be1e0822234e2dc3999c957c..4091f967a4e6723136b31c50a9df474fe6d4393d 100644 --- a/common/dataStructures/DiskFileInfo.cpp +++ b/common/dataStructures/DiskFileInfo.cpp @@ -29,13 +29,19 @@ namespace dataStructures { //------------------------------------------------------------------------------ DiskFileInfo::DiskFileInfo() {} +//------------------------------------------------------------------------------ +// constructor +//------------------------------------------------------------------------------ +DiskFileInfo::DiskFileInfo(const std::string &path, uint32_t owner_uid, uint32_t gid) : + path(path), owner_uid(owner_uid), gid(gid) {} + //------------------------------------------------------------------------------ // operator== //------------------------------------------------------------------------------ bool DiskFileInfo::operator==(const DiskFileInfo &rhs) const { return path==rhs.path - && owner==rhs.owner - && group==rhs.group; + && owner_uid==rhs.owner_uid + && gid==rhs.gid; } //------------------------------------------------------------------------------ @@ -50,8 +56,8 @@ bool DiskFileInfo::operator!=(const DiskFileInfo &rhs) const { //------------------------------------------------------------------------------ std::ostream &operator<<(std::ostream &os, const DiskFileInfo &obj) { os << "(path=" << obj.path - << " owner=" << obj.owner - << " group=" << obj.group << ")"; + << " owner_uid=" << obj.owner_uid + << " gid=" << obj.gid << ")"; return os; } diff --git a/common/dataStructures/DiskFileInfo.hpp b/common/dataStructures/DiskFileInfo.hpp index d0395d55404676cce04fa126068ba91e5c08792f..3266932ad3eed22aa379de5b66acbc6e173a088d 100644 --- a/common/dataStructures/DiskFileInfo.hpp +++ b/common/dataStructures/DiskFileInfo.hpp @@ -36,13 +36,15 @@ struct DiskFileInfo { DiskFileInfo(); + DiskFileInfo(const std::string &path, uint32_t owner_uid, uint32_t gid); + bool operator==(const DiskFileInfo &rhs) const; bool operator!=(const DiskFileInfo &rhs) const; std::string path; - std::string owner; - std::string group; + uint32_t owner_uid; + uint32_t gid; }; // struct DiskFileInfo diff --git a/common/dataStructures/EntryLog.hpp b/common/dataStructures/EntryLog.hpp index 5a29b9cf5fa9f188a2cef1913ef4b2acc5709193..9376f02c85c94168a34f68ef6e8db9f426ccc986 100644 --- a/common/dataStructures/EntryLog.hpp +++ b/common/dataStructures/EntryLog.hpp @@ -23,8 +23,6 @@ #include <stdint.h> #include <string> -#include "common/dataStructures/UserIdentity.hpp" - namespace cta { namespace common { namespace dataStructures { diff --git a/common/dataStructures/ListStorageClassRequest.hpp b/common/dataStructures/ListStorageClassRequest.hpp index 9bb3a017853e7df39b161a218e5c1dfb2c527ed4..50faa19fe13181060becea5a54522f0f50428c77 100644 --- a/common/dataStructures/ListStorageClassRequest.hpp +++ b/common/dataStructures/ListStorageClassRequest.hpp @@ -23,7 +23,7 @@ #include <stdint.h> #include <string> -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" namespace cta { namespace common { @@ -40,7 +40,7 @@ struct ListStorageClassRequest { bool operator!=(const ListStorageClassRequest &rhs) const; - UserIdentity requester; + RequesterIdentity requester; }; // struct ListStorageClassRequest diff --git a/common/UserIdentity.cpp b/common/dataStructures/OwnerIdentity.cpp similarity index 70% rename from common/UserIdentity.cpp rename to common/dataStructures/OwnerIdentity.cpp index 350523e4fdfd0114b9fbb7890f1f6a5b0a39b8cd..86e7fa3e2ead9921e6a24280a19dc5b1cf3e7451 100644 --- a/common/UserIdentity.cpp +++ b/common/dataStructures/OwnerIdentity.cpp @@ -1,6 +1,6 @@ /* * The CERN Tape Archive (CTA) project - * Copyright (C) 2015 CERN + * Copyright (C) 2019 CERN * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,47 +16,51 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "common/UserIdentity.hpp" - #include <limits> -#include <unistd.h> -#include <ostream> + +#include "common/dataStructures/OwnerIdentity.hpp" +#include "common/dataStructures/utils.hpp" +#include "common/exception/Exception.hpp" + +namespace cta { +namespace common { +namespace dataStructures { //------------------------------------------------------------------------------ // constructor //------------------------------------------------------------------------------ -cta::UserIdentity::UserIdentity() throw(): +OwnerIdentity::OwnerIdentity() : uid(std::numeric_limits<uid_t>::max()), gid(std::numeric_limits<gid_t>::max()) {} //------------------------------------------------------------------------------ // constructor //------------------------------------------------------------------------------ -cta::UserIdentity::UserIdentity( - const uint32_t u, - const uint32_t g) throw(): - uid(u), - gid(g) { -} +OwnerIdentity::OwnerIdentity(uint32_t uid, uint32_t gid) : uid(uid), gid(gid) {} //------------------------------------------------------------------------------ // operator== //------------------------------------------------------------------------------ -bool cta::UserIdentity::operator==(const UserIdentity &rhs) const { - return uid == rhs.uid; +bool OwnerIdentity::operator==(const OwnerIdentity &rhs) const { + return uid == rhs.uid && gid == rhs.gid; } //------------------------------------------------------------------------------ // operator!= //------------------------------------------------------------------------------ -bool cta::UserIdentity::operator!=(const UserIdentity &rhs) const { +bool OwnerIdentity::operator!=(const OwnerIdentity &rhs) const { return !operator==(rhs); } //------------------------------------------------------------------------------ // operator<< //------------------------------------------------------------------------------ -std::ostream &operator<<(std::ostream &os, const cta::UserIdentity &obj) { - os << "(uid=" << obj.uid << " gid=" << obj.gid << ")"; +std::ostream &operator<<(std::ostream &os, const OwnerIdentity &obj) { + os << "(uid=" << obj.uid + << " gid=" << obj.gid << ")"; return os; } + +} // namespace dataStructures +} // namespace common +} // namespace cta diff --git a/common/dataStructures/OwnerIdentity.hpp b/common/dataStructures/OwnerIdentity.hpp new file mode 100644 index 0000000000000000000000000000000000000000..0bd3660757e0aa3cceabfa2e9bcbf2ce8a403c92 --- /dev/null +++ b/common/dataStructures/OwnerIdentity.hpp @@ -0,0 +1,53 @@ +/** + * The CERN Tape Archive (CTA) project + * Copyright (C) 2019 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include <list> +#include <map> +#include <stdint.h> +#include <string> + + +namespace cta { +namespace common { +namespace dataStructures { + +/** + * This struct holds the username and group name of a given user + */ +struct OwnerIdentity { + + OwnerIdentity(); + + OwnerIdentity(uint32_t uid, uint32_t gid); + + bool operator==(const OwnerIdentity &rhs) const; + + bool operator!=(const OwnerIdentity &rhs) const; + + uint32_t uid; + uint32_t gid; + +}; // struct OwnerIdentity + +std::ostream &operator<<(std::ostream &os, const OwnerIdentity &obj); + +} // namespace dataStructures +} // namespace common +} // namespace cta diff --git a/common/dataStructures/UserIdentity.cpp b/common/dataStructures/RequesterIdentity.cpp similarity index 82% rename from common/dataStructures/UserIdentity.cpp rename to common/dataStructures/RequesterIdentity.cpp index b075b08568eefccb7c42c905dd895442400a8a50..14d6f412158fa56ac0bfea35396683ee4909b527 100644 --- a/common/dataStructures/UserIdentity.cpp +++ b/common/dataStructures/RequesterIdentity.cpp @@ -1,6 +1,6 @@ /* * The CERN Tape Archive (CTA) project - * Copyright (C) 2015 CERN + * Copyright (C) 2019 CERN * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" #include "common/dataStructures/utils.hpp" #include "common/exception/Exception.hpp" @@ -27,19 +27,19 @@ namespace dataStructures { //------------------------------------------------------------------------------ // constructor //------------------------------------------------------------------------------ -UserIdentity::UserIdentity() { } +RequesterIdentity::RequesterIdentity() { } //------------------------------------------------------------------------------ // constructor //------------------------------------------------------------------------------ -UserIdentity::UserIdentity(const std::string& name, const std::string& group): +RequesterIdentity::RequesterIdentity(const std::string& name, const std::string& group): name(name), group(group) {} //------------------------------------------------------------------------------ // operator== //------------------------------------------------------------------------------ -bool UserIdentity::operator==(const UserIdentity &rhs) const { +bool RequesterIdentity::operator==(const RequesterIdentity &rhs) const { return name==rhs.name && group==rhs.group; } @@ -47,14 +47,14 @@ bool UserIdentity::operator==(const UserIdentity &rhs) const { //------------------------------------------------------------------------------ // operator!= //------------------------------------------------------------------------------ -bool UserIdentity::operator!=(const UserIdentity &rhs) const { +bool RequesterIdentity::operator!=(const RequesterIdentity &rhs) const { return !operator==(rhs); } //------------------------------------------------------------------------------ // operator<< //------------------------------------------------------------------------------ -std::ostream &operator<<(std::ostream &os, const UserIdentity &obj) { +std::ostream &operator<<(std::ostream &os, const RequesterIdentity &obj) { os << "(name=" << obj.name << " group=" << obj.group << ")"; return os; diff --git a/common/dataStructures/UserIdentity.hpp b/common/dataStructures/RequesterIdentity.hpp similarity index 73% rename from common/dataStructures/UserIdentity.hpp rename to common/dataStructures/RequesterIdentity.hpp index 849a93ff4754f86f3f57c85b35207f8f3622d94e..d72937d515ec8f20c508900efecc7b1503877d37 100644 --- a/common/dataStructures/UserIdentity.hpp +++ b/common/dataStructures/RequesterIdentity.hpp @@ -1,6 +1,6 @@ -/* +/** * The CERN Tape Archive (CTA) project - * Copyright (C) 2015 CERN + * Copyright (C) 2019 CERN * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -31,22 +31,22 @@ namespace dataStructures { /** * This struct holds the username and group name of a given user */ -struct UserIdentity { +struct RequesterIdentity { - UserIdentity(); + RequesterIdentity(); - UserIdentity(const std::string &name, const std::string &group); + RequesterIdentity(const std::string &name, const std::string &group); - bool operator==(const UserIdentity &rhs) const; + bool operator==(const RequesterIdentity &rhs) const; - bool operator!=(const UserIdentity &rhs) const; + bool operator!=(const RequesterIdentity &rhs) const; std::string name; std::string group; -}; // struct UserIdentity +}; // struct RequesterIdentity -std::ostream &operator<<(std::ostream &os, const UserIdentity &obj); +std::ostream &operator<<(std::ostream &os, const RequesterIdentity &obj); } // namespace dataStructures } // namespace common diff --git a/common/dataStructures/RetrieveRequest.hpp b/common/dataStructures/RetrieveRequest.hpp index 5a82075162cd328bd241c6807dc4be8dd23073ce..ae4b691fbf5230ded5df02aca4d587e9c3551c30 100644 --- a/common/dataStructures/RetrieveRequest.hpp +++ b/common/dataStructures/RetrieveRequest.hpp @@ -25,7 +25,7 @@ #include "common/dataStructures/DiskFileInfo.hpp" #include "common/dataStructures/EntryLog.hpp" -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" #include "common/dataStructures/ArchiveRoute.hpp" #include "LifecycleTimings.hpp" #include "common/optional.hpp" @@ -45,7 +45,7 @@ struct RetrieveRequest { bool operator!=(const RetrieveRequest &rhs) const; - UserIdentity requester; + RequesterIdentity requester; uint64_t archiveFileID; std::string dstURL; std::string errorReportURL; @@ -60,4 +60,4 @@ std::ostream &operator<<(std::ostream &os, const RetrieveRequest &obj); } // namespace dataStructures } // namespace common -} // namespace cta \ No newline at end of file +} // namespace cta diff --git a/common/dataStructures/UpdateFileStorageClassRequest.hpp b/common/dataStructures/UpdateFileStorageClassRequest.hpp index a8e6c228e1941a7a3bc869dddb6b8d06a72d45f7..1725e7cc9ca3047d1954bff3bd8895a34fc865d1 100644 --- a/common/dataStructures/UpdateFileStorageClassRequest.hpp +++ b/common/dataStructures/UpdateFileStorageClassRequest.hpp @@ -24,7 +24,7 @@ #include <string> #include "common/dataStructures/DiskFileInfo.hpp" -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" namespace cta { namespace common { @@ -42,7 +42,7 @@ struct UpdateFileStorageClassRequest { bool operator!=(const UpdateFileStorageClassRequest &rhs) const; - UserIdentity requester; + RequesterIdentity requester; uint64_t archiveFileID; std::string storageClass; DiskFileInfo diskFileInfo; diff --git a/common/remoteFS/RemoteFileStatus.cpp b/common/remoteFS/RemoteFileStatus.cpp index 510a4b75dcd11c8f7f3fc106168b0a6188e89f90..397c3c0106e41322a8d419a649a64dcfc1ec1a12 100644 --- a/common/remoteFS/RemoteFileStatus.cpp +++ b/common/remoteFS/RemoteFileStatus.cpp @@ -30,7 +30,7 @@ cta::RemoteFileStatus::RemoteFileStatus(): // constructor //------------------------------------------------------------------------------ cta::RemoteFileStatus::RemoteFileStatus( - const common::dataStructures::UserIdentity &owner, + const common::dataStructures::OwnerIdentity &owner, const mode_t mode, const uint64_t size): owner(owner), diff --git a/common/remoteFS/RemoteFileStatus.hpp b/common/remoteFS/RemoteFileStatus.hpp index f8d97fb0313bfc5e34017eb92c2c060a648749a1..47d86d181b2ed249511ce5ce996713aa8bcd08c0 100644 --- a/common/remoteFS/RemoteFileStatus.hpp +++ b/common/remoteFS/RemoteFileStatus.hpp @@ -18,7 +18,7 @@ #pragma once -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/OwnerIdentity.hpp" #include <stdint.h> #include <string> @@ -44,14 +44,14 @@ struct RemoteFileStatus { * @param size The size of the file in bytes. */ RemoteFileStatus( - const common::dataStructures::UserIdentity &owner, + const common::dataStructures::OwnerIdentity &owner, const mode_t mode, const uint64_t size); /** * The identity of the owner. */ - common::dataStructures::UserIdentity owner; + common::dataStructures::OwnerIdentity owner; /** * The mode bits of the directory entry. diff --git a/objectstore/AlgorithmsTest.cpp b/objectstore/AlgorithmsTest.cpp index d49bced502d33b0e337de0c9db156743685c5dda..70523c35ffbf7c882ce545e961d8a00a57acf445 100644 --- a/objectstore/AlgorithmsTest.cpp +++ b/objectstore/AlgorithmsTest.cpp @@ -149,7 +149,7 @@ TEST(ObjectStore, ArchiveQueueAlgorithms) { ar.setMountPolicy(mp); ar.setArchiveReportURL(""); ar.setArchiveErrorReportURL(""); - ar.setRequester(cta::common::dataStructures::UserIdentity("user0", "group0")); + ar.setRequester(cta::common::dataStructures::RequesterIdentity(0, 0)); ar.setSrcURL("root://eoseos/myFile"); ar.setEntryLog(cta::common::dataStructures::EntryLog("user0", "host0", time(nullptr))); ar.insert(); diff --git a/objectstore/ArchiveFileSerDeser.hpp b/objectstore/ArchiveFileSerDeser.hpp index 3e3d205df2afb50e0bbf0dd20983ae8f7ed7f867..c62bcd88b30c03591e96663f384924a89fde4b2d 100644 --- a/objectstore/ArchiveFileSerDeser.hpp +++ b/objectstore/ArchiveFileSerDeser.hpp @@ -18,7 +18,6 @@ #pragma once -#include "common/UserIdentity.hpp" #include "objectstore/cta.pb.h" #include "common/dataStructures/TapeFile.hpp" #include "EntryLogSerDeser.hpp" diff --git a/objectstore/ArchiveRequest.cpp b/objectstore/ArchiveRequest.cpp index 779246b3906eb9c7bf844b7b1f2312808d58618b..645a9b3f813c45f71a4a76993431bd48cf411c11 100644 --- a/objectstore/ArchiveRequest.cpp +++ b/objectstore/ArchiveRequest.cpp @@ -216,10 +216,9 @@ void ArchiveRequest::setArchiveFile(const cta::common::dataStructures::ArchiveFi m_payload.set_checksumvalue(archiveFile.checksumValue); m_payload.set_creationtime(archiveFile.creationTime); m_payload.set_diskfileid(archiveFile.diskFileId); - m_payload.mutable_diskfileinfo()->set_group(archiveFile.diskFileInfo.group); - m_payload.mutable_diskfileinfo()->set_owner(archiveFile.diskFileInfo.owner); + m_payload.mutable_diskfileinfo()->set_gid(archiveFile.diskFileInfo.gid); + m_payload.mutable_diskfileinfo()->set_owner_uid(archiveFile.diskFileInfo.owner_uid); m_payload.mutable_diskfileinfo()->set_path(archiveFile.diskFileInfo.path); - m_payload.mutable_diskfileinfo()->set_recoveryblob(""); m_payload.set_diskinstance(archiveFile.diskInstance); m_payload.set_filesize(archiveFile.fileSize); m_payload.set_reconcilationtime(archiveFile.reconciliationTime); @@ -237,8 +236,8 @@ cta::common::dataStructures::ArchiveFile ArchiveRequest::getArchiveFile() { ret.checksumValue = m_payload.checksumvalue(); ret.creationTime = m_payload.creationtime(); ret.diskFileId = m_payload.diskfileid(); - ret.diskFileInfo.group = m_payload.diskfileinfo().group(); - ret.diskFileInfo.owner = m_payload.diskfileinfo().owner(); + ret.diskFileInfo.gid = m_payload.diskfileinfo().gid(); + ret.diskFileInfo.owner_uid = m_payload.diskfileinfo().owner_uid(); ret.diskFileInfo.path = m_payload.diskfileinfo().path(); ret.diskInstance = m_payload.diskinstance(); ret.fileSize = m_payload.filesize(); @@ -300,7 +299,7 @@ cta::common::dataStructures::MountPolicy ArchiveRequest::getMountPolicy() { //------------------------------------------------------------------------------ // ArchiveRequest::setRequester() //------------------------------------------------------------------------------ -void ArchiveRequest::setRequester(const cta::common::dataStructures::UserIdentity &requester) { +void ArchiveRequest::setRequester(const cta::common::dataStructures::RequesterIdentity &requester) { checkPayloadWritable(); auto payloadRequester = m_payload.mutable_requester(); payloadRequester->set_name(requester.name); @@ -310,9 +309,9 @@ void ArchiveRequest::setRequester(const cta::common::dataStructures::UserIdentit //------------------------------------------------------------------------------ // ArchiveRequest::getRequester() //------------------------------------------------------------------------------ -cta::common::dataStructures::UserIdentity ArchiveRequest::getRequester() { +cta::common::dataStructures::RequesterIdentity ArchiveRequest::getRequester() { checkPayloadReadable(); - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; auto payloadRequester = m_payload.requester(); requester.name=payloadRequester.name(); requester.group=payloadRequester.group(); @@ -549,8 +548,8 @@ ArchiveRequest::AsyncJobOwnerUpdater* ArchiveRequest::asyncUpdateJobOwner(uint32 retRef.m_archiveFile.checksumValue = payload.checksumvalue(); retRef.m_archiveFile.creationTime = payload.creationtime(); retRef.m_archiveFile.diskFileId = payload.diskfileid(); - retRef.m_archiveFile.diskFileInfo.group = payload.diskfileinfo().group(); - retRef.m_archiveFile.diskFileInfo.owner = payload.diskfileinfo().owner(); + retRef.m_archiveFile.diskFileInfo.gid = payload.diskfileinfo().gid(); + retRef.m_archiveFile.diskFileInfo.owner_uid = payload.diskfileinfo().owner_uid(); retRef.m_archiveFile.diskFileInfo.path = payload.diskfileinfo().path(); retRef.m_archiveFile.diskInstance = payload.diskinstance(); retRef.m_archiveFile.fileSize = payload.filesize(); diff --git a/objectstore/ArchiveRequest.hpp b/objectstore/ArchiveRequest.hpp index 386f73b75e953ae43efa0ce2ea61431ebb72a7ae..27b1f00402c05b64e89caebd0e7dfeaa0c21468a 100644 --- a/objectstore/ArchiveRequest.hpp +++ b/objectstore/ArchiveRequest.hpp @@ -22,7 +22,7 @@ #include "common/dataStructures/DiskFileInfo.hpp" #include "common/dataStructures/EntryLog.hpp" #include "common/dataStructures/MountPolicy.hpp" -#include "common/dataStructures/UserIdentity.hpp" +#include "common/dataStructures/RequesterIdentity.hpp" #include "common/dataStructures/ArchiveFile.hpp" #include "JobQueueType.hpp" #include "common/Timer.hpp" @@ -206,8 +206,8 @@ public: void setArchiveErrorReportURL(const std::string &URL); std::string getArchiveErrorReportURL(); - void setRequester(const cta::common::dataStructures::UserIdentity &requester); - cta::common::dataStructures::UserIdentity getRequester(); + void setRequester(const cta::common::dataStructures::RequesterIdentity &requester); + cta::common::dataStructures::RequesterIdentity getRequester(); void setSrcURL(const std::string &srcURL); std::string getSrcURL(); diff --git a/objectstore/DiskFileInfoSerDeser.hpp b/objectstore/DiskFileInfoSerDeser.hpp index b8564fa6528665f6eaa259a0d26bd1e8bd06cadb..9d6ad03556b0afdc8e0e5856701dd77b3e270fcc 100644 --- a/objectstore/DiskFileInfoSerDeser.hpp +++ b/objectstore/DiskFileInfoSerDeser.hpp @@ -1,4 +1,4 @@ -/* +/** * The CERN Tape Archive (CTA) project * Copyright (C) 2015 CERN * @@ -18,7 +18,6 @@ #pragma once -#include "common/UserIdentity.hpp" #include "objectstore/cta.pb.h" #include "common/dataStructures/DiskFileInfo.hpp" @@ -27,33 +26,29 @@ #include <limits> namespace cta { namespace objectstore { + /** * A decorator class of scheduler's creation log adding serialization. */ -class DiskFileInfoSerDeser: public cta::common::dataStructures::DiskFileInfo { -public: - DiskFileInfoSerDeser (): cta::common::dataStructures::DiskFileInfo() {} - DiskFileInfoSerDeser (const cta::common::dataStructures::DiskFileInfo & dfi): cta::common::dataStructures::DiskFileInfo(dfi) {} - DiskFileInfoSerDeser (const std::string & path, const std::string & owner, const std::string & group): - cta::common::dataStructures::DiskFileInfo() { - this->path=path; - this->owner=owner; - this->group=group; - } +struct DiskFileInfoSerDeser: public cta::common::dataStructures::DiskFileInfo { + DiskFileInfoSerDeser() : cta::common::dataStructures::DiskFileInfo() {} + DiskFileInfoSerDeser(const cta::common::dataStructures::DiskFileInfo &dfi) : cta::common::dataStructures::DiskFileInfo(dfi) {} + operator cta::common::dataStructures::DiskFileInfo() { return cta::common::dataStructures::DiskFileInfo(*this); - } + } + void serialize (cta::objectstore::serializers::DiskFileInfo & osdfi) const { osdfi.set_path(path); - osdfi.set_owner(owner); - osdfi.set_group(group); - osdfi.set_recoveryblob(""); + osdfi.set_owner_uid(owner_uid); + osdfi.set_gid(gid); } + void deserialize (const cta::objectstore::serializers::DiskFileInfo & osdfi) { - path=osdfi.path(); - owner=osdfi.owner(); - group=osdfi.group(); + path = osdfi.path(); + owner_uid = osdfi.owner_uid(); + gid = osdfi.gid(); } }; - + }} diff --git a/objectstore/EntryLogSerDeser.hpp b/objectstore/EntryLogSerDeser.hpp index 4a99bc0e4a39957bea2b7392709a1f2999294448..e0d9cf701b4931f20b2ea4c9c836d9570b93f1f8 100644 --- a/objectstore/EntryLogSerDeser.hpp +++ b/objectstore/EntryLogSerDeser.hpp @@ -18,7 +18,6 @@ #pragma once -#include "common/UserIdentity.hpp" #include "objectstore/cta.pb.h" #include "common/dataStructures/EntryLog.hpp" diff --git a/objectstore/GarbageCollectorTest.cpp b/objectstore/GarbageCollectorTest.cpp index c40b59241c3966f0d7c29fd5b90d5a11e09da77e..ceeb5b63049cc886e7a27624c0b1938c27583e0f 100644 --- a/objectstore/GarbageCollectorTest.cpp +++ b/objectstore/GarbageCollectorTest.cpp @@ -376,7 +376,7 @@ TEST(ObjectStore, GarbageCollectorArchiveRequest) { ar.setMountPolicy(mp); ar.setArchiveReportURL(""); ar.setArchiveErrorReportURL(""); - ar.setRequester(cta::common::dataStructures::UserIdentity("user0", "group0")); + ar.setRequester(cta::common::dataStructures::RequesterIdentity(0, 0)); ar.setSrcURL("root://eoseos/myFile"); ar.setEntryLog(cta::common::dataStructures::EntryLog("user0", "host0", time(nullptr))); ar.insert(); diff --git a/objectstore/MountPolicySerDeser.hpp b/objectstore/MountPolicySerDeser.hpp index b5a5ab7f97a5c1a2e5d3a1ae122a2f56916d0965..f64950c60294f52faf17be7672f5de2b7e85181d 100644 --- a/objectstore/MountPolicySerDeser.hpp +++ b/objectstore/MountPolicySerDeser.hpp @@ -18,7 +18,6 @@ #pragma once -#include "common/UserIdentity.hpp" #include "objectstore/cta.pb.h" #include "common/dataStructures/MountPolicy.hpp" diff --git a/objectstore/OwnerIdentitySerDeser.hpp b/objectstore/OwnerIdentitySerDeser.hpp new file mode 100644 index 0000000000000000000000000000000000000000..e54d396479b1124cdb4cadb197a1f925554ad62a --- /dev/null +++ b/objectstore/OwnerIdentitySerDeser.hpp @@ -0,0 +1,39 @@ +/** + * The CERN Tape Archive (CTA) project + * Copyright (C) 2019 CERN + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +#include <string> + +#include "common/dataStructures/OwnerIdentity.hpp" +#include "objectstore/cta.pb.h" + +namespace cta { namespace objectstore { + +struct OwnerIdentitySerDeser: public cta::common::dataStructures::OwnerIdentity { + + void serialize(cta::objectstore::serializers::OwnerIdentity &user) const { + user.set_uid(uid); + user.set_gid(gid); + } + + void deserialize(const cta::objectstore::serializers::OwnerIdentity &user) : + uid(user.uid()), gid(user.gid()) {} +}; + +}} diff --git a/objectstore/UserIdentity.hpp b/objectstore/RequesterIdentitySerDeser.hpp similarity index 58% rename from objectstore/UserIdentity.hpp rename to objectstore/RequesterIdentitySerDeser.hpp index a3f9087196f2b5a4bd75cecb8ab2d936c3e93f7d..c4ba50f29e1118b235bb1a4915ac0b52e5a66564 100644 --- a/objectstore/UserIdentity.hpp +++ b/objectstore/RequesterIdentitySerDeser.hpp @@ -16,30 +16,24 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "common/UserIdentity.hpp" -#include "objectstore/cta.pb.h" +#pragma once #include <string> -#include <stdint.h> + +#include "common/dataStructures/RequesterIdentity.hpp" +#include "objectstore/cta.pb.h" namespace cta { namespace objectstore { -class UserIdentity: public cta::common::dataStructures::UserIdentity { -public: - UserIdentity (): cta::common::dataStructures::UserIdentity() {} - UserIdentity (const std::string &n, const std::string &g) { - name = n; - group = g; - } - UserIdentity(const cta::common::dataStructures::UserIdentity & user): cta::common::dataStructures::UserIdentity(user) {} - void serialize (cta::objectstore::serializers::UserIdentity & user) const { +struct RequesterIdentitySerDeser: public cta::common::dataStructures::RequesterIdentity { + + void serialize (cta::objectstore::serializers::RequesterIdentity & user) const { user.set_name(name); user.set_group(group); } - void deserialize (const cta::objectstore::serializers::UserIdentity & user) { - name = user.name(); - group = user.group(); - } + + void deserialize (const cta::objectstore::serializers::RequesterIdentity & user) : + name(user.name()), group(user.group()) {} }; }} diff --git a/objectstore/RetrieveRequest.hpp b/objectstore/RetrieveRequest.hpp index ec82378e1b40156a0f251d10918729eb72976faa..c6a54faa0230bb0a694fada8b37c8d413c4ce910 100644 --- a/objectstore/RetrieveRequest.hpp +++ b/objectstore/RetrieveRequest.hpp @@ -26,7 +26,6 @@ #include <list> #include "common/dataStructures/DiskFileInfo.hpp" #include "common/dataStructures/EntryLog.hpp" -#include "common/dataStructures/UserIdentity.hpp" #include "common/dataStructures/TapeFile.hpp" #include "common/dataStructures/ArchiveFile.hpp" #include "common/dataStructures/RetrieveRequest.hpp" diff --git a/objectstore/RootEntry.hpp b/objectstore/RootEntry.hpp index de1f6f0fc1251dbfa4c1d642009abc7f7d74a7d9..0bd47c6d185b5dbc37df1dca3e67a393714433a0 100644 --- a/objectstore/RootEntry.hpp +++ b/objectstore/RootEntry.hpp @@ -25,7 +25,6 @@ #include "Backend.hpp" #include "ObjectOps.hpp" #include "EntryLogSerDeser.hpp" -#include "UserIdentity.hpp" #include "common/MountControl.hpp" #include <list> diff --git a/objectstore/TapeFileSerDeser.hpp b/objectstore/TapeFileSerDeser.hpp index c5a2b51aafd7fb05b55bcbed2c60ea39c671ae9c..0656b8f2b199e650333e6daad9a007e3ba2675d9 100644 --- a/objectstore/TapeFileSerDeser.hpp +++ b/objectstore/TapeFileSerDeser.hpp @@ -18,7 +18,6 @@ #pragma once -#include "common/UserIdentity.hpp" #include "objectstore/cta.pb.h" #include "common/dataStructures/TapeFile.hpp" #include "EntryLogSerDeser.hpp" diff --git a/objectstore/cta.proto b/objectstore/cta.proto index 3d0ff3bfd1eb417a9456c6115592a277df916784..4ce6e03594bcae7f5ccc1a3d263103d02c4344fe 100644 --- a/objectstore/cta.proto +++ b/objectstore/cta.proto @@ -64,8 +64,8 @@ message GenericObject { // =========================== Root Entry ===================================== // The objects making up the root entry. -// A user information record -message UserIdentity { +// User information record for requesters +message RequesterIdentity { required string name = 10; required string group = 11; } @@ -184,9 +184,11 @@ message TapeFile { } message DiskFileInfo { - required bytes recoveryblob = 8900; - required string group = 8910; - required string owner = 8930; + //required bytes recoveryblob = 8900; DEPRECATED + //required string group = 8910; DEPRECATED + //required string owner = 8930; DEPRECATED + required uint32 owner_uid = 8920; + required uint32 gid = 8925; required string path = 8940; } @@ -331,7 +333,7 @@ message ArchiveRequest { required string archivereporturl = 9057; required string archiveerrorreporturl = 9058; required uint64 filesize = 9060; - required UserIdentity requester = 9070; + required RequesterIdentity requester = 9070; required string srcurl = 9080; required string storageclass = 9090; required EntryLog creationlog = 9091; @@ -360,7 +362,7 @@ enum RetrieveJobStatus { } message SchedulerRetrieveRequest { - required UserIdentity requester = 9100; + required RequesterIdentity requester = 9100; required uint64 ArchiveFileId = 9101; required string dstURL = 9102; required DiskFileInfo diskfileinfo = 9103; diff --git a/scheduler/ArchiveJob.cpp b/scheduler/ArchiveJob.cpp index b07b8ead759d4843f54f6e8c2787f5ce747658fe..a3676deaa5826fc6d77779e847867dc76642a297 100644 --- a/scheduler/ArchiveJob.cpp +++ b/scheduler/ArchiveJob.cpp @@ -62,8 +62,8 @@ cta::catalogue::TapeItemWrittenPointer cta::ArchiveJob::validateAndGetTapeFileWr fileReport.checksumValue = tapeFile.checksumValue; fileReport.copyNb = tapeFile.copyNb; fileReport.diskFileId = archiveFile.diskFileId; - fileReport.diskFileUser = archiveFile.diskFileInfo.owner; - fileReport.diskFileGroup = archiveFile.diskFileInfo.group; + fileReport.diskFileOwnerUid = archiveFile.diskFileInfo.owner_uid; + fileReport.diskFileGid = archiveFile.diskFileInfo.gid; fileReport.diskFilePath = archiveFile.diskFileInfo.path; fileReport.diskInstance = archiveFile.diskInstance; fileReport.fSeq = tapeFile.fSeq; diff --git a/scheduler/OStoreDB/OStoreDBTest.cpp b/scheduler/OStoreDB/OStoreDBTest.cpp index 7b4850953b5deea983fcee402b4e55f4027e30bf..9c43727c95862b23afcb8d8beb3d04ebe075e6fa 100644 --- a/scheduler/OStoreDB/OStoreDBTest.cpp +++ b/scheduler/OStoreDB/OStoreDBTest.cpp @@ -198,7 +198,7 @@ TEST_P(OStoreDBTest, MemQueuesSharedAddToArchiveQueue) { aReq.initialize(); cta::common::dataStructures::ArchiveFile aFile; cta::common::dataStructures::MountPolicy mountPolicy; - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; cta::common::dataStructures::EntryLog entryLog; aFile.archiveFileID = i; aReq.setArchiveFile(aFile); diff --git a/scheduler/Scheduler.cpp b/scheduler/Scheduler.cpp index 4a356161ae67de90c45c2f629a8bceabd11cd576..2633cd015a1b10339ac5800e0cbe5e70c0f7b39f 100644 --- a/scheduler/Scheduler.cpp +++ b/scheduler/Scheduler.cpp @@ -101,7 +101,7 @@ void Scheduler::authorizeAdmin(const common::dataStructures::SecurityIdentity &c // checkAndGetNextArchiveFileId //------------------------------------------------------------------------------ uint64_t Scheduler::checkAndGetNextArchiveFileId(const std::string &instanceName, - const std::string &storageClassName, const common::dataStructures::UserIdentity &user, log::LogContext &lc) { + const std::string &storageClassName, const common::dataStructures::RequesterIdentity &user, log::LogContext &lc) { cta::utils::Timer t; const uint64_t archiveFileId = m_catalogue.checkAndGetNextArchiveFileId(instanceName, storageClassName, user); const auto catalogueTime = t.secs(); @@ -157,8 +157,8 @@ void Scheduler::queueArchiveWithGivenId(const uint64_t archiveFileId, const std: .add("policyArchivePriority", catalogueInfo.mountPolicy.archivePriority) .add("policyMaxDrives", catalogueInfo.mountPolicy.maxDrivesAllowed) .add("diskFilePath", request.diskFileInfo.path) - .add("diskFileOwner", request.diskFileInfo.owner) - .add("diskFileGroup", request.diskFileInfo.group) + .add("diskFileOwnerUid", request.diskFileInfo.owner_uid) + .add("diskFileGid", request.diskFileInfo.gid) .add("checksumValue", request.checksumValue) .add("checksumType", request.checksumType) .add("archiveReportURL", midEllipsis(request.archiveReportURL, 50, 15)) @@ -218,8 +218,8 @@ void Scheduler::queueRetrieve( spc.add("fileId", request.archiveFileID) .add("instanceName", instanceName) .add("diskFilePath", request.diskFileInfo.path) - .add("diskFileOwner", request.diskFileInfo.owner) - .add("diskFileGroup", request.diskFileInfo.group) + .add("diskFileOwnerUid", request.diskFileInfo.owner_uid) + .add("diskFileGid", request.diskFileInfo.gid) .add("dstURL", request.dstURL) .add("errorReportURL", request.errorReportURL) .add("creationHost", request.creationLog.host) @@ -233,7 +233,7 @@ void Scheduler::queueRetrieve( .add("criteriaCreationTime", queueCriteria.archiveFile.creationTime) .add("criteriaDiskFileId", queueCriteria.archiveFile.diskFileId) .add("criteriaDiskFilePath", queueCriteria.archiveFile.diskFileInfo.path) - .add("criteriaDiskFileOwner", queueCriteria.archiveFile.diskFileInfo.owner) + .add("criteriaDiskFileOwnerUid", queueCriteria.archiveFile.diskFileInfo.owner_uid) .add("criteriaDiskInstance", queueCriteria.archiveFile.diskInstance) .add("criteriaFileSize", queueCriteria.archiveFile.fileSize) .add("reconciliationTime", queueCriteria.archiveFile.reconciliationTime) diff --git a/scheduler/Scheduler.hpp b/scheduler/Scheduler.hpp index 5cddb3c05e23cd21744967f7b3db27f150eddd21..d891df5fd370efe129620481a03e29c7daef6fc3 100644 --- a/scheduler/Scheduler.hpp +++ b/scheduler/Scheduler.hpp @@ -119,7 +119,7 @@ public: uint64_t checkAndGetNextArchiveFileId( const std::string &diskInstanceName, const std::string &storageClassName, - const common::dataStructures::UserIdentity &user, + const common::dataStructures::RequesterIdentity &user, log::LogContext &lc); /** diff --git a/scheduler/SchedulerDatabaseTest.cpp b/scheduler/SchedulerDatabaseTest.cpp index 3617fd07949434f2163711b0bfd84429f27600d5..208df4c98cad08a19caf8cc73b78f7f62bd2faef 100644 --- a/scheduler/SchedulerDatabaseTest.cpp +++ b/scheduler/SchedulerDatabaseTest.cpp @@ -18,7 +18,6 @@ #include "objectstore/BackendRadosTestSwitch.hpp" #include "tests/TestsCompileTimeSwitches.hpp" -#include "common/UserIdentity.hpp" #include "scheduler/SchedulerDatabase.hpp" #include "scheduler/SchedulerDatabaseFactory.hpp" #include "common/dataStructures/SecurityIdentity.hpp" @@ -36,6 +35,9 @@ namespace unitTests { +const uint32_t DISK_FILE_OWNER_UID = 9751; +const uint32_t DISK_FILE_GID = 9752; + /** * This structure is used to parameterize scheduler database tests. */ @@ -172,8 +174,8 @@ TEST_P(SchedulerDatabaseTest, createManyArchiveJobs) { uuid_unparse(fileUUID, fileUUIDStr); ar.diskFileID = fileUUIDStr; ar.diskFileInfo.path = std::string("/uuid/")+fileUUIDStr; - ar.diskFileInfo.owner = "user"; - ar.diskFileInfo.group = "group"; + ar.diskFileInfo.owner_uid = DISK_FILE_OWNER_UID; + ar.diskFileInfo.gid = DISK_FILE_GID; ar.fileSize = 1000; ar.requester = { "user", "group" }; ar.srcURL = std::string("root:/") + ar.diskFileInfo.path; @@ -252,8 +254,8 @@ TEST_P(SchedulerDatabaseTest, createManyArchiveJobs) { uuid_unparse(fileUUID, fileUUIDStr); ar.diskFileID = fileUUIDStr; ar.diskFileInfo.path = std::string("/uuid/")+fileUUIDStr; - ar.diskFileInfo.owner = "user"; - ar.diskFileInfo.group = "group"; + ar.diskFileInfo.owner_uid = DISK_FILE_OWNER_UID; + ar.diskFileInfo.gid = DISK_FILE_GID; ar.fileSize = 1000; ar.requester = { "user", "group" }; ar.srcURL = std::string("root:/") + ar.diskFileInfo.path; diff --git a/scheduler/SchedulerTest.cpp b/scheduler/SchedulerTest.cpp index 23a12f93be7afe1e2641e4e4a4b45669fce19d83..7f98323c7881586dbdff7c32b842143a7164c6f8 100644 --- a/scheduler/SchedulerTest.cpp +++ b/scheduler/SchedulerTest.cpp @@ -57,6 +57,11 @@ namespace unitTests { +const uint32_t CMS_USER = 9751; +const uint32_t GROUP_2 = 9752; +const uint32_t PUBLIC_OWNER_UID = 9753; +const uint32_t PUBLIC_GID = 9754; + namespace { /** @@ -189,7 +194,6 @@ public: ASSERT_EQ(mountPolicyComment, group.comment); const std::string ruleComment = "create requester mount-rule"; - cta::common::dataStructures::UserIdentity userIdentity; catalogue.createRequesterMountRule(s_adminOnAdminHost, mountPolicyName, s_diskInstance, s_userName, ruleComment); const std::list<common::dataStructures::RequesterMountRule> rules = catalogue.getRequesterMountRules(); @@ -264,8 +268,8 @@ TEST_P(SchedulerTest, archive_to_new_file) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::ArchiveRequest request; request.checksumType="ADLER32"; @@ -274,7 +278,7 @@ TEST_P(SchedulerTest, archive_to_new_file) { request.diskFileInfo=diskFileInfo; request.diskFileID="diskFileID"; request.fileSize=100*1000*1000; - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; requester.name = s_userName; requester.group = "userGroup"; request.requester = requester; @@ -325,8 +329,8 @@ TEST_P(SchedulerTest, archive_to_new_file) { // creationLog.time=0; // creationLog.username="admin1"; // cta::common::dataStructures::DiskFileInfo diskFileInfo; -// diskFileInfo.group="group2"; -// diskFileInfo.owner="cms_user"; +// diskFileInfo.gid=GROUP_2; +// diskFileInfo.owner_uid=CMS_USER; // diskFileInfo.path="path/to/file"; // cta::common::dataStructures::ArchiveRequest request; // request.checksumType="ADLER32"; @@ -335,7 +339,7 @@ TEST_P(SchedulerTest, archive_to_new_file) { // request.diskFileInfo=diskFileInfo; // request.diskFileID="diskFileID"; // request.fileSize=100*1000*1000; -// cta::common::dataStructures::UserIdentity requester; +// cta::common::dataStructures::RequesterIdentity requester; // requester.name = s_userName; // requester.group = "userGroup"; // request.requester = requester; @@ -399,8 +403,8 @@ TEST_P(SchedulerTest, archive_report_and_retrieve_new_file) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::ArchiveRequest request; request.checksumType="ADLER32"; @@ -409,7 +413,7 @@ TEST_P(SchedulerTest, archive_report_and_retrieve_new_file) { request.diskFileInfo=diskFileInfo; request.diskFileID="diskFileID"; request.fileSize=100*1000*1000; - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; requester.name = s_userName; requester.group = "userGroup"; request.requester = requester; @@ -509,8 +513,8 @@ TEST_P(SchedulerTest, archive_report_and_retrieve_new_file) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::RetrieveRequest request; request.archiveFileID = archiveFileId; @@ -599,8 +603,8 @@ TEST_P(SchedulerTest, archive_and_retrieve_failure) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::ArchiveRequest request; request.checksumType="ADLER32"; @@ -609,7 +613,7 @@ TEST_P(SchedulerTest, archive_and_retrieve_failure) { request.diskFileInfo=diskFileInfo; request.diskFileID="diskFileID"; request.fileSize=100*1000*1000; - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; requester.name = s_userName; requester.group = "userGroup"; request.requester = requester; @@ -709,8 +713,8 @@ TEST_P(SchedulerTest, archive_and_retrieve_failure) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::RetrieveRequest request; request.archiveFileID = archiveFileId; @@ -850,8 +854,8 @@ TEST_P(SchedulerTest, archive_and_retrieve_report_failure) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::ArchiveRequest request; request.checksumType="ADLER32"; @@ -860,7 +864,7 @@ TEST_P(SchedulerTest, archive_and_retrieve_report_failure) { request.diskFileInfo=diskFileInfo; request.diskFileID="diskFileID"; request.fileSize=100*1000*1000; - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; requester.name = s_userName; requester.group = "userGroup"; request.requester = requester; @@ -960,8 +964,8 @@ TEST_P(SchedulerTest, archive_and_retrieve_report_failure) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::RetrieveRequest request; request.archiveFileID = archiveFileId; @@ -1107,8 +1111,8 @@ TEST_P(SchedulerTest, retry_archive_until_max_reached) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::ArchiveRequest request; request.checksumType="ADLER32"; @@ -1117,7 +1121,7 @@ TEST_P(SchedulerTest, retry_archive_until_max_reached) { request.diskFileInfo=diskFileInfo; request.diskFileID="diskFileID"; request.fileSize=100*1000*1000; - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; requester.name = s_userName; requester.group = "userGroup"; request.requester = requester; @@ -1190,8 +1194,8 @@ TEST_P(SchedulerTest, retrieve_non_existing_file) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::RetrieveRequest request; request.archiveFileID = 12345; @@ -1222,8 +1226,8 @@ TEST_P(SchedulerTest, showqueues) { creationLog.time=0; creationLog.username="admin1"; cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.group="group2"; - diskFileInfo.owner="cms_user"; + diskFileInfo.gid=GROUP_2; + diskFileInfo.owner_uid=CMS_USER; diskFileInfo.path="path/to/file"; cta::common::dataStructures::ArchiveRequest request; request.checksumType="ADLER32"; @@ -1232,7 +1236,7 @@ TEST_P(SchedulerTest, showqueues) { request.diskFileInfo=diskFileInfo; request.diskFileID="diskFileID"; request.fileSize=100*1000*1000; - cta::common::dataStructures::UserIdentity requester; + cta::common::dataStructures::RequesterIdentity requester; requester.name = s_userName; requester.group = "userGroup"; request.requester = requester; @@ -1453,8 +1457,8 @@ TEST_P(SchedulerTest, expandRepackRequest) { fileWritten.diskInstance = storageClass.diskInstance; fileWritten.diskFileId = diskFileId.str(); fileWritten.diskFilePath = diskFilePath.str(); - fileWritten.diskFileUser = diskFileUser; - fileWritten.diskFileGroup = diskFileGroup; + fileWritten.diskFileOwnerUid = PUBLIC_OWNER_UID; + fileWritten.diskFileGid = PUBLIC_GID; fileWritten.size = archiveFileSize; fileWritten.checksumType = checksumType; fileWritten.checksumValue = checksumValue; diff --git a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp index 0c34053b6e62f3b9ae73ca63e2fe3c99d2993faf..b35c6e321fb9a1f0c03fe43236c53d4f94176cf3 100644 --- a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp +++ b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp @@ -71,6 +71,11 @@ using namespace castor::tape::tapeserver::daemon; namespace unitTests { +const uint32_t DISK_FILE_OWNER_UID = 9751; +const uint32_t DISK_FILE_GID = 9752; +const uint32_t DISK_FILE_SOME_USER = 9753; +const uint32_t DISK_FILE_SOME_GROUP = 9754; + namespace { /** @@ -442,8 +447,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionGooddayRecall) { tapeFileWritten.diskInstance = s_diskInstance; tapeFileWritten.diskFileId = fseq; tapeFileWritten.diskFilePath = remoteFilePath.str(); - tapeFileWritten.diskFileUser = s_userName; - tapeFileWritten.diskFileGroup = "someGroup"; + tapeFileWritten.diskFileOwnerUid = DISK_FILE_SOME_USER; + tapeFileWritten.diskFileGid = DISK_FILE_SOME_GROUP; tapeFileWritten.storageClassName = s_storageClassName; tapeFileWritten.tapeDrive = "drive0"; catalogue.filesWrittenToTape(tapeFileWrittenSet); @@ -623,8 +628,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionWrongRecall) { tapeFileWritten.diskInstance = s_diskInstance; tapeFileWritten.diskFileId = std::to_string(fseq); tapeFileWritten.diskFilePath = "/somefile"; - tapeFileWritten.diskFileUser = s_userName; - tapeFileWritten.diskFileGroup = "someGroup"; + tapeFileWritten.diskFileOwnerUid = DISK_FILE_SOME_USER; + tapeFileWritten.diskFileGid = DISK_FILE_SOME_GROUP; tapeFileWritten.storageClassName = s_storageClassName; tapeFileWritten.tapeDrive = "drive0"; catalogue.filesWrittenToTape(tapeFileWrittenSet); @@ -647,8 +652,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionWrongRecall) { tapeFileWritten.diskInstance = s_diskInstance; tapeFileWritten.diskFileId = std::to_string(fseq + 1); tapeFileWritten.diskFilePath = remoteFilePath.str(); - tapeFileWritten.diskFileUser = s_userName; - tapeFileWritten.diskFileGroup = "someGroup"; + tapeFileWritten.diskFileOwnerUid = DISK_FILE_SOME_USER; + tapeFileWritten.diskFileGid = DISK_FILE_SOME_GROUP; tapeFileWritten.storageClassName = s_storageClassName; tapeFileWritten.tapeDrive = "drive0"; catalogue.filesWrittenToTape(tapeFileWrittenSet); @@ -822,8 +827,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionRAORecall) { tapeFileWritten.diskInstance = s_diskInstance; tapeFileWritten.diskFileId = fseq; tapeFileWritten.diskFilePath = remoteFilePath.str(); - tapeFileWritten.diskFileUser = s_userName; - tapeFileWritten.diskFileGroup = "someGroup"; + tapeFileWritten.diskFileOwnerUid = DISK_FILE_SOME_USER; + tapeFileWritten.diskFileGid = DISK_FILE_SOME_GROUP; tapeFileWritten.storageClassName = s_storageClassName; tapeFileWritten.tapeDrive = "drive0"; catalogue.filesWrittenToTape(tapeFileWrittenSet); @@ -1032,8 +1037,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionNoSuchDrive) { tapeFileWritten.diskInstance = s_diskInstance; tapeFileWritten.diskFileId = fseq; tapeFileWritten.diskFilePath = remoteFilePath.str(); - tapeFileWritten.diskFileUser = s_userName; - tapeFileWritten.diskFileGroup = "someGroup"; + tapeFileWritten.diskFileOwnerUid = DISK_FILE_SOME_USER; + tapeFileWritten.diskFileGid = DISK_FILE_SOME_GROUP; tapeFileWritten.storageClassName = s_storageClassName; tapeFileWritten.tapeDrive = "drive0"; catalogue.filesWrittenToTape(tapeFileWrittenSet); @@ -1179,8 +1184,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionFailtoMount) { tapeFileWritten.diskInstance = s_diskInstance; tapeFileWritten.diskFileId = fseq; tapeFileWritten.diskFilePath = remoteFilePath.str(); - tapeFileWritten.diskFileUser = s_userName; - tapeFileWritten.diskFileGroup = "someGroup"; + tapeFileWritten.diskFileOwnerUid = DISK_FILE_SOME_USER; + tapeFileWritten.diskFileGid = DISK_FILE_SOME_GROUP; tapeFileWritten.storageClassName = s_storageClassName; tapeFileWritten.tapeDrive = "drive0"; catalogue.filesWrittenToTape(tapeFileWrittenSet); @@ -1320,8 +1325,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionGooddayMigration) { ar.fileSize = 1000; ar.diskFileID = std::to_string(fseq); ar.diskFileInfo.path = "y"; - ar.diskFileInfo.owner = "z"; - ar.diskFileInfo.group = "g"; + ar.diskFileInfo.owner_uid = DISK_FILE_OWNER_UID; + ar.diskFileInfo.gid = DISK_FILE_GID; const auto archiveFileId = scheduler.checkAndGetNextArchiveFileId(s_diskInstance, ar.storageClass, ar.requester, logContext); archiveFileIds.push_back(archiveFileId); scheduler.queueArchiveWithGivenId(archiveFileId,s_diskInstance,ar,logContext); @@ -1464,8 +1469,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionMissingFilesMigration) { ar.diskFileID = "x"; ar.diskFileID += std::to_string(fseq); ar.diskFileInfo.path = "y"; - ar.diskFileInfo.owner = "z"; - ar.diskFileInfo.group = "g"; + ar.diskFileInfo.owner_uid = DISK_FILE_OWNER_UID; + ar.diskFileInfo.gid = DISK_FILE_GID; const auto archiveFileId = scheduler.checkAndGetNextArchiveFileId(s_diskInstance, ar.storageClass, ar.requester, logContext); archiveFileIds.push_back(archiveFileId); scheduler.queueArchiveWithGivenId(archiveFileId,s_diskInstance,ar,logContext); @@ -1623,8 +1628,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionTapeFullMigration) { ar.fileSize = 1000; ar.diskFileID = std::to_string(fseq); ar.diskFileInfo.path = "y"; - ar.diskFileInfo.owner = "z"; - ar.diskFileInfo.group = "g"; + ar.diskFileInfo.owner_uid = DISK_FILE_OWNER_UID; + ar.diskFileInfo.gid = DISK_FILE_GID; const auto archiveFileId = scheduler.checkAndGetNextArchiveFileId(s_diskInstance, ar.storageClass, ar.requester, logContext); archiveFileIds.push_back(archiveFileId); scheduler.queueArchiveWithGivenId(archiveFileId,s_diskInstance,ar,logContext); @@ -1781,8 +1786,8 @@ TEST_P(DataTransferSessionTest, DataTransferSessionTapeFullOnFlushMigration) { ar.fileSize = 1000; ar.diskFileID = std::to_string(fseq); ar.diskFileInfo.path = "y"; - ar.diskFileInfo.owner = "z"; - ar.diskFileInfo.group = "g"; + ar.diskFileInfo.owner_uid = DISK_FILE_OWNER_UID; + ar.diskFileInfo.gid = DISK_FILE_GID; const auto archiveFileId = scheduler.checkAndGetNextArchiveFileId(s_diskInstance, ar.storageClass, ar.requester, logContext); archiveFileIds.push_back(archiveFileId); scheduler.queueArchiveWithGivenId(archiveFileId,s_diskInstance,ar,logContext); diff --git a/xroot_plugins/XrdCtaArchiveFileLs.hpp b/xroot_plugins/XrdCtaArchiveFileLs.hpp index addab744d9c7dab1907d38bfbee48fe3f696609d..622f139826d446c93e8c2b4e48434f1c79357af7 100644 --- a/xroot_plugins/XrdCtaArchiveFileLs.hpp +++ b/xroot_plugins/XrdCtaArchiveFileLs.hpp @@ -70,16 +70,16 @@ ArchiveFileLsStream::ArchiveFileLsStream(const RequestMessage &requestMsg, // Get the search criteria from the optional options - m_searchCriteria.archiveFileId = requestMsg.getOptional(OptionUInt64::ARCHIVE_FILE_ID, &has_any); - m_searchCriteria.tapeFileCopyNb = requestMsg.getOptional(OptionUInt64::COPY_NUMBER, &has_any); - m_searchCriteria.diskFileId = requestMsg.getOptional(OptionString::DISKID, &has_any); - m_searchCriteria.vid = requestMsg.getOptional(OptionString::VID, &has_any); - m_searchCriteria.tapePool = requestMsg.getOptional(OptionString::TAPE_POOL, &has_any); - m_searchCriteria.diskFileUser = requestMsg.getOptional(OptionString::OWNER, &has_any); - m_searchCriteria.diskFileGroup = requestMsg.getOptional(OptionString::GROUP, &has_any); - m_searchCriteria.storageClass = requestMsg.getOptional(OptionString::STORAGE_CLASS, &has_any); - m_searchCriteria.diskFilePath = requestMsg.getOptional(OptionString::PATH, &has_any); - m_searchCriteria.diskInstance = requestMsg.getOptional(OptionString::INSTANCE, &has_any); + m_searchCriteria.archiveFileId = requestMsg.getOptional(OptionUInt64::ARCHIVE_FILE_ID, &has_any); + m_searchCriteria.tapeFileCopyNb = requestMsg.getOptional(OptionUInt64::COPY_NUMBER, &has_any); + m_searchCriteria.diskFileId = requestMsg.getOptional(OptionString::DISKID, &has_any); + m_searchCriteria.vid = requestMsg.getOptional(OptionString::VID, &has_any); + m_searchCriteria.tapePool = requestMsg.getOptional(OptionString::TAPE_POOL, &has_any); + m_searchCriteria.diskFileOwnerUid = requestMsg.getOptional(OptionUInt64::OWNER_UID, &has_any); + m_searchCriteria.diskFileGid = requestMsg.getOptional(OptionUInt64::GID, &has_any); + m_searchCriteria.storageClass = requestMsg.getOptional(OptionString::STORAGE_CLASS, &has_any); + m_searchCriteria.diskFilePath = requestMsg.getOptional(OptionString::PATH, &has_any); + m_searchCriteria.diskInstance = requestMsg.getOptional(OptionString::INSTANCE, &has_any); if(!has_any) { throw cta::exception::UserError("Must specify at least one search option, or --all"); diff --git a/xroot_plugins/XrdCtaListPendingQueue.hpp b/xroot_plugins/XrdCtaListPendingQueue.hpp index e5f2b8124fc046739728a173e15ec15717daf8be..1a0d1008aad73bab5f1540bdcb53cc05b4ee1370 100644 --- a/xroot_plugins/XrdCtaListPendingQueue.hpp +++ b/xroot_plugins/XrdCtaListPendingQueue.hpp @@ -156,8 +156,8 @@ bool ListPendingQueueStream<OStoreDB::ArchiveQueueItor_t>::pushRecord(XrdSsiPb:: af->mutable_cs()->set_type(job.request.checksumType); af->mutable_cs()->set_value(job.request.checksumValue); af->set_storage_class(job.request.storageClass); - af->mutable_df()->set_owner(job.request.requester.name); - af->mutable_df()->set_group(job.request.requester.group); + af->mutable_df()->mutable_owner_id()->set_uid(job.request.diskFileInfo.owner_uid); + af->mutable_df()->mutable_owner_id()->set_gid(job.request.diskFileInfo.gid); af->mutable_df()->set_path(job.request.diskFileInfo.path); return streambuf->Push(record); @@ -214,8 +214,8 @@ bool ListPendingQueueStream<OStoreDB::RetrieveQueueItor_t>::pushRecord(XrdSsiPb: auto af = record.mutable_lpr_item()->mutable_af(); af->set_archive_id(job.request.archiveFileID); af->set_size(job.fileSize); - af->mutable_df()->set_owner(job.request.requester.name); - af->mutable_df()->set_group(job.request.requester.group); + af->mutable_df()->mutable_owner_id()->set_uid(job.request.diskFileInfo.owner_uid); + af->mutable_df()->mutable_owner_id()->set_gid(job.request.diskFileInfo.gid); af->mutable_df()->set_path(job.request.diskFileInfo.path); // Tape file diff --git a/xroot_plugins/XrdSsiCtaRequestMessage.cpp b/xroot_plugins/XrdSsiCtaRequestMessage.cpp index 049366a0dd3806d3df09acc192195b24c0d236d7..d31ef30825a45b989531e469a274c86f868b0161 100644 --- a/xroot_plugins/XrdSsiCtaRequestMessage.cpp +++ b/xroot_plugins/XrdSsiCtaRequestMessage.cpp @@ -314,9 +314,9 @@ void RequestMessage::processCREATE(const cta::eos::Notification ¬ification, c checkIsNotEmptyString(notification.cli().user().groupname(), "notification.cli.user.groupname"); // Unpack message - cta::common::dataStructures::UserIdentity originator; - originator.name = notification.cli().user().username(); - originator.group = notification.cli().user().groupname(); + cta::common::dataStructures::RequesterIdentity requester; + requester.name = notification.cli().user().username(); + requester.group = notification.cli().user().groupname(); const auto storageClassItor = notification.file().xattr().find("CTA_StorageClass"); if(notification.file().xattr().end() == storageClassItor) { @@ -329,7 +329,7 @@ void RequestMessage::processCREATE(const cta::eos::Notification ¬ification, c cta::utils::Timer t; - const uint64_t archiveFileId = m_scheduler.checkAndGetNextArchiveFileId(m_cliIdentity.username, storageClass, originator, m_lc); + const uint64_t archiveFileId = m_scheduler.checkAndGetNextArchiveFileId(m_cliIdentity.username, storageClass, requester, m_lc); // Create a log entry cta::log::ScopedParamContainer params(m_lc); @@ -356,22 +356,11 @@ void RequestMessage::processCLOSEW(const cta::eos::Notification ¬ification, c // Validate received protobuf checkIsNotEmptyString(notification.cli().user().username(), "notification.cli.user.username"); checkIsNotEmptyString(notification.cli().user().groupname(), "notification.cli.user.groupname"); - checkIsNotEmptyString(notification.file().owner().username(), "notification.file.owner.username"); - checkIsNotEmptyString(notification.file().owner().groupname(), "notification.file.owner.groupname"); checkIsNotEmptyString(notification.file().lpath(), "notification.file.lpath"); checkIsNotEmptyString(notification.wf().instance().url(), "notification.wf.instance.url"); checkIsNotEmptyString(notification.transport().report_url(), "notification.transport.report_url"); // Unpack message - cta::common::dataStructures::UserIdentity originator; - originator.name = notification.cli().user().username(); - originator.group = notification.cli().user().groupname(); - - cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.owner = notification.file().owner().username(); - diskFileInfo.group = notification.file().owner().groupname(); - diskFileInfo.path = notification.file().lpath(); - std::string checksumtype(notification.file().cks().type()); if(checksumtype == "adler") checksumtype = "ADLER32"; // replace this with an enum! @@ -384,19 +373,22 @@ void RequestMessage::processCLOSEW(const cta::eos::Notification ¬ification, c } cta::common::dataStructures::ArchiveRequest request; - request.checksumType = checksumtype; - request.checksumValue = checksumvalue; - request.diskFileInfo = diskFileInfo; - request.diskFileID = std::to_string(notification.file().fid()); - request.fileSize = notification.file().size(); - request.requester = originator; - request.srcURL = notification.wf().instance().url(); - request.storageClass = storageClassItor->second; - request.archiveReportURL = notification.transport().report_url(); - request.archiveErrorReportURL = notification.transport().error_report_url(); - request.creationLog.host = m_cliIdentity.host; - request.creationLog.username = m_cliIdentity.username; - request.creationLog.time = time(nullptr); + request.checksumType = checksumtype; + request.checksumValue = checksumvalue; + request.diskFileInfo.owner_uid = notification.file().owner().uid(); + request.diskFileInfo.gid = notification.file().owner().gid(); + request.diskFileInfo.path = notification.file().lpath(); + request.diskFileID = std::to_string(notification.file().fid()); + request.fileSize = notification.file().size(); + request.requester.name = notification.cli().user().username(); + request.requester.group = notification.cli().user().groupname(); + request.srcURL = notification.wf().instance().url(); + request.storageClass = storageClassItor->second; + request.archiveReportURL = notification.transport().report_url(); + request.archiveErrorReportURL = notification.transport().error_report_url(); + request.creationLog.host = m_cliIdentity.host; + request.creationLog.username = m_cliIdentity.username; + request.creationLog.time = time(nullptr); // CTA Archive ID is an EOS extended attribute, i.e. it is stored as a string, which // must be converted to a valid uint64_t @@ -433,30 +425,21 @@ void RequestMessage::processPREPARE(const cta::eos::Notification ¬ification, // Validate received protobuf checkIsNotEmptyString(notification.cli().user().username(), "notification.cli.user.username"); checkIsNotEmptyString(notification.cli().user().groupname(), "notification.cli.user.groupname"); - checkIsNotEmptyString(notification.file().owner().username(), "notification.file.owner.username"); - checkIsNotEmptyString(notification.file().owner().groupname(), "notification.file.owner.groupname"); checkIsNotEmptyString(notification.file().lpath(), "notification.file.lpath"); checkIsNotEmptyString(notification.transport().dst_url(), "notification.transport.dst_url"); // Unpack message - cta::common::dataStructures::UserIdentity originator; - originator.name = notification.cli().user().username(); - originator.group = notification.cli().user().groupname(); - - cta::common::dataStructures::DiskFileInfo diskFileInfo; - diskFileInfo.owner = notification.file().owner().username(); - diskFileInfo.group = notification.file().owner().groupname(); - diskFileInfo.path = notification.file().lpath(); - cta::common::dataStructures::RetrieveRequest request; - request.requester = originator; - request.dstURL = notification.transport().dst_url(); - request.errorReportURL = notification.transport().error_report_url(); - request.diskFileInfo = diskFileInfo; - request.creationLog.host = m_cliIdentity.host; - request.creationLog.username = m_cliIdentity.username; - request.creationLog.time = time(nullptr); - + request.requester.name = notification.cli().user().username(); + request.requester.group = notification.cli().user().groupname(); + request.dstURL = notification.transport().dst_url(); + request.errorReportURL = notification.transport().error_report_url(); + request.diskFileInfo.owner_uid = notification.file().owner().uid(); + request.diskFileInfo.gid = notification.file().owner().gid(); + request.diskFileInfo.path = notification.file().lpath(); + request.creationLog.host = m_cliIdentity.host; + request.creationLog.username = m_cliIdentity.username; + request.creationLog.time = time(nullptr); // CTA Archive ID is an EOS extended attribute, i.e. it is stored as a string, which must be // converted to a valid uint64_t @@ -502,13 +485,9 @@ void RequestMessage::processABORT_PREPARE(const cta::eos::Notification ¬ifica checkIsNotEmptyString(notification.cli().user().groupname(), "notification.cli.user.groupname"); // Unpack message - cta::common::dataStructures::UserIdentity originator; - originator.name = notification.cli().user().username(); - originator.group = notification.cli().user().groupname(); - cta::common::dataStructures::DeleteArchiveRequest request; - request.requester = originator; - + request.requester.name = notification.cli().user().username(); + request.requester.group = notification.cli().user().groupname(); // CTA Archive ID is an EOS extended attribute, i.e. it is stored as a string, which must be // converted to a valid uint64_t @@ -547,12 +526,9 @@ void RequestMessage::processDELETE(const cta::eos::Notification ¬ification, c checkIsNotEmptyString(notification.cli().user().groupname(), "notification.cli.user.groupname"); // Unpack message - cta::common::dataStructures::UserIdentity originator; - originator.name = notification.cli().user().username(); - originator.group = notification.cli().user().groupname(); - cta::common::dataStructures::DeleteArchiveRequest request; - request.requester = originator; + request.requester.name = notification.cli().user().username(); + request.requester.group = notification.cli().user().groupname(); // CTA Archive ID is an EOS extended attribute, i.e. it is stored as a string, which // must be converted to a valid uint64_t