source: ogClient-Git/src/linux/ogOperations.py @ 0f32b9c

Last change on this file since 0f32b9c was 0f32b9c, checked in by Alvaro Neira Ayuso <alvaroneay@…>, 5 years ago

Catch execution errors during init session command

This patch allows us to catch an exception when something wrong is happening
executing the init session command. In error cases, ogClient sends an internal
error http message to the server. Otherwise, an OK http message.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1import os
2import subprocess
3
4OG_PATH = '/opt/opengnsys/'
5
6def poweroff():
7        if os.path.exists('/scripts/oginit'):
8                subprocess.call('source ' + OG_SCRIPT_PATH + 'etc/preinit/loadenviron.sh; ' + OG_SCRIPT_PATH + 'scripts/poweroff', shell=True)
9        else:
10                subprocess.call(['/sbin/poweroff'])
11
12def reboot():
13        if os.path.exists('/scripts/oginit'):
14                subprocess.call('source ' + OG_SCRIPT_PATH + 'etc/preinit/loadenviron.sh; ' + OG_SCRIPT_PATH + 'scripts/reboot', shell=True)
15        else:
16                subprocess.call(['/sbin/reboot'])
17
18def execCMD(httpparser):
19        cmd = httpparser.getCMD()
20        cmds = cmd.split(" ")
21        try:
22                result = subprocess.check_output(cmds)
23        except:
24                raise ValueError('Error: Incorrect command value')
25
26        return result.decode('utf-8')
27
28def procsession(httpparser):
29        disk = httpparser.getDisk()
30        partition = httpparser.getPartition()
31
32        try:
33                result = subprocess.check_output([OG_PATH + 'interfaceAdm/IniciarSesion', disk, partition], shell=True)
34        except:
35                raise ValueError('Error: Incorrect command value')
36
37        return result.decode('utf-8')
38
39def procsoftware(httpparser, path):
40        disk = httpparser.getDisk()
41        partition = httpparser.getPartition()
42
43        result = subprocess.check_output([OG_PATH + 'interfaceAdm/InventarioSoftware', disk, partition, path], shell=True)
44        return result.decode('utf-8')
45
46def prochardware(path):
47        result = subprocess.check_output([OG_PATH + 'interfaceAdm/InventarioHardware', path], shell=True)
48        return result.decode('utf-8')
49
50def procsetup(httpparser):
51        disk = httpparser.getDisk()
52        cache = httpparser.getCache()
53        cachesize = httpparser.getCacheSize()
54        partlist = httpparser.getPartitionSetup()
55
56        for part in partlist:
57                cfg = 'dis=' + disk + '*che=' + cache + '*tch=' + cachesize + '!par=' + part["partition"] + '*cpt='+part["code"] + '*sfi=' + part['filesystem'] + '*tam=' + part['size'] + '*ope=' + part['format'] + '%'
58                subprocess.check_output([OG_PATH + 'interfaceAdm/Configurar', disk, cfg], shell=True)
59
60def procirestore(httpparser):
61        disk = httpparser.getDisk()
62        partition = httpparser.getPartition()
63        name = httpparser.getName()
64        repo = httpparser.getRepo()
65        ctype = httpparser.getType()
66        profile = httpparser.getProfile()
67        cid = httpparser.getId()
68
69        result = subprocess.check_output([OG_PATH + 'interfaceAdm/RestaurarImagen', disk, partition, name, repo, ctype], shell=True)
70        return result.decode('utf-8')
Note: See TracBrowser for help on using the repository browser.