live: validate checksum only once if image is already in cache

if image already exists in the cache, skip a second checksum validation.

log shows duplicated entries:

	Verifying checksum for example.img, please wait...
	Checksum is OK for example.img
	Verifying checksum for example.img, please wait...
	Checksum is OK for example.img

because tip_check_csum() is called twice in this case.
master
OpenGnSys Support Team 2024-07-30 16:15:20 +02:00
parent 1376b1900d
commit 1329c0955b
1 changed files with 15 additions and 10 deletions

View File

@ -212,15 +212,17 @@ class OgLiveOperations:
if not get_cache_dev_path():
raise OgError('No cache partition is mounted')
fetch = False
image_path = f'{OG_CACHE_IMAGE_PATH}{name}.img'
if (not os.path.exists(image_path) or
not tip_check_csum(repo, name)):
if (not os.path.exists(image_path) or not tip_check_csum(repo, name)):
self._copy_image_to_cache(name)
fetch = True
if (not os.path.exists(image_path)):
raise OgError(f'could not find {image_path} in cache')
if (not tip_check_csum(repo, name)):
raise OgError(f'Failed to validate checksum for {name}.img')
if fetch:
if (not os.path.exists(image_path)):
raise OgError(f'could not find {image_path} in cache')
if (not tip_check_csum(repo, name)):
raise OgError(f'Failed to validate checksum for {name}.img')
else:
if os.access(f'/opt/opengnsys/images', os.R_OK) == False:
raise OgError('Cannot access /opt/opengnsys/images in read mode, check permissions')
@ -234,18 +236,21 @@ class OgLiveOperations:
if not get_cache_dev_path():
raise OgError('No cache partition is mounted')
fetch = False
image_path = f'{OG_CACHE_IMAGE_PATH}{name}.img'
try:
if (not os.path.exists(image_path) or not tip_check_csum(repo, name)):
tip_client_get(repo, name)
fetch = True
except:
self._restartBrowser(self._url)
raise
if (not os.path.exists(image_path)):
raise OgError(f'could not find {image_path} in cache')
if (not tip_check_csum(repo, name)):
raise OgError(f'Failed to validate checksum for {name}.img')
if fetch:
if (not os.path.exists(image_path)):
raise OgError(f'could not find {image_path} in cache')
if (not tip_check_csum(repo, name)):
raise OgError(f'Failed to validate checksum for {name}.img')
self._restore_image(image_path, devpath)