From 5d1847d55499441be17d490bdad1e6e29d064d90 Mon Sep 17 00:00:00 2001 From: lukken <lukken@astron.nl> Date: Wed, 22 Sep 2021 08:11:52 +0000 Subject: [PATCH] L2SS-340: Some clean up and basic sst integration tests --- CDB/integration_ConfigDb.json | 2 +- devices/clients/statistics_client.py | 1 + devices/clients/tcp_replicator.py | 9 ++++----- devices/clients/udp_receiver.py | 16 ++++++++++------ devices/devices/sdp/sst.py | 6 ------ devices/devices/sdp/statistics.py | 1 - sbin/run_integration_test.sh | 6 +++++- 7 files changed, 21 insertions(+), 20 deletions(-) diff --git a/CDB/integration_ConfigDb.json b/CDB/integration_ConfigDb.json index a3e0bd8b0..37a8ea390 100644 --- a/CDB/integration_ConfigDb.json +++ b/CDB/integration_ConfigDb.json @@ -95,7 +95,7 @@ "5001" ], "Statistics_Client_TCP_Port": [ - "5002" + "5000" ], "OPC_Server_Name": [ "sdptr-sim" diff --git a/devices/clients/statistics_client.py b/devices/clients/statistics_client.py index fdbb80fe0..d3597147d 100644 --- a/devices/clients/statistics_client.py +++ b/devices/clients/statistics_client.py @@ -26,6 +26,7 @@ class StatisticsClient(CommClient): host: hostname to listen on port: port number to listen on """ + self.udp_options = udp_options self.tcp_options = tcp_options self.queuesize = queuesize diff --git a/devices/clients/tcp_replicator.py b/devices/clients/tcp_replicator.py index df5e173b1..79d2dfdf4 100644 --- a/devices/clients/tcp_replicator.py +++ b/devices/clients/tcp_replicator.py @@ -1,9 +1,8 @@ -from threading import Condition -from threading import Thread -from threading import Semaphore from queue import Empty from queue import Queue - +from threading import Condition +from threading import Semaphore +from threading import Thread import asyncio import logging @@ -226,7 +225,7 @@ class TCPReplicator(Thread, StatisticsClientThread): tcp_server = await loop.create_server( lambda: TCPReplicator.TCPServerProtocol(options, connected_clients), - options['tcp_bind'], options['tcp_port']) + options['tcp_bind'], options['tcp_port'], reuse_address=True) async def _process_queue(self): """Take a packet from the queue and reschedule this task""" diff --git a/devices/clients/udp_receiver.py b/devices/clients/udp_receiver.py index 1968028c8..aaa7fe49a 100644 --- a/devices/clients/udp_receiver.py +++ b/devices/clients/udp_receiver.py @@ -1,8 +1,8 @@ -from queue import Queue from queue import Full +from queue import Queue from threading import Thread -import numpy import logging +import numpy import socket import time @@ -18,6 +18,8 @@ class UDPReceiver(Thread, StatisticsClientThread): # Default options for UDPReceiver _default_options = { + "udp_host": None, + "udp_port": None, "poll_timeout": 0.1, } @@ -25,18 +27,20 @@ class UDPReceiver(Thread, StatisticsClientThread): self.collector_queue = collector_queue self.replicator_queue = replicator_queue - self.options = self._parse_options(options) - try: - self.host = self.options['udp_host'] + options['udp_host'] except KeyError: raise try: - self.port = self.options['udp_port'] + options['udp_port'] except KeyError: raise + self.options = self._parse_options(options) + + self.host = self.options['udp_host'] + self.port = self.options['udp_port'] self.poll_timeout = self.options['poll_timeout'] self.parameters = { diff --git a/devices/devices/sdp/sst.py b/devices/devices/sdp/sst.py index 792162fd5..62fbc260e 100644 --- a/devices/devices/sdp/sst.py +++ b/devices/devices/sdp/sst.py @@ -27,12 +27,6 @@ from tango import AttrWriteType from clients.attribute_wrapper import attribute_wrapper from clients.opcua_client import OPCUAConnection from clients.statistics_client import StatisticsClient - -from devices.hardware_device import hardware_device - -from common.lofar_git import get_version -from common.lofar_logging import device_logging_to_python, log_exceptions - from devices.sdp.statistics import Statistics from devices.sdp.statistics_collector import SSTCollector diff --git a/devices/devices/sdp/statistics.py b/devices/devices/sdp/statistics.py index ba6731ddc..71d19ee74 100644 --- a/devices/devices/sdp/statistics.py +++ b/devices/devices/sdp/statistics.py @@ -21,7 +21,6 @@ sys.path.append(parentdir) from abc import ABCMeta, abstractmethod # PyTango imports -from tango.server import run from tango.server import device_property, attribute from tango import AttrWriteType # Additional import diff --git a/sbin/run_integration_test.sh b/sbin/run_integration_test.sh index b2925b408..39d266ac1 100755 --- a/sbin/run_integration_test.sh +++ b/sbin/run_integration_test.sh @@ -6,10 +6,14 @@ if [ -z "$LOFAR20_DIR" ]; then exit 1 fi -# Start all required containers +# Restart all required containers cd "$LOFAR20_DIR/docker-compose" || exit 1 +make stop device-sdp device-pcc device-sst sdptr-sim pypcc-sim make start databaseds dsconfig device-sdp device-pcc device-sst jupyter elk sdptr-sim pypcc-sim +# Give dsconfig and databaseds time to start +sleep 15 + # Update the dsconfig cd "$TANGO_LOFAR_LOCAL_DIR" || exit 1 sbin/update_ConfigDb.sh CDB/integration_ConfigDb.json -- GitLab