Group :: Communications
RPM: x2gobroker
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: alt-iterate-listsessions.patch
Download
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