From 32c03b576195a7aa3a648ee1ace165915ee2f23c Mon Sep 17 00:00:00 2001
From: Michael Davis <michael.davis@cern.ch>
Date: Thu, 16 Aug 2018 15:38:06 +0200
Subject: [PATCH] [cta-admin] Changes timeout behaviour of cta-admin dr ls
 (#300)

- timeout limit increased to 600s
- drive status is no longer set to Unknown
- only effect of exceeding the timeout limit is to display the word
  STALE beside the update time
---
 xroot_plugins/XrdSsiCtaRequestMessage.cpp | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/xroot_plugins/XrdSsiCtaRequestMessage.cpp b/xroot_plugins/XrdSsiCtaRequestMessage.cpp
index 1524e78e8c..2c8b96d9fb 100644
--- a/xroot_plugins/XrdSsiCtaRequestMessage.cpp
+++ b/xroot_plugins/XrdSsiCtaRequestMessage.cpp
@@ -881,7 +881,7 @@ void RequestMessage::processDrive_Ls(const cta::admin::AdminCmd &admincmd, cta::
 {
    using namespace cta::admin;
 
-   const int DRIVE_TIMEOUT = 30;
+   const int DRIVE_TIMEOUT = 600;
 
    std::stringstream cmdlineOutput;
 
@@ -912,9 +912,6 @@ void RequestMessage::processDrive_Ls(const cta::admin::AdminCmd &admincmd, cta::
          driveFound = true;
 
          auto timeSinceLastUpdate_s = time(nullptr) - ds.lastUpdateTime;
-         if(timeSinceLastUpdate_s > DRIVE_TIMEOUT) {
-            ds.driveStatus = cta::common::dataStructures::DriveStatus::Unknown;
-         }
 
          std::vector<std::string> currentRow;
          currentRow.push_back(ds.logicalLibrary);
@@ -969,7 +966,8 @@ void RequestMessage::processDrive_Ls(const cta::admin::AdminCmd &admincmd, cta::
             default:
                currentRow.push_back(std::to_string(static_cast<unsigned long long>(ds.sessionId)));
          }
-         currentRow.push_back(std::to_string(timeSinceLastUpdate_s));
+         currentRow.push_back(std::to_string(timeSinceLastUpdate_s) +
+            (timeSinceLastUpdate_s > DRIVE_TIMEOUT ? " [STALE]" : ""));
          responseTable.push_back(currentRow);
       }
 
-- 
GitLab