[PATCH 08/10] Vlan support: generate kickstart (#906272)

Radek Vykydal rvykydal at redhat.com
Mon Mar 11 13:15:30 UTC 2013


---
 pyanaconda/network.py               | 15 +++++++++++++++
 pyanaconda/ui/gui/spokes/network.py |  4 +++-
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/pyanaconda/network.py b/pyanaconda/network.py
index 626e2c0..9ed2bc7 100644
--- a/pyanaconda/network.py
+++ b/pyanaconda/network.py
@@ -512,6 +512,11 @@ def kickstartNetworkData(ifcfg=None, hostname=None):
                 sep = ";"
             kwargs["bondopts"] = sep.join(bondopts.split())
 
+    # vlan
+    if ifcfg.get("VLAN") == "yes" or ifcfg.get("TYPE") == "Vlan":
+        kwargs["device"] = ifcfg.get("PHYSDEV")
+        kwargs["vlanid"] = ifcfg.get("VLAN_ID")
+
     return handler.NetworkData(**kwargs)
 
 def get_bond_master_ifcfg_name(devname):
@@ -525,6 +530,16 @@ def get_bond_master_ifcfg_name(devname):
             if ifcfg.get("DEVICE") == devname:
                 return filename
 
+def get_vlan_ifcfg_name(devname):
+    """Name of ifcfg file of vlan device devname"""
+
+    for filename in _ifcfg_files(netscriptsDir):
+        ifcfg = NetworkDevice(netscriptsDir, filename[6:])
+        ifcfg.loadIfcfgFile()
+        if ifcfg.get("VLAN") == "yes" or ifcfg.get("TYPE") == "Vlan":
+            if ifcfg.get("DEVICE") == devname:
+                return filename
+
 def get_bond_slaves_from_ifcfgs(master_specs):
     """List of slave device names of master specified by master_specs.
 
diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py
index 9732b6f..140b4f9 100644
--- a/pyanaconda/ui/gui/spokes/network.py
+++ b/pyanaconda/ui/gui/spokes/network.py
@@ -41,7 +41,7 @@ from pyanaconda.ui.gui.categories.software import SoftwareCategory
 from pyanaconda.ui.gui.hubs.summary import SummaryHub
 from pyanaconda.ui.gui.utils import gtk_call_once
 
-from pyanaconda.network import NetworkDevice, netscriptsDir, kickstartNetworkData, logIfcfgFiles, update_hostname_data, sanityCheckHostname, getHostname, DEFAULT_HOSTNAME, get_bond_master_ifcfg_name
+from pyanaconda.network import NetworkDevice, netscriptsDir, kickstartNetworkData, logIfcfgFiles, update_hostname_data, sanityCheckHostname, getHostname, DEFAULT_HOSTNAME, get_bond_master_ifcfg_name, get_vlan_ifcfg_name
 from pyanaconda.nm import nm_activated_devices, nm_device_setting_value
 
 from gi.repository import GLib, GObject, Pango, Gio, NetworkManager, NMClient
@@ -1310,6 +1310,8 @@ def getKSNetworkData(device):
             ifcfg_suffix = ap.get_ssid()
     elif device.get_device_type() == NetworkManager.DeviceType.BOND:
         ifcfg_suffix = get_bond_master_ifcfg_name(device.get_iface())[6:]
+    elif device.get_device_type() == NetworkManager.DeviceType.VLAN:
+        ifcfg_suffix = get_vlan_ifcfg_name(device.get_iface())[6:]
 
     if ifcfg_suffix:
         ifcfg_suffix = ifcfg_suffix.replace(' ', '_')
-- 
1.7.11.7



More information about the anaconda-patches mailing list