Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37745164
en ru br
ALT Linux repos
S:0.0.4.1-alt17

Group :: Communications
RPM: x2gobroker

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: alt-iterate-listsessions.patch
Download


diff --git a/x2gobroker/brokers/base_broker.py b/x2gobroker/x2gobroker/brokers/base_broker.py
index 3de1426..297f6ee 100644
--- a/x2gobroker/brokers/base_broker.py
+++ b/x2gobroker/brokers/base_broker.py
@@ -1381,15 +1381,26 @@ class X2GoBroker(object):
         server_port = profile['sshport']
         # try to retrieve a remote broker agent
-        remote_agent = self.get_remote_agent(profile_id)
+        remote_agents = self.get_all_remote_agents(profile_id)
+        print(remote_agents)
+        remote_agent = {}
         # check for already running sessions for the given user (if any is given)
         session_list = []
-        if remote_agent and username:
-            try:
-                success, session_list = x2gobroker.agent.list_sessions(username=username, remote_agent=remote_agent)
-            except x2gobroker.x2gobroker_exceptions.X2GoBrokerAgentException:
-                session_list = []
+        if remote_agents and username:
+            for agent in remote_agents:
+                try:
+                    _, session_list_temp = x2gobroker.agent.list_sessions(username=username, remote_agent=agent)
+                    print(session_list_temp)
+                    if len(session_list_temp) > 0:
+                        # session list is not empty
+                        session_list.extend(session_list_temp)
+                        remote_agent = agent
+                except x2gobroker.x2gobroker_exceptions.X2GoBrokerAgentException:
+                    session_list_temp = []
+                    remote_agents.remove(agent)
+        if len(session_list) == 0 and len(remote_agents) > 0:
+            remote_agent = random.choice(remote_agents)
         session_info = None
 
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin