remove requests dependency, use vanilla urllib

This commit is contained in:
pedro 2024-10-15 13:32:36 +02:00
parent 2291d0994b
commit 1f88aae0ac
1 changed files with 18 additions and 13 deletions

View File

@ -6,9 +6,7 @@ import uuid
import hashlib import hashlib
import argparse import argparse
import configparser import configparser
import urllib.request
import requests
from datetime import datetime from datetime import datetime
@ -304,25 +302,32 @@ def send_snapshot_to_devicehub(snapshot, token, url):
"Content-Type": "application/json" "Content-Type": "application/json"
} }
try: try:
response = requests.post(url, data=json.dumps(snapshot), headers=headers) data = json.dumps(snapshot).encode('utf-8')
if 200 <= response.status_code < 300: request = urllib.request.Request(url, data=data, headers=headers)
with urllib.request.urlopen(request) as response:
status_code = response.getcode()
response_text = response.read().decode('utf-8')
if 200 <= status_code < 300:
print(f"workbench: INFO: Snapshot successfully sent to '{url}'") print(f"workbench: INFO: Snapshot successfully sent to '{url}'")
else: else:
txt = "workbench: ERROR: Failed to send snapshot. HTTP {}: {}".format( txt = "workbench: ERROR: Failed to send snapshot. HTTP {}: {}".format(
response.status_code, status_code,
response.text response_text
) )
raise Exception(txt) raise Exception(txt)
try: try:
res = json.loads(response.text) response = json.loads(response_text)
if res.get('public_url'): if response.get('public_url'):
qr = "echo {} | qrencode -t ANSI".format(res['public_url']) # apt install qrencode
qr = "echo {} | qrencode -t ANSI".format(response['public_url'])
print(exec_cmd(qr)) print(exec_cmd(qr))
if res.get("dhid"): print("public_url: {}".format(response['public_url']))
print(res['dhid']) if response.get("dhid"):
print("dhid: {}".format(response['dhid']))
except Exception: except Exception:
print(response.text) print(response_text)
except Exception as e: except Exception as e:
print(f"workbench: ERROR: Snapshot not remotely sent. URL '{url}' is unreachable. Do you have internet? Is your server up & running?\n {e}") print(f"workbench: ERROR: Snapshot not remotely sent. URL '{url}' is unreachable. Do you have internet? Is your server up & running?\n {e}")