From 88a4e7b3cd6c2efb028dd2fba82997c5f879cbcf Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Thu, 20 Sep 2018 13:51:51 -0700 Subject: [PATCH] Consistent debian interface control flow Handle each interface type in its own if block and rely on the use of the if conditional to control flow rather than continues. This allows us to write the results once and is easier to read. Change-Id: I9aec63e7d85eac3704c2c6a5566b669ecc5bbf00 --- glean/cmd.py | 111 ++++++++++++++++++++++++--------------------------- 1 file changed, 53 insertions(+), 58 deletions(-) diff --git a/glean/cmd.py b/glean/cmd.py index 4ec01cb..40bda91 100644 --- a/glean/cmd.py +++ b/glean/cmd.py @@ -838,10 +838,8 @@ def write_debian_interfaces(interfaces, sys_interfaces): result += _write_debian_bond_conf(interface_name, interface, sys_interfaces) - files_to_write[iface_path] = result - continue - if interface['type'] == 'manual': + elif interface['type'] == 'manual': result += "iface {0} inet manual\n".format(interface_name) if 'bond_master' in interface: result += " bond-master {0}\n".format( @@ -850,65 +848,62 @@ def write_debian_interfaces(interfaces, sys_interfaces): result += _write_debian_bond_conf(interface_name, interface, sys_interfaces) - files_to_write[iface_path] = result - continue - if interface['type'] == 'ipv6': - link_type = "inet6" - elif interface['type'] == 'ipv4': - link_type = "inet" else: - link_type = None - - # We do not know this type of entry - if not link_type: - continue - - result += "iface {name} {link_type} static\n".format( - name=interface_name, link_type=link_type) - if vlan_raw_device: - result += " vlan-raw-device {0}\n".format(vlan_raw_device) - if 'bond_master' in interface: - result += " bond-master {0}\n".format( - interface['bond_master']) - if 'bond_mode' in interface: - result += _write_debian_bond_conf(interface_name, - interface, - sys_interfaces) - result += " address {0}\n".format(interface['ip_address']) - - if interface['type'] == 'ipv4': - result += " netmask {0}\n".format(interface['netmask']) - else: - result += " netmask {0}\n".format( - utils.ipv6_netmask_length(interface['netmask'])) - - for route in interface['routes']: - if ((route['network'] == '0.0.0.0' and - route['netmask'] == '0.0.0.0') or - (route['network'] == '::' and - route['netmask'] == '::')): - result += " gateway {0}\n".format(route['gateway']) + # Static ipv4 and ipv6 + if interface['type'] == 'ipv6': + link_type = "inet6" + elif interface['type'] == 'ipv4': + link_type = "inet" else: - if interface['type'] == 'ipv4': - route_add = (" up route add -net {net} netmask " - "{mask} gw {gw} || true\n") - route_del = (" down route del -net {net} netmask " - "{mask} gw {gw} || true\n") - _netmask = route['netmask'] - else: - route_add = (" up ip -6 route add {net}/{mask} " - "via {gw} dev {interface} || true\n") - route_del = (" down ip -6 route del {net}/{mask} " - "via {gw} dev {interface} || true\n") - _netmask = utils.ipv6_netmask_length(route['netmask']) + # We do not know this type of entry + continue - result += route_add.format( - net=route['network'], mask=_netmask, gw=route['gateway'], - interface=interface_name) - result += route_del.format( - net=route['network'], mask=_netmask, gw=route['gateway'], - interface=interface_name) + result += "iface {name} {link_type} static\n".format( + name=interface_name, link_type=link_type) + if vlan_raw_device: + result += " vlan-raw-device {0}\n".format(vlan_raw_device) + if 'bond_master' in interface: + result += " bond-master {0}\n".format( + interface['bond_master']) + if 'bond_mode' in interface: + result += _write_debian_bond_conf(interface_name, + interface, + sys_interfaces) + result += " address {0}\n".format(interface['ip_address']) + + if interface['type'] == 'ipv4': + result += " netmask {0}\n".format(interface['netmask']) + else: + result += " netmask {0}\n".format( + utils.ipv6_netmask_length(interface['netmask'])) + + for route in interface['routes']: + if ((route['network'] == '0.0.0.0' and + route['netmask'] == '0.0.0.0') or + (route['network'] == '::' and + route['netmask'] == '::')): + result += " gateway {0}\n".format(route['gateway']) + else: + if interface['type'] == 'ipv4': + route_add = (" up route add -net {net} netmask " + "{mask} gw {gw} || true\n") + route_del = (" down route del -net {net} netmask " + "{mask} gw {gw} || true\n") + _netmask = route['netmask'] + else: + route_add = (" up ip -6 route add {net}/{mask} " + "via {gw} dev {interface} || true\n") + route_del = (" down ip -6 route del {net}/{mask} " + "via {gw} dev {interface} || true\n") + _netmask = utils.ipv6_netmask_length(route['netmask']) + + result += route_add.format( + net=route['network'], mask=_netmask, + gw=route['gateway'], interface=interface_name) + result += route_del.format( + net=route['network'], mask=_netmask, + gw=route['gateway'], interface=interface_name) files_to_write[iface_path] = result # Configure any interfaces not mentioned in the config drive data for DHCP.