Example #1
0
 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
Example #2
0
 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
Example #3
0
    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
Example #4
0
    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
Example #5
0
 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
Example #6
0
 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
Example #7
0
 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
Example #8
0
 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
Example #9
0
 def test_write_works(self):
     with tempfile.NamedTemporaryFile() as fh:
         rhel_util.update_resolve_conf_file(fh.name, [], [])
 def test_write_works(self):
     with tempfile.NamedTemporaryFile() as fh:
         rhel_util.update_resolve_conf_file(fh.name, [], [])
Example #11
0
    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
Example #12
0
    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