FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian User

 
 
LinkBack Thread Tools
 
Old 06-07-2011, 07:54 PM
Chris Lumens
 
Default Update to the latest pykickstart version.

Now that pykickstart has the special section handling, we don't need to do
a lot of this subclassing anymore.
---
anaconda.spec.in | 2 +-
pyanaconda/kickstart.py | 73 +++++++++++-----------------------------------
2 files changed, 19 insertions(+), 56 deletions(-)

diff --git a/anaconda.spec.in b/anaconda.spec.in
index 079e7bd..90f01f3 100644
--- a/anaconda.spec.in
+++ b/anaconda.spec.in
@@ -28,7 +28,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define intltoolver 0.31.2-3
%define libnlver 1.0
%define libselinuxver 1.6
-%define pykickstartver 1.81
+%define pykickstartver 1.99.0
%define rpmpythonver 4.2-0.61
%define slangver 2.0.6-2
%define yumver 2.9.2
diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index a0adaa3..121aa0b 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -45,11 +45,13 @@ import upgrade
import pykickstart.commands as commands
from storage.devices import *
from scdate.core import zonetab
+
from pykickstart.base import KickstartCommand, BaseData
from pykickstart.constants import *
-from pykickstart.errors import *
-from pykickstart.parser import *
-from pykickstart.version import *
+from pykickstart.errors import formatErrorMsg, KickstartError, KickstartValueError, KickstartParseError
+from pykickstart.parser import Group, KickstartParser, Packages, Script
+from pykickstart.sections import PreScriptSection, NullSection
+from pykickstart.version import returnClassForVersion

import gettext
_ = lambda x: gettext.ldgettext("anaconda", x)
@@ -61,6 +63,8 @@ stdoutLog = logging.getLogger("anaconda.stdout")
from anaconda_log import logger, logLevelMap, setHandlersLevel,
DEFAULT_TTY_LEVEL

+packagesSeen = False
+
class AnacondaKSScript(Script):
def run(self, chroot, serial, intf = None):
if self.inChroot:
@@ -131,14 +135,6 @@ class AnacondaKSScript(Script):
if serial or self.logfile is not None:
os.chmod("%s" % messages, 0600)

-class AnacondaKSPackages(Packages):
- def __init__(self):
- Packages.__init__(self)
-
- # Has the %packages section been seen at all?
- self.seen = False
-
-
def getEscrowCertificate(anaconda, url):
if not url:
return None
@@ -1146,7 +1142,6 @@ superclass = returnClassForVersion()
class AnacondaKSHandler(superclass):
def __init__ (self, anaconda):
superclass.__init__(self, commandUpdates=commandMap, dataUpdates=dataMap)
- self.packages = AnacondaKSPackages()

self.anaconda = anaconda
self.onPart = {}
@@ -1204,54 +1199,20 @@ class AnacondaPreParser(KickstartParser):
missingIncludeIsFatal=True):
KickstartParser.__init__(self, handler, missingIncludeIsFatal=False)

- def addScript (self):
- if self._script["type"] != KS_SCRIPT_PRE:
- return
-
- s = AnacondaKSScript (self._script["body"], type=self._script["type"],
- interp=self._script["interp"],
- lineno=self._script["lineno"],
- inChroot=self._script["chroot"],
- logfile=self._script["log"],
- errorOnFail=self._script["errorOnFail"])
- self.handler.scripts.append(s)
-
- def addPackages (self, line):
- pass
-
def handleCommand (self, lineno, args):
pass

- def handlePackageHdr (self, lineno, args):
- pass
-
- def handleScriptHdr (self, lineno, args):
- if not args[0] == "%pre":
- return
-
- KickstartParser.handleScriptHdr(self, lineno, args)
+ def setupSections(self):
+ self.registerSection(PreScriptSection(self.handler , dataObj=AnacondaKSScript))
+ self.registerSection(NullSection(self.handler, sectionOpen="%post"))
+ self.registerSection(NullSection(self.handler, sectionOpen="%traceback"))
+ self.registerSection(NullSection(self.handler, sectionOpen="%packages"))

