Skip to content
Snippets Groups Projects
Forked from DM / dm-docs
261 commits behind, 812 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
dsRestApiFactory.py 2.63 KiB
#!/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