1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
from config import *
import os
from socket import *
class Network:
def __init__(self):
pass
def writeNetworkConfig(self):
# fixme restarting and updating the network too often. possible fix: check current config and execute only if changed :/
# fixme using interfaces.tmp instead of interfaces for now
fp = file('/etc/network/interfaces.tmp', 'w')
fp.write("auto eth0\n")
if (config.network.dhcp.value == "yes"):
fp.write("iface eth0 inet dhcp\n")
else:
fp.write("iface eth0 inet static\n")
fp.write(" address %d.%d.%d.%d\n" % tuple(config.network.ip.value))
fp.write(" netmask %d.%d.%d.%d\n" % tuple(config.network.netmask.value))
fp.write(" gateway %d.%d.%d.%d\n" % tuple(config.network.gateway.value))
fp.close()
def activateNetworkConfig(self):
import os
#os.system("/etc/init.d/networking restart")
def setDHCP(self, useDHCP):
if (useDHCP):
print "Using DHCP"
config.network.ip.enabled = False
config.network.netmask.enabled = False
config.network.gateway.enabled = False
config.network.dns.enabled = False
else:
print "NOT using DHCP"
config.network.ip.enabled = True
config.network.netmask.enabled = True
config.network.gateway.enabled = True
config.network.dns.enabled = True
def setIPNameserver(self, ip):
return
resolvconf = file('/etc/resolv.conf', 'w')
resolvconf.write("nameserver %d.%d.%d.%d" % tuple(ip))
resolvconf.close()
def setMACAddress(self, mac):
#os.system("echo ifconfig eth0 ether %02x:%02x:%02x:%02x:%02x:%02x" % tuple(mac))
pass
def setIPAddress(self, ip):
os.system("echo ifconfig eth0 %d.%d.%d.%d" % tuple(ip))
self.writeNetworkConfig()
def setGateway(self, ip):
os.system("echo route add default gw %d.%d.%d.%d" % tuple(ip))
self.writeNetworkConfig()
def setNetmask(self, ip):
os.system("echo ifconfig eth0 netmask %d.%d.%d.%d" % tuple(ip))
self.writeNetworkConfig()
def InitNetwork():
ipstr = gethostbyname(gethostname()).split('.')
ip = []
for i in ipstr:
ip.append(int(i))
config.network = ConfigSubsection()
config.network.dhcp = configElement_nonSave("config.network.dhcp", configSelection, 1, ("no", "yes"))
config.network.ip = configElement_nonSave("config.network.ip", configSequence, ip, (("."), (1,255)))
config.network.netmask = configElement_nonSave("config.network.netmask", configSequence, [255,255,255,0], (("."), (1,255)))
config.network.gateway = configElement_nonSave("config.network.gateway", configSequence, [192,168,1,3], (("."), (1,255)))
config.network.dns = configElement_nonSave("config.network.dns", configSequence, [192,168,1,3], (("."), (1,255)))
config.network.mac = configElement_nonSave("config.network.mac", configSequence, [00,11,22,33,44,55], ((":"), (1,255)))
#FIXME using this till other concept for this is implemented
#config.network.activate = configElement("config.network.activate", configSelection, 0, ("yes, sir", "you are my hero"))
#config.network.activate = configElement("config.network.activate", configSelection, 0, ("yes", "you are my hero"))
iNetwork = Network()
def writeNetworkConfig(configElement):
iNetwork.writeNetworkConfig()
def setIPAddress(configElement):
iNetwork.setIPAddress(configElement.value)
def setGateway(configElement):
iNetwork.setGateway(configElement.value)
def setNetmask(configElement):
iNetwork.setNetmask(configElement.value)
def setDHCP(configElement):
iNetwork.setDHCP(configElement.value)
def setIPNameserver(configElement):
iNetwork.setIPNameserver(configElement.value)
def setMACAddress(configElement):
iNetwork.setMACAddress(configElement.value)
# this will call the "setup-val" initial
config.network.dhcp.addNotifier(setDHCP)
config.network.ip.addNotifier(setIPAddress)
config.network.netmask.addNotifier(setNetmask)
config.network.gateway.addNotifier(setGateway)
config.network.dns.addNotifier(setIPNameserver)
config.network.mac.addNotifier(setMACAddress)
|