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

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

Adding files to GUI

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