summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/linux/ogOperations.py23
-rw-r--r--src/ogRest.py20
2 files changed, 43 insertions, 0 deletions
diff --git a/src/linux/ogOperations.py b/src/linux/ogOperations.py
index 829af2f..1788b1a 100644
--- a/src/linux/ogOperations.py
+++ b/src/linux/ogOperations.py
@@ -118,3 +118,26 @@ def procirestore(httpparser, ogRest):
raise ValueError('Error: Incorrect command value')
return output.decode('utf-8')
+
+def procicreate(path, httpparser, ogRest):
+ disk = httpparser.getDisk()
+ partition = httpparser.getPartition()
+ name = httpparser.getName()
+ repo = httpparser.getRepo()
+
+ try:
+ ogRest.proc = subprocess.Popen([OG_PATH + 'interfaceAdm/InventarioSoftware', disk, partition, path], stdout=subprocess.PIPE, shell=True)
+ (output, error) = ogRest.proc.communicate()
+ except:
+ raise ValueError('Error: Incorrect command value')
+
+ if ogRest.terminated:
+ return
+
+ try:
+ ogRest.proc = subprocess.Popen([OG_PATH + 'interfaceAdm/CrearImagen', disk, partition, name, repo], stdout=subprocess.PIPE, shell=True)
+ ogRest.proc.communicate()
+ except:
+ raise ValueError('Error: Incorrect command value')
+
+ return output.decode('utf-8')
diff --git a/src/ogRest.py b/src/ogRest.py
index c0b886d..011f77e 100644
--- a/src/ogRest.py
+++ b/src/ogRest.py
@@ -151,6 +151,20 @@ class ogThread():
client.send(restResponse.getResponse(ogResponses.OK))
+ # Process image create
+ def procicreate(client, path, httpparser, ogRest):
+ try:
+ ogOperations.procicreate(path, httpparser, ogRest)
+ except ValueError as err:
+ client.send(restResponse.getResponse(ogResponses.INTERNAL_ERR))
+ return
+
+ f = open(path, "r")
+ lines = f.readlines()
+ f.close()
+ jsonResp.addElement('software', lines[0])
+ client.send(restResponse.getResponse(ogResponses.OK, jsonResp))
+
class ogResponses(Enum):
BAD_REQUEST=0
IN_PROGRESS=1
@@ -197,6 +211,8 @@ class ogRest():
self.process_irestore(client, httpparser)
elif ("stop" in URI):
self.process_stop(client)
+ elif ("image/create" in URI):
+ self.process_icreate(client, httpparser)
else:
client.send(restResponse.getResponse(ogResponses.BAD_REQUEST))
else:
@@ -251,3 +267,7 @@ class ogRest():
os.killpg(os.getpgid(self.proc.pid), signal.SIGTERM)
self.terminated = True
sys.exit(0)
+
+ def process_icreate(self, client, httpparser):
+ path = '/tmp/CSft-' + client.ip + '-' + httpparser.getPartition()
+ threading.Thread(target=ogThread.procicreate, args=(client, path, httpparser, self,)).start()