diff --git a/common/dataStructures/ArchiveJob.hpp b/common/dataStructures/ArchiveJob.hpp index 5073d6c975a5c480e394c2cc288c2b6e5ee952ec..637769507f4d457d72a1b50028631edd195ac467 100644 --- a/common/dataStructures/ArchiveJob.hpp +++ b/common/dataStructures/ArchiveJob.hpp @@ -45,6 +45,7 @@ struct ArchiveJob { std::string instanceName; uint32_t copyNumber; uint64_t archiveFileID; + std::string objectId; //!< Objectstore address, provided when reporting a failed job std::list<std::string> failurelogs; }; // struct ArchiveJob diff --git a/common/dataStructures/RetrieveJob.hpp b/common/dataStructures/RetrieveJob.hpp index c1958bc656ce7d5f71b4e6a108ceefb3e93b9371..b0c37de28bfc00d1f8bf5cb07a64339bc5dca54d 100644 --- a/common/dataStructures/RetrieveJob.hpp +++ b/common/dataStructures/RetrieveJob.hpp @@ -44,6 +44,7 @@ struct RetrieveJob { RetrieveRequest request; uint64_t fileSize; std::map<std::string,std::pair<uint32_t,TapeFile>> tapeCopies; + std::string objectId; //!< Objectstore address, provided when reporting a failed job std::list<std::string> failurelogs; }; // struct RetrieveJob diff --git a/scheduler/OStoreDB/QueueItor.cpp b/scheduler/OStoreDB/QueueItor.cpp index 457c93abcc4838618a6f84894c3ffed7077041ee..2173d35d79d9e3193ee9c77d305ea4f1cf034260 100644 --- a/scheduler/OStoreDB/QueueItor.cpp +++ b/scheduler/OStoreDB/QueueItor.cpp @@ -118,6 +118,7 @@ getQueueJobs(const jobQueue_t &jobQueueChunk) job.request.srcURL = osar.first.getSrcURL(); job.request.archiveReportURL = osar.first.getArchiveReportURL(); job.request.storageClass = osar.first.getArchiveFile().storageClass; + job.objectId = osar.first.getAddressIfSet(); job.failurelogs = osar.first.getFailures(); m_jobCache.push_back(job); @@ -209,6 +210,7 @@ getQueueJobs(const jobQueue_t &jobQueueChunk) job.request = osrr.first.getSchedulerRequest(); job.fileSize = osrr.first.getArchiveFile().fileSize; job.tapeCopies[tf.vid] = std::make_pair(tf.copyNb, tf); + job.objectId = osrr.first.getAddressIfSet(); job.failurelogs = osrr.first.getFailures(); m_jobCache.push_back(job); diff --git a/xroot_plugins/XrdCtaFailedRequestLs.hpp b/xroot_plugins/XrdCtaFailedRequestLs.hpp index 376cd776a95e2e792d9af50da06ff9322c3a5636..c3e844068e9578a2bc3a2d7637b49db56bf3adf5 100644 --- a/xroot_plugins/XrdCtaFailedRequestLs.hpp +++ b/xroot_plugins/XrdCtaFailedRequestLs.hpp @@ -137,7 +137,7 @@ pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const common::dataStructure auto &tapepool = m_archiveQueueItorPtr->qid(); Data record; - record.mutable_frls_item()->set_object_id("PLACEHOLDER"); + record.mutable_frls_item()->set_object_id(item.objectId); record.mutable_frls_item()->set_request_type(admin::RequestType::ARCHIVE_REQUEST); record.mutable_frls_item()->set_tapepool(tapepool); record.mutable_frls_item()->set_copy_nb(item.copyNumber); @@ -166,7 +166,7 @@ pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const common::dataStructure Data record; - record.mutable_frls_item()->set_object_id("PLACEHOLDER"); + record.mutable_frls_item()->set_object_id(item.objectId); record.mutable_frls_item()->set_request_type(admin::RequestType::RETRIEVE_REQUEST); record.mutable_frls_item()->set_copy_nb(item.tapeCopies.at(vid).first); record.mutable_frls_item()->mutable_requester()->set_username(item.request.requester.name);