[pytango] 11/122: beacon: fixed get_device_list when server_name is == to *

Sandor Bodo-Merle sbodomerle-guest at moszumanska.debian.org
Thu Sep 28 19:18:13 UTC 2017


This is an automated email from the git hooks/post-receive script.

sbodomerle-guest pushed a commit to tag v9.2.1
in repository pytango.

commit 9d54063bbb966ae99d910541a5102bbdb0ed3321
Author: Sébastien Petitdemange <sebastien.petitdemange at esrf.fr>
Date:   Fri Jul 8 11:28:34 2016 +0200

    beacon: fixed get_device_list when server_name is == to *
---
 src/boost/python/databaseds/db_access/beacon.py | 32 +++++++++++++++----------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/boost/python/databaseds/db_access/beacon.py b/src/boost/python/databaseds/db_access/beacon.py
index fa6fecc..887c31f 100644
--- a/src/boost/python/databaseds/db_access/beacon.py
+++ b/src/boost/python/databaseds/db_access/beacon.py
@@ -533,22 +533,28 @@ class beacon(object):
         return (result_long,result_str)
 
     @_info
-    def get_device_list(self,server_name, class_name ):
+    def get_device_list(self,server_name, class_name):
         if server_name == '*':
-            server_nodes = self._personal_2_node.values()
+            r_list = list()
+            for server_node in self._personal_2_node.values():
+                device_list = server_node.get('device')
+                r_list.extend(self._tango_name_from_class(device_list,class_name))
+            return r_list
+
+        server_node = self._personal_2_node.get(server_name)
+        if server_node is None:
+            return []
+        device_list = server_node.get('device')
+        return self._tango_name_from_class(device_list,class_name)
+    
+    def _tango_name_from_class(self,device_list,class_name):
+        m = re.compile(class_name.replace('*','.*'))
+        if isinstance(device_list,list) :
+            return [x.get('tango_name') for x in device_list if m.match(x.get('class',''))]
+        elif isinstance(device_list,dict) and m.match(device_list.get('class','')) :
+            return [device_list.get('tango_name')]
         else:
-            server_nodes = filter(None,[self._personal_2_node.get(server_name)])
-        if not server_nodes:
             return []
-        ret = list()
-        for server_node in server_nodes:
-            device_list = server_node.get('device')
-            m = re.compile(class_name.replace('*','.*'))
-            if isinstance(device_list,list) :
-                ret.extend([x.get('tango_name') for x in device_list if m.match(x.get('class',''))])
-            elif isinstance(device_list,dict) and m.match(device_list.get('class','')) :
-                ret.append(device_list.get('tango_name'))
-        return ret
     
     @_info
     def get_device_wide_list(self, wildcard):

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/pytango.git



More information about the debian-science-commits mailing list