Skip to content
Snippets Groups Projects
Commit 27479691 authored by Anders Blomdell's avatar Anders Blomdell
Browse files

Added possibility to have DHCP and static addresses

parent 57581457
No related branches found
No related tags found
No related merge requests found
......@@ -17,25 +17,36 @@ def get_uuid(device):
pass
def is_static(interface):
if interface._static_:
def interface_is_static(i):
if i._static_:
return True
if interface._ip_._dhcpserver_:
if i._ip_._dhcpserver_:
return True
if interface._ipv6_._dhcpserver_:
if i._ipv6_._dhcpserver_:
return True
return False
def address_is_static(a):
if interface_is_static(a._parent):
return True
if a.static[0] != None and a.static[0].lower() in [ 'yes', '1' ]:
return True
return False
def generate_ifcfgv4(tree, interface, search, nameservers):
config = []
if not is_static(interface):
if not interface_is_static(interface):
config.append('BOOTPROTO=dhcp')
pass
else:
config.append('BOOTPROTO=none')
pass
index = ''
for ip in filter(util.address, interface._ip_):
if not address_is_static(ip):
continue
a = util.address(ip)
netmask = None
network = None
......@@ -48,6 +59,7 @@ def generate_ifcfgv4(tree, interface, search, nameservers):
network = n.network
broadcast = n.broadcast
gateway = s.gateway[0]
if interface_is_static(interface):
if s.name_servers[0]:
nameservers.extend(re.split('[, ]+', s.name_servers[0]))
pass
......@@ -56,6 +68,7 @@ def generate_ifcfgv4(tree, interface, search, nameservers):
pass
pass
pass
pass
if ip.netmask[0]: netmask = ip.netmask[0]
if ip.network[0]: network = ip.network[0]
if ip.broadcast[0]: broadcast = ip.broadcast[0]
......@@ -76,13 +89,12 @@ def generate_ifcfgv4(tree, interface, search, nameservers):
pass
index = int('0%s' % index)+1
pass
pass
return config
def generate_ifcfgv6(tree, interface, search, nameservers):
config = []
if not is_static(interface):
if not interface_is_static(interface):
config.append('IPV6INIT=yes')
config.append('IPV6_AUTOCONF=yes')
config.append('IPV6_DEFROUTE=yes')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment