From ec4e0980f48e4a1377a7d677ee7f03ae36a3cc39 Mon Sep 17 00:00:00 2001 From: Marko Mecina <marko.mecina@univie.ac.at> Date: Thu, 1 Sep 2022 15:47:32 +0200 Subject: [PATCH] update handling of non-default arguments when calling start_pv --- Ccs/poolview_sql.py | 53 ++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/Ccs/poolview_sql.py b/Ccs/poolview_sql.py index a0972fa..7b2a1cb 100644 --- a/Ccs/poolview_sql.py +++ b/Ccs/poolview_sql.py @@ -280,35 +280,51 @@ class TMPoolView(Gtk.Window): def set_pool_from_pmgr(self): try: poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager']) + if not poolmgr: + return + pools = cfl.Functions(poolmgr, 'loaded_pools_export_func') + + if not pools: + self.logger.warning('No loaded pools found, nothing to view.') + return + for pool in pools: self.set_pool(pool[0]) - except: - return + + except Exception as err: + self.logger.exception(err) def set_pool(self, pool_name, pmgr_pools=None, instance=None): + if pool_name is None: + return + if not pmgr_pools: try: poolmgr = cfl.dbus_connection('poolmanager', cfl.communication['poolmanager']) if not poolmgr: - raise TypeError - self.Active_Pool_Info_append(cfl.Dictionaries(poolmgr, 'loaded_pools', pool_name)) + raise TypeError('No poolmanager instance found.') + try: + self.Active_Pool_Info_append(cfl.Dictionaries(poolmgr, 'loaded_pools', pool_name)) + except (dbus.DBusException, KeyError): + raise ValueError('No loaded pool {} found.'.format(pool_name)) + cfl.Functions(poolmgr, 'loaded_pools_func', self.active_pool_info.pool_name, self.active_pool_info) - except: + except Exception as err: + self.logger.warning(err) if '/' in pool_name: - pool_name = pool_name.split('/')[-1] - + pool_path = str(os.path.realpath(pool_name)) + # pool_name = pool_name.split('/')[-1] + else: + pool_path = pool_name # change_error - attribute = [str(os.path.realpath(pool_name)), int(round(time.time())), str(pool_name), False] + attribute = [pool_path, int(round(time.time())), str(pool_name), False] self.Active_Pool_Info_append(attribute) else: for pool in pmgr_pools: if pool_name == pool[2]: self.Active_Pool_Info_append(list(pool)) - #self.Active_Pool_Info_append(pmgr_pools[pool_name]) - #print(self.active_pool_info) - #print(type(self.active_pool_info)) - + # self.Active_Pool_Info_append(pmgr_pools[pool_name]) self._set_pool_list_and_display(instance=instance) if self.active_pool_info.live: @@ -320,7 +336,7 @@ class TMPoolView(Gtk.Window): # thread = threading.Thread(target = self.update_packets) # thread.daemon = True # thread.start() - return + # def set_queue(self, pool_name, pckt_queue): # # self.queues.update({pool_name: pckt_queue}) @@ -1452,6 +1468,7 @@ class TMPoolView(Gtk.Window): upper_limit = self.adj.get_upper() - self.adj.get_page_size() self.offset = int(min(upper_limit, self.adj.get_value() + scroll_lines)) else: + position = 0 for x, row in enumerate(self.shown_all_rows, start=0): if row[0] >= self.offset: position = x @@ -1997,6 +2014,7 @@ class TMPoolView(Gtk.Window): self.decoding_type = 'RMAP' new_session.close() return + # def get_pool_names(self, widget): # if self.pool is None: # return @@ -2847,7 +2865,7 @@ class TMPoolView(Gtk.Window): # Only to use Glib idle add and ignore_reply keyword at the same time def _set_list_and_display_Glib_idle_add(self, active_pool_info_mgr=None, instance=None): - if active_pool_info_mgr != None: + if active_pool_info_mgr is not None: GLib.idle_add(self._set_pool_list_and_display(active_pool_info_mgr, instance)) else: GLib.idle_add(self._set_pool_list_and_display(instance=instance)) @@ -3137,8 +3155,7 @@ class TMPoolView(Gtk.Window): self.refresh_treeview_active = True self.n_pool_rows = 0 - GLib.timeout_add(self.pool_refresh_rate * 1000, self.refresh_treeview_worker2, - pool_name) # , priority=GLib.PRIORITY_HIGH) + GLib.timeout_add(self.pool_refresh_rate * 1000, self.refresh_treeview_worker2, pool_name) # priority=GLib.PRIORITY_HIGH) # def refresh_treeview_worker(self, pool_name): # poolmgr = cfl.dbus_connection('poolmanager', cfl.communication ['poolmanager']) @@ -3538,10 +3555,12 @@ def run(pool_name): DBusGMainLoop(set_as_default=True) - pv = TMPoolView(pool_name=pool_name) + pv = TMPoolView() DBus_Basic.MessageListener(pv, bus_name, *sys.argv) + if pool_name is not None: + pv.set_pool(pool_name) Gtk.main() -- GitLab