1
|
import platform
|
2
|
import logging
|
3
|
import getpass
|
4
|
from datetime import datetime
|
5
|
|
6
|
from api_client import send_data
|
7
|
|
8
|
|
9
|
def _get_metadata() -> dict:
|
10
|
logging.debug("getting computer metadata")
|
11
|
return {
|
12
|
"username": getpass.getuser(),
|
13
|
"hostname": platform.uname().node,
|
14
|
"timestamp": str(datetime.now())
|
15
|
}
|
16
|
|
17
|
|
18
|
def _send_payload_to_server(device: dict, status: str):
|
19
|
logging.debug("payload send preparation")
|
20
|
payload = _get_metadata()
|
21
|
payload["device"] = device
|
22
|
payload["status"] = status
|
23
|
send_data(payload)
|
24
|
|
25
|
|
26
|
def usb_connected_callback(device: dict):
|
27
|
logging.info(f"Device {device} has been connected")
|
28
|
_send_payload_to_server(device, "connected")
|
29
|
|
30
|
|
31
|
def usb_disconnected_callback(device: dict):
|
32
|
logging.info(f"Device {device} has been disconnected")
|
33
|
_send_payload_to_server(device, "disconnected")
|