commit: 75b92209fb685107860497fd3ecbccdf0df41bfa
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 12 14:14:00 2024 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Sat Oct 12 14:14:00 2024 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=75b92209
Move qcow2 generation into correct directory
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
catalyst/base/stagebase.py | 23 ++++++++++++++++++-----
targets/support/create-qcow2.sh | 11 +++++------
2 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 55ab6cb7..ac950354 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -197,6 +197,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
self.set_fstype()
self.set_fsops()
self.set_iso()
+ self.set_qcow2()
self.set_packages()
self.set_rm()
self.set_linuxrc()
@@ -435,6 +436,20 @@ class StageBase(TargetBase, ClearBase, GenBase):
self.settings[self.settings["spec_prefix"] + "/iso"])
del self.settings[self.settings["spec_prefix"] + "/iso"]
+ def set_qcow2(self):
+ if self.settings["spec_prefix"] + "qcow2" in self.settings:
+ if self.settings[self.settings["spec_prefix"] +
"/qcow2"].startswith('/'):
+ self.settings["qcow2"] = \
+ normpath(
+ self.settings[self.settings["spec_prefix"] + "/qcow2"])
+ else:
+ # This automatically prepends the build dir to the ISO output
path
+ # if it doesn't start with a /
+ self.settings["qcow2"] = normpath(self.settings["storedir"] +
+ "/builds/" +
self.settings["rel_type"] + "/" +
+
self.settings[self.settings["spec_prefix"] + "/qcow2"])
+ del self.settings[self.settings["spec_prefix"] + "/qcow2"]
+
def set_fstype(self):
if self.settings["spec_prefix"] + "/fstype" in self.settings:
self.settings["fstype"] = \
@@ -1636,12 +1651,10 @@ class StageBase(TargetBase, ClearBase, GenBase):
return
# Create the QCOW2 file
- if "diskimage/qcow2" in self.settings:
- cmd([self.settings['controller_file'], 'qcow2',
self.settings['diskimage/qcow2']],
+ if "qcow2" in self.settings:
+ cmd([self.settings['controller_file'], 'qcow2',
self.settings['qcow2']],
env=self.env)
- # FIXME: implement this
- # self.gen_contents_file(self.settings["qcow2"])
- self.gen_digest_file(self.settings["diskimage/qcow2"])
+ self.gen_digest_file(self.settings["qcow2"])
self.resume.enable("create_qcow2")
else:
log.warning('diskimage/qcow2 was not defined. '
diff --git a/targets/support/create-qcow2.sh b/targets/support/create-qcow2.sh
index ff317b8a..62bfe136 100755
--- a/targets/support/create-qcow2.sh
+++ b/targets/support/create-qcow2.sh
@@ -30,9 +30,8 @@ source ${clst_shdir}/support/functions.sh
# Let's assume these are deps of catalyst and thus present.
#
-mycurrentdir="$(pwd)"
-mymountpoint="${mycurrentdir}/${1}.tmp.mnt"
-myqcow2="${mycurrentdir}/${1}"
+mymountpoint="${1}.tmp.mnt"
+myqcow2="${1}"
# TODO: find next free device
modprobe -q nbd
@@ -94,9 +93,9 @@ cp -a "${clst_stage_path}"/* "${mymountpoint}/" || qcow2die
"Could not copy cont
# at this point we have a working system
echo "Creating a CONTENTS file"
-cd "${mymountpoint}/" || qcow2die "Could not cd into mountpoint"
-ls -laR > "${myqcow2}.CONTENTS" || qcow2die "Could not create CONTENTS
file"
-cd "${mycurrentdir}" || qcow2die "Could not cd out of
mountpoint"
+pushd "${mymountpoint}/" &> /dev/null || qcow2die "Could not cd into
mountpoint"
+ls -laR > "${myqcow2}.CONTENTS" || qcow2die "Could not create CONTENTS
file"
+popd &> /dev/null || qcow2die "Could not cd out of
mountpoint"
echo "Compressing the CONTENTS file"
gzip "${myqcow2}.CONTENTS" || qcow2die "Could not compress the CONTENTS
file"