diff --git a/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py b/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py index e7455becd77d043cec2e49a3bd02e23f567f5978..f00be30ab836b2735b59c0b9c177ee450698a102 100644 --- a/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py +++ b/docker-compose/tango-prometheus-exporter/code/tango-prometheus-client.py @@ -6,7 +6,6 @@ from tango import Database, DeviceProxy, CmdArgType as ArgType, AttrDataFormat, import logging import json import fnmatch -import re from logstash_async.handler import AsynchronousLogstashHandler, LogstashFormatter logger = logging.getLogger() @@ -51,16 +50,6 @@ class ArchiverPolicy(object): continue device_list.append(cls.lower()) return device_list - - def multimember_device_list(config_devices: list) -> list: - """ Retrieve multimember devices if there are any regulare expressions in the policy file """ - multimember_devices = [] - for device in config_devices: - if re.match('.*/.*/[*]', device): - members = Database().get_device_member(device) - retrieved_devices = [f"{device[:-1]}{m}" for m in members] - multimember_devices += retrieved_devices - return multimember_devices def devices(self) -> list: """ Filter the device list from TangoDB following the lofar2-policy file """ @@ -68,11 +57,12 @@ class ArchiverPolicy(object): db_devices = self.device_list() # Devices listed in policy file config_devices = list(k.lower() for k in self.config["devices"].keys()) - # Multimember device list - multimember_devices = self.multimember_device_list(config_devices) - # Filter devices following policy file - devices = list( set(db_devices) & set(config_devices) ) # list intersection - devices += multimember_devices + # Match device names fetched from DB against device names in policy file + devices = [] + for config_dev in config_devices: + for db_dev in db_devices: + if fnmatch.fnmatch(db_dev, config_dev): + devices.append(db_dev) return devices def attribute_list(self, device_name: str, attribute_list: list) -> dict: