def run(self, *commands, **kwargs):
threaded = kwargs.pop('threaded', False)
for server in self.servers:
if threaded:
[ThreadedRunner(server, *commands, **kwargs).start()
for server in self.servers]
else:
return [run(server, *commands, **kwargs)
for server in self.servers]
the variable server is ignored and is looped again. A loop of servers per server is done resulting in (number of servers) ^ 2 commands run.
for server in self.servers: