From dcafce90cccde8ded121904e770b1a36db3481b6 Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Thu, 7 Oct 2021 07:00:16 +0200
Subject: [PATCH] L2SS-435: Move version_R to hardware_device to avoid code
 duplication.

---
 devices/devices/docker_device.py   | 2 --
 devices/devices/hardware_device.py | 3 +++
 devices/devices/opcua_device.py    | 1 -
 devices/devices/recv.py            | 2 --
 devices/devices/sdp/sdp.py         | 3 ---
 devices/devices/sdp/statistics.py  | 3 ---
 devices/devices/unb2.py            | 3 ---
 7 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/devices/devices/docker_device.py b/devices/devices/docker_device.py
index 81abc26ee..2acf7aeec 100644
--- a/devices/devices/docker_device.py
+++ b/devices/devices/docker_device.py
@@ -31,7 +31,6 @@ from clients.docker_client import DockerClient
 from clients.attribute_wrapper import attribute_wrapper
 from devices.hardware_device import hardware_device
 from common.lofar_logging import device_logging_to_python, log_exceptions
-from common.lofar_git import get_version
 
 __all__ = ["Docker", "main"]
 
@@ -50,7 +49,6 @@ class Docker(hardware_device):
     # ----------
     # Attributes
     # ----------
-    version_R = attribute(dtype=str, access=AttrWriteType.READ, fget=lambda self: get_version())
     archiver_maria_db_R = attribute_wrapper(comms_annotation={"container": "archiver-maria-db"}, datatype=numpy.bool_)
     archiver_maria_db_RW = attribute_wrapper(comms_annotation={"container": "archiver-maria-db"}, datatype=numpy.bool_, access=AttrWriteType.READ_WRITE)
     databaseds_R = attribute_wrapper(comms_annotation={"container": "databaseds"}, datatype=numpy.bool_)
diff --git a/devices/devices/hardware_device.py b/devices/devices/hardware_device.py
index 6b28fd7ab..4028181bd 100644
--- a/devices/devices/hardware_device.py
+++ b/devices/devices/hardware_device.py
@@ -20,6 +20,7 @@ from tango import DevState, DebugIt, Attribute, DeviceProxy
 
 from clients.attribute_wrapper import attribute_wrapper
 from common.lofar_logging import log_exceptions
+from common.lofar_git import get_version
 from devices.abstract_device import AbstractDeviceMetas
 from devices.device_decorators import only_in_states, fault_on_error
 
