pip_services3_components.connect.ConnectionResolver module

pip_services3_components.connect.ConnectionResolver

Connection resolver implementation

copyright

Conceptual Vision Consulting LLC 2018-2019, see AUTHORS for more details.

license

MIT, see LICENSE for more details.

class pip_services3_components.connect.ConnectionResolver.ConnectionResolver(config: pip_services3_commons.config.ConfigParams.ConfigParams = None, references: pip_services3_commons.refer.IReferences.IReferences = None)

Bases: pip_services3_commons.config.IConfigurable.IConfigurable, pip_services3_commons.refer.IReferenceable.IReferenceable

Helper class to retrieve component connections.

If connections are configured to be retrieved from IDiscovery, it automatically locates IDiscovery in component references and retrieve connections from there using discovery_key parameter.

### Configuration parameters ###
  • connection:
    • discovery_key: (optional) a key to retrieve the connection from IDiscovery

    • … other connection parameters

  • connections: alternative to connection
    • [connection params 1]: first connection parameters

    • … connection parameters for key 1

    • [connection params N]: Nth connection parameters

    • … connection parameters for key N

### References ###
  • *:discovery:*:*:1.0 (optional) IDiscovery services to resolve connections

Example:

config = ConfigParams.from_tuples("connection.host", "10.1.1.100", "connection.port", 8080)

connectionResolver = ConnectionResolver()
connectionResolver.configure(config)
connectionResolver.set_references(references)
connectionResolver.resolve("123")
add(connection: pip_services3_components.connect.ConnectionParams.ConnectionParams)

Adds a new connection to component connections

Parameters

connection – new connection parameters to be added

configure(config: pip_services3_commons.config.ConfigParams.ConfigParams)

Configures component by passing configuration parameters.

Parameters

config – configuration parameters to be set.

get_all() → List[pip_services3_components.connect.ConnectionParams.ConnectionParams]

Gets all connections configured in component configuration. Redirect to Discovery services is not done at this point. If you need fully fleshed connection use resolve() method instead.

Returns

a list with connection parameters

register(correlation_id: Optional[str], connection: pip_services3_components.connect.ConnectionParams.ConnectionParams)

Registers the given connection in all referenced discovery services. This method can be used for dynamic service discovery.

Parameters
  • correlation_id – (optional) transaction id to trace execution through call chain.

  • connection – a connection to register.

resolve(correlation_id: Optional[str]) → Optional[pip_services3_components.connect.ConnectionParams.ConnectionParams]

Resolves a single component connection. If connections are configured to be retrieved from Discovery service it finds a IDiscovery and resolves the connection there.

Parameters

correlation_id – (optional) transaction id to trace execution through call chain.

Returns

resolved connection parameters or null if nothing was found.

resolve_all(correlation_id: Optional[str]) → List[pip_services3_components.connect.ConnectionParams.ConnectionParams]

Resolves all component connection. If connections are configured to be retrieved from Discovery service it finds a IDiscovery and resolves the connection there.

Parameters

correlation_id – (optional) transaction id to trace execution through call chain.

Returns

a list of resolved connections.

set_references(references: pip_services3_commons.refer.IReferences.IReferences)

Sets references to dependent components.

Parameters

references – references to locate the component dependencies.