Related: rhbz#1277975
This will allow to override special default of first network command which is --activate. --- pykickstart/commands/network.py | 11 ++++++++++- tests/commands/network.py | 7 +++++++ 2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/pykickstart/commands/network.py b/pykickstart/commands/network.py index 4daeece..62aee16 100644 --- a/pykickstart/commands/network.py +++ b/pykickstart/commands/network.py @@ -20,7 +20,7 @@ from pykickstart.base import BaseData, KickstartCommand from pykickstart.constants import BOOTPROTO_BOOTP, BOOTPROTO_DHCP, BOOTPROTO_IBFT, BOOTPROTO_QUERY, BOOTPROTO_STATIC from pykickstart.options import KSOptionParser -from pykickstart.errors import KickstartValueError, formatErrorMsg +from pykickstart.errors import KickstartValueError, formatErrorMsg, KickstartParseError
import gettext import warnings @@ -307,6 +307,7 @@ class RHEL7_NetworkData(F21_NetworkData): F21_NetworkData.__init__(self, *args, **kwargs) self.bridgeslaves = kwargs.get("bridgeslaves", "") self.bridgeopts = kwargs.get("bridgeopts", "") + self.noactivate = kwargs.get("no-activate", False)
def _getArgsAsStr(self): retval = F21_NetworkData._getArgsAsStr(self) @@ -314,6 +315,8 @@ class RHEL7_NetworkData(F21_NetworkData): retval += " --bridgeslaves=%s" % self.bridgeslaves if self.bridgeopts != "": retval += " --bridgeopts=%s" % self.bridgeopts + if self.noactivate: + retval += " --no-activate"
return retval
@@ -639,6 +642,8 @@ class RHEL7_Network(F21_Network): default="") op.add_option("--bridgeopts", dest="bridgeopts", action="store", default="") + op.add_option("--no-activate", dest="noactivate", action="store_true", + default=False) return op
def parse(self, args): @@ -663,4 +668,8 @@ class RHEL7_Network(F21_Network): msg = formatErrorMsg(self.lineno, msg=_("Bad format of --bridgeopts, expecting key=value options separated by ','")) raise KickstartValueError(msg)
+ if retval.activate and retval.noactivate: + error_message = _("Options --activate and --no-activate are mutually exclusive") + raise KickstartParseError(formatErrorMsg(self.lineno, msg=error_message)) + return retval diff --git a/tests/commands/network.py b/tests/commands/network.py index cd150d1..b5cafc4 100644 --- a/tests/commands/network.py +++ b/tests/commands/network.py @@ -152,6 +152,13 @@ class RHEL7_TestCase(F20_TestCase): "--bridgeopts=priority", KickstartValueError)
+ # activating a device + self.assert_parse("network --device eth0 --no-activate") + self.assert_parse("network --device eth0 --activate") + self.assert_parse_error("network --device eth0 --activate --no-activate", + KickstartParseError) + self.assert_parse_error("network --device eth0 --no-activate --activate", + KickstartParseError)
if __name__ == "__main__": unittest.main()