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"

Reply via email to