class AnacondaKSParser(KickstartParser):
def __init__ (self, handler, followIncludes=True, errorsAreFatal=True,
missingIncludeIsFatal=True):
KickstartParser.__init__(self, handler)

- def addScript (self):
- if string.join(self._script["body"]).strip() == "":
- return
-
- s = AnacondaKSScript (self._script["body"], type=self._script["type"],
- interp=self._script["interp"],
- lineno=self._script["lineno"],
- inChroot=self._script["chroot"],
- logfile=self._script["log"],
- errorOnFail=self._script["errorOnFail"])
- self.handler.scripts.append(s)
-
- def handlePackageHdr (self, lineno, args):
- KickstartParser.handlePackageHdr (self, lineno, args)
- self.handler.packages.seen = True
-
def handleCommand (self, lineno, args):
if not self.handler:
return
@@ -1331,6 +1292,8 @@ def parseKickstart(anaconda, file):
"configuration file:

%s") % e)
sys.exit(1)

+ global packagesSeen
+ packagesSeen = ksparser.getSection("%packages").timesSeen > 0
return handler

def runPostScripts(anaconda):
@@ -1386,9 +1349,9 @@ def selectPackages(anaconda):
# If no %packages header was seen, use the installclass's default group
# selections. This can also be explicitly specified with %packages
# --default. Otherwise, select whatever was given (even if it's nothing).
- if not ksdata.packages.seen or ksdata.packages.default:
+ if not packagesSeen or ksdata.packages.default:
anaconda.instClass.setGroupSelection(anaconda)
- if not ksdata.packages.seen:
+ if not packagesSeen:
return

for pkg in ksdata.packages.packageList:
@@ -1494,12 +1457,12 @@ def setSteps(anaconda):
dispatch.skip_steps("tasksel", "group-selection")

# Special check for this, since it doesn't make any sense.
- if ksdata.packages.seen:
+ if packagesSeen:
warnings.warn("Ignoring contents of %packages section due to upgrade.")
elif havePackages(ksdata.packages):
dispatch.skip_steps("tasksel", "group-selection")
else:
- if ksdata.packages.seen:
+ if packagesSeen:
dispatch.skip_steps("tasksel", "group-selection")
else:
dispatch.request_steps("tasksel", "group-selection")
--
1.7.4.1

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 
Old 06-08-2011, 02:10 PM
David Lehman
 
Default Update to the latest pykickstart version.

On Tue, 2011-06-07 at 15:54 -0400, Chris Lumens wrote:
> Now that pykickstart has the special section handling, we don't need to do
> a lot of this subclassing anymore.

Looks reasonable to me.

