source: lliurex-zero-shutdown-client/trunk/fuentes/lliurex-zero-shutdown-client.install-files/usr/share/n4d/python-plugins/ShutdownerClient.py @ 5395

Last change on this file since 5395 was 5395, checked in by hectorgh, 21 months ago

wip

File size: 1.6 KB
Line 
1
2import sys
3import os
4
5
6class ShutdownerClient:
7       
8        cronfile="/etc/cron.d/lliurexshutdown"
9        lliurexshutdown="/usr/bin/lliurexshutdown"
10       
11        def __init__(self):
12               
13                pass
14               
15        #def init
16       
17        def startup(self,options):
18               
19                self.shutdowner_var=objects["VariablesManager"].get_variable("SHUTDOWNER")
20                self.server_trigger(self.shutdowner_var)
21               
22                objects["VariablesManager"].register_trigger("SHUTDOWNER","ShutdownerClient",self.server_trigger)
23               
24        #def startup
25       
26        def server_trigger(self,value):
27
28                if value["cron_enabled"]:
29                        if value["cron_content"]!=None:
30                                f=open(ShutdownerClient.cronfile,"w")
31                                f.write(value["cron_content"])
32                                f.close()
33                else:
34                        os.remove(ShutdownerClient.cronfile)
35               
36                if value["shutdown_signal"] > self.shutdowner_var["shutdown_signal"]:
37                        self.shutdown()
38               
39        #def server_trigger
40       
41       
42        def shutdown_cron(self,min,hour,monthday,month,weekday,aux_cronfile=cronfile):
43               
44                try:
45                        os.system('echo "%s %s %s %s %s root %s >> /var/log/syslog" > %s' %(min,hour,monthday,month,weekday,self.lliurexshutdown,aux_cronfile))
46                       
47                        COMMENT_END = "You have implemented new shutdown file in: %s" %(aux_cronfile)
48                        return [True,str(COMMENT_END)]
49       
50                except Exception as e:
51
52                        return [False,str(e)]   
53                       
54        #def shutdown_cron
55       
56        def noshutdown_cron(self,aux_cronfile=cronfile):
57               
58                try:
59                        COMMENT_END = "No lliurexshutdown file configured."
60                        if os.path.exists(aux_cronfile):
61                                os.remove(aux_cronfile)
62                                COMMENT_END = "You have deactivated shutdown file" 
63                        return [True,str(COMMENT_END)]
64       
65                except Exception as e:
66
67                        return [False,str(e)]   
68                       
69        #def noshutdown_cron
70       
71        def shutdown(self):
72               
73                os.system('shutdown -h now')
74               
75        #def shutdownlist
Note: See TracBrowser for help on using the repository browser.