From 90b10ad013ae86a0ff7c242a6423de76b45b4c32 Mon Sep 17 00:00:00 2001
From: Steven Murray <Steven.Murray@cern.ch>
Date: Thu, 18 Jun 2015 17:15:10 +0200
Subject: [PATCH] Moved FileStatus from the scheduler directory to common

---
 common/CMakeLists.txt                  |  2 ++
 {scheduler => common}/FileStatus.cpp   |  2 +-
 {scheduler => common}/FileStatus.hpp   |  2 +-
 {scheduler => common}/UserIdentity.cpp |  5 +++--
 {scheduler => common}/UserIdentity.hpp |  0
 nameserver/MockNameServer.hpp          |  4 ++--
 nameserver/NameServer.hpp              |  2 +-
 objectstore/CreationLog.hpp            |  7 ++++---
 objectstore/UserIdentity.hpp           |  5 +++--
 scheduler/AdminHost.hpp                |  2 +-
 scheduler/AdminUser.hpp                |  2 +-
 scheduler/ArchivalRoute.hpp            |  2 +-
 scheduler/CMakeLists.txt               |  2 --
 scheduler/ConfigurationItem.hpp        |  2 +-
 scheduler/CreationLog.hpp              |  2 +-
 scheduler/FileSystemNode.cpp           | 19 ++++++++++---------
 scheduler/FileSystemStorageClass.cpp   |  4 ++--
 scheduler/FileSystemStorageClass.hpp   |  3 +--
 scheduler/FileSystemStorageClasses.cpp | 16 ++++++++--------
 scheduler/FileSystemStorageClasses.hpp |  2 +-
 scheduler/MockSchedulerDatabase.cpp    |  2 +-
 scheduler/Scheduler.cpp                |  2 +-
 scheduler/SchedulerDatabaseTest.cpp    |  2 +-
 scheduler/SecurityIdentity.hpp         |  2 +-
 scheduler/Tape.hpp                     |  2 +-
 scheduler/UserIdentityTest.cpp         |  2 +-
 xroot_plugins/XrdProFile.cpp           |  2 +-
 27 files changed, 51 insertions(+), 48 deletions(-)
 rename {scheduler => common}/FileStatus.cpp (98%)
 rename {scheduler => common}/FileStatus.hpp (98%)
 rename {scheduler => common}/UserIdentity.cpp (97%)
 rename {scheduler => common}/UserIdentity.hpp (100%)

diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index 23c2b5f380..25f62f9d3a 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -1,8 +1,10 @@
 cmake_minimum_required (VERSION 2.6)
 
 set (COMMON_LIB_SRC_FILES
+  FileStatus.cpp
   SmartFd.cpp
   Timer.cpp
+  UserIdentity.cpp
   Utils.cpp
   exception/Backtrace.cpp
   exception/Errnum.cpp
diff --git a/scheduler/FileStatus.cpp b/common/FileStatus.cpp
similarity index 98%
rename from scheduler/FileStatus.cpp
rename to common/FileStatus.cpp
index d0e99dbb2f..914d524200 100644
--- a/scheduler/FileStatus.cpp
+++ b/common/FileStatus.cpp
@@ -16,7 +16,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "scheduler/FileStatus.hpp"
+#include "common/FileStatus.hpp"
 
 //------------------------------------------------------------------------------
 // constructor
diff --git a/scheduler/FileStatus.hpp b/common/FileStatus.hpp
similarity index 98%
rename from scheduler/FileStatus.hpp
rename to common/FileStatus.hpp
index 986bf517b7..80449c917f 100644
--- a/scheduler/FileStatus.hpp
+++ b/common/FileStatus.hpp
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include "scheduler/UserIdentity.hpp"
+#include "common/UserIdentity.hpp"
 
 #include <string>
 
diff --git a/scheduler/UserIdentity.cpp b/common/UserIdentity.cpp
similarity index 97%
rename from scheduler/UserIdentity.cpp
rename to common/UserIdentity.cpp
index b421676411..c72c97b430 100644
--- a/scheduler/UserIdentity.cpp
+++ b/common/UserIdentity.cpp
@@ -16,9 +16,10 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "scheduler/UserIdentity.hpp"
-#include "ostream"
+#include "common/UserIdentity.hpp"
+
 #include <limits>
+#include <ostream>
 
 //------------------------------------------------------------------------------
 // constructor
diff --git a/scheduler/UserIdentity.hpp b/common/UserIdentity.hpp
similarity index 100%
rename from scheduler/UserIdentity.hpp
rename to common/UserIdentity.hpp
diff --git a/nameserver/MockNameServer.hpp b/nameserver/MockNameServer.hpp
index 1be5739f43..db233543df 100644
--- a/nameserver/MockNameServer.hpp
+++ b/nameserver/MockNameServer.hpp
@@ -18,10 +18,10 @@
 
 #pragma once
 
-#include "scheduler/DirIterator.hpp"
+#include "common/UserIdentity.hpp"
 #include "nameserver/NameServer.hpp"
+#include "scheduler/DirIterator.hpp"
 #include "scheduler/SecurityIdentity.hpp"
-#include "scheduler/UserIdentity.hpp"
 
 #include <list>
 #include <string>
diff --git a/nameserver/NameServer.hpp b/nameserver/NameServer.hpp
index ecabae546d..cff5b3c0a4 100644
--- a/nameserver/NameServer.hpp
+++ b/nameserver/NameServer.hpp
@@ -18,8 +18,8 @@
 
 #pragma once
 
+#include "common/FileStatus.hpp"
 #include "scheduler/DirIterator.hpp"
-#include "scheduler/FileStatus.hpp"
 #include "scheduler/SecurityIdentity.hpp"
 
 #include <string>
diff --git a/objectstore/CreationLog.hpp b/objectstore/CreationLog.hpp
index 592c4cb3e6..1045c43382 100644
--- a/objectstore/CreationLog.hpp
+++ b/objectstore/CreationLog.hpp
@@ -16,12 +16,13 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "common/UserIdentity.hpp"
+#include "objectstore/cta.pb.h"
+#include "scheduler/CreationLog.hpp"
+
 #include <string>
 #include <stdint.h>
 #include <limits>
-#include "scheduler/CreationLog.hpp"
-#include "scheduler/UserIdentity.hpp"
-#include "objectstore/cta.pb.h"
 
 namespace cta { namespace objectstore {
 /**
diff --git a/objectstore/UserIdentity.hpp b/objectstore/UserIdentity.hpp
index 0b3f1d5d88..151ca58523 100644
--- a/objectstore/UserIdentity.hpp
+++ b/objectstore/UserIdentity.hpp
@@ -16,10 +16,11 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "common/UserIdentity.hpp"
+#include "objectstore/cta.pb.h"
+
 #include <string>
 #include <stdint.h>
-#include "objectstore/cta.pb.h"
-#include "scheduler/UserIdentity.hpp"
 
 namespace cta { namespace objectstore {
 
diff --git a/scheduler/AdminHost.hpp b/scheduler/AdminHost.hpp
index 1d5d673b64..44f9a8df5a 100644
--- a/scheduler/AdminHost.hpp
+++ b/scheduler/AdminHost.hpp
@@ -18,8 +18,8 @@
 
 #pragma once
 
+#include "common/UserIdentity.hpp"
 #include "scheduler/ConfigurationItem.hpp"
-#include "scheduler/UserIdentity.hpp"
 
 #include <string>
 
diff --git a/scheduler/AdminUser.hpp b/scheduler/AdminUser.hpp
index d2356affd0..f5cf542f2b 100644
--- a/scheduler/AdminUser.hpp
+++ b/scheduler/AdminUser.hpp
@@ -18,8 +18,8 @@
 
 #pragma once
 
+#include "common/UserIdentity.hpp"
 #include "scheduler/ConfigurationItem.hpp"
-#include "scheduler/UserIdentity.hpp"
 
 #include <string>
 
diff --git a/scheduler/ArchivalRoute.hpp b/scheduler/ArchivalRoute.hpp
index eaa0da3a8b..66827156a9 100644
--- a/scheduler/ArchivalRoute.hpp
+++ b/scheduler/ArchivalRoute.hpp
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include "scheduler/UserIdentity.hpp"
+#include "common/UserIdentity.hpp"
 #include "scheduler/CreationLog.hpp"
 
 #include <stdint.h>
diff --git a/scheduler/CMakeLists.txt b/scheduler/CMakeLists.txt
index 72bcfef999..67c8c67eff 100644
--- a/scheduler/CMakeLists.txt
+++ b/scheduler/CMakeLists.txt
@@ -22,7 +22,6 @@ set (CTA_SCHEDULER_SRC_FILES
   DiskException.cpp
   DriveQuota.cpp
   FileAttribute.cpp
-  FileStatus.cpp
   FileSystemDirEntry.cpp
   FileSystemNode.cpp
   FileSystemStorageClass.cpp
@@ -50,7 +49,6 @@ set (CTA_SCHEDULER_SRC_FILES
   TapeCopyLocation.cpp
   TapeException.cpp
   TapePool.cpp
-  UserIdentity.cpp
   UserGroup.cpp
   UserRequest.cpp
   VO.cpp)
diff --git a/scheduler/ConfigurationItem.hpp b/scheduler/ConfigurationItem.hpp
index a1b15099a7..ad4f1f2f99 100644
--- a/scheduler/ConfigurationItem.hpp
+++ b/scheduler/ConfigurationItem.hpp
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include "scheduler/UserIdentity.hpp"
+#include "common/UserIdentity.hpp"
 
 #include <string>
 #include <time.h>
diff --git a/scheduler/CreationLog.hpp b/scheduler/CreationLog.hpp
index c55c00e067..73ae4224ab 100644
--- a/scheduler/CreationLog.hpp
+++ b/scheduler/CreationLog.hpp
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include "scheduler/UserIdentity.hpp"
+#include "common/UserIdentity.hpp"
 
 #include <string>
 
diff --git a/scheduler/FileSystemNode.cpp b/scheduler/FileSystemNode.cpp
index 9cd66f8523..c46f209d6f 100644
--- a/scheduler/FileSystemNode.cpp
+++ b/scheduler/FileSystemNode.cpp
@@ -62,7 +62,7 @@ void cta::FileSystemNode::deleteAndClearChildren() {
 //------------------------------------------------------------------------------
 cta::FileSystemNode &cta::FileSystemNode::getParent() {
   if(NULL == m_parent) {
-    throw Exception("Internal error");
+    throw exception::Exception("Internal error");
   }
 
   return *m_parent;
@@ -73,7 +73,7 @@ cta::FileSystemNode &cta::FileSystemNode::getParent() {
 //------------------------------------------------------------------------------
 const cta::FileSystemNode &cta::FileSystemNode::getParent() const {
   if(NULL == m_parent) {
-    throw Exception("Internal error");
+    throw exception::Exception("Internal error");
   }
 
   return *m_parent;
@@ -105,7 +105,8 @@ std::list<cta::DirEntry> cta::FileSystemNode::getDirEntries()
     m_children.begin(); itor != m_children.end(); itor++) {
     const FileSystemNode *const childNode = itor->second;
     if(NULL == childNode) {
-      throw(Exception("getDirEntries encountered a NULL child pointer"));
+      throw(exception::Exception(std::string(__FUNCTION__) + " encountered a"
+        " NULL child pointer"));
     }
     const cta::FileSystemDirEntry &childEntry =
       childNode->getFileSystemEntry();
@@ -120,7 +121,7 @@ std::list<cta::DirEntry> cta::FileSystemNode::getDirEntries()
 void cta::FileSystemNode::addChild(FileSystemNode *const child) {
   if(childExists(child->getFileSystemEntry().getEntry().getName())) {
     delete child;
-    throw Exception("FileSystemNode already exists");
+    throw exception::Exception("FileSystemNode already exists");
   }
 
   child->m_parent = this;
@@ -149,10 +150,10 @@ bool cta::FileSystemNode::childExists(const std::string &name) const {
 cta::FileSystemNode &cta::FileSystemNode::getChild(const std::string &name) {
   std::map<std::string, FileSystemNode*>::iterator itor = m_children.find(name);
   if(m_children.end() == itor) {
-    throw Exception("No such file or directory");
+    throw exception::Exception("No such file or directory");
   }
   if(NULL == itor->second) {
-    throw Exception("Unexpected NULL pointer");
+    throw exception::Exception("Unexpected NULL pointer");
   }
   return *(itor->second);
 }
@@ -165,10 +166,10 @@ const cta::FileSystemNode &cta::FileSystemNode::getChild(
   std::map<std::string, FileSystemNode*>::const_iterator itor = 
     m_children.find(name);
   if(m_children.end() == itor) {
-    throw Exception("No such file or directory");
+    throw exception::Exception("No such file or directory");
   }
   if(NULL == itor->second) {
-    throw Exception("Unexpected NULL pointer");
+    throw exception::Exception("Unexpected NULL pointer");
   }
   return *(itor->second);
 }
@@ -179,7 +180,7 @@ const cta::FileSystemNode &cta::FileSystemNode::getChild(
 void cta::FileSystemNode::deleteChild(const std::string &name) {
   std::map<std::string, FileSystemNode*>::iterator itor = m_children.find(name);
   if(m_children.end() == itor) {
-    throw Exception("No such file or directory");
+    throw exception::Exception("No such file or directory");
   }
 
   delete itor->second;
diff --git a/scheduler/FileSystemStorageClass.cpp b/scheduler/FileSystemStorageClass.cpp
index dfeb70fda9..861badd213 100644
--- a/scheduler/FileSystemStorageClass.cpp
+++ b/scheduler/FileSystemStorageClass.cpp
@@ -60,7 +60,7 @@ void cta::FileSystemStorageClass::incUsageCount() {
     message << "Cannot increment usage count of storage class " <<
       m_storageClass.getName() << " because its maximum value of UINT64_MAX"
       " has already been reached";
-    throw Exception(message.str());
+    throw exception::Exception(message.str());
   }
   m_usageCount++;
 }
@@ -73,7 +73,7 @@ void cta::FileSystemStorageClass::decUsageCount() {
     std::ostringstream message;
     message << "Cannot decrement usage count of storage class " <<
       m_storageClass.getName() << " because it is already at zero";
-    throw Exception(message.str());
+    throw exception::Exception(message.str());
   }
   m_usageCount--;
 }
diff --git a/scheduler/FileSystemStorageClass.hpp b/scheduler/FileSystemStorageClass.hpp
index e7d36f6e06..d5c5f4beba 100644
--- a/scheduler/FileSystemStorageClass.hpp
+++ b/scheduler/FileSystemStorageClass.hpp
@@ -19,9 +19,8 @@
 #pragma once
 
 #include "common/exception/Exception.hpp"
+#include "common/UserIdentity.hpp"
 #include "scheduler/StorageClass.hpp"
-#include "scheduler/UserIdentity.hpp"
-using cta::exception::Exception;
 
 #include <sstream>
 #include <string>
diff --git a/scheduler/FileSystemStorageClasses.cpp b/scheduler/FileSystemStorageClasses.cpp
index c52911becc..cfb537ed9c 100644
--- a/scheduler/FileSystemStorageClasses.cpp
+++ b/scheduler/FileSystemStorageClasses.cpp
@@ -33,7 +33,7 @@ void cta::FileSystemStorageClasses::createStorageClass(
     StorageClass storageClass(name, nbCopies, creationLog);
     m_storageClasses[name] = storageClass;
   } catch(std::exception &ex) {
-    throw Exception(std::string("Failed to create storage class: ") +
+    throw exception::Exception(std::string("Failed to create storage class: ") +
       ex.what());
   }
 }
@@ -48,7 +48,7 @@ void cta::FileSystemStorageClasses::checkStorageClassDoesNotAlreadyExist(
   if(itor != m_storageClasses.end()) {
     std::ostringstream msg;
     msg << "Storage class " << name << " already exists";
-    throw Exception(msg.str());
+    throw exception::Exception(msg.str());
   }
 }
 
@@ -62,7 +62,7 @@ void cta::FileSystemStorageClasses::deleteStorageClass(
     checkStorageClassIsNotInUse(name);
     m_storageClasses.erase(name);
   } catch(std::exception &ex) {
-    throw Exception(std::string("Failed to delete storage class: ") +
+    throw exception::Exception(std::string("Failed to delete storage class: ") +
       ex.what());
   }
 }
@@ -77,7 +77,7 @@ void cta::FileSystemStorageClasses::checkStorageClassExists(
   if(itor == m_storageClasses.end()) {
     std::ostringstream msg;
     msg << "Storage class " << name << " does not exist";
-    throw Exception(msg.str());
+    throw exception::Exception(msg.str());
   }
 } 
 
@@ -97,7 +97,7 @@ void cta::FileSystemStorageClasses::checkStorageClassIsNotInUse(
   if(itor->second.getUsageCount() > 0) {
     std::ostringstream message;
     message << "Storage class " << name << " is in use";
-    throw Exception(message.str());
+    throw exception::Exception(message.str());
   }
 }
 
@@ -124,7 +124,7 @@ const cta::StorageClass &cta::FileSystemStorageClasses::getStorageClass(
   if(itor == m_storageClasses.end()) {
     std::ostringstream message;
     message << "Storage class " << name << " does not exist";
-    throw Exception(message.str());
+    throw exception::Exception(message.str());
   }
   return itor->second.getStorageClass();
 }
@@ -146,7 +146,7 @@ void cta::FileSystemStorageClasses::incStorageClassUsageCount(
   if(itor == m_storageClasses.end()) {
     std::ostringstream message;
     message << "Storage class " << name << " does not exist";
-    throw Exception(message.str());
+    throw exception::Exception(message.str());
   }
 
   itor->second.incUsageCount();
@@ -169,7 +169,7 @@ void cta::FileSystemStorageClasses::decStorageClassUsageCount(
   if(itor == m_storageClasses.end()) {
     std::ostringstream message;
     message << "Storage class " << name << " does not exist";
-    throw Exception(message.str());
+    throw exception::Exception(message.str());
   }
 
   itor->second.decUsageCount();
diff --git a/scheduler/FileSystemStorageClasses.hpp b/scheduler/FileSystemStorageClasses.hpp
index 31edc24635..ad558f12e3 100644
--- a/scheduler/FileSystemStorageClasses.hpp
+++ b/scheduler/FileSystemStorageClasses.hpp
@@ -18,8 +18,8 @@
 
 #pragma once
 
+#include "common/UserIdentity.hpp"
 #include "scheduler/FileSystemStorageClass.hpp"
-#include "scheduler/UserIdentity.hpp"
 
 #include <list>
 #include <map>
diff --git a/scheduler/MockSchedulerDatabase.cpp b/scheduler/MockSchedulerDatabase.cpp
index c44e4e85c0..fda369e721 100644
--- a/scheduler/MockSchedulerDatabase.cpp
+++ b/scheduler/MockSchedulerDatabase.cpp
@@ -17,6 +17,7 @@
  */
 
 #include "common/exception/Exception.hpp"
+#include "common/UserIdentity.hpp"
 #include "nameserver/NameServer.hpp"
 #include "scheduler/AdminHost.hpp"
 #include "scheduler/AdminUser.hpp"
@@ -35,7 +36,6 @@
 #include "scheduler/StorageClass.hpp"
 #include "scheduler/Tape.hpp"
 #include "scheduler/TapePool.hpp"
-#include "scheduler/UserIdentity.hpp"
 
 #include <iostream>
 #include <memory>
diff --git a/scheduler/Scheduler.cpp b/scheduler/Scheduler.cpp
index bce1330dbd..d395691605 100644
--- a/scheduler/Scheduler.cpp
+++ b/scheduler/Scheduler.cpp
@@ -17,6 +17,7 @@
  */
 
 #include "common/exception/Exception.hpp"
+#include "common/UserIdentity.hpp"
 #include "common/Utils.hpp"
 #include "nameserver/NameServer.hpp"
 #include "remotens/RemoteNS.hpp"
@@ -36,7 +37,6 @@
 #include "scheduler/StorageClass.hpp"
 #include "scheduler/Tape.hpp"
 #include "scheduler/TapePool.hpp"
-#include "scheduler/UserIdentity.hpp"
 
 #include <iostream>
 #include <sstream>
diff --git a/scheduler/SchedulerDatabaseTest.cpp b/scheduler/SchedulerDatabaseTest.cpp
index 98f025e2dc..1c9b0736fc 100644
--- a/scheduler/SchedulerDatabaseTest.cpp
+++ b/scheduler/SchedulerDatabaseTest.cpp
@@ -16,6 +16,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include "common/UserIdentity.hpp"
 #include "scheduler/AdminHost.hpp"
 #include "scheduler/AdminUser.hpp"
 #include "scheduler/ArchivalRoute.hpp"
@@ -24,7 +25,6 @@
 #include "scheduler/SchedulerDatabase.hpp"
 #include "scheduler/SchedulerDatabaseFactory.hpp"
 #include "scheduler/SecurityIdentity.hpp"
-#include "scheduler/UserIdentity.hpp"
 #include "OStoreDB/OStoreDBFactory.hpp"
 
 #include <exception>
diff --git a/scheduler/SecurityIdentity.hpp b/scheduler/SecurityIdentity.hpp
index 9d14953212..8be4e46083 100644
--- a/scheduler/SecurityIdentity.hpp
+++ b/scheduler/SecurityIdentity.hpp
@@ -18,7 +18,7 @@
 
 #pragma once
 
-#include "scheduler/UserIdentity.hpp"
+#include "common/UserIdentity.hpp"
 
 #include <string>
 
diff --git a/scheduler/Tape.hpp b/scheduler/Tape.hpp
index 5c8ea60001..d3a64af08f 100644
--- a/scheduler/Tape.hpp
+++ b/scheduler/Tape.hpp
@@ -18,8 +18,8 @@
 
 #pragma once
 
+#include "common/UserIdentity.hpp"
 #include "scheduler/ConfigurationItem.hpp"
-#include "scheduler/UserIdentity.hpp"
 
 #include <stdint.h>
 #include <string>
diff --git a/scheduler/UserIdentityTest.cpp b/scheduler/UserIdentityTest.cpp
index 3878dafa0f..a7dec0a074 100644
--- a/scheduler/UserIdentityTest.cpp
+++ b/scheduler/UserIdentityTest.cpp
@@ -16,7 +16,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "scheduler/UserIdentity.hpp"
+#include "common/UserIdentity.hpp"
 
 #include <gtest/gtest.h>
 
diff --git a/xroot_plugins/XrdProFile.cpp b/xroot_plugins/XrdProFile.cpp
index 4a25ab37f3..2779e0e24a 100644
--- a/xroot_plugins/XrdProFile.cpp
+++ b/xroot_plugins/XrdProFile.cpp
@@ -17,6 +17,7 @@
  */
 
 #include "common/exception/Exception.hpp"
+#include "common/UserIdentity.hpp"
 #include "scheduler/AdminHost.hpp"
 #include "scheduler/AdminUser.hpp"
 #include "scheduler/ArchivalRoute.hpp"
@@ -29,7 +30,6 @@
 #include "scheduler/Tape.hpp"
 #include "scheduler/TapePool.hpp"
 #include "scheduler/SecurityIdentity.hpp"
-#include "scheduler/UserIdentity.hpp"
 #include "xroot_plugins/XrdProFile.hpp"
 
 #include "XrdSec/XrdSecEntity.hh"
-- 
GitLab