summaryrefslogtreecommitdiffstats
path: root/src/linux/ogOperations.py
diff options
context:
space:
mode:
authorAlvaro Neira Ayuso <aneira@soleta.eu>2020-01-16 20:14:40 +0100
committerAlvaro Neira Ayuso <alvaroneay@gmail.com>2020-01-19 19:50:44 +0100
commitb5e182f7dd6e99b68de268e52cdc1395d82932ee (patch)
tree2cea53b17d9558dbde34cb34a3d7510bb9198ddf /src/linux/ogOperations.py
parentb2fd0b5fffbd60e986eebc03c3a24f06194b4368 (diff)
Add Refresh command
This patch allows us to execute refresh command using ogClient. This command gets all the configuration in our machine and send this information to the server. The format of the message that ogClient will send to the server will be: {"disk": "1", "partition_setup": [{"partition": "1", "code": "LINUX", "filesystem": "NTFS", "size": "498688", "format": "0"}, {"partition": "2", "code": "LINUX", "filesystem": "NTFS", "size": "498688", "format": "0"}, {"partition": "3", "code": "LINUX", "filesystem": "NTFS", "size": "498688", "format": "0"}]}
Diffstat (limited to 'src/linux/ogOperations.py')
-rw-r--r--src/linux/ogOperations.py54
1 files changed, 38 insertions, 16 deletions
diff --git a/src/linux/ogOperations.py b/src/linux/ogOperations.py
index 1788b1a..119db4e 100644
--- a/src/linux/ogOperations.py
+++ b/src/linux/ogOperations.py
@@ -11,6 +11,30 @@ import subprocess
OG_PATH = '/opt/opengnsys/'
+def parseGetConf(out):
+ listConfigs = []
+ disk = -1;
+
+ configs = out.split('\n')
+ configs = filter(None, configs)
+ for item in configs:
+ i = 0
+ json = {}
+ val = item.rstrip().split('\t')
+ while i < len(val):
+ val[i] = val[i].split('=')[1]
+ i += 1
+
+ json['partition'] = val[1]
+ json['code'] = val[4]
+ json['filesystem'] = val[2]
+ json['size'] = val[5]
+ json['format'] = val[6]
+ disk = val[0]
+ listConfigs.append(json)
+
+ return [disk, listConfigs]
+
def poweroff():
if os.path.exists('/scripts/oginit'):
subprocess.call('source ' + OG_SCRIPT_PATH + 'etc/preinit/loadenviron.sh; ' + OG_SCRIPT_PATH + 'scripts/poweroff', shell=True)
@@ -75,8 +99,6 @@ def procsetup(httpparser, ogRest):
listConfigs = []
for part in partlist:
- i = 0
- json = {}
cfg = 'dis=' + disk + '*che=' + cache + '*tch=' + cachesize + '!par=' + part["partition"] + '*cpt='+part["code"] + '*sfi=' + part['filesystem'] + '*tam=' + part['size'] + '*ope=' + part['format'] + '%'
if ogRest.terminated:
break
@@ -87,20 +109,8 @@ def procsetup(httpparser, ogRest):
except:
continue
- result = subprocess.check_output([OG_PATH + 'interfaceAdm/getConfiguration'], shell=True)
- val = result.decode('utf-8').rstrip().split('\t')
- while i < len(val):
- val[i] = val[i].split('=')[1]
- i += 1
-
- json['partition'] = val[1]
- json['code'] = val[4]
- json['filesystem'] = val[2]
- json['size'] = val[5]
- json['format'] = val[6]
- listConfigs.append(json)
-
- return listConfigs
+ result = subprocess.check_output([OG_PATH + 'interfaceAdm/getConfiguration'], shell=True)
+ return parseGetConf(result.decode('utf-8'))[1]
def procirestore(httpparser, ogRest):
disk = httpparser.getDisk()
@@ -141,3 +151,15 @@ def procicreate(path, httpparser, ogRest):
raise ValueError('Error: Incorrect command value')
return output.decode('utf-8')
+
+def procrefresh(ogRest):
+ listConfigs = []
+ disk = -1;
+
+ try:
+ ogRest.proc = subprocess.Popen([OG_PATH + 'interfaceAdm/getConfiguration'], stdout=subprocess.PIPE, shell=True)
+ (output, error) = ogRest.proc.communicate()
+ except:
+ raise ValueError('Error: Incorrect command value')
+
+ return parseGetConf(output.decode('utf-8'))