From b292cf0bd09168201292be319f1a84e522e6252b Mon Sep 17 00:00:00 2001
From: Sinisa Veseli <sveseli@aps.anl.gov>
Date: Fri, 3 Mar 2017 23:39:27 +0000
Subject: [PATCH] add beamline configuration functionality

---
 .../dm/common/utility/configurationManager.py | 49 ++++++++++++++++++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/src/python/dm/common/utility/configurationManager.py b/src/python/dm/common/utility/configurationManager.py
index 73753c5f..09c20cd2 100755
--- a/src/python/dm/common/utility/configurationManager.py
+++ b/src/python/dm/common/utility/configurationManager.py
@@ -72,8 +72,9 @@ DEFAULT_DM_SSL_CA_CERT_FILE = None
 DEFAULT_DM_SSL_CERT_FILE = None
 DEFAULT_DM_SSL_KEY_FILE = None
 
-# Login (user|password) file
+# Login (user|password) files
 DEFAULT_DM_LOGIN_FILE = None
+DEFAULT_DM_BSS_LOGIN_FILE = None
 
 # Station name
 DEFAULT_DM_STATION_NAME = None
@@ -81,6 +82,10 @@ DEFAULT_DM_STATION_NAME = None
 # Allowed experiment types
 DEFAULT_DM_ALLOWED_EXPERIMENT_TYPES = None
 
+# Beamline stuff
+DEFAULT_DM_BEAMLINE_NAME = None
+DEFAULT_DM_BEAMLINE_MANAGERS = None
+
 class ConfigurationManager(UserDict.UserDict):
     """ 
     Singleton class used for keeping system configuration data. The class
@@ -164,10 +169,13 @@ class ConfigurationManager(UserDict.UserDict):
         self['defaultSslKeyFile'] = DEFAULT_DM_SSL_KEY_FILE
 
         self['defaultLoginFile'] = DEFAULT_DM_LOGIN_FILE
+        self['defaultBssLoginFile'] = DEFAULT_DM_BSS_LOGIN_FILE
 
         self['defaultStationName'] = DEFAULT_DM_STATION_NAME
 
         self['defaultAllowedExperimentTypes'] = DEFAULT_DM_ALLOWED_EXPERIMENT_TYPES
+        self['defaultBeamlineName'] = DEFAULT_DM_BEAMLINE_NAME
+        self['defaultBeamlineManagers'] = DEFAULT_DM_BEAMLINE_MANAGERS
 
         # Settings that might come from environment variables.
         self.__setFromEnvVar('logFile', 'DM_LOG_FILE')
@@ -205,9 +213,12 @@ class ConfigurationManager(UserDict.UserDict):
         self.__setFromEnvVar('configFile', 'DM_CONFIG_FILE')
         self.__setFromEnvVar('dbPasswordFile', 'DM_DB_PASSWORD_FILE')
         self.__setFromEnvVar('loginFile', 'DM_LOGIN_FILE')
+        self.__setFromEnvVar('bssLoginFile', 'DM_BSS_LOGIN_FILE')
 
         self.__setFromEnvVar('stationName', 'DM_STATION_NAME')
         self.__setFromEnvVar('allowedExperimentTypes', 'DM_ALLOWED_EXPERIMENT_TYPES')
+        self.__setFromEnvVar('beamlineName', 'DM_BEAMLINE_NAME')
+        self.__setFromEnvVar('beamlineManagers', 'DM_BEAMLINE_MANAGERS')
 
         # Settings that might come from file.
         self.__setFromVarFile('dbPassword', self.getDbPasswordFile())
@@ -853,6 +864,18 @@ class ConfigurationManager(UserDict.UserDict):
     def hasLoginFile(self):
         return self.has_key('loginFile')
 
+    def getDefaultBssLoginFile(self):
+        return self['defaultBssLoginFile']
+
+    def getBssLoginFile(self, default='__dm_default__'):
+        return self.__getKeyValue('bssLoginFile', default) 
+
+    def setBssLoginFile(self, f):
+        self['bssLoginFile'] = f
+
+    def hasBssLoginFile(self):
+        return self.has_key('bssLoginFile')
+
     def getDefaultStationName(self):
         return self['defaultStationName']
 
@@ -877,6 +900,30 @@ class ConfigurationManager(UserDict.UserDict):
     def hasAllowedExperimentTypes(self):
         return self.has_key('allowedExperimentTypes')
 
+    def getDefaultBeamlineName(self):
+        return self['defaultBeamlineName']
+
+    def getBeamlineName(self, default='__dm_default__'):
+        return self.__getKeyValue('beamlineName', default) 
+
+    def setBeamlineName(self, f):
+        self['beamlineName'] = f
+
+    def hasBeamlineName(self):
+        return self.has_key('beamlineName')
+
+    def getDefaultBeamlineManagers(self):
+        return self['defaultBeamlineManagers']
+
+    def getBeamlineManagers(self, default='__dm_default__'):
+        return self.__getKeyValue('beamlineManagers', default) 
+
+    def setBeamlineManagers(self, f):
+        self['beamlineManagers'] = f
+
+    def hasBeamlineManagers(self):
+        return self.has_key('beamlineManagers')
+
 #######################################################################
 # Testing.
 
-- 
GitLab