source: n4d-epoptes-client/trunk/fuentes/install-files/usr/share/n4d/python-plugins/EpoptesClient.py @ 6034

Last change on this file since 6034 was 6034, checked in by hectorgh, 2 years ago

updated startup logic

File size: 1.3 KB
Line 
1import subprocess
2import os
3import lliurex.net
4import threading
5
6class EpoptesClient:
7       
8        def startup(self,options):
9               
10                if options["controlled"]:
11                        if options["boot"]:
12                                self.grab_epoptes_certificate_thread()
13                                self.disable_wol_thread()
14                                       
15        #def startup
16       
17        def grab_epoptes_certificate_thread(self):
18               
19                t=threading.Thread(target=self._grab_epoptes_certificate)
20                t.daemon=True
21                t.start()
22               
23        #def epoptes_daemon
24       
25        def _grab_epoptes_certificate(self):
26               
27                if os.system("host server > /dev/null")==0:
28                       
29                        execute=False
30                        p=subprocess.Popen(["ps aux | grep 'epoptes-client -c' | wc -l"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
31                        output=p.communicate()
32
33                        try:
34                                t=int(output[0].strip("\n"))
35                                if t<=1:
36                                        execute=True
37                        except:
38                                execute=False
39                               
40                       
41                        if execute:
42                                p=subprocess.Popen(["epoptes-client -c"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
43                                p.communicate()
44               
45        #def _grab_epoptes_certificate
46       
47        def disable_wol_thread(self):
48               
49                t=threading.Thread(target=self._disable_wol)
50                t.daemon=True
51                t.start()
52               
53        #def disable_wol_thread
54       
55       
56        def  _disable_wol(self):
57               
58                devices=lliurex.net.get_devices_info()
59                for dev in devices:
60                        os.system("ethtool -s %s wol g"%dev["name"])
61               
62        #def _disable_wol
63       
64#class EpoptesClient
65
Note: See TracBrowser for help on using the repository browser.