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

"""
Generic client connector
"""

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


import logging

from vmware.vapi.protocol.client.connector import Connector
from vmware.vapi.core import ExecutionContext, SecurityContext
from vmware.vapi.lib.context import create_default_application_context

logger = logging.getLogger(__name__)


[docs]class GenericConnector(Connector): """ A generic protocol connector """ def __init__(self, rpc_provider, api_provider): """ Generic protocol connector init :type rpc_provider: :class:`vmware.vapi.protocol.client.rpc.provider.RpcProvider` :param rpc_provider: rpc provider object :type api_provider: :class:`vmware.vapi.core.ApiProvider` :param api_provider: api provider object """ Connector.__init__(self) self.rpc_provider = rpc_provider self.api_provider = api_provider self.session = None self._application_ctx = None self._security_ctx = None
[docs] def connect(self): """ rpc provider connect """ self.rpc_provider.connect()
[docs] def disconnect(self): """ rpc provider disconnect """ self.rpc_provider.disconnect()
[docs] def get_api_provider(self): """ get api provider :rtype: :class:`vmware.vapi.core.ApiProvider` :return: api provider """ return self.api_provider
[docs] def set_application_context(self, ctx): """ Set the application context All the subsequent calls made using this connector will use this as the application context in the ExecutionContext :type ctx: :class:`vmware.vapi.core.ApplicationContext` :param ctx: New application context """ self._application_ctx = ctx
[docs] def set_security_context(self, ctx): """ Set the security context All the subsequent calls made using this connector will use this as the security context in the ExecutionContext :type ctx: :class:`vmware.vapi.core.SecurityContext` :param ctx: New security context """ self._security_ctx = ctx
[docs] def new_context(self): """ create new execution context object :rtype: :class:`vmware.vapi.core.ExecutionContext` :return: execution context """ app_ctx = self._application_ctx # Create a default application context only if # the user has not provided anything if app_ctx is None: app_ctx = create_default_application_context() sec_ctx = self._security_ctx if sec_ctx is None: sec_ctx = SecurityContext() return ExecutionContext(app_ctx, sec_ctx)