

def __new__(cls, key, secret=None, api_version=DEFAULT_API_VERSION, **kwargs):
    if (cls is OpenNebulaNodeDriver):
        if (api_version in ['1.4']):
            cls = OpenNebula_1_4_NodeDriver
        elif (api_version in ['2.0', '2.2']):
            cls = OpenNebula_2_0_NodeDriver
        elif (api_version in ['3.0']):
            cls = OpenNebula_3_0_NodeDriver
        elif (api_version in ['3.2']):
            cls = OpenNebula_3_2_NodeDriver
        elif (api_version in ['3.6']):
            cls = OpenNebula_3_6_NodeDriver
        elif (api_version in ['3.8']):
            cls = OpenNebula_3_8_NodeDriver
            if ('plain_auth' not in kwargs):
                kwargs['plain_auth'] = cls.plain_auth
            else:
                cls.plain_auth = kwargs['plain_auth']
        else:
            raise NotImplementedError(('No OpenNebulaNodeDriver found for API version %s' % api_version))
        return super(OpenNebulaNodeDriver, kwargs).__new__(cls)

dataset/ETHPy150Open apache/libcloud/libcloud/compute/drivers/opennebula.py OpenNebulaNodeDriver.__new__/VarMisuse@184/330 `cls`->`kwargs`