diff --git a/confluent_server/confluent/consoleserver.py b/confluent_server/confluent/consoleserver.py index ea0329d0..6b8a0e2f 100644 --- a/confluent_server/confluent/consoleserver.py +++ b/confluent_server/confluent/consoleserver.py @@ -767,8 +767,9 @@ class ConsoleSession(object): @classmethod async def create(cls, node, configmanager, username, datacallback=None, - skipreplay=False, direct=True, width=80, height=24): + skipreplay=False, direct=True, width=80, height=24, sessionid=None): self = cls() + self.sessionid = sessionid self.registered = False self.tenant = configmanager.tenant if not configmanager.is_node(node): diff --git a/confluent_server/confluent/httpapi.py b/confluent_server/confluent/httpapi.py index 8d91ce40..f8bff9dd 100644 --- a/confluent_server/confluent/httpapi.py +++ b/confluent_server/confluent/httpapi.py @@ -548,7 +548,7 @@ async def wsock_handler(req): auditlog.log(auditmsg) datacallback = datacallback_bound(clientsessid, rsp) if shellsession: - consession = shellserver.ShellSession( + consession = await shellserver.ShellSession.create( node=node, configmanager=cfgmgr, username=username, skipreplay=skipreplay, datacallback=datacallback, diff --git a/confluent_server/confluent/shellserver.py b/confluent_server/confluent/shellserver.py index 857b4d4b..cdcdcfe2 100644 --- a/confluent_server/confluent/shellserver.py +++ b/confluent_server/confluent/shellserver.py @@ -124,10 +124,9 @@ class ShellSession(consoleserver.ConsoleSession): @classmethod async def create(cls, node, configmanager, username, datacallback=None, skipreplay=False, sessionid=None, width=80, height=24): - self = await super().__init__(node, configmanager, username, + self = await super().create(node, configmanager, username, datacallback, skipreplay, - width=width, height=height) - self.sessionid = sessionid + width=width, height=height, sessionid=sessionid) return self