Added internet, RAM, and storage checkers
This commit is contained in:
parent
cd61ad3b21
commit
5afff59785
2 changed files with 55 additions and 1 deletions
|
|
@ -9,7 +9,7 @@ from openflexure_microscope.paths import (
|
||||||
PREFERRED_OPENFLEXURE_VAR_PATH,
|
PREFERRED_OPENFLEXURE_VAR_PATH,
|
||||||
)
|
)
|
||||||
|
|
||||||
from . import check_capture_reload, check_settings, check_picamera, check_sangaboard
|
from . import check_capture_reload, check_settings, check_picamera, check_sangaboard, check_system
|
||||||
|
|
||||||
# Paths for suggestions
|
# Paths for suggestions
|
||||||
LOGS_PATHS = [
|
LOGS_PATHS = [
|
||||||
|
|
@ -43,6 +43,7 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
error_sources = []
|
error_sources = []
|
||||||
|
|
||||||
|
error_sources.extend(check_system.main())
|
||||||
error_sources.extend(check_settings.main())
|
error_sources.extend(check_settings.main())
|
||||||
error_sources.extend(check_picamera.main())
|
error_sources.extend(check_picamera.main())
|
||||||
error_sources.extend(check_capture_reload.main())
|
error_sources.extend(check_capture_reload.main())
|
||||||
|
|
|
||||||
53
openflexure_microscope/rescue/check_system.py
Normal file
53
openflexure_microscope/rescue/check_system.py
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
from urllib.request import urlopen
|
||||||
|
from urllib.error import URLError
|
||||||
|
import psutil
|
||||||
|
|
||||||
|
from .error_sources import WarningSource
|
||||||
|
|
||||||
|
def internet_on():
|
||||||
|
test_urls = (
|
||||||
|
'https://build.openflexure.org', # Bath server
|
||||||
|
'https://openflexure.org' # GitHub pages
|
||||||
|
)
|
||||||
|
for url in test_urls:
|
||||||
|
try:
|
||||||
|
urlopen(url, timeout=10)
|
||||||
|
# If any test passes, return True
|
||||||
|
return True
|
||||||
|
except URLError:
|
||||||
|
pass
|
||||||
|
# If no test passed, return False
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
error_sources = []
|
||||||
|
|
||||||
|
# Check internet
|
||||||
|
if not internet_on():
|
||||||
|
error_sources.append(WarningSource(
|
||||||
|
"No internet connection detected. Updates may not be available."
|
||||||
|
))
|
||||||
|
|
||||||
|
# Check memory
|
||||||
|
mem = psutil.virtual_memory()
|
||||||
|
total_gb = mem.total / 1E9
|
||||||
|
|
||||||
|
if total_gb <= 1:
|
||||||
|
error_sources.append(WarningSource(
|
||||||
|
("Less than 1GB total memory available.",
|
||||||
|
"For small scans, or control from another device, this is usually fine.",
|
||||||
|
"\n More complex usage may require additional resources.")
|
||||||
|
))
|
||||||
|
|
||||||
|
# Check disks
|
||||||
|
data_partitions = [disk for disk in psutil.disk_partitions() if "rw" in disk.opts and disk.mountpoint != "/boot"]
|
||||||
|
for part in data_partitions:
|
||||||
|
usage = psutil.disk_usage(part.mountpoint)
|
||||||
|
if int(usage.percent) >= 90:
|
||||||
|
error_sources.append(WarningSource(
|
||||||
|
(f"Disk {part.device}, at {part.mountpoint} is {int(usage.percent)}% full.",
|
||||||
|
"Captures may fail to save soon.")
|
||||||
|
))
|
||||||
|
|
||||||
|
return error_sources
|
||||||
Loading…
Add table
Add a link
Reference in a new issue