testplan.testing.multitest.driver.zmq package

Submodules

testplan.testing.multitest.driver.zmq.client module

ZMQClient Driver.

class testplan.testing.multitest.driver.zmq.client.ZMQClient(name: str, hosts, ports, message_pattern=<SocketType.PAIR: 0>, connect_at_start: bool = True, **options)[source]

Bases: testplan.testing.multitest.driver.base.Driver

The ZMQClient can make multiple connections to different ZMQServers. The socket can be of type:

  • zmq.PAIR
  • zmq.REQ
  • zmq.SUB
  • zmq.PULL

{emphasized_members_docs}

Parameters:
  • name (str) – Name of ZMQClient.
  • hosts (list of str) – List of ZMQServer hostnames to connect to. These can be ContextValue objects and will be expanded on runtime.
  • ports (list of int) – List of ZMQServer ports to connect to. These can be ContextValue objects and will be expanded on runtime. The port correspond to the host at the same index.
  • message_pattern (int) – Type of socket to create connection with. It can be zmq.PAIR (0), zmq.REQ (3), zmq.SUB (2) or zmq.PULL (7).
  • connect_at_start – If True the socket connects immediately after starting the ZMQClient.
CONFIG

alias of ZMQClientConfig

STATUS

alias of testplan.common.entity.base.ResourceStatus

abort()

Default abort policy. First abort all dependencies and then itself.

abort_dependencies()

Returns an empty generator.

aborted

Returns if entity was aborted.

aborting()[source]

Abort logic that stops the client.

active

Entity not aborting/aborted.

async_start

Overrides the default async_start value in config.

auto_start

If False, the resource will not be automatically started by its parent (generally, a Environment object) while the parent is starting.

cfg

Configuration object.

connect()[source]

Connect the client socket to all configured connections.

context

Key/value pair information of a Resource.

context_input(exclude: list = None) → Dict[str, Any]

All attr of self in a dict for context resolution

define_runpath()

Define runpath directory based on parent object and configuration.

disconnect()[source]

Disconnect the client socket from all configured connections if still connected.

errpath

Path for stderr file regexp matching.

extract_driver_metadata() → testplan.testing.multitest.driver.base.DriverMetadata

Extracts driver metadata as described in the extractor function.

Returns:driver metadata
extract_values() → Union[bool, testplan.common.entity.base.FailedAction]

Extract matching values from input regex configuration options.

failover() → None

API to create the failover resource, to be implemented in derived class

fetch_error_log() → List[str]

Fetch error message from the log files of driver, at first we can try self.errpath, if it does not exist, try self.logpath. Typically, several lines from the tail of file will be selected.

Returns:text from log file
classmethod filter_locals(local_vars)

Filter out init params of None value, they will take default value defined in its ConfigOption object; also filter out special vars that are not init params from local_vars.

Parameters:local_vars
flush()[source]

Flush the clients queue of messages by reconnecting.

force_started()

Change the status to STARTED (e.g. exception raised).

force_stopped()

Change the status to STOPPED (e.g. exception raised).

hosts

Hosts client connects to.

install_files() → None

Installs the files specified in the install_files parameter at the install target.

is_alive

Called to periodically poll the resource health. Default implementation assumes the resource is always healthy.

logger

logger object

logpath

Path for log regexp matching.

make_runpath_dirs()

Creates runpath related directories.

name

Driver name.

outpath

Path for stdout file regexp matching.

parent

Returns parent Entity.

pause()

Pauses entity execution.

pausing()

Pause the resource.

pending_work()

Resource has pending work.

ports

Ports of the associated hosts.

post_start()

Steps to be executed right after resource is started.

post_stop()

Steps to be executed right after resource is stopped.

pre_start() → None

Steps to be executed right before resource starts.

pre_stop()

Steps to be executed right before resource stops.

receive(timeout=30)[source]

Try to receive the message until it has either been received or hits timeout.

Parameters:timeout (int) – Timeout to retry receiving the message.
Returns:The received message.
Return type:bytes or zmq.sugar.frame.Frame or memoryview
reconnect()[source]

Disconnect and reconnect the client.

register_failover(klass: testplan.common.entity.base.Entity, params: dict) → None

Register a failover class to instantiate if resource start fails.

Parameters:
  • klass – failover class
  • params – parameters for failover class __init__ method
report

