SolarEnergy/python_device/src/api.py

41 lines
1.2 KiB
Python
Raw Normal View History

2024-06-29 16:05:58 +00:00
import requests
from src.args import args
2024-07-01 19:10:45 +00:00
import src.constants as constants
2024-06-29 16:05:58 +00:00
def get_secure_origin() -> str:
res = requests.get(f"{args.unsecure_origin}/secure_origin")
if res.status_code < 200 or res.status_code > 299:
raise Exception(f"Get secure origin failed with status {res.status_code}")
2024-06-29 16:08:57 +00:00
return res.text
2024-07-01 19:10:45 +00:00
2024-06-29 16:08:57 +00:00
def get_root_ca() -> str:
2024-07-01 19:10:45 +00:00
res = requests.get(f"{args.unsecure_origin}/pki/root_ca.crt")
2024-06-29 16:08:57 +00:00
if res.status_code < 200 or res.status_code > 299:
raise Exception(f"Get root CA failed with status {res.status_code}")
return res.text
2024-07-01 19:10:45 +00:00
def device_info():
"""
Get device information to return with enrollment and sync requests
"""
return {
"reference": constants.DEV_REFERENCE,
"version": constants.DEV_VERSION,
"max_relays": len(args.relay_gpios_list),
}
def enroll_device(csr: str) -> str:
res = requests.post(
f"{args.secure_origin}/devices_api/mgmt/enroll",
json={"csr": csr, "info": device_info()},
verify=args.root_ca_path,
)
if res.status_code < 200 or res.status_code > 299:
print(res.text)
raise Exception(f"Enrollment failed with status {res.status_code}")
return res.text