From 15ddb554f9a1c341915f2613d042bfac1587735e Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 8 Jan 2016 14:39:01 -0500 Subject: [PATCH] Have sessions deleted on disconnect When the shell session disconnects, destroy all dependent sessions. --- confluent_server/confluent/shellserver.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/confluent_server/confluent/shellserver.py b/confluent_server/confluent/shellserver.py index be7a36f1..6dea5345 100644 --- a/confluent_server/confluent/shellserver.py +++ b/confluent_server/confluent/shellserver.py @@ -37,6 +37,8 @@ class _ShellHandler(consoleserver.ConsoleHandler): def _got_disconnected(self): self.connectstate = 'closed' self._send_rcpts({'connectstate': self.connectstate}) + for session in self.livesessions: + session.destroy() @@ -103,6 +105,10 @@ class ShellSession(consoleserver.ConsoleSession): activesessions[(tenant, self.node)][self.sessionid] = _ShellHandler(self.node, self.configmanager) self.conshdl = activesessions[(self.configmanager.tenant, self.node)][self.sessionid] + def destroy(self): + del activesessions[(self.configmanager.tenant, self.node)][self.sessionid] + super(ShellSession, self).destroy() + def create(nodes, element, configmanager, inputdata): # For creating a resource, it really has to be handled # in httpapi/sockapi specially, like a console.