A handle to access the report via recursive parent

restart()

Stop and start the resource.

resume()

Resumes entity execution.

resuming()

Resume the resource.

runpath

Path to be used for temp/output files by entity.

scratch

Path to be used for temp files by entity.

send(data, timeout=30)[source]

Try to send the message until it either sends or hits timeout.

Parameters:
  • data (bytes or zmq.sugar.frame.Frame or memoryview) – The content of the message.
  • timeout (int) – Timeout to retry sending the message.
Returns:

None

Return type:

NoneType

start()

Triggers the start logic of a Resource by executing :py:meth: Resource.starting <testplan.common.entity.base.Resource.starting> method.

started_check() → Union[bool, testplan.common.entity.base.FailedAction]

Predicate indicating whether driver has fully started.

Default implementation tests whether certain pattern exists in driver loggings, always returns True if no pattern is required.

started_check_interval

Driver started check interval. In practice this value is lower-bounded by 0.1 seconds.

starting()[source]

Start the ZMQ client.

status

Status object.

stop()

Triggers the stop logic of a Resource by executing :py:meth: Resource.stopping <testplan.common.entity.base.Resource.stopping> method.

stopped_check() → Union[bool, testplan.common.entity.base.FailedAction]

Predicate indicating whether driver has fully stopped.

Default implementation immediately returns True.

stopped_check_interval

Driver stopped check interval.

stopping()[source]

Stop the ZMQ client.

subscribe(topic_filter)[source]

Subscribe the client to receive messages where the prefix of the message matches the topic filter. Only for SUBSCRIBE clients.

Parameters:topic_filter (str) – String to filter received messages by.
timer
uid() → str

Driver uid.

unsubscribe(topic_filter)[source]

Unsubscribe the client from a particular filter. Only for SUBSCRIBE clients.

Parameters:topic_filter (str) – Filter to be removed.
wait(target_status, timeout=None)

Wait until objects status becomes target status.

Parameters:
  • target_status (str) – expected status
  • timeout (int or NoneType) – timeout in seconds
class testplan.testing.multitest.driver.zmq.client.ZMQClientConfig(**options)[source]

Bases: testplan.testing.multitest.driver.base.DriverConfig

Configuration object for ZMQClient driver.

classmethod build_schema()

Build a validation schema using the config options defined in this class and its parent classes.

static default_metadata_extractor(driver) → testplan.testing.multitest.driver.base.DriverMetadata
denormalize()

Create new config object that inherits all explicit attributes from its parents as well.

get_local(name, default=None)

Returns a local config setting (not from container)

classmethod get_options()[source]

Schema for options validation and assignment of default values.

ignore_extra_keys = False
parent

Returns the parent configuration.

set_local(name, value)

set without any check

testplan.testing.multitest.driver.zmq.server module

ZMQServer Driver.

class testplan.testing.multitest.driver.zmq.server.ZMQServer(name: str, host: str = 'localhost', port: int = 0, message_pattern=<SocketType.PAIR: 0>, **options)[source]

Bases: testplan.testing.multitest.driver.base.Driver

The ZMQServer can receive multiple connections from different ZMQClients. The socket can be of type:

  • zmq.PAIR
  • zmq.REP
  • zmq.PUB
  • zmq.PUSH

{emphasized_members_docs}

Parameters:
  • name (str) – Name of ZMQServer.
  • host (str) – Host name to bind to. Default: ‘localhost’
  • port (int) – Port number to bind to. Default: 0 (Random port)
  • message_pattern (int) – Message pattern. Default: zmq.PAIR
CONFIG

alias of ZMQServerConfig

STATUS

alias of testplan.common.entity.base.ResourceStatus

abort()

Default abort policy. First abort all dependencies and then itself.

abort_dependencies()

Returns an empty generator.

aborted

Returns if entity was aborted.

aborting()[source]

Abort logic that stops the server.

active

Entity not aborting/aborted.

async_start

Overrides the default async_start value in config.

auto_start

If False, the resource will not be automatically started by its parent (generally, a Environment object) while the parent is starting.

cfg

Configuration object.

context

Key/value pair information of a Resource.

context_input(exclude: list = None) → Dict[str, Any]

All attr of self in a dict for context resolution

define_runpath()

Define runpath directory based on parent object and configuration.

errpath

Path for stderr file regexp matching.

