lxd-project/main.py

30 lines
867 B
Python
Raw Normal View History

2022-11-23 18:15:40 +00:00
import logging
import paramiko
2022-11-23 19:18:40 +00:00
import sshim_patch as sshim
import lxd_interface
2022-11-23 18:15:40 +00:00
import os
import re
import uuid
2022-11-23 18:15:40 +00:00
logging.basicConfig(level='DEBUG')
logger = logging.getLogger()
def connect_handler(script: sshim.Script):
instance_name = "instance-" + str(uuid.uuid4())
lxd_interface.create_instance(instance_name)
with paramiko.ProxyCommand(command_line=f'lxc exec {instance_name} -- /bin/bash') as proxy_command:
script.writeline(instance_name)
while True:
input_command = script.expect(None, echo=True) # TODO: change to false
proxy_command.send(input_command.encode())
script.sendall(proxy_command.recv(100)) # TODO: fix
script.writeline("Sent!")
2022-11-23 18:15:40 +00:00
server = sshim.Server(connect_handler, address='127.0.0.1', port=3022)
2022-11-23 18:15:40 +00:00
try:
server.run()
except KeyboardInterrupt:
server.stop()