[PATCH rhel7-branch 1/5] network: add team support to kickstart (#1003591)
Radek Vykydal
rvykydal at redhat.com
Wed Nov 6 10:02:15 UTC 2013
Resolves: rhbz#1003591
---
anaconda.spec.in | 1 +
dracut/parse-kickstart | 32 ++++++++++++++++++++++++++++++--
pyanaconda/kickstart.py | 2 +-
3 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/anaconda.spec.in b/anaconda.spec.in
index 14d9338..3939c1c 100644
--- a/anaconda.spec.in
+++ b/anaconda.spec.in
@@ -107,6 +107,7 @@ Requires: pytz
Requires: libxklavier
Requires: libgnomekbd
Requires: realmd
+Requires: teamd
%ifarch %livearches
Requires: usermode
Requires: zenity
diff --git a/dracut/parse-kickstart b/dracut/parse-kickstart
index 2192e2c..3dd8e0e 100755
--- a/dracut/parse-kickstart
+++ b/dracut/parse-kickstart
@@ -98,7 +98,7 @@ class DriverDisk(commands.driverdisk.F14_DriverDisk):
if location:
return "inst.driverdisk=%s" % location
-class Network(commands.network.F19_Network):
+class Network(commands.network.F20_Network):
def dracut_args(self, args, lineno, net):
'''
NOTE: The first 'network' line get special treatment:
@@ -276,7 +276,7 @@ def ksnet_to_ifcfg(net, filename=None):
if not dev:
return
if (not os.path.isdir("/sys/class/net/%s" % dev)
- and not net.bondslaves):
+ and not net.bondslaves and not net.teamslaves):
log.info("can't find device %s" % dev)
return
ifcfg = dict()
@@ -366,6 +366,34 @@ def ksnet_to_ifcfg(net, filename=None):
log.info("writing ifcfg %s for slave %s of bond %s" % (slave_filename, slave, dev))
write_ifcfg(slave_filename, slave_ifcfg)
+ if net.teamslaves:
+
+ ifcfg.pop('HWADDR')
+ ifcfg['TYPE'] = "Team"
+ ifcfg['NAME'] = "Team connection %s" % dev
+ ifcfg['TEAM_CONFIG'] = "'" + net.teamconfig + "'"
+
+ for i, (slave, cfg) in enumerate(net.teamslaves):
+ slave_ifcfg = {
+ 'DEVICE': slave,
+ 'DEVICETYPE' : "TeamPort",
+ 'NAME' : "%s slave %s" % (dev, i),
+ 'UUID' : str(uuid.uuid4()),
+ 'ONBOOT' : "yes",
+ 'TEAM_MASTER' : dev,
+# 'HWADDR' : readsysfile("/sys/class/net/%s/address" % slave),
+ }
+ if cfg:
+ slave_ifcfg['TEAM_PORT_CONFIG'] = "'" + cfg + "'"
+
+ # not using NM naming conventions, following dracut so that it does not
+ # override kickstart config by generating its own ifcfg files for slaves
+ #slave_filename = "/tmp/ifcfg/ifcfg-%s" % "_".join(slave_ifcfg['NAME'].split(" "))
+ # FIXME - change in dracut?
+ slave_filename = "/tmp/ifcfg/ifcfg-%s" % slave
+ log.info("writing ifcfg %s for slave %s of team %s" % (slave_filename, slave, dev))
+ write_ifcfg(slave_filename, slave_ifcfg)
+
if net.vlanid:
interface_name = "%s.%s" % (dev, net.vlanid)
ifcfg.pop('HWADDR')
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index b206231..2d5e7b3 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -867,7 +867,7 @@ class Logging(commands.logging.FC6_Logging):
remote_server = "%s:%s" %(self.host, self.port)
logger.updateRemote(remote_server)
-class Network(commands.network.F19_Network):
+class Network(commands.network.F20_Network):
def execute(self, storage, ksdata, instClass):
network.write_network_config(storage, ksdata, instClass, ROOT_PATH)
--
1.7.11.7
More information about the anaconda-patches
mailing list