52 lines
1.2 KiB
Python
52 lines
1.2 KiB
Python
|
import random
|
||
|
from .connection import Connection
|
||
|
from .request import Request
|
||
|
|
||
|
|
||
|
def control_raise(con: Connection, signal: str):
|
||
|
req = Request("control", "raise")
|
||
|
req.add_param(signal)
|
||
|
con.request(req)
|
||
|
|
||
|
|
||
|
def control_exit(con: Connection, code=None):
|
||
|
req = Request("control", "exit")
|
||
|
if code:
|
||
|
req.add_param(code)
|
||
|
try:
|
||
|
con.request(req)
|
||
|
except RuntimeError:
|
||
|
pass # we expect the connection to get killed
|
||
|
|
||
|
|
||
|
def control_restart(con: Connection):
|
||
|
req = Request("control", "restart")
|
||
|
try:
|
||
|
con.request(req)
|
||
|
except RuntimeError:
|
||
|
pass # we expect the connection to get killed
|
||
|
|
||
|
|
||
|
def control_session_refresh(con: Connection):
|
||
|
res = con.request(Request("control", "session_refresh", req_id=random.randint(1, 2**64)))
|
||
|
|
||
|
# apply new password
|
||
|
password = res.get_data()[0]
|
||
|
con.change_password(password)
|
||
|
|
||
|
|
||
|
def control_shutdown(con: Connection):
|
||
|
req = Request("control", "shutdown")
|
||
|
try:
|
||
|
con.request(req)
|
||
|
except RuntimeError:
|
||
|
pass # we expect the connection to get killed
|
||
|
|
||
|
|
||
|
def control_reboot(con: Connection):
|
||
|
req = Request("control", "reboot")
|
||
|
try:
|
||
|
con.request(req)
|
||
|
except RuntimeError:
|
||
|
pass # we expect the connection to get killed
|