[PATCH 2/2] Use instclass.efi_dir when constructing the EFI path
David Shea
dshea at redhat.com
Mon Mar 10 20:58:45 UTC 2014
Pass anaconda.instClass to Payload.setup to make the install class
available for payload methods.
---
anaconda | 2 +-
pyanaconda/bootloader.py | 6 +++---
pyanaconda/packaging/__init__.py | 10 ++++++----
pyanaconda/packaging/dnfpayload.py | 4 ++--
pyanaconda/packaging/livepayload.py | 8 ++++----
pyanaconda/packaging/tarpayload.py | 4 ++--
pyanaconda/packaging/yumpayload.py | 4 ++--
7 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/anaconda b/anaconda
index 82c4f6b..f56790a 100755
--- a/anaconda
+++ b/anaconda
@@ -1113,7 +1113,7 @@ if __name__ == "__main__":
args=(ksdata.timezone, anaconda.storage, anaconda.bootloader)))
threadMgr.add(AnacondaThread(name=constants.THREAD_WAIT_FOR_CONNECTING_NM, target=wait_for_connecting_NM_thread, args=(ksdata,)))
- threadMgr.add(AnacondaThread(name=constants.THREAD_PAYLOAD, target=payloadInitialize, args=(anaconda.storage, ksdata, anaconda.payload)))
+ threadMgr.add(AnacondaThread(name=constants.THREAD_PAYLOAD, target=payloadInitialize, args=(anaconda.storage, ksdata, anaconda.payload, anaconda.instClass)))
# check if geolocation should be enabled for this type of installation
use_geolocation = True
diff --git a/pyanaconda/bootloader.py b/pyanaconda/bootloader.py
index 8386b57..a765a72 100644
--- a/pyanaconda/bootloader.py
+++ b/pyanaconda/bootloader.py
@@ -2284,12 +2284,12 @@ def get_bootloader():
# anaconda-specific functions
-def writeSysconfigKernel(storage, version):
+def writeSysconfigKernel(storage, version, instClass):
# get the name of the default kernel package based on the version
kernel_basename = "vmlinuz-" + version
kernel_file = "/boot/%s" % kernel_basename
if not os.path.isfile(ROOT_PATH + kernel_file):
- kernel_file = "/boot/efi/EFI/redhat/%s" % kernel_basename
+ kernel_file = "/boot/efi/EFI/%s/%s" % (instClass.efi_dir, kernel_basename)
if not os.path.isfile(ROOT_PATH + kernel_file):
log.error("failed to recreate path to default kernel image")
return
@@ -2365,7 +2365,7 @@ def writeBootLoader(storage, payload, instClass, ksdata):
storage.bootloader.efi_dir = instClass.efi_dir
# write out /etc/sysconfig/kernel
- writeSysconfigKernel(storage, version)
+ writeSysconfigKernel(storage, version, instClass)
if storage.bootloader.skip_bootloader:
log.info("skipping bootloader install per user request")
diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
index 7058672..b677944 100644
--- a/pyanaconda/packaging/__init__.py
+++ b/pyanaconda/packaging/__init__.py
@@ -112,14 +112,16 @@ class Payload(object):
self.data = data
self.storage = None
+ self.instclass = None
self._kernelVersionList = []
self._rescueVersionList = []
self._createdInitrds = False
self.txID = None
- def setup(self, storage):
+ def setup(self, storage, instClass):
""" Do any payload-specific setup. """
self.storage = storage
+ self.instclass = instClass
def preStorage(self):
""" Do any payload-specific work necessary before writing the storage
@@ -329,7 +331,7 @@ class Payload(object):
cmpfunc = yum.rpmUtils.miscutils.compareVerOnly
files = glob.glob(ROOT_PATH + "/boot/vmlinuz-*")
- files.extend(glob.glob(ROOT_PATH + "/boot/efi/EFI/redhat/vmlinuz-*"))
+ files.extend(glob.glob(ROOT_PATH + "/boot/efi/EFI/%s/vmlinuz-*" % self.instclass.efi_dir))
versions = [f.split("/")[-1][8:] for f in files if os.path.isfile(f)]
versions.sort(cmp=cmpfunc)
@@ -990,7 +992,7 @@ class PackagePayload(Payload):
def groupDescription(self, groupid):
raise NotImplementedError()
-def payloadInitialize(storage, ksdata, payload):
+def payloadInitialize(storage, ksdata, payload, instClass):
from pyanaconda.threads import threadMgr
threadMgr.wait(THREAD_STORAGE)
@@ -999,7 +1001,7 @@ def payloadInitialize(storage, ksdata, payload):
# (set and use payload.needsNetwork ?)
threadMgr.wait(THREAD_WAIT_FOR_CONNECTING_NM)
- payload.setup(storage)
+ payload.setup(storage, instClass)
def show_groups(payload):
#repo = ksdata.RepoData(name="anaconda", baseurl="http://cannonball/install/rawhide/os/")
diff --git a/pyanaconda/packaging/dnfpayload.py b/pyanaconda/packaging/dnfpayload.py
index 54d10a8..6157357 100644
--- a/pyanaconda/packaging/dnfpayload.py
+++ b/pyanaconda/packaging/dnfpayload.py
@@ -529,9 +529,9 @@ class DNFPayload(packaging.PackagePayload):
env = self._base.comps.environment_by_pattern(environmentid)
map(self.selectGroup, (id_.name for id_ in env.group_ids))
- def setup(self, storage):
+ def setup(self, storage, instClass):
# must end up with the base repo (and its metadata) ready
- super(DNFPayload, self).setup(storage)
+ super(DNFPayload, self).setup(storage, instClass)
self.updateBaseRepo()
self.gatherRepoMetadata()
diff --git a/pyanaconda/packaging/livepayload.py b/pyanaconda/packaging/livepayload.py
index 6fa363a..75179c1 100644
--- a/pyanaconda/packaging/livepayload.py
+++ b/pyanaconda/packaging/livepayload.py
@@ -66,8 +66,8 @@ class LiveImagePayload(ImagePayload):
self.pct = 0
self.pct_lock = None
- def setup(self, storage):
- super(LiveImagePayload, self).setup(storage)
+ def setup(self, storage, instClass):
+ super(LiveImagePayload, self).setup(storage, instClass)
# Mount the live device and copy from it instead of the overlay at /
osimg = storage.devicetree.getDeviceByPath(self.data.method.partition)
@@ -221,11 +221,11 @@ class LiveImageKSPayload(LiveImagePayload):
self._proxies = {}
self.image_path = ROOT_PATH+"/disk.img"
- def setup(self, storage):
+ def setup(self, storage, instClass):
""" Check the availability and size of the image.
"""
# This is on purpose, we don't want to call LiveImagePayload's setup method.
- ImagePayload.setup(self, storage)
+ ImagePayload.setup(self, storage, instClass)
self._proxies = {}
if self.data.method.proxy:
diff --git a/pyanaconda/packaging/tarpayload.py b/pyanaconda/packaging/tarpayload.py
index 3c9ec65..b3dd2ed 100644
--- a/pyanaconda/packaging/tarpayload.py
+++ b/pyanaconda/packaging/tarpayload.py
@@ -51,8 +51,8 @@ class TarPayload(ArchivePayload):
self.archive = None
self.image_file = None
- def setup(self, storage):
- super(TarPayload, self).setup(storage)
+ def setup(self, storage, instClass):
+ super(TarPayload, self).setup(storage, instClass)
try:
self.archive = tarfile.open(self.image_file)
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index b864f12..6772b8e 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -196,8 +196,8 @@ class YumPayload(PackagePayload):
self._resetYum(root=root, releasever=releasever)
- def setup(self, storage):
- super(YumPayload, self).setup(storage)
+ def setup(self, storage, instClass):
+ super(YumPayload, self).setup(storage, instClass)
self._writeYumConfig()
self._setup = True
--
1.8.5.3
More information about the anaconda-patches
mailing list