libmuscle.manager.mmp_server module

class libmuscle.manager.mmp_server.MMPRequestHandler(logger: libmuscle.manager.logger.Logger, settings: ymmsl.settings.Settings, instance_registry: libmuscle.manager.instance_registry.InstanceRegistry, topology_store: libmuscle.manager.topology_store.TopologyStore)[source]

Bases: libmuscle.mcp.transport_server.RequestHandler

Handles Manager requests.

Create an MMPRequestHandler.

Parameters
  • logger – The Logger component to log messages to.

  • settings – The global settings to serve to instances.

  • instance_registry – The database for instances.

  • topology_store – Keeps track of how to connect things.

handle_request(request: bytes) bytes[source]

Handles a manager request.

Parameters

request – The encoded request

Returns

An encoded response

Return type

response

class libmuscle.manager.mmp_server.MMPServer(logger: libmuscle.manager.logger.Logger, settings: ymmsl.settings.Settings, instance_registry: libmuscle.manager.instance_registry.InstanceRegistry, topology_store: libmuscle.manager.topology_store.TopologyStore)[source]

Bases: object

The MUSCLE Manager Protocol server.

This class accepts connections from the instances comprising the multiscale model to be executed, and services them using an MMPRequestHandler.

Create an MMPServer.

This starts a TCP Transport server and connects it to an MMPRequestHandler, which uses the given components to service the requests. By default, we listen on port 9000, unless it’s not available in which case we use a random other one.

Parameters
  • logger – Logger to send log messages to

  • settings – Settings component to get settings from

  • instance_registry – To register instances with and get peer locations from

  • topology_store – To get peers and conduits from

get_location() str[source]

Returns this server’s network location.

This is a string of the form tcp:<hostname>:<port>.

stop() None[source]

Stops the server.

This makes the server stop serving requests, and shuts down its background threads.

libmuscle.manager.mmp_server.decode_operator(data: str) ymmsl.component.Operator[source]

Create an Operator from a MsgPack-compatible value.

libmuscle.manager.mmp_server.decode_port(data: List[str]) ymmsl.component.Port[source]

Create a Port from a MsgPack-compatible value.

libmuscle.manager.mmp_server.encode_conduit(conduit: ymmsl.model.Conduit) List[str][source]

Convert a Conduit to a MsgPack-compatible value.