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

Last change on this file since 7563 was 7563, checked in by daduve, 2 years ago

Adding logging window

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