def _write_network(self, settings): # TODO(harlowja) fix this... since this is the ubuntu format entries = rhel_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Make the intermediate format as the rhel format... nameservers = [] searchservers = [] dev_names = entries.keys() for (dev, info) in entries.iteritems(): net_fn = self.network_script_tpl % (dev) net_cfg = { 'DEVICE': dev, 'NETMASK': info.get('netmask'), 'IPADDR': info.get('address'), 'BOOTPROTO': info.get('bootproto'), 'GATEWAY': info.get('gateway'), 'BROADCAST': info.get('broadcast'), 'MACADDR': info.get('hwaddress'), 'ONBOOT': _make_sysconfig_bool(info.get('auto')), } rhel_util.update_sysconfig_file(net_fn, net_cfg) if 'dns-nameservers' in info: nameservers.extend(info['dns-nameservers']) if 'dns-search' in info: searchservers.extend(info['dns-search']) if nameservers or searchservers: rhel_util.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) if dev_names: net_cfg = { 'NETWORKING': _make_sysconfig_bool(True), } rhel_util.update_sysconfig_file(self.network_conf_fn, net_cfg) return dev_names
def _write_network(self, settings): # TODO(harlowja) fix this... since this is the ubuntu format entries = net_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Make the intermediate format as the rhel format... nameservers = [] searchservers = [] dev_names = entries.keys() for (dev, info) in entries.iteritems(): net_fn = self.network_script_tpl % (dev) net_cfg = { 'DEVICE': dev, 'NETMASK': info.get('netmask'), 'IPADDR': info.get('address'), 'BOOTPROTO': info.get('bootproto'), 'GATEWAY': info.get('gateway'), 'BROADCAST': info.get('broadcast'), 'MACADDR': info.get('hwaddress'), 'ONBOOT': _make_sysconfig_bool(info.get('auto')), } rhel_util.update_sysconfig_file(net_fn, net_cfg) if 'dns-nameservers' in info: nameservers.extend(info['dns-nameservers']) if 'dns-search' in info: searchservers.extend(info['dns-search']) if nameservers or searchservers: rhel_util.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) if dev_names: net_cfg = { 'NETWORKING': _make_sysconfig_bool(True), } rhel_util.update_sysconfig_file(self.network_conf_fn, net_cfg) return dev_names
def _write_network(self, settings): # TODO(harlowja) fix this... since this is the ubuntu format entries = net_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Match Debian/Ubunto distro functionality of clean slating # the network interface configuration. # Remove all existing ifcfg-eth* files. This cleans up files that # are left around if you capture an image from a VM with 5 NICs # and deploy it with 1 NIC. rhel_util.remove_ifcfg_files(self.network_script_dir) rhel_util.remove_resolve_conf_file(self.resolve_conf_fn) # Make the intermediate format as the rhel format... nameservers = [] searchservers = [] dev_names = entries.keys() for (dev, info) in entries.iteritems(): net_fn = self.network_script_tpl % (dev) net_cfg = { 'DEVICE': dev, 'NETMASK': info.get('netmask'), 'IPADDR': info.get('address'), 'BOOTPROTO': info.get('bootproto'), 'BROADCAST': info.get('broadcast'), 'MACADDR': info.get('hwaddress'), 'ONBOOT': _make_sysconfig_bool(info.get('auto')), } if 'mtu' in info: net_cfg['MTU'] = info.get('mtu') # Remove the existing cfg file so the network configuration # is a replacement versus an update to match debian distro # functionality. if dev != 'lo': net_cfg['USERCONTROL'] = 'no' net_cfg['NM_CONTROLLED'] = 'no' rhel_util.update_sysconfig_file(net_fn, net_cfg) if dev == 'eth0': default_gateway = info.get('gateway') or '' if 'dns-nameservers' in info: nameservers.extend(info['dns-nameservers']) if 'dns-search' in info: searchservers.extend(info['dns-search']) if nameservers or searchservers: rhel_util.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) if dev_names: net_cfg = { 'NETWORKING': _make_sysconfig_bool(True), 'GATEWAY': default_gateway, } rhel_util.update_sysconfig_file(self.network_conf_fn, net_cfg, allow_empty=True) return dev_names
def _write_network(self, settings): # TODO(harlowja) fix this... since this is the ubuntu format entries = net_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Make the intermediate format as the rhel format... nameservers = [] searchservers = [] dev_names = entries.keys() use_ipv6 = False for (dev, info) in entries.items(): net_fn = self.network_script_tpl % (dev) net_cfg = { 'DEVICE': dev, 'NETMASK': info.get('netmask'), 'IPADDR': info.get('address'), 'BOOTPROTO': info.get('bootproto'), 'GATEWAY': info.get('gateway'), 'BROADCAST': info.get('broadcast'), 'MACADDR': info.get('hwaddress'), 'ONBOOT': _make_sysconfig_bool(info.get('auto')), } if info.get('inet6'): use_ipv6 = True net_cfg.update({ 'IPV6INIT': _make_sysconfig_bool(True), 'IPV6ADDR': info.get('ipv6').get('address'), 'IPV6_DEFAULTGW': info.get('ipv6').get('gateway'), }) rhel_util.update_sysconfig_file(net_fn, net_cfg) if 'dns-nameservers' in info: nameservers.extend(info['dns-nameservers']) if 'dns-search' in info: searchservers.extend(info['dns-search']) if nameservers or searchservers: rhel_util.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) if dev_names: net_cfg = { 'NETWORKING': _make_sysconfig_bool(True), } # If IPv6 interface present, enable ipv6 networking if use_ipv6: net_cfg['NETWORKING_IPV6'] = _make_sysconfig_bool(True) net_cfg['IPV6_AUTOCONF'] = _make_sysconfig_bool(False) rhel_util.update_sysconfig_file(self.network_conf_fn, net_cfg) return dev_names
def _write_network(self, settings): # Convert debian settings to ifcfg format entries = net_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Make the intermediate format as the suse format... nameservers = [] searchservers = [] dev_names = entries.keys() for (dev, info) in entries.items(): net_fn = self.network_script_tpl % (dev) route_fn = self.route_conf_tpl % (dev) mode = None if info.get('auto', None): mode = 'auto' else: mode = 'manual' bootproto = info.get('bootproto', None) gateway = info.get('gateway', None) net_cfg = { 'BOOTPROTO': bootproto, 'BROADCAST': info.get('broadcast'), 'GATEWAY': gateway, 'IPADDR': info.get('address'), 'LLADDR': info.get('hwaddress'), 'NETMASK': info.get('netmask'), 'STARTMODE': mode, 'USERCONTROL': 'no' } if dev != 'lo': net_cfg['ETHTOOL_OPTIONS'] = '' else: net_cfg['FIREWALL'] = 'no' rhutil.update_sysconfig_file(net_fn, net_cfg, True) if gateway and bootproto == 'static': default_route = 'default %s' % gateway util.write_file(route_fn, default_route, 0o644) if 'dns-nameservers' in info: nameservers.extend(info['dns-nameservers']) if 'dns-search' in info: searchservers.extend(info['dns-search']) if nameservers or searchservers: rhutil.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) return dev_names
def _write_network(self, settings): # Convert debian settings to ifcfg format entries = rhel_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Make the intermediate format as the suse format... nameservers = [] searchservers = [] dev_names = entries.keys() for (dev, info) in entries.iteritems(): net_fn = self.network_script_tpl % (dev) mode = info.get('auto') if mode and mode.lower() == 'true': mode = 'auto' else: mode = 'manual' net_cfg = { 'BOOTPROTO': info.get('bootproto'), 'BROADCAST': info.get('broadcast'), 'GATEWAY': info.get('gateway'), 'IPADDR': info.get('address'), 'LLADDR': info.get('hwaddress'), 'NETMASK': info.get('netmask'), 'STARTMODE': mode, 'USERCONTROL': 'no' } if dev != 'lo': net_cfg['ETHERDEVICE'] = dev net_cfg['ETHTOOL_OPTIONS'] = '' else: net_cfg['FIREWALL'] = 'no' rhel_util.update_sysconfig_file(net_fn, net_cfg, True) if 'dns-nameservers' in info: nameservers.extend(info['dns-nameservers']) if 'dns-search' in info: searchservers.extend(info['dns-search']) if nameservers or searchservers: rhel_util.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) return dev_names
def _write_network(self, settings): # Convert debian settings to ifcfg format entries = net_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Make the intermediate format as the suse format... nameservers = [] searchservers = [] dev_names = entries.keys() for (dev, info) in entries.items(): net_fn = self.network_script_tpl % (dev) mode = info.get("auto") if mode and mode.lower() == "true": mode = "auto" else: mode = "manual" net_cfg = { "BOOTPROTO": info.get("bootproto"), "BROADCAST": info.get("broadcast"), "GATEWAY": info.get("gateway"), "IPADDR": info.get("address"), "LLADDR": info.get("hwaddress"), "NETMASK": info.get("netmask"), "STARTMODE": mode, "USERCONTROL": "no", } if dev != "lo": net_cfg["ETHERDEVICE"] = dev net_cfg["ETHTOOL_OPTIONS"] = "" else: net_cfg["FIREWALL"] = "no" rhel_util.update_sysconfig_file(net_fn, net_cfg, True) if "dns-nameservers" in info: nameservers.extend(info["dns-nameservers"]) if "dns-search" in info: searchservers.extend(info["dns-search"]) if nameservers or searchservers: rhel_util.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) return dev_names
def test_write_works(self): with tempfile.NamedTemporaryFile() as fh: rhel_util.update_resolve_conf_file(fh.name, [], [])
def _write_network(self, settings): # Convert debian settings to ifcfg format entries = net_util.translate_network(settings) LOG.debug("Translated ubuntu style network settings %s into %s", settings, entries) # Match Debian/Ubunto distro functionality of clean slating # the network interface configuration. # Remove all existing ifcfg-eth* files. This cleans up files that # are left around if you capture an image from a VM with 5 NICs # and deploy it with 1 NIC. rhel_util.remove_ifcfg_files(self.network_script_dir) rhel_util.remove_resolve_conf_file(self.resolve_conf_fn) util.del_file(self.routes_fn) # Make the intermediate format as the suse format... nameservers = [] searchservers = [] dev_names = entries.keys() mac_addrs = [] for (dev, info) in entries.iteritems(): mac_addrs.append(info.get('hwaddress')) net_fn = self.network_script_tpl % (dev) mode = info.get('auto') if mode: mode = 'auto' else: mode = 'manual' net_cfg = {} net_cfg['BOOTPROTO'] = info.get('bootproto') net_cfg['BROADCAST'] = info.get('broadcast') net_cfg['LLADDR'] = info.get('hwaddress') net_cfg['STARTMODE'] = mode if info['ipv6']: prefix = info.get('netmask') ipv6addr = info.get('address') net_cfg['IPADDR_0'] = ipv6addr net_cfg['PREFIXLEN_0'] = prefix net_cfg['LABEL_0'] = '0' if info['ipv4']: net_cfg['NETMASK'] = info.get('netmask') net_cfg['IPADDR'] = info.get('address') if dev != 'lo': # net_cfg['ETHERDEVICE'] = dev net_cfg['ETHTOOL_OPTIONS'] = '' net_cfg['USERCONTROL'] = 'no' net_cfg['NM_CONTROLLED'] = 'no' net_cfg['BRIDGE'] = 'yes' else: net_cfg['FIREWALL'] = 'no' if dev == 'eth0' and info.get('gateway'): self._write_default_route(self.routes_fn, info.get('gateway')) if 'mtu' in info: net_cfg['MTU'] = info.get('mtu') # Remove the existing cfg file so the network configuration # is a replacement versus an update to match debian distro # functionality. if dev != 'lo': util.del_file(net_fn) rhel_util.update_sysconfig_file(net_fn, net_cfg, True) if 'dns-nameservers' in info: nameservers.extend(info['dns-nameservers']) if 'dns-search' in info: searchservers.extend(info['dns-search']) if nameservers or searchservers: rhel_util.update_resolve_conf_file(self.resolve_conf_fn, nameservers, searchservers) return dev_names, mac_addrs