@@ -56,6 +57,8 @@ class hardware_device(Device, metaclass=AbstractDeviceMetas):
         The user triggers their transitions by the commands reflecting the target state (Initialise(), On(), Fault()).
     """
 
+    version_R = attribute(dtype=str, access=AttrWriteType.READ, fget=lambda self: get_version())
+
     # list of property names too be set first by set_defaults
     first_default_settings = []
 
diff --git a/devices/devices/opcua_device.py b/devices/devices/opcua_device.py
index d95a8426e..698df9570 100644
--- a/devices/devices/opcua_device.py
+++ b/devices/devices/opcua_device.py
@@ -29,7 +29,6 @@ from devices.device_decorators import *
 from clients.opcua_client import OPCUAConnection
 from devices.hardware_device import hardware_device
 from common.lofar_logging import device_logging_to_python, log_exceptions
-from common.lofar_git import get_version
 
 __all__ = ["opcua_device", "main"]
 
diff --git a/devices/devices/recv.py b/devices/devices/recv.py
index e28d40209..a078f601c 100644
--- a/devices/devices/recv.py
+++ b/devices/devices/recv.py
@@ -30,7 +30,6 @@ from device_decorators import *
 from clients.attribute_wrapper import attribute_wrapper
 from devices.opcua_device import opcua_device
 from common.lofar_logging import device_logging_to_python, log_exceptions
-from common.lofar_git import get_version
 
 __all__ = ["RECV", "main"]
 
@@ -61,7 +60,6 @@ class RECV(opcua_device):
     # ----------
     # Attributes
     # ----------
-    version_R = attribute(dtype=str, access=AttrWriteType.READ, fget=lambda self: get_version())
     Ant_mask_RW = attribute_wrapper(comms_annotation=["2:PCC", "2:Ant_mask_RW"], datatype=numpy.bool_, dims=(3, 32), access=AttrWriteType.READ_WRITE)
     CLK_Enable_PWR_R = attribute_wrapper(comms_annotation=["2:PCC", "2:CLK_Enable_PWR_R"], datatype=numpy.bool_)
     CLK_I2C_STATUS_R = attribute_wrapper(comms_annotation=["2:PCC", "2:CLK_I2C_STATUS_R"], datatype=numpy.int64)
diff --git a/devices/devices/sdp/sdp.py b/devices/devices/sdp/sdp.py
index 221afb245..693fab3a9 100644
--- a/devices/devices/sdp/sdp.py
+++ b/devices/devices/sdp/sdp.py
@@ -28,7 +28,6 @@ from clients.attribute_wrapper import attribute_wrapper
 from devices.opcua_device import opcua_device
 
 from common.lofar_logging import device_logging_to_python, log_exceptions
-from common.lofar_git import get_version
 
 import numpy
 
@@ -78,8 +77,6 @@ class SDP(opcua_device):
     # Attributes
     # ----------
 
-    version_R = attribute(dtype=str, access=AttrWriteType.READ, fget=lambda self: get_version())
-
     FPGA_beamlet_output_enable_R = attribute_wrapper(comms_annotation=["2:FPGA_beamlet_output_enable_R"], datatype=numpy.bool_, dims=(16,))
     FPGA_beamlet_output_enable_RW = attribute_wrapper(comms_annotation=["2:FPGA_beamlet_output_enable_RW"], datatype=numpy.bool_, dims=(16,), access=AttrWriteType.READ_WRITE)
     FPGA_beamlet_output_hdr_eth_destination_mac_R = attribute_wrapper(comms_annotation=["2:FPGA_beamlet_output_hdr_eth_destination_mac_R"], datatype=numpy.str, dims=(16,))
diff --git a/devices/devices/sdp/statistics.py b/devices/devices/sdp/statistics.py
index a884783dd..63f1cb0a7 100644
--- a/devices/devices/sdp/statistics.py
+++ b/devices/devices/sdp/statistics.py
@@ -31,7 +31,6 @@ from clients.attribute_wrapper import attribute_wrapper
 
 from devices.opcua_device import opcua_device
 
-from common.lofar_git import get_version
 from common.lofar_logging import device_logging_to_python, log_exceptions
 import logging
 
@@ -67,8 +66,6 @@ class Statistics(opcua_device, metaclass=ABCMeta):
     # Attributes
     # ----------
 
-    version_R = attribute(dtype = str, access = AttrWriteType.READ, fget = lambda self: get_version())
-
     # number of UDP packets and bytes that were received
     nof_packets_received_R  = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "udp", "parameter": "nof_packets_received"}, datatype=numpy.uint64)
     nof_bytes_received_R  = attribute_wrapper(comms_id=StatisticsClient, comms_annotation={"type": "udp", "parameter": "nof_bytes_received"}, datatype=numpy.uint64)
diff --git a/devices/devices/unb2.py b/devices/devices/unb2.py
index 83fb44ca9..e2f781a24 100644
--- a/devices/devices/unb2.py
+++ b/devices/devices/unb2.py
@@ -27,7 +27,6 @@ from clients.attribute_wrapper import attribute_wrapper
 from devices.opcua_device import opcua_device
 
 from common.lofar_logging import device_logging_to_python, log_exceptions
-from common.lofar_git import get_version
 
 import numpy
 
@@ -43,8 +42,6 @@ class UNB2(opcua_device):
     # Attributes
     # ----------
 
-    version_R = attribute(dtype=str, access=AttrWriteType.READ, fget=lambda self: get_version())
-
     N_unb = 2
     N_fpga = 4
     N_ddr = 2
-- 
GitLab