From 9d8a95cc743853b60df47fbb08f51e2605fc2ad7 Mon Sep 17 00:00:00 2001 From: OpenGnSys Support Team Date: Thu, 4 Jul 2024 16:33:01 +0200 Subject: live: add checksum field to image/create response Report image checksum to ogserver through HTTP response. --- src/live/ogOperations.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/live/ogOperations.py') diff --git a/src/live/ogOperations.py b/src/live/ogOperations.py index 2d5146c..9c67728 100644 --- a/src/live/ogOperations.py +++ b/src/live/ogOperations.py @@ -157,15 +157,20 @@ class OgLiveOperations: m.update(buf) return m.hexdigest() - def _write_md5_file(self, path): + def _md5_file(self, path): + if not os.path.exists(path): + raise OgError(f'Failed to calculate checksum, image file {path} does not exist') + + return self._compute_md5(path) + + def _write_md5_file(self, path, checksum): if not os.path.exists(path): raise OgError(f'Failed to calculate checksum, image file {path} does not exist') filename = path + ".full.sum" - dig = self._compute_md5(path) try: with open(filename, 'w') as f: - f.write(dig) + f.write(checksum) except: logging.error(f'Cannot write checksum {filename}') return -1 @@ -585,9 +590,15 @@ class OgLiveOperations: logging.info(f'Writing checksum file {name}.img.full.sum...') logging.info('*DO NOT REBOOT OR POWEROFF* the client during this time') - if self._write_md5_file(f'/opt/opengnsys/images/{name}.img') == -1: + checksum = self._md5_file(f'/opt/opengnsys/images/{name}.img') + if checksum == -1: + raise OgError(f'Cannot access {name}.full.sum file') + + if self._write_md5_file(f'/opt/opengnsys/images/{name}.img', checksum) == -1: raise OgError(f'Cannot write {name}.full.sum file') + image_info.checksum = checksum + self._restartBrowser(self._url) logging.info('Image creation command OK') -- cgit v1.2.3-18-g5258