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))