extract_driver_metadata() → testplan.testing.multitest.driver.base.DriverMetadata

Extracts driver metadata as described in the extractor function.

Returns:driver metadata
extract_values() → Union[bool, testplan.common.entity.base.FailedAction]

Extract matching values from input regex configuration options.

failover() → None

API to create the failover resource, to be implemented in derived class

fetch_error_log() → List[str]

Fetch error message from the log files of driver, at first we can try self.errpath, if it does not exist, try self.logpath. Typically, several lines from the tail of file will be selected.

Returns:text from log file
classmethod filter_locals(local_vars)

Filter out init params of None value, they will take default value defined in its ConfigOption object; also filter out special vars that are not init params from local_vars.

Parameters:local_vars
force_started()

Change the status to STARTED (e.g. exception raised).

force_stopped()

Change the status to STOPPED (e.g. exception raised).

host

Target host name.

install_files() → None

Installs the files specified in the install_files parameter at the install target.

is_alive

Called to periodically poll the resource health. Default implementation assumes the resource is always healthy.

logger

logger object

logpath

Path for log regexp matching.

make_runpath_dirs()

Creates runpath related directories.

name

Driver name.

outpath

Path for stdout file regexp matching.

parent

Returns parent Entity.

pause()

Pauses entity execution.

pausing()

Pause the resource.

pending_work()

Resource has pending work.

port

Port number assigned.

post_start()

Steps to be executed right after resource is started.

post_stop()

Steps to be executed right after resource is stopped.

pre_start() → None

Steps to be executed right before resource starts.

pre_stop()

Steps to be executed right before resource stops.

receive(timeout=30)[source]

Try to send the message until it either has been received or hits timeout.

Parameters:timeout (int) – Timeout to retry receiving the message
Returns:The received message
Return type:object or str or zmq.sugar.frame.Frame
register_failover(klass: testplan.common.entity.base.Entity, params: dict) → None

Register a failover class to instantiate if resource start fails.

Parameters:
  • klass – failover class
  • params – parameters for failover class __init__ method
report

A handle to access the report via recursive parent

restart()

Stop and start the resource.

resume()

Resumes entity execution.

resuming()

Resume the resource.

runpath

Path to be used for temp/output files by entity.

scratch

Path to be used for temp files by entity.

send(data, timeout=30)[source]

Try to send the message until it either sends or hits timeout.

Parameters:timeout (int) – Timeout to retry sending the message
socket

Returns the underlying zmq.sugar.socket.Socket object.

start()

Triggers the start logic of a Resource by executing :py:meth: Resource.starting <testplan.common.entity.base.Resource.starting> method.

started_check() → Union[bool, testplan.common.entity.base.FailedAction]

Predicate indicating whether driver has fully started.

Default implementation tests whether certain pattern exists in driver loggings, always returns True if no pattern is required.

started_check_interval

Driver started check interval. In practice this value is lower-bounded by 0.1 seconds.

starting()[source]

Start the ZMQServer.

status

Status object.

stop()

Triggers the stop logic of a Resource by executing :py:meth: Resource.stopping <testplan.common.entity.base.Resource.stopping> method.

stopped_check() → Union[bool, testplan.common.entity.base.FailedAction]

Predicate indicating whether driver has fully stopped.

Default implementation immediately returns True.

stopped_check_interval

Driver stopped check interval.

stopping()[source]

Stop the ZMQServer.

timer
uid() → str

Driver uid.

wait(target_status, timeout=None)

Wait until objects status becomes target status.

Parameters:
  • target_status (str) – expected status
  • timeout (int or NoneType) – timeout in seconds
class testplan.testing.multitest.driver.zmq.server.ZMQServerConfig(**options)[source]

Bases: testplan.testing.multitest.driver.base.DriverConfig

Configuration object for ZMQServer driver.

classmethod build_schema()

Build a validation schema using the config options defined in this class and its parent classes.

static default_metadata_extractor(driver) → testplan.testing.multitest.driver.base.DriverMetadata
denormalize()

Create new config object that inherits all explicit attributes from its parents as well.

get_local(name, default=None)

Returns a local config setting (not from container)

classmethod get_options()[source]

Schema for options validation and assignment of default values.

ignore_extra_keys = False
parent

Returns the parent configuration.

set_local(name, value)

set without any check

Module contents

ZMQDrivers.