mirror of https://git.48k.eu/ogclient
Add image/create command for creating a new image
This patch allows us to use a new support for creating images using ogClient. ogClient receives from the server a message which json body must be: {"disk" : "1", "partition" : "1", "code" : "1", "id" : "1", "name" : "test", "repository" : "192.168.2.4" } ogClient returns to the server the software inventory executed before create the image. The message for the server is: { "disk" : "0", "partition" : "1", "software" : "xyz" } "xyz" will be the output saved during the execution of InventarioSoftware in a specific path.more_events
parent
fdd4ba59c7
commit
b2fd0b5fff
|
@ -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')
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in New Issue