[livemedia-creator 4/4] livemedia-creator: log more failure information
Brian C. Lane
bcl at redhat.com
Wed Jul 2 22:17:41 UTC 2014
This switches on the rc checking in execWithRedirect and logs the error
it raises.
---
src/sbin/livemedia-creator | 68 ++++++++++++++++++++++++----------------------
1 file changed, 36 insertions(+), 32 deletions(-)
diff --git a/src/sbin/livemedia-creator b/src/sbin/livemedia-creator
index 0028bd4..88ca723 100755
--- a/src/sbin/livemedia-creator
+++ b/src/sbin/livemedia-creator
@@ -366,9 +366,11 @@ class VirtualInstall(object):
args.append("--arch")
args.append(arch)
- rc = execWithRedirect("virt-install", args)
- if rc:
- raise InstallError("Problem starting virtual install")
+ log.info("Running virt-install.")
+ try:
+ execWithRedirect("virt-install", args, raise_err=True)
+ except subprocess.CalledProcessError as e:
+ raise InstallError("Problem starting virtual install: %s" % e)
conn = libvirt.openReadOnly(None)
dom = conn.lookupByName(self.virt_name)
@@ -646,35 +648,37 @@ def novirt_install(opts, disk_img, disk_size, repo_url):
# Make sure anaconda has the right product and release
os.environ["ANACONDA_PRODUCTNAME"] = opts.project
os.environ["ANACONDA_PRODUCTVERSION"] = opts.releasever
- rc = execWithRedirect("anaconda", args)
-
- # Move the anaconda logs over to a log directory
- log_dir = os.path.abspath(os.path.dirname(opts.logfile))
- log_anaconda = joinpaths(log_dir, "anaconda")
- if not os.path.isdir(log_anaconda):
- os.mkdir(log_anaconda)
- for l in ["anaconda.log", "ifcfg.log", "program.log", "storage.log",
- "packaging.log", "yum.log"]:
- if os.path.exists("/tmp/"+l):
- shutil.copy2("/tmp/"+l, log_anaconda)
- os.unlink("/tmp/"+l)
-
- if opts.make_iso or opts.make_fsimage:
- umount(ROOT_PATH)
- else:
- # If anaconda failed the disk image may still be in use by dm
- execWithRedirect("anaconda-cleanup", [])
- dm_name = os.path.splitext(os.path.basename(disk_img))[0]
- dm_path = "/dev/mapper/"+dm_name
- if os.path.exists(dm_path):
- dm_detach(dm_path)
- loop_detach(get_loop_name(disk_img))
-
- if selinux_enforcing:
- selinux.security_setenforce(1)
-
- if rc:
+ log.info("Running anaconda.")
+ try:
+ execWithRedirect("anaconda", args, raise_err=True)
+ except subprocess.CalledProcessError as e:
+ log.error("Running anaconda failed: %s", e)
raise InstallError("novirt_install failed")
+ finally:
+ # Move the anaconda logs over to a log directory
+ log_dir = os.path.abspath(os.path.dirname(opts.logfile))
+ log_anaconda = joinpaths(log_dir, "anaconda")
+ if not os.path.isdir(log_anaconda):
+ os.mkdir(log_anaconda)
+ for l in ["anaconda.log", "ifcfg.log", "program.log", "storage.log",
+ "packaging.log", "yum.log"]:
+ if os.path.exists("/tmp/"+l):
+ shutil.copy2("/tmp/"+l, log_anaconda)
+ os.unlink("/tmp/"+l)
+
+ if opts.make_iso or opts.make_fsimage:
+ umount(ROOT_PATH)
+ else:
+ # If anaconda failed the disk image may still be in use by dm
+ execWithRedirect("anaconda-cleanup", [])
+ dm_name = os.path.splitext(os.path.basename(disk_img))[0]
+ dm_path = "/dev/mapper/"+dm_name
+ if os.path.exists(dm_path):
+ dm_detach(dm_path)
+ loop_detach(get_loop_name(disk_img))
+
+ if selinux_enforcing:
+ selinux.security_setenforce(1)
if opts.qcow2:
log.info("Converting %s to qcow2", disk_img)
@@ -697,7 +701,7 @@ def novirt_install(opts, disk_img, disk_size, repo_url):
shutil.rmtree(ROOT_PATH)
if rc:
- raise InstallError("novirt_install failed")
+ raise InstallError("novirt_install mktar failed: rc=%s" % rc)
def virt_install(opts, install_log, disk_img, disk_size):
--
1.9.3
More information about the anaconda-patches
mailing list