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