Source code for vmware.vapi.stdlib.client.factories
"""
StubConfiguration factory
"""
__author__ = 'VMware, Inc.'
__copyright__ = 'Copyright (c) 2015 VMware, Inc. All rights reserved.'
import itertools
from vmware.vapi.bindings.error import VapiError
from vmware.vapi.bindings.stub import StubConfiguration
from com.vmware.vapi.std import errors_client
[docs]class StubConfigurationFactory(object):
"""
Factory class for creating stub configuration objects
"""
@staticmethod
[docs] def new_configuration(connector, *errorTypes):
"""
Return a stub configuration using the specified connection, with no
registered errors.
:type connector: :class:`vmware.vapi.protocol.client.connector.Connector`
:param connector: Connection to be used to talk to the remote
ApiProvider
:type error_types: :class:`list` of :class:`vmware.vapi.bindings.type.ErrorType`
:param error_types: error types to be registered in the configuration
"""
config = StubConfiguration(connector, *errorTypes)
return config
@staticmethod
[docs] def new_runtime_configuration(connector, *errorTypes):
"""
Return a stub configuration using the specified connection, with the
errors reported by the vAPI runtime registered.
:type connector: :class:`vmware.vapi.protocol.client.connector.Connector`
:param connector: Connection to be used to talk to the remote
ApiProvider
:type error_types: :class:`list` of :class:`vmware.vapi.bindings.type.ErrorType`
:param error_types: additional error types to be registered in the
configuration
"""
return StubConfigurationFactory.new_configuration(
connector,
errors_client.InternalServerError.get_binding_type(),
errors_client.InvalidArgument.get_binding_type(),
errors_client.OperationNotFound.get_binding_type(),
*errorTypes)
@staticmethod
[docs] def new_std_configuration(connector, *errorTypes):
"""
Return a stub configuration using the specified connection, with all the
standard errors registered.
:type connector: :class:`vmware.vapi.protocol.client.connector.Connector`
:param connector: Connection to be used to talk to the remote
ApiProvider
:type error_types: :class:`list` of :class:`vmware.vapi.bindings.type.ErrorType`
:param error_types: additional error types to be registered in the
configuration
"""
std_errors = (getattr(errors_client, name).get_binding_type()
for name in dir(errors_client)
if getattr(errors_client, name) is not VapiError
and isinstance(getattr(errors_client, name), type)
and issubclass(getattr(errors_client, name),
VapiError))
return StubConfigurationFactory.new_configuration(
connector,
*itertools.chain(std_errors, errorTypes))