Skip to content
Snippets Groups Projects
Forked from DM / dm-docs
261 commits behind, 521 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
dmApi.py 1.11 KiB
#!/usr/bin/env python

import json
from dm.common.exceptions.dmException import DmException
from dm.common.utility.loggingManager import LoggingManager

class DmApi(object):
    """ Base dm api class. """
    def __init__(self, username = None, password = None):
        self.logger = LoggingManager.getInstance().getLogger(self.__class__.__name__)

    @classmethod
    def getLogger(cls):
        logger = LoggingManager.getInstance().getLogger(cls.__name__)
        return logger

    @classmethod
    def toDmObjectList(cls, dictList, dmObjectClass):
        dmObjectList = []
        for dict in dictList:
            dmObjectList.append(dmObjectClass(dict))
        return dmObjectList 

    # Exception decorator for all api calls
    @classmethod
    def execute(cls, func):
        def decorate(*args, **kwargs):
            try:
                response = func(*args, **kwargs)
                return response
            except DmException, ex:
                raise
            except Exception, ex:
                cls.getLogger().exception('%s' % ex)
                raise DmException(exception=ex)
        return decorate