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

Last change on this file since 6017 was 6017, checked in by hectorgh, 3 years ago

epoptes-client -c is blocking startups

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 -c' | wc -l"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
31                        output=p.communicate()
32                        try:
33                                t=int(output[0].strip("\n"))
34                                if t>1:
35                                        execute=True
36                        except:
37                                execute=False
38                               
39                       
40                        if execute:
41                                p=subprocess.Popen(["epoptes-client -c"],shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
42                                p.communicate()
43               
44        #def _grab_epoptes_certificate
45       
46        def disable_wol_thread(self):
47               
48                t=threading.Thread(target=self._disable_wol)
49                t.daemon=True
50                t.start()
51               
52        #def disable_wol_thread
53       
54       
55        def  _disable_wol(self):
56               
57                devices=lliurex.net.get_devices_info()
58                for dev in devices:
59                        os.system("ethtool -s %s wol g"%dev["name"])
60               
61        #def _disable_wol
62       
63#class EpoptesClient
64
Note: See TracBrowser for help on using the repository browser.