[PATCH] On Fedora have ONBOOT=yes as default for wired devices (#963952)

Radek Vykydal rvykydal at redhat.com
Fri May 17 13:26:08 UTC 2013


The case from BZ is installation without connection (link) and
desire to connect automatically after reboot.
---
 anaconda                            |  2 +-
 pyanaconda/__init__.py              |  2 --
 pyanaconda/installclass.py          |  4 ----
 pyanaconda/installclasses/fedora.py | 26 --------------------------
 pyanaconda/network.py               | 14 ++++++--------
 5 files changed, 7 insertions(+), 41 deletions(-)

diff --git a/anaconda b/anaconda
index ac90d72..19aa601 100755
--- a/anaconda
+++ b/anaconda
@@ -1037,7 +1037,7 @@ if __name__ == "__main__":
     else:
         cleanPStore()
 
-    networkInitialize(ksdata)
+    networkInitialize(ksdata, anaconda.instClass)
     if not flags.dirInstall:
         threadMgr.add(AnacondaThread(name=constants.THREAD_STORAGE, target=storageInitialize, args=(anaconda.storage, ksdata, anaconda.protected)))
     threadMgr.add(AnacondaThread(name=constants.THREAD_WAIT_FOR_CONNECTING_NM, target=wait_for_connecting_NM_thread, args=(ksdata,)))
diff --git a/pyanaconda/__init__.py b/pyanaconda/__init__.py
index f5a81a5..e28130f 100644
--- a/pyanaconda/__init__.py
+++ b/pyanaconda/__init__.py
@@ -240,6 +240,4 @@ class Anaconda(object):
         network.write_sysconfig_network()
         network.disableIPV6()
         network.copyConfigToPath(ROOT_PATH)
-        if not self.ksdata:
-            self.instClass.setNetworkOnbootDefault()
         self.desktop.write()
diff --git a/pyanaconda/installclass.py b/pyanaconda/installclass.py
index 6d0b1e8..739b705 100644
--- a/pyanaconda/installclass.py
+++ b/pyanaconda/installclass.py
@@ -100,10 +100,6 @@ class BaseInstallClass(object):
         anaconda.bootloader.timeout = self.bootloaderTimeoutDefault
         anaconda.bootloader.boot_args.update(self.bootloaderExtraArgs)
 
-    # sets default ONBOOT values and updates ksdata accordingly
-    def setNetworkOnbootDefault(self, ksdata):
-        pass
-
     def __init__(self):
 	pass
 
diff --git a/pyanaconda/installclasses/fedora.py b/pyanaconda/installclasses/fedora.py
index 6f95f85..1509581 100644
--- a/pyanaconda/installclasses/fedora.py
+++ b/pyanaconda/installclasses/fedora.py
@@ -45,31 +45,5 @@ class InstallClass(BaseInstallClass):
     def setGroupSelection(self, anaconda):
         BaseInstallClass.setGroupSelection(self, anaconda)
 
-    def setNetworkOnbootDefault(self, ksdata):
-        # if something's already enabled, we can just leave the config alone
-        for devName in nm.nm_devices():
-            if not nm.nm_device_type_is_wifi(devName) and \
-               network.get_ifcfg_value(devName, "ONBOOT", ROOT_PATH) == "yes":
-                return
-
-        # the default otherwise: bring up the first wired netdev with link
-        for devName in nm.nm_devices():
-            if nm.nm_device_type_is_wifi(devName):
-                continue
-            try:
-                link_up = nm.nm_device_carrier(devName)
-            except ValueError as e:
-                continue
-            if link_up:
-                dev = network.NetworkDevice(ROOT_PATH + network.netscriptsDir, devName)
-                dev.loadIfcfgFile()
-                dev.set(('ONBOOT', 'yes'))
-                dev.writeIfcfgFile()
-                for nd in ksdata.network.network:
-                    if nd.device == dev.iface:
-                        nd.onboot = True
-                        break
-                break
-
     def __init__(self):
 	BaseInstallClass.__init__(self)
diff --git a/pyanaconda/network.py b/pyanaconda/network.py
index 6f73143..2c1ab0c 100644
--- a/pyanaconda/network.py
+++ b/pyanaconda/network.py
@@ -290,7 +290,7 @@ class NetworkDevice(IfcfgFile):
         return content
 
 
-def dumpMissingDefaultIfcfgs():
+def dumpMissingDefaultIfcfgs(instclass):
     """
     Dump missing default ifcfg file for wired devices.
     For default auto connections created by NM upon start - which happens
@@ -317,8 +317,9 @@ def dumpMissingDefaultIfcfgs():
         try:
             nm.nm_update_settings_of_device(devname, 'connection', 'id', devname)
             log.debug("network: dumping ifcfg file for default autoconnection on %s" % devname)
-            nm.nm_update_settings_of_device(devname, 'connection', 'autoconnect', False)
-            log.debug("network: setting autoconnect of %s to False" % devname)
+            if instclass.id == "rhel":
+                nm.nm_update_settings_of_device(devname, 'connection', 'autoconnect', False)
+                log.debug("network: setting autoconnect of %s to False" % devname)
         except nm.DeviceSettingsNotFoundError as e:
             log.debug("network: no ifcfg file for %s" % devname)
         rv = True
@@ -758,9 +759,6 @@ def write_network_config(storage, ksdata, instClass, rootpath):
         copyIfcfgFiles(rootpath)
         copyDhclientConfFiles(rootpath)
         copyFileToPath("/etc/resolv.conf", rootpath, overwrite=flags.livecdInstall)
-    # TODO the default for ONBOOT needs to be lay down
-    # before newui we didn't set it for kickstart installs
-    instClass.setNetworkOnbootDefault(ksdata)
     # NM_CONTROLLED is not mirrored in ksdata
     disableNMForStorageDevices(rootpath, storage)
     autostartFCoEDevices(rootpath, storage, ksdata)
@@ -873,13 +871,13 @@ def setOnboot(ksdata):
         except nm.DeviceSettingsNotFoundError as e:
             log.debug("setOnboot: %s" % e)
 
-def networkInitialize(ksdata):
+def networkInitialize(ksdata, instclass):
 
     log.debug("network: devices found %s" % nm.nm_devices())
     logIfcfgFiles("network initialization")
 
     if not flags.imageInstall:
-        if dumpMissingDefaultIfcfgs():
+        if dumpMissingDefaultIfcfgs(instclass):
             logIfcfgFiles("ifcfgs created")
 
     # For kickstart network --activate option we set ONBOOT=yes
-- 
1.7.11.7



More information about the anaconda-patches mailing list