Compare commits

...

3 commits

Author SHA1 Message Date
pedro 6ba62b3cea remove requests dependency, use vanilla urllib 2024-10-15 13:32:36 +02:00
pedro 8c9b7983fe add lspci command
which was required by legacy server
2024-10-10 19:10:46 +02:00
pedro 3f4a23645d allow more response codes 2024-10-10 19:09:44 +02:00

View file

@ -6,9 +6,7 @@ import uuid
import hashlib
import argparse
import configparser
import requests
import urllib.request
from datetime import datetime
@ -249,11 +247,13 @@ def get_data(all_disks):
lshw = 'sudo lshw -json'
hwinfo = 'sudo hwinfo --reallyall'
dmidecode = 'sudo dmidecode'
lspci = 'sudo lspci -vv'
data = {
'lshw': json.loads(exec_cmd(lshw) or "{}"),
'disks': smartctl(all_disks),
'hwinfo': exec_cmd(hwinfo),
'dmidecode': exec_cmd(dmidecode)
'dmidecode': exec_cmd(dmidecode),
'lspci': exec_cmd(lspci)
}
return data
@ -302,25 +302,32 @@ def send_snapshot_to_devicehub(snapshot, token, url):
"Content-Type": "application/json"
}
try:
response = requests.post(url, data=json.dumps(snapshot), headers=headers)
if response.status_code == 200:
data = json.dumps(snapshot).encode('utf-8')
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}'")
else:
txt = "workbench: ERROR: Failed to send snapshot. HTTP {}: {}".format(
response.status_code,
response.text
status_code,
response_text
)
raise Exception(txt)
try:
res = json.loads(response.text)
if res.get('public_url'):
qr = "echo {} | qrencode -t ANSI".format(res['public_url'])
response = json.loads(response_text)
if response.get('public_url'):
# apt install qrencode
qr = "echo {} | qrencode -t ANSI".format(response['public_url'])
print(exec_cmd(qr))
if res.get("dhid"):
print(res['dhid'])
print("public_url: {}".format(response['public_url']))
if response.get("dhid"):
print("dhid: {}".format(response['dhid']))
except Exception:
print(response.text)
print(response_text)
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}")