source: n4d-matrix/trunk/install_server/usr/share/n4d/python-plugins/Matrix.py @ 1227

Last change on this file since 1227 was 1227, checked in by kbut, 3 years ago

add packages files

File size: 1.2 KB
Line 
1import ldap
2import ldap.sasl
3import ldap.modlist
4import xmlrpclib
5import os
6import json
7class Matrix:
8       
9        def __init__(self):
10                self.first_run = True
11        #def __init__
12
13        def n4d_cron(self,minute):
14                if self.first_run or ( minute % 60 == 0 ) :
15                        if self.first_run:
16                                self.first_run = False
17                        self.update_from_matrix()
18        #def n4d_cron
19
20        def update_from_matrix(self):
21                try:
22                        if not objects['SlapdManager'].test_ldap_connection():
23                                if not objects['SlapdManager'].connection_ldap():
24                                        return {"status":False,"msg":"Connection with ldap is not create"}
25                except:
26                        return 'Not initialized'
27                aux_file = open('/etc/matrix_config','r')
28                matrix_options = json.load(aux_file)
29                c = xmlrpclib.ServerProxy("https://" + matrix_options['server_ip'] + ":9779")
30                try:
31                        list_changes = c.get_users('','Matrix')
32                except:
33                        return "Server is down"
34                if list_changes[0][0] == 'ou=llxadmin,dc=ma5,dc=lliurex,dc=net':
35                        objects['SlapdManager'].recursive_delete(list_changes[0][0])
36               
37                for x in list_changes:
38                        aux_dic = {}
39                        aux_dic[x[0]]= x[1]
40                        objects['SlapdManager'].insert_dictionary(aux_dic)
41                return "Ok"
42                #return list_changes[0]
43
44
45if __name__ == '__main__':
46        a = Matrix()
47        a.update_from_matrix()
Note: See TracBrowser for help on using the repository browser.