From f942b19eae90e9ca468cbe0a93e5dc9ad02b38d0 Mon Sep 17 00:00:00 2001 From: Alejandro Sirgo Rica Date: Fri, 4 Oct 2024 10:15:57 +0200 Subject: src: fix cache mount in new ogLive Mount cache in image_create() image_restore() and cache_fetch(). Remove init_cache() and ensure /opt/opengnsys/images/ exists within the cache mountpoint if it does not exists in cache_mount(). --- src/live/ogOperations.py | 8 +++++++- src/utils/cache.py | 23 ++++------------------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/src/live/ogOperations.py b/src/live/ogOperations.py index f02a54b..c372d2a 100644 --- a/src/live/ogOperations.py +++ b/src/live/ogOperations.py @@ -543,7 +543,7 @@ class OgLiveOperations: fs = part["filesystem"].lower() if fs == 'cache': - init_cache() + mount_cache() logging.info('Partition setup command OK') result = self.refresh(ogRest) @@ -562,6 +562,8 @@ class OgLiveOperations: cid = request.getId() partdev = get_partition_device(disk, partition) + mount_cache() + self._ogbrowser_clear_logs() self._restartBrowser(self._url_log) @@ -600,6 +602,8 @@ class OgLiveOperations: backup = request.getBackup() image_path = f'/opt/opengnsys/images/{name}.img' + mount_cache() + self._ogbrowser_clear_logs() self._restartBrowser(self._url_log) @@ -772,6 +776,8 @@ class OgLiveOperations: repo = request.getRepo() ctype = request.getType() + mount_cache() + logging.info(f'Request to cache image {image}.img via {ctype} from {repo}') if ctype == 'UNICAST': diff --git a/src/utils/cache.py b/src/utils/cache.py index 6358c6a..ea32f8b 100644 --- a/src/utils/cache.py +++ b/src/utils/cache.py @@ -19,16 +19,13 @@ OG_CACHE_IMAGE_PATH = OG_CACHE_PATH + OG_IMAGE_PATH OGCLIENT_LOG_CACHE='/opt/opengnsys/log/{ip}.cache.txt' def mount_cache(): - """ - Probes for cache and mounts if succesful. - - Returns the mountpoint or an empty string. - """ cache_dev = get_cache_dev_path() if cache_dev: - # cache_target = cache_dev.replace('dev', 'mnt') - mount_mkdir(cache_dev, OG_CACHE_PATH) + cache_mounted = mount_mkdir(cache_dev, OG_CACHE_PATH) + + if cache_mounted and not os.path.exists(OG_CACHE_IMAGE_PATH): + os.makedirs(OG_CACHE_IMAGE_PATH) return OG_CACHE_PATH return '' @@ -69,15 +66,3 @@ def generate_cache_txt(): return content = ','.join(files) write_cache_txt(content) - - -def init_cache(): - """ - If a cache partition is present, creates the following directories - /opt/opengnsys/images. This is the default folder in which images - are stored when using tiptorrent-cache. - """ - mountpoint = mount_cache() - if mountpoint: - logging.info(f'Creating cache directory at {mountpoint}') - os.makedirs(f'{mountpoint}/opt/opengnsys/images') -- cgit v1.2.3-18-g5258