diff options
-rw-r--r-- | src/linux/ogOperations.py | 6 | ||||
-rw-r--r-- | src/ogRest.py | 25 |
2 files changed, 24 insertions, 7 deletions
diff --git a/src/linux/ogOperations.py b/src/linux/ogOperations.py index e3dea5a..0034fd7 100644 --- a/src/linux/ogOperations.py +++ b/src/linux/ogOperations.py @@ -40,7 +40,11 @@ def procsoftware(httpparser, path): disk = httpparser.getDisk() partition = httpparser.getPartition() - result = subprocess.check_output([OG_PATH + 'interfaceAdm/InventarioSoftware', disk, partition, path], shell=True) + try: + result = subprocess.check_output([OG_PATH + 'interfaceAdm/InventarioSoftware', disk, partition, path], shell=True) + except: + raise ValueError('Error: Incorrect command value') + return result.decode('utf-8') def prochardware(path): diff --git a/src/ogRest.py b/src/ogRest.py index 08cdf35..90f58e7 100644 --- a/src/ogRest.py +++ b/src/ogRest.py @@ -68,9 +68,23 @@ class ogThread(): client.send(restResponse.getResponse(ogResponses.OK)) # Process software - def procsoftware(msgqueue, httpparser, path): - msgqueue.queue.clear() - msgqueue.put(ogOperations.procsoftware(httpparser, path)) + def procsoftware(client, httpparser, path): + try: + ogOperations.procsoftware(httpparser, path) + except ValueError as err: + client.send(restResponse.getResponse(ogResponses.INTERNAL_ERR)) + return + + jsonResp = jsonResponse() + jsonResp.addElement('disk', httpparser.getDisk()) + jsonResp.addElement('partition', httpparser.getPartition()) + + f = open(path, "r") + lines = f.readlines() + f.close() + jsonResp.addElement('software', lines[0]) + + client.send(restResponse.getResponse(ogResponses.OK, jsonResp)) # Process hardware def prochardware(msgqueue, path): @@ -172,9 +186,8 @@ class ogRest(): threading.Thread(target=ogThread.procsession, args=(client, httpparser,)).start() def process_software(self, client, httpparser): - path = '/tmp/CSft-' + client.ip + '-' + partition - threading.Thread(target=ogThread.procsoftware, args=(self.msgqueue, httpparser, path,)).start() - client.send(restResponse.getResponse(ogResponses.OK)) + path = '/tmp/CSft-' + client.ip + '-' + httpparser.getPartition() + threading.Thread(target=ogThread.procsoftware, args=(client, httpparser, path,)).start() def process_hardware(self, client): path = '/tmp/Chrd-' + client.ip |