> ---
> anaconda.spec.in | 2 +-
> pyanaconda/kickstart.py | 73 +++++++++++-----------------------------------
> 2 files changed, 19 insertions(+), 56 deletions(-)
>
> diff --git a/anaconda.spec.in b/anaconda.spec.in
> index 079e7bd..90f01f3 100644
> --- a/anaconda.spec.in
> +++ b/anaconda.spec.in
> @@ -28,7 +28,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
> %define intltoolver 0.31.2-3
> %define libnlver 1.0
> %define libselinuxver 1.6
> -%define pykickstartver 1.81
> +%define pykickstartver 1.99.0
> %define rpmpythonver 4.2-0.61
> %define slangver 2.0.6-2
> %define yumver 2.9.2
> diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
> index a0adaa3..121aa0b 100644
> --- a/pyanaconda/kickstart.py
> +++ b/pyanaconda/kickstart.py
> @@ -45,11 +45,13 @@ import upgrade
> import pykickstart.commands as commands
> from storage.devices import *
> from scdate.core import zonetab
> +
> from pykickstart.base import KickstartCommand, BaseData
> from pykickstart.constants import *
> -from pykickstart.errors import *
> -from pykickstart.parser import *
> -from pykickstart.version import *
> +from pykickstart.errors import formatErrorMsg, KickstartError, KickstartValueError, KickstartParseError
> +from pykickstart.parser import Group, KickstartParser, Packages, Script
> +from pykickstart.sections import PreScriptSection, NullSection
> +from pykickstart.version import returnClassForVersion
>
> import gettext
> _ = lambda x: gettext.ldgettext("anaconda", x)
> @@ -61,6 +63,8 @@ stdoutLog = logging.getLogger("anaconda.stdout")
> from anaconda_log import logger, logLevelMap, setHandlersLevel,
> DEFAULT_TTY_LEVEL
>
> +packagesSeen = False
> +
> class AnacondaKSScript(Script):
> def run(self, chroot, serial, intf = None):
> if self.inChroot:
> @@ -131,14 +135,6 @@ class AnacondaKSScript(Script):
> if serial or self.logfile is not None:
> os.chmod("%s" % messages, 0600)
>
> -class AnacondaKSPackages(Packages):
> - def __init__(self):
> - Packages.__init__(self)
> -
> - # Has the %packages section been seen at all?
> - self.seen = False
> -
> -
> def getEscrowCertificate(anaconda, url):
> if not url:
> return None
> @@ -1146,7 +1142,6 @@ superclass = returnClassForVersion()
> class AnacondaKSHandler(superclass):
> def __init__ (self, anaconda):
> superclass.__init__(self, commandUpdates=commandMap, dataUpdates=dataMap)
> - self.packages = AnacondaKSPackages()
>
> self.anaconda = anaconda
> self.onPart = {}
> @@ -1204,54 +1199,20 @@ class AnacondaPreParser(KickstartParser):
> missingIncludeIsFatal=True):
> KickstartParser.__init__(self, handler, missingIncludeIsFatal=False)
>
> - def addScript (self):
> - if self._script["type"] != KS_SCRIPT_PRE:
> - return
> -
> - s = AnacondaKSScript (self._script["body"], type=self._script["type"],
> - interp=self._script["interp"],
> - lineno=self._script["lineno"],
> - inChroot=self._script["chroot"],
> - logfile=self._script["log"],
> - errorOnFail=self._script["errorOnFail"])
> - self.handler.scripts.append(s)
> -
> - def addPackages (self, line):
> - pass
> -
> def handleCommand (self, lineno, args):
> pass
>
> - def handlePackageHdr (self, lineno, args):
> - pass
> -
> - def handleScriptHdr (self, lineno, args):
> - if not args[0] == "%pre":
> - return
> -
> - KickstartParser.handleScriptHdr(self, lineno, args)
> + def setupSections(self):
> + self.registerSection(PreScriptSection(self.handler , dataObj=AnacondaKSScript))
> + self.registerSection(NullSection(self.handler, sectionOpen="%post"))
> + self.registerSection(NullSection(self.handler, sectionOpen="%traceback"))
> + self.registerSection(NullSection(self.handler, sectionOpen="%packages"))
>
> class AnacondaKSParser(KickstartParser):
> def __init__ (self, handler, followIncludes=True, errorsAreFatal=True,
> missingIncludeIsFatal=True):
> KickstartParser.__init__(self, handler)
>
> - def addScript (self):
> - if string.join(self._script["body"]).strip() == "":
> - return
> -
> - s = AnacondaKSScript (self._script["body"], type=self._script["type"],
> - interp=self._script["interp"],
> - lineno=self._script["lineno"],
> - inChroot=self._script["chroot"],
> - logfile=self._script["log"],
> - errorOnFail=self._script["errorOnFail"])
> - self.handler.scripts.append(s)
> -
> - def handlePackageHdr (self, lineno, args):
> - KickstartParser.handlePackageHdr (self, lineno, args)
> - self.handler.packages.seen = True
> -
> def handleCommand (self, lineno, args):
> if not self.handler:
> return
> @@ -1331,6 +1292,8 @@ def parseKickstart(anaconda, file):
> "configuration file:

%s") % e)
> sys.exit(1)
>
> + global packagesSeen
> + packagesSeen = ksparser.getSection("%packages").timesSeen > 0
> return handler
>
> def runPostScripts(anaconda):
> @@ -1386,9 +1349,9 @@ def selectPackages(anaconda):
> # If no %packages header was seen, use the installclass's default group
> # selections. This can also be explicitly specified with %packages
> # --default. Otherwise, select whatever was given (even if it's nothing).
> - if not ksdata.packages.seen or ksdata.packages.default:
> + if not packagesSeen or ksdata.packages.default:
> anaconda.instClass.setGroupSelection(anaconda)
> - if not ksdata.packages.seen:
> + if not packagesSeen:
> return
>
> for pkg in ksdata.packages.packageList:
> @@ -1494,12 +1457,12 @@ def setSteps(anaconda):
> dispatch.skip_steps("tasksel", "group-selection")
>
> # Special check for this, since it doesn't make any sense.
> - if ksdata.packages.seen:
> + if packagesSeen:
> warnings.warn("Ignoring contents of %packages section due to upgrade.")
> elif havePackages(ksdata.packages):
> dispatch.skip_steps("tasksel", "group-selection")
> else:
> - if ksdata.packages.seen:
> + if packagesSeen:
> dispatch.skip_steps("tasksel", "group-selection")
> else:
> dispatch.request_steps("tasksel", "group-selection")


_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 
Old 06-08-2011, 02:10 PM
David Lehman
 
Default Update to the latest pykickstart version.

On Tue, 2011-06-07 at 15:54 -0400, Chris Lumens wrote:
> Now that pykickstart has the special section handling, we don't need to do
> a lot of this subclassing anymore.

Looks reasonable to me.

> ---
> anaconda.spec.in | 2 +-
> pyanaconda/kickstart.py | 73 +++++++++++-----------------------------------
> 2 files changed, 19 insertions(+), 56 deletions(-)
>
> diff --git a/anaconda.spec.in b/anaconda.spec.in
> index 079e7bd..90f01f3 100644
> --- a/anaconda.spec.in
> +++ b/anaconda.spec.in
> @@ -28,7 +28,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
> %define intltoolver 0.31.2-3
> %define libnlver 1.0
> %define libselinuxver 1.6
> -%define pykickstartver 1.81
> +%define pykickstartver 1.99.0
> %define rpmpythonver 4.2-0.61
> %define slangver 2.0.6-2
> %define yumver 2.9.2
> diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
> index a0adaa3..121aa0b 100644
> --- a/pyanaconda/kickstart.py
> +++ b/pyanaconda/kickstart.py
> @@ -45,11 +45,13 @@ import upgrade
> import pykickstart.commands as commands
> from storage.devices import *
> from scdate.core import zonetab
> +
> from pykickstart.base import KickstartCommand, BaseData
> from pykickstart.constants import *
> -from pykickstart.errors import *
> -from pykickstart.parser import *
> -from pykickstart.version import *
> +from pykickstart.errors import formatErrorMsg, KickstartError, KickstartValueError, KickstartParseError
> +from pykickstart.parser import Group, KickstartParser, Packages, Script
> +from pykickstart.sections import PreScriptSection, NullSection
> +from pykickstart.version import returnClassForVersion
>
> import gettext
> _ = lambda x: gettext.ldgettext("anaconda", x)
> @@ -61,6 +63,8 @@ stdoutLog = logging.getLogger("anaconda.stdout")
> from anaconda_log import logger, logLevelMap, setHandlersLevel,
> DEFAULT_TTY_LEVEL
>
> +packagesSeen = False
> +
> class AnacondaKSScript(Script):
> def run(self, chroot, serial, intf = None):
> if self.inChroot:
> @@ -131,14 +135,6 @@ class AnacondaKSScript(Script):
> if serial or self.logfile is not None:
> os.chmod("%s" % messages, 0600)
>
> -class AnacondaKSPackages(Packages):
> - def __init__(self):
> - Packages.__init__(self)
> -
> - # Has the %packages section been seen at all?
> - self.seen = False
> -
> -
> def getEscrowCertificate(anaconda, url):
> if not url:
> return None
> @@ -1146,7 +1142,6 @@ superclass = returnClassForVersion()
> class AnacondaKSHandler(superclass):
> def __init__ (self, anaconda):
> superclass.__init__(self, commandUpdates=commandMap, dataUpdates=dataMap)
> - self.packages = AnacondaKSPackages()
>
> self.anaconda = anaconda
> self.onPart = {}
> @@ -1204,54 +1199,20 @@ class AnacondaPreParser(KickstartParser):
> missingIncludeIsFatal=True):
> KickstartParser.__init__(self, handler, missingIncludeIsFatal=False)
>
> - def addScript (self):
> - if self._script["type"] != KS_SCRIPT_PRE:
> - return
> -
> - s = AnacondaKSScript (self._script["body"], type=self._script["type"],
> - interp=self._script["interp"],
> - lineno=self._script["lineno"],
> - inChroot=self._script["chroot"],
> - logfile=self._script["log"],
> - errorOnFail=self._script["errorOnFail"])
> - self.handler.scripts.append(s)
> -
> - def addPackages (self, line):
> - pass
> -
> def handleCommand (self, lineno, args):
> pass
>
> - def handlePackageHdr (self, lineno, args):
> - pass
> -
> - def handleScriptHdr (self, lineno, args):
> - if not args[0] == "%pre":
> - return
> -
> - KickstartParser.handleScriptHdr(self, lineno, args)
> + def setupSections(self):
> + self.registerSection(PreScriptSection(self.handler , dataObj=AnacondaKSScript))
> + self.registerSection(NullSection(self.handler, sectionOpen="%post"))
> + self.registerSection(NullSection(self.handler, sectionOpen="%traceback"))
> + self.registerSection(NullSection(self.handler, sectionOpen="%packages"))
>
> class AnacondaKSParser(KickstartParser):
> def __init__ (self, handler, followIncludes=True, errorsAreFatal=True,
> missingIncludeIsFatal=True):
> KickstartParser.__init__(self, handler)
>
> - def addScript (self):
> - if string.join(self._script["body"]).strip() == "":
> - return
> -
> - s = AnacondaKSScript (self._script["body"], type=self._script["type"],
> - interp=self._script["interp"],
> - lineno=self._script["lineno"],
> - inChroot=self._script["chroot"],
> - logfile=self._script["log"],
> - errorOnFail=self._script["errorOnFail"])
> - self.handler.scripts.append(s)
> -
> - def handlePackageHdr (self, lineno, args):
> - KickstartParser.handlePackageHdr (self, lineno, args)
> - self.handler.packages.seen = True
> -
> def handleCommand (self, lineno, args):
> if not self.handler:
> return
> @@ -1331,6 +1292,8 @@ def parseKickstart(anaconda, file):
> "configuration file:

%s") % e)
> sys.exit(1)
>
> + global packagesSeen
> + packagesSeen = ksparser.getSection("%packages").timesSeen > 0
> return handler
>
> def runPostScripts(anaconda):
> @@ -1386,9 +1349,9 @@ def selectPackages(anaconda):
> # If no %packages header was seen, use the installclass's default group
> # selections. This can also be explicitly specified with %packages
> # --default. Otherwise, select whatever was given (even if it's nothing).
> - if not ksdata.packages.seen or ksdata.packages.default:
> + if not packagesSeen or ksdata.packages.default:
> anaconda.instClass.setGroupSelection(anaconda)
> - if not ksdata.packages.seen:
> + if not packagesSeen:
> return
>
> for pkg in ksdata.packages.packageList:
> @@ -1494,12 +1457,12 @@ def setSteps(anaconda):
> dispatch.skip_steps("tasksel", "group-selection")
>
> # Special check for this, since it doesn't make any sense.
> - if ksdata.packages.seen:
> + if packagesSeen:
> warnings.warn("Ignoring contents of %packages section due to upgrade.")
> elif havePackages(ksdata.packages):
> dispatch.skip_steps("tasksel", "group-selection")
> else:
> - if ksdata.packages.seen:
> + if packagesSeen:
> dispatch.skip_steps("tasksel", "group-selection")
> else:
> dispatch.request_steps("tasksel", "group-selection")


_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 05:52 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org