overhaul connect
This commit is contained in:
31
cvmsentry.py
31
cvmsentry.py
@@ -67,8 +67,8 @@ async def connect(vm_name: str):
|
|||||||
) as websocket:
|
) as websocket:
|
||||||
log.info(f"Connected to VM '{vm_name}' at {uri}")
|
log.info(f"Connected to VM '{vm_name}' at {uri}")
|
||||||
STATE = CollabVMState.WS_CONNECTED
|
STATE = CollabVMState.WS_CONNECTED
|
||||||
await websocket.send(guac_encode("rename", ""))
|
await send_guac(websocket, "rename", "")
|
||||||
await websocket.send(guac_encode("connect", vm_name))
|
await send_guac(websocket, "connect", vm_name)
|
||||||
if vm_name not in users:
|
if vm_name not in users:
|
||||||
users[vm_name] = {}
|
users[vm_name] = {}
|
||||||
# response = await websocket.recv()
|
# response = await websocket.recv()
|
||||||
@@ -76,16 +76,29 @@ async def connect(vm_name: str):
|
|||||||
decoded: Optional[List[str]] = guac_decode(str(message))
|
decoded: Optional[List[str]] = guac_decode(str(message))
|
||||||
match decoded:
|
match decoded:
|
||||||
case ["nop"]:
|
case ["nop"]:
|
||||||
await websocket.send(guac_encode("nop"))
|
await send_guac(websocket, "nop")
|
||||||
log.debug((f"({CollabVMState(STATE).name}) Received: {decoded}"))
|
|
||||||
case ["auth", config.auth_server]:
|
case ["auth", config.auth_server]:
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
await websocket.send(
|
await send_guac(websocket, "login", config.credentials["session_auth"])
|
||||||
guac_encode("login", config.credentials["session_auth"])
|
case ["connect", *rest]:
|
||||||
)
|
|
||||||
case ["connect", "1", "1", "1", "0"]:
|
|
||||||
STATE = CollabVMState.VM_CONNECTED
|
STATE = CollabVMState.VM_CONNECTED
|
||||||
log.debug((f"({CollabVMState(STATE).name} - {vm_name}) Connected"))
|
connection_status = "Connected" if rest[0] == "1" else "Disconnected" if rest[0] == "2" else "Connected"
|
||||||
|
turns_status = "Enabled" if rest[1] == "1" else "Disabled"
|
||||||
|
votes_status = "Enabled" if rest[2] == "1" else "Disabled"
|
||||||
|
uploads_status = "Enabled" if rest[3] == "1" else "Disabled"
|
||||||
|
log.debug(f"({STATE.name} - {vm_name}) {connection_status} | Turns: {turns_status} | Votes: {votes_status} | Uploads: {uploads_status}")
|
||||||
|
case ["rename", *instructions]:
|
||||||
|
match instructions:
|
||||||
|
case ["0", status, new_name]:
|
||||||
|
if CollabVMClientRenameStatus(int(status)) == CollabVMClientRenameStatus.SUCCEEDED:
|
||||||
|
log.debug(f"({STATE.name} - {vm_name}) Bot rename on VM {vm_name}: {vm_botuser[vm_name]} -> {new_name}")
|
||||||
|
vm_botuser[vm_name] = new_name
|
||||||
|
else:
|
||||||
|
log.debug(f"({STATE.name} - {vm_name}) Bot rename on VM {vm_name} failed with status {CollabVMClientRenameStatus(int(status)).name}")
|
||||||
|
case ["1", old_name, new_name]:
|
||||||
|
if old_name in users[vm_name]:
|
||||||
|
log.debug(f"({STATE.name} - {vm_name}) User rename on VM {vm_name}: {old_name} -> {new_name}")
|
||||||
|
users[vm_name][new_name] = users[vm_name].pop(old_name)
|
||||||
case ["login", "1"]:
|
case ["login", "1"]:
|
||||||
STATE = CollabVMState.LOGGED_IN
|
STATE = CollabVMState.LOGGED_IN
|
||||||
await send_chat_message(websocket, "RICHARD NIXON TO THE RESCUE")
|
await send_chat_message(websocket, "RICHARD NIXON TO THE RESCUE")
|
||||||
|
|||||||
Reference in New Issue
Block a user