Source code for vmware.vapi.protocol.client.msg.connector_factory

"""
Protocol connector factory
"""

__author__ = 'VMware, Inc.'
__copyright__ = 'Copyright (c) 2015 VMware, Inc.  All rights reserved.'

import logging
from vmware.vapi.lib.load import dynamic_import

logger = logging.getLogger(__name__)


[docs]class ProtocolConnectorFactory(object): """ Protocol connector factory """ def __init__(self): """ Protocol connector factory init """ self.connectors = { # msg protocol name : constructor 'json': 'vmware.vapi.protocol.client.msg.json_connector.get_protocol_connector', }
[docs] def get_connector(self, protocol, *args, **kwargs): """ Create protocol connector :type protocol: :class:`str` :param protocol: protocol name :type args: :class:`tuple` :param args: position parameters to protocol connector constructor :type kwargs: :class:`dict` :param kwargs: key parameters to protocol connector constructor :rtype: :class:`vmware.vapi.protocol.client.connector.Connector` :return: Connector object """ constructor = self.connectors.get(protocol) if constructor is not None: constructor = dynamic_import(constructor) if constructor: return constructor(*args, **kwargs)