#!/usr/bin/env python from dm.common.utility.loggingManager import LoggingManager from dm.common.utility.configurationManager import ConfigurationManager class DsRestApiFactory: CONFIG_SECTION_NAME = 'DsRestApiFactory' USERNAME_KEY = 'username' PASSWORD_FILE_KEY = 'passwordfile' HOST_KEY = 'host' PORT_KEY = 'port' PROTOCOL_KEY = 'protocol' __logger = None __username = None __password = None __host = None __port = None __protocol = None @classmethod def getLogger(cls): if cls.__logger is None: cls.__logger = LoggingManager.getInstance().getLogger(cls.__name__) return cls.__logger @classmethod def __getConfiguration(cls): if cls.__username is None: cls.__username = ConfigurationManager.getInstance().getConfigOption(cls.CONFIG_SECTION_NAME, cls.USERNAME_KEY) cls.__password = open(ConfigurationManager.getInstance().getConfigOption(cls.CONFIG_SECTION_NAME, cls.PASSWORD_FILE_KEY)).read().strip() cls.__host = ConfigurationManager.getInstance().getConfigOption(cls.CONFIG_SECTION_NAME, cls.HOST_KEY) cls.__port = ConfigurationManager.getInstance().getConfigOption(cls.CONFIG_SECTION_NAME, cls.PORT_KEY) cls.__protocol = ConfigurationManager.getInstance().getConfigOption(cls.CONFIG_SECTION_NAME, cls.PROTOCOL_KEY) return (cls.__username, cls.__password, cls.__host, cls.__port, cls.__protocol) @classmethod def getUserDsApi(cls): from userDsApi import UserDsApi (username, password, host, port, protocol) = cls.__getConfiguration() api = UserDsApi(username, password, host, port, protocol) return api @classmethod def getAuthDsApi(cls): from authDsApi import AuthDsApi (username, password, host, port, protocol) = cls.__getConfiguration() api = AuthDsApi(username, password, host, port, protocol) return api @classmethod def getExperimentDsApi(cls): from experimentDsApi import ExperimentDsApi try: (username, password, host, port, protocol) = cls.__getConfiguration() except Exception, ex: print ex raise api = ExperimentDsApi(username, password, host, port, protocol) return api @classmethod def getFileDsApi(cls): from fileDsApi import FileDsApi (username, password, host, port, protocol) = cls.__getConfiguration() api = FileDsApi(username, password, host, port, protocol) return api #################################################################### # Testing if __name__ == '__main__': pass