diff options
author | Javier Sánchez Parra <jsanchez@soleta.eu> | 2020-09-10 14:03:57 +0200 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2020-09-10 14:46:37 +0200 |
commit | c86eae48fedb6ab674b2def0daa4d5f709560a50 (patch) | |
tree | 018b7e8d98ba08d8903dbeeb6a5ed7c6df7c71d0 | |
parent | 36b5064970ea42a06a9ac9f8d91d45da00e45f89 (diff) |
#1004 Add new fields to /image/create response
Extend ogClient to include more information about the image that has been
created. This patch modifies ogClient to read an info file created by image
creation script, add this info to the JSON response and then remove the file.
Example of new /image/create response:
{
"disk": "1",
"partition": "1",
"code": "131",
"id": "1",
"name": "ubuntu",
"repository": "192.168.56.10",
"software": "Ubuntu 18.04.5 LTS \naccountsservice 0.6.45\n...",
"clonator": "PARTCLONE",
"compressor": "LZOP",
"filesystem": "EXTFS",
"datasize": 2100000
}
New fields are "clonator", "compressor", "filesystem" and "datasize".
-rw-r--r-- | src/linux/ogOperations.py | 15 | ||||
-rw-r--r-- | src/ogRest.py | 8 |
2 files changed, 21 insertions, 2 deletions
diff --git a/src/linux/ogOperations.py b/src/linux/ogOperations.py index 7f70f2b..204699a 100644 --- a/src/linux/ogOperations.py +++ b/src/linux/ogOperations.py @@ -239,9 +239,22 @@ class OgLinuxOperations: except: raise ValueError('Error: Incorrect command value') + with open('/tmp/image.info') as file_info: + line = file_info.readline().rstrip() + + image_info = {} + + (image_info['clonator'], + image_info['compressor'], + image_info['filesystem'], + image_info['datasize'], + image_info['clientname']) = line.split(':', 5) + + os.remove('/tmp/image.info') + self._restartBrowser(self._url) - return output.decode('utf-8') + return image_info def refresh(self, ogRest): self._restartBrowser(self._url_log) diff --git a/src/ogRest.py b/src/ogRest.py index 7e6d276..ff9cccb 100644 --- a/src/ogRest.py +++ b/src/ogRest.py @@ -191,7 +191,9 @@ class ogThread(): def image_create(client, path, request, ogRest): try: - ogRest.operations.image_create(path, request, ogRest) + image_info = ogRest.operations.image_create(path, + request, + ogRest) software = ogRest.operations.software(request, path, ogRest) except ValueError as err: response = restResponse(ogResponses.INTERNAL_ERR) @@ -207,6 +209,10 @@ class ogThread(): json_body.add_element('name', request.getName()) json_body.add_element('repository', request.getRepo()) json_body.add_element('software', software) + json_body.add_element('clonator', image_info['clonator']) + json_body.add_element('compressor', image_info['compressor']) + json_body.add_element('filesystem', image_info['filesystem']) + json_body.add_element('datasize', int(image_info['datasize'])) response = restResponse(ogResponses.OK, json_body) client.send(response.get()) |