From bcdf2f1a1bc392298315de982e6b191d64411d48 Mon Sep 17 00:00:00 2001
From: Cedric Caffy <cedric.caffy@cern.ch>
Date: Tue, 13 Oct 2020 17:00:26 +0200
Subject: [PATCH] [cta-taped] Added DisableMaintenanceProcess parameter. It is
 not taken into account for now

---
 objectstore/DriveState.cpp               | 1 +
 tapeserver/daemon/TapedConfiguration.cpp | 5 ++++-
 tapeserver/daemon/TapedConfiguration.hpp | 5 +++++
 tapeserver/daemon/cta-taped.conf.example | 5 ++++-
 4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/objectstore/DriveState.cpp b/objectstore/DriveState.cpp
index dc37cf5e7b..e5224a81a6 100644
--- a/objectstore/DriveState.cpp
+++ b/objectstore/DriveState.cpp
@@ -292,6 +292,7 @@ void DriveState::setConfig(const cta::tape::daemon::TapedConfiguration& tapedCon
   fillConfig(config->authenticationProtocol);
   fillConfig(config->authenticationSSSKeytab);
   fillConfig(config->disableRepackManagement);
+  fillConfig(config->disableMaintenanceProcess);
 }
 
 //------------------------------------------------------------------------------
diff --git a/tapeserver/daemon/TapedConfiguration.cpp b/tapeserver/daemon/TapedConfiguration.cpp
index 8e5e9f59ea..ba1af545af 100644
--- a/tapeserver/daemon/TapedConfiguration.cpp
+++ b/tapeserver/daemon/TapedConfiguration.cpp
@@ -119,8 +119,10 @@ TapedConfiguration TapedConfiguration::createFromCtaConf(
   // The central storage access configuration
   ret.backendPath.setFromConfigurationFile(cf, generalConfigPath);
   ret.fileCatalogConfigFile.setFromConfigurationFile(cf, generalConfigPath);
-  //Repack management configuration
+  // Repack management configuration
   ret.disableRepackManagement.setFromConfigurationFile(cf,generalConfigPath);
+  // Maintenance process configuration
+  ret.disableMaintenanceProcess.setFromConfigurationFile(cf,generalConfigPath);
   // Extract drive list from tpconfig + parsed config file
   ret.driveConfigs = Tpconfig::parseFile(ret.tpConfigPath.value());
   
@@ -154,6 +156,7 @@ TapedConfiguration TapedConfiguration::createFromCtaConf(
   ret.fileCatalogConfigFile.log(log);
   
   ret.disableRepackManagement.log(log);
+  ret.disableMaintenanceProcess.log(log);
   
   for (auto & i:ret.driveConfigs) {
     i.second.log(log);
diff --git a/tapeserver/daemon/TapedConfiguration.hpp b/tapeserver/daemon/TapedConfiguration.hpp
index cf7fea019a..9a38fabad0 100644
--- a/tapeserver/daemon/TapedConfiguration.hpp
+++ b/tapeserver/daemon/TapedConfiguration.hpp
@@ -145,6 +145,11 @@ struct TapedConfiguration {
     "taped","DisableRepackManagement","no","Compile time default"
   };
   
+  /// Usage of MaintenanceProcess for repack-related operations, Garbage collection and disk reporting
+  cta::SourcedParameter<std::string> disableMaintenanceProcess {
+    "taped","DisableMaintenanceProcess","no","Compile time default"
+  };
+  
 private:
   /** A private dummy logger which will simplify the implementation of the 
    * functions (just unconditionally log things). */
diff --git a/tapeserver/daemon/cta-taped.conf.example b/tapeserver/daemon/cta-taped.conf.example
index bd3685b4f0..18b3553a0b 100644
--- a/tapeserver/daemon/cta-taped.conf.example
+++ b/tapeserver/daemon/cta-taped.conf.example
@@ -44,4 +44,7 @@
 # taped RAOLTOAlgorithmOptions cost_heuristic_name:cta
 #
 # Disable Repack management
-# taped DisableRepackManagement yes
\ No newline at end of file
+# taped DisableRepackManagement yes
+#
+# Disable Maintenance process
+# taped DisableMaintenanceProcess yes
\ No newline at end of file
-- 
GitLab