From 60803fe0ed3da3efc444b5f4b203f8fe1b16ca33 Mon Sep 17 00:00:00 2001 From: Alejandro Sirgo Rica Date: Mon, 27 May 2024 10:28:21 +0200 Subject: src: add cache info to the image/restore response Add a 'cache' field into the json payload the client sends to the server after a restore operation so the server can update the new cache contents. Resquest response structure: { ... 'cache': [ {'name': 'windows.img', 'size': 2432370213, checksum: '5d4dcc677bc19f40a647d0002f4ade90'}, {'name': 'linux.img', 'size': 243234534213, checksum: '3eb22f888f88a55ad954f55644e1192e'} ] ... } --- src/live/ogOperations.py | 8 ++++++++ src/ogRest.py | 7 ++----- src/virtual/ogOperations.py | 9 ++++++++- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/live/ogOperations.py b/src/live/ogOperations.py index d557fac..e8a3b40 100644 --- a/src/live/ogOperations.py +++ b/src/live/ogOperations.py @@ -452,6 +452,14 @@ class OgLiveOperations: logging.info('Image restore command OK') + json_dict = { + 'disk': request.getDisk(), + 'partition': request.getPartition(), + 'image_id': request.getId(), + 'cache': self._get_cache_contents(), + } + return json_dict + def image_create(self, request, ogRest): disk = int(request.getDisk()) partition = int(request.getPartition()) diff --git a/src/ogRest.py b/src/ogRest.py index ad57c8c..bd480a7 100644 --- a/src/ogRest.py +++ b/src/ogRest.py @@ -170,15 +170,12 @@ class ogThread(): def image_restore(client, request, ogRest): try: - ogRest.operations.image_restore(request, ogRest) + payload = ogRest.operations.image_restore(request, ogRest) except Exception as e: ogRest.send_internal_server_error(client, exc=e) return - json_body = jsonBody() - json_body.add_element('disk', request.getDisk()) - json_body.add_element('partition', request.getPartition()) - json_body.add_element('image_id', request.getId()) + json_body = jsonBody(payload) response = restResponse(ogResponses.OK, json_body, seq=client.seq) client.send(response.get()) diff --git a/src/virtual/ogOperations.py b/src/virtual/ogOperations.py index d40170e..1e2a682 100644 --- a/src/virtual/ogOperations.py +++ b/src/virtual/ogOperations.py @@ -457,7 +457,14 @@ class OgVirtualOperations: subprocess.run([f'umount {self.OG_IMAGES_PATH}'], shell=True) self.refresh(ogRest) - return True + json_dict = { + 'disk': request.getDisk(), + 'partition': request.getPartition(), + 'image_id': request.getId(), + 'cache': [], + } + + return json_dict def cache_delete(self, request, ogRest): raise NotImplementedError -- cgit v1.2.3-18-g5258