diff options
author | Alvaro Neira Ayuso <aneira@soleta.eu> | 2020-01-16 20:14:40 +0100 |
---|---|---|
committer | Alvaro Neira Ayuso <alvaroneay@gmail.com> | 2020-01-19 19:50:44 +0100 |
commit | b5e182f7dd6e99b68de268e52cdc1395d82932ee (patch) | |
tree | 2cea53b17d9558dbde34cb34a3d7510bb9198ddf /src/linux/ogOperations.py | |
parent | b2fd0b5fffbd60e986eebc03c3a24f06194b4368 (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.py | 54 |
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')) |