diff --git a/cmdline/CtaAdminCmd.cpp b/cmdline/CtaAdminCmd.cpp index fccaf4bbe257b8240b5827ff6bd46ad2fc46b39a..29b59b0224914833305288a2278a19806df254a4 100644 --- a/cmdline/CtaAdminCmd.cpp +++ b/cmdline/CtaAdminCmd.cpp @@ -485,6 +485,10 @@ void CtaAdminCmd::print(const cta::admin::FailedRequestLsItem &frls_item) << std::setfill(' ') << std::setw(6) << std::right << frls_item.requester().groupname() << ' ' << frls_item.af().df().path() << std::endl; + + for(auto &errLogMsg : frls_item.failurelogs()) { + std::cout << errLogMsg << std::endl; + } } void CtaAdminCmd::printFrLsSummaryHeader() diff --git a/scheduler/OStoreDB/QueueItor.cpp b/scheduler/OStoreDB/QueueItor.cpp index 0ca46b3753703050a41f108a574068d9de91d4a0..fd8079a4e203ced5f9cc4d2d9ea4aeb5eaf9280c 100644 --- a/scheduler/OStoreDB/QueueItor.cpp +++ b/scheduler/OStoreDB/QueueItor.cpp @@ -206,11 +206,9 @@ getQueueJobs(const jobQueue_t &jobQueueChunk) if(tf.second.vid == m_jobQueuesQueueIt->vid) { auto job = cta::common::dataStructures::RetrieveJob(); - job.tapeCopies[tf.second.vid].first = tf.second.copyNb; - job.tapeCopies[tf.second.vid].second = tf.second; - job.request.dstURL = osrr.first.getSchedulerRequest().dstURL; - job.request.archiveFileID = osrr.first.getArchiveFile().archiveFileID; - job.fileSize = osrr.first.getArchiveFile().fileSize; + job.request = osrr.first.getSchedulerRequest(); + job.fileSize = osrr.first.getArchiveFile().fileSize; + job.tapeCopies[tf.second.vid] = std::make_pair(tf.second.copyNb, tf.second); m_jobCache.push_back(job); } diff --git a/xroot_plugins/XrdCtaFailedRequestLs.hpp b/xroot_plugins/XrdCtaFailedRequestLs.hpp index 2fb214c981ba7928ae3e207841713d1e8980f1a5..aca8973e79b53563227596a6b855b7cf80833caa 100644 --- a/xroot_plugins/XrdCtaFailedRequestLs.hpp +++ b/xroot_plugins/XrdCtaFailedRequestLs.hpp @@ -98,13 +98,13 @@ private: * Add a record to the stream * * @param[in] streambuf XRootD SSI stream object to push records to - * @param[in] requestType The type of failed request (archive or retrieve) + * @param[in] item Archive or Retrieve Job (used for template specialisation) * * @retval true Stream buffer is full and ready to send * @retval false Stream buffer is not full */ template<typename QueueType> - bool pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const std::string &qid, const QueueType &item); + bool pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const QueueType &item); // Member variables @@ -124,18 +124,24 @@ private: * pushRecord ArchiveJob specialisation */ template<> bool FailedRequestLsStream:: -pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const std::string &tapepool, - const common::dataStructures::ArchiveJob &item) +pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const common::dataStructures::ArchiveJob &item) { Data record; record.mutable_frls_item()->set_request_type(admin::RequestType::ARCHIVE_REQUEST); - record.mutable_frls_item()->set_tapepool(tapepool); + record.mutable_frls_item()->set_tapepool(m_archiveQueueItorPtr->qid()); record.mutable_frls_item()->set_copy_nb(item.copyNumber); record.mutable_frls_item()->mutable_requester()->set_username(item.request.requester.name); record.mutable_frls_item()->mutable_requester()->set_groupname(item.request.requester.group); record.mutable_frls_item()->mutable_af()->mutable_df()->set_path(item.request.diskFileInfo.path); - //record.mutable_frls()->set_failurelogs(... + + if(m_isLogEntries) { +#if 0 + for(auto &errLogMsg : item.failurelogs) { + record.mutable_frls_item()->mutable_failurelogs()->Add(errLogMsg); + } +#endif + } return streambuf->Push(record); } @@ -146,9 +152,10 @@ pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const std::string &tapepool * pushRecord RetrieveJob specialisation */ template<> bool FailedRequestLsStream:: -pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const std::string &vid, - const common::dataStructures::RetrieveJob &item) +pushRecord(XrdSsiPb::OStreamBuffer<Data> *streambuf, const common::dataStructures::RetrieveJob &item) { + auto &vid = m_retrieveQueueItorPtr->qid(); + Data record; record.mutable_frls_item()->set_request_type(admin::RequestType::RETRIEVE_REQUEST); @@ -190,13 +197,13 @@ XrdSsiStream::Buffer* FailedRequestLsStream::GetBuff(XrdSsiErrInfo &eInfo, int & // List failed archive requests if(isArchiveJobs) { for(bool is_buffer_full = false; !m_archiveQueueItorPtr->end() && !is_buffer_full; ++*m_archiveQueueItorPtr) { - is_buffer_full = pushRecord(streambuf, m_archiveQueueItorPtr->qid(), **m_archiveQueueItorPtr); + is_buffer_full = pushRecord(streambuf, **m_archiveQueueItorPtr); } } // List failed retrieve requests if(isRetrieveJobs) { for(bool is_buffer_full = false; !m_retrieveQueueItorPtr->end() && !is_buffer_full; ++*m_retrieveQueueItorPtr) { - is_buffer_full = pushRecord(streambuf, m_retrieveQueueItorPtr->qid(), **m_retrieveQueueItorPtr); + is_buffer_full = pushRecord(streambuf, **m_retrieveQueueItorPtr); } } }