# -*- coding: utf-8 -*-

class CCException(Exception):
    '''
    '''
    
    def __init__(self, message, exception=None):
        '''
        '''
        self._exception = exception
        self._message = message
    
    def __str__(self):
        '''
        '''
        if self._exception is not None:
            return '[%s] %s' % (self._exception, self._message)
        else:
            return '%s' % self._message

class FeatureNotImplemented(CCException):
    '''
    '''
    pass


# host

class HostError(CCException):
    '''
    '''
    pass


class HypervisorError(HostError):
    '''
    '''
    pass


class VMError(HostError):
    '''
    '''
    pass


# storage

class StorageError(CCException):
    '''
    '''
    pass


class StoragePoolError(StorageError):
    '''
    '''
    pass


class StorageVolumeError(StorageError):
    '''
    '''
    pass