source: zero-server-wizard/trunk/fuentes/install-files/usr/share/zero-server-wizard/types/slave/actions/015-network.py @ 5755

Last change on this file since 5755 was 5755, checked in by hectorgh, 2 years ago

adding replication interface support

File size: 2.7 KB
Line 
1#!/usr/bin/python
2
3import xmlrpclib
4import os.path
5
6
7def check_variables():
8       
9        if ("user" and "password") not in self.template:
10               
11                if "masterkey" not in self.template:
12                       
13                        return (False,"No authentication method found")
14
15                       
16        else:   
17                c=xmlrpclib.ServerProxy("https://"+self.template["remote_ip"]+":9779",allow_none=True)
18                ret=c.validate_user(self.template["user"],self.template["password"])
19                if not ret[0]:
20                        return(False,"User validation error")
21               
22
23
24        lst=["external_iface","internal_iface","srv_ip","internal_mask","external_mask","external_ip","external_gateway","external_mode","number_classroom","replication_iface"]
25        for item in lst:
26                if item not in self.template:
27                        print("\t[015-network] [!]" + item + " is missing from template. Aborting initialization")
28                        return (False,"[015-network] [!]" + item + " is missing from template. Aborting initialization")
29                       
30        return (True,"")
31       
32#def check_variables
33
34ret=check_variables()
35
36if ret[0]:
37       
38        try:
39                ip_server = self.template["remote_ip"]
40                if "user" in self.template:
41                        user=(self.template["user"],self.template["password"])
42                else:
43                        user=self.template["masterkey"]
44                c=xmlrpclib.ServerProxy("https://"+ip_server+":9779",allow_none=True)
45
46                internal_iface=self.template["internal_iface"]
47                internal_mask=self.template["internal_mask"]
48               
49                external_mask=self.template["external_mask"]
50                external_mode=self.template["external_mode"]
51                external_gateway=self.template["external_gateway"]
52                external_ip=self.template["external_ip"]
53                external_iface=self.template["external_iface"]
54                external_dns_search = self.template["srv_domain_name"]
55                srv_ip=self.template["srv_ip"]
56                number_classroom = self.template["number_classroom"]
57               
58                replication_iface=self.template["replication_iface"]
59                if "(" in replication_iface:
60                        replication_iface=external_iface+":42"
61
62                print c.load_network_file(user,'NetworkManager')
63                print c.set_internal_interface(user,'NetworkManager',internal_iface)
64                print c.set_external_interface(user,'NetworkManager',external_iface)
65               
66               
67                print c.interface_static(user,'NetworkManager',internal_iface,srv_ip,internal_mask,False,None,external_dns_search)
68               
69                if external_mode=="dhcp":
70                        print c.interface_dhcp(user,'NetworkManager',external_iface,False)
71                else:
72                        print c.interface_static(user,'NetworkManager',external_iface,external_ip,external_mask,False,external_gateway,external_dns_search)
73                print c.interface_static(user,'NetworkManager',replication_iface,'10.3.0.' + str(int(number_classroom)) ,'255.255.255.0',True )
74
75                # MOVED TO THE END OF THE  INITIALIZATION PROCESS
76                #print c.restart_interfaces(user,'NetworkManager')             
77               
78        except Exception as e:
79                print(e)
80                raise e
81       
82       
83else:
84        e=Exception()
85        e.message=ret[1]
86        raise e
Note: See TracBrowser for help on using the repository browser.