Create catalyst.util.create_tarball() helper function
authorAndrew Gaffney <agaffney@gentoo.org>
Sun, 13 Sep 2009 19:51:58 +0000 (14:51 -0500)
committerAndrew Gaffney <agaffney@gentoo.org>
Sun, 13 Sep 2009 19:51:58 +0000 (14:51 -0500)
Replace more manual calls to rsync with catalyst.util.rsync()
Replace manual calls to 'tar cjf' with catalyst.util.create_tarball()

ChangeLog
modules/catalyst/target/generic_stage.py
modules/catalyst/target/netboot.py
modules/catalyst/util.py

index 0380a5f91587bd03e8bc181c29e33bfd4a43f096..e0717661ade11fe012145f88a0f1caabc6245570 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,13 @@
 # Distributed under the GPL v2
 # $Id$
 
+  13 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
+  modules/catalyst/target/generic_stage.py,
+  modules/catalyst/target/netboot.py, modules/catalyst/util.py:
+  Create catalyst.util.create_tarball() helper function
+  Replace more manual calls to rsync with catalyst.util.rsync()
+  Replace manual calls to 'tar cjf' with catalyst.util.create_tarball()
+
   13 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
   modules/catalyst/target/snapshot.py, modules/catalyst/util.py:
   Add catalyst.util.create_tarball() helper function and modify snapshot
index b9757e8c7335efcd244c9fa3fda91852af4497a0..eb2f04746550b85d4fb4fbe9c9ec6f5ae7cdb984 100644 (file)
@@ -726,10 +726,7 @@ class generic_stage_target(generic_target):
                        for x in self.settings["root_overlay"]:
                                if os.path.exists(x):
                                        msg("Copying root_overlay: " + x)
-                                       cmd("rsync -a "+x+"/ "+\
-                                               self.settings["chroot_path"],\
-                                               "root_overlay: "+x+\
-                                               " copy failed.",env=self.env)
+                                       catalyst.util.rsync(x + "/", self.settings["chroot_path"])
 
        def base_dirs(self):
                pass
@@ -1024,9 +1021,7 @@ class generic_stage_target(generic_target):
 
                        msg("Creating stage tarball...")
 
-                       cmd("tar cjpf "+self.settings["target_path"]+" -C "+\
-                               self.settings["stage_path"]+" .",\
-                               "Couldn't create stage tarball",env=self.env)
+                       catalyst.util.create_tarball(self.settings["target_path"], ".", working_dir=self.settings["stage_path"], keep_perm=True)
 
                        catalyst.hash.gen_contents_file(self.settings["target_path"], self.settings)
                        catalyst.hash.gen_digest_file(self.settings["target_path"], self.settings)
index b604d704e61c4b1d374c9ad2cf57fe7dbb1d7a91..9f4f6f92fc9c9e23d3e4e43aed4e233a661877eb 100644 (file)
@@ -99,8 +99,7 @@ class netboot_target(generic_stage_target):
                        if "netboot/overlay" in self.settings:
                                for x in self.settings["netboot/overlay"]:
                                        if os.path.exists(x):
-                                               cmd("rsync -a "+x+"/ "+\
-                                                       self.settings["chroot_path"] + self.settings["merge_path"], "netboot/overlay: "+x+" copy failed.",env=self.env)
+                                               catalyst.util.rsync(x + "/", self.settings["chroot_path"] + self.settings["merge_path"])
                                self.set_autoresume("setup_overlay")
 
        def move_kernels(self):
index b960227a877e061d200a2ac87042a5777dc6aad8..7efd7ea1b8a4d9bec0d6a0699382575e294b321b 100644 (file)
@@ -257,5 +257,15 @@ def create_tarball(target, src, working_dir=None, keep_perm=False):
        if retval != 0:
                raise CatalystError("Could not create tarball '%s'" % (target,))
 
+def unpack_tarball(src, dest, keep_perm=True):
+       unpack_cmd = "tar "
+       if keep_perm:
+               unpack_cmd += "xjpf "
+       else:
+               unpack_cmd += "xjf "
+       unpack_cmd += src + " -C " + dest
+       retval = catalyst.spawn.spawn_bash(unpack_cmd)
+       if retval != 0:
+               raise CatalystError("Could not unpack tarball '%s'" % (src,))
 
 # vim: ts=4 sw=4 sta noet sts=4 ai