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

Last change on this file was 7795, checked in by hectorgh, 16 months ago

kind of dummy upgrade

File size: 1.5 KB
Line 
1import subprocess
2import os
3import lliurex.net
4import threading
5import time
6
7class EpoptesClient:
8       
9        def startup(self,options):
10               
11                if options["controlled"]:
12                        if options["boot"]:
13                                self.grab_epoptes_certificate_thread()
14                                self.disable_wol_thread()
15                                       
16        #def startup
17       
18        def grab_epoptes_certificate_thread(self):
19               
20                t=threading.Thread(target=self._grab_epoptes_certificate)
21                t.daemon=True
22                t.start()
23               
24        #def epoptes_daemon
25       
26        def _grab_epoptes_certificate(self):
27               
28                if os.system("host server > /dev/null")==0:
29                        # This class is defined in core.py
30                        sp=SystemProcess()
31                        sp.get_process_list()                   
32                        execute=False
33                        try:
34                                if not sp.find_process("epoptes-client -c"):
35                                        execute=True
36                        except:
37                                execute=False
38                               
39                        if execute:
40                                ip=self.get_server_ip()
41                                p=subprocess.Popen(["epoptes-client -c %s"%ip],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        def  _disable_wol(self):
55               
56                devices=lliurex.net.get_devices_info()
57                for dev in devices:
58                        os.system("ethtool -s %s wol g"%dev["name"])
59               
60        #def _disable_wol
61       
62        def get_server_ip(self):
63               
64                tries=4
65                for x in range(0,tries):
66                        ip=objects["VariablesManager"].get_variable("SRV_IP")
67                        if ip!=None:
68                                break
69                        time.sleep(1)
70                       
71                if ip==None:
72                        ip="server"
73                       
74                return ip
75               
76        #def get_server_ip
77       
78#class EpoptesClient
79
Note: See TracBrowser for help on using the repository browser.