source: home-eraser/trunk/fuentes/home-eraser-gui.install/usr/share/home-eraser/N4dManager.py @ 7554

Last change on this file since 7554 was 7554, checked in by daduve, 17 months ago

Adding log

File size: 3.2 KB
Line 
1import xmlrpc.client
2import ssl
3import threading
4import time
5
6
7class N4dManager:
8       
9        def __init__(self,server=None):
10               
11                self.debug=True
12               
13                self.client=None
14                self.user_val=[]
15                self.user_groups=[]
16                self.validation=None
17                self.detected_clients=0
18                self.ips_connected=[]
19                ctxt=ssl._create_unverified_context()
20                self.client_log=xmlrpc.client.ServerProxy("https://server:9779",allow_none=True,context=ctxt)
21
22                if server!=None:
23                        self.set_server(server)
24               
25        #def init
26       
27        def lprint(self,validation,arg):
28               
29                self.client_log.lprint(validation,"HomeEraserServer", arg)
30               
31        #def_lprint
32       
33       
34        def mprint(self,msg):
35               
36                if self.debug:
37                        print("[HomeEraserN4DManager] %s"%str(msg))
38                       
39        #def mprint
40               
41       
42        def set_server(self,server):
43               
44                context=ssl._create_unverified_context()       
45                self.client=xmlrpc.client.ServerProxy("https://%s:9779"%server,allow_none=True,context=context)
46                self.mprint("Proxy: %s"%self.client)
47               
48        #def set_server
49       
50        def delete_net_homes(self,validation,groups_to_delete):
51                               
52                resume=[]
53               
54                try:
55                        context=ssl._create_unverified_context()
56                        tmp=xmlrpc.client.ServerProxy("https://server:9779",allow_none=True,context=context)
57                        resolve=tmp.delete_net_home(validation,"HomeEraserServer", groups_to_delete)
58                        if resolve[0]:
59                                resume=resolve[1]
60                                       
61                        return[True,resume]
62       
63                except Exception as e:
64                        print ("[HomeEraserN4DManager] ERROR: %s"%e)
65                        return [False,str(e)]   
66               
67        #def delete_net_homes
68       
69       
70       
71       
72       
73        def delete_clients_homes(self,validation,clients,groups_to_delete):
74                               
75                resume={}
76               
77                try:
78                        context=ssl._create_unverified_context()
79                        #Delete homes in Fat clients
80                        if ( len(clients) > 0 ):
81                                for ip in clients:
82                                        self.mprint("Deleting client: %s"%ip)
83                                        tmp=xmlrpc.client.ServerProxy("https://%s:9779"%ip,allow_none=True,context=context)
84                                        resolve=tmp.delete_home(validation,"HomeEraserClient", groups_to_delete)
85                                        if resolve[0]:
86                                                resume[ip]=resolve[1]
87                               
88                        #Delete homes in Server
89                        tmp=xmlrpc.client.ServerProxy("https://server:9779",allow_none=True,context=context)
90                        resolve=tmp.delete_home(validation,"HomeEraserServer", groups_to_delete)
91                        if resolve[0]:
92                                resume["server"]=resolve[1]
93                                       
94                        return[True,resume]
95       
96                except Exception as e:
97                        print ("[HomeEraserN4DManager] ERROR: %s"%e)
98                        return [False,str(e)]   
99               
100        #def delete_clients_homes
101       
102       
103       
104        def get_client_list(self):
105               
106                try:
107                        self.ips_connected=[]
108                        self.mprint(self.client.manual_client_list_check(self.user_val,"VariablesManager"))
109                        self.ret=self.client.get_client_list("","VariablesManager")
110                       
111                        count=0
112                        for item in self.ret:
113                                if self.ret[item]["missed_pings"]<1:
114                                        count+=1
115                                self.ips_connected.append(self.ret[item]["ip"])
116                                       
117                        self.detected_clients=count
118                        self.mprint("Clients connected N4D: %s"%self.detected_clients)
119                       
120                except Exception as e:
121                        print ("[HomeEraserN4DManager] ERROR: %s"%e)
122                        return [False,str(e)]   
123                       
124        #def get_client_list
125       
126       
127        def update_client_list_thread(self):
128               
129                try:
130                        while True:
131                                time.sleep(5)
132                                self.get_client_list()
133                                self.mprint("Clients connected Thread: %s"%self.detected_clients)
134               
135                except Exception as e:
136                        print ("[HomeEraserN4DManager] ERROR: %s"%e)
137                        return [False,str(e)]
138                       
139        #def update_client_list_thread
Note: See TracBrowser for help on using the repository browser.