From cf4edc71b72c87a1e1a921892492e0989a62b138 Mon Sep 17 00:00:00 2001
From: Jorge Camarero Vera <jorge.camarero@cern.ch>
Date: Tue, 22 Feb 2022 20:04:12 +0100
Subject: [PATCH] Creation of method toCamelCaseString() for cta-admin

---
 cmdline/CtaAdminTextFormatter.cpp   |  5 ++---
 common/dataStructures/MountType.cpp | 21 ++++++++++++++++++++-
 common/dataStructures/MountType.hpp |  5 +++++
 3 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/cmdline/CtaAdminTextFormatter.cpp b/cmdline/CtaAdminTextFormatter.cpp
index c2075c0686..534c1636b8 100644
--- a/cmdline/CtaAdminTextFormatter.cpp
+++ b/cmdline/CtaAdminTextFormatter.cpp
@@ -305,14 +305,13 @@ void TextFormatter::print(const DriveLsItem &drls_item)
 
   //If there is a reason, we only want to display the beginning
   std::string reason = cta::utils::postEllipsis(drls_item.reason(),NB_CHAR_REASON);
-  const std::string mountType = toString(ProtobufToMountType(drls_item.mount_type()));
 
   push_back(
     drls_item.logical_library(),
     drls_item.drive_name(),
     drls_item.host(),
     (drls_item.desired_drive_state() == DriveLsItem::UP ? "Up" : "Down"),
-    mountType != "NO_MOUNT" ? mountType : "-",
+    toCamelCaseString(ProtobufToMountType(drls_item.mount_type())),
     toString(ProtobufToDriveStatus(drls_item.drive_status())),
     driveStatusSince,
     drls_item.vid(),
@@ -753,7 +752,7 @@ void TextFormatter::print(const ShowQueuesItem &sq_item) {
   }
 
   push_back(
-    toString(ProtobufToMountType(sq_item.mount_type())),
+    toCamelCaseString(ProtobufToMountType(sq_item.mount_type())),
     sq_item.tapepool(),
     sq_item.vo(),
     sq_item.logical_library(),
diff --git a/common/dataStructures/MountType.cpp b/common/dataStructures/MountType.cpp
index d6bac0089a..fcc76479a2 100644
--- a/common/dataStructures/MountType.cpp
+++ b/common/dataStructures/MountType.cpp
@@ -41,6 +41,25 @@ std::string toString(cta::common::dataStructures::MountType type) {
   }
 }
 
+std::string toCamelCaseString(cta::common::dataStructures::MountType type) {
+  switch(type) {
+    case MountType::ArchiveForUser:
+      return "ArchiveForUser";
+    case MountType::ArchiveForRepack:
+      return "ArchiveForRepack";
+    case MountType::ArchiveAllTypes:
+      return "ArchiveAllTypes";
+    case MountType::Retrieve:
+      return "Retrieve";
+    case MountType::Label:
+      return "Label";
+    case MountType::NoMount:
+      return "-";
+    default:
+      return "Unknown";
+  }
+}
+
 MountType strToMountType(const std::string& mountTypeStr) {
        if(mountTypeStr == "ARCHIVE_FOR_USER")   return MountType::ArchiveForUser;
   else if(mountTypeStr == "ARCHIVE_FOR_REPACK") return MountType::ArchiveForRepack;
@@ -61,7 +80,7 @@ MountType getMountBasicType(MountType type) {
   }
 }
 
-std::ostream & operator<<(std::ostream &os, 
+std::ostream & operator<<(std::ostream &os,
   const cta::common::dataStructures::MountType &obj) {
   return os << toString(obj);
 }
diff --git a/common/dataStructures/MountType.hpp b/common/dataStructures/MountType.hpp
index 6b641f6fda..b4c1b66373 100644
--- a/common/dataStructures/MountType.hpp
+++ b/common/dataStructures/MountType.hpp
@@ -43,6 +43,11 @@ MountType getMountBasicType(MountType type);
  */
 std::string toString(MountType type);
 
+/**
+ * Convert enum to string in camel case format to show in cta-admnin
+ */
+std::string toCamelCaseString(cta::common::dataStructures::MountType type);
+
 /**
  * Convert string to enum. Needed to get values from DB.
  */
-- 
GitLab