Add dependency information for each target
authorAndrew Gaffney <agaffney@gentoo.org>
Sat, 19 Sep 2009 19:07:03 +0000 (14:07 -0500)
committerAndrew Gaffney <agaffney@gentoo.org>
Sat, 19 Sep 2009 19:07:03 +0000 (14:07 -0500)
Add function to automatically calculate source_subpath

15 files changed:
ChangeLog
modules/catalyst/target/embedded.py
modules/catalyst/target/generic.py
modules/catalyst/target/generic_stage.py
modules/catalyst/target/grp.py
modules/catalyst/target/livecd_stage1.py
modules/catalyst/target/livecd_stage2.py
modules/catalyst/target/netboot.py
modules/catalyst/target/snapshot.py
modules/catalyst/target/stage1.py
modules/catalyst/target/stage2.py
modules/catalyst/target/stage3.py
modules/catalyst/target/stage4.py
modules/catalyst/target/system.py
modules/catalyst/target/tinderbox.py

index 5e5b50fb735c895d15b20fc86612433dd974e076..57cacfae799f676ddd642d982b2497bdac62f00b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,18 @@
 # Distributed under the GPL v2
 # $Id$
 
+  19 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
+  modules/catalyst/target/embedded.py, modules/catalyst/target/generic.py,
+  modules/catalyst/target/generic_stage.py, modules/catalyst/target/grp.py,
+  modules/catalyst/target/livecd_stage1.py,
+  modules/catalyst/target/livecd_stage2.py,
+  modules/catalyst/target/netboot.py, modules/catalyst/target/snapshot.py,
+  modules/catalyst/target/stage1.py, modules/catalyst/target/stage2.py,
+  modules/catalyst/target/stage3.py, modules/catalyst/target/stage4.py,
+  modules/catalyst/target/system.py, modules/catalyst/target/tinderbox.py:
+  Add dependency information for each target
+  Add function to automatically calculate source_subpath
+
   18 Sep 2009; Andrew Gaffney <agaffney@gentoo.org>
   modules/catalyst/target/generic_stage.py:
   Fix typo for Gentoo bug #285484
index fd49ee452bb4516a42dc131d0ba4eda5cabccceb..02604dd6555135dab68936eca2c76665601bc4ba 100644 (file)
@@ -15,6 +15,8 @@ from catalyst.output import *
 
 class embedded_target(generic_stage_target):
 
+       depends = ('system', 'stage3')
+
        def __init__(self):
                self.valid_values = ["empty","rm","unmerge","fs-prepare","fs-finish","mergeroot","packages","fs-type"]
                self.valid_values += ["runscript","boot/kernel","linuxrc", "use", "fs-ops"]
@@ -37,6 +39,6 @@ class embedded_target(generic_stage_target):
                self.settings["root_path"]=catalyst.util.normpath("/tmp/mergeroot")
                msg("embedded root path is " + self.settings["root_path"])
 
-__target_map = {"embedded":embedded_target}
+__target_map = { "embedded": embedded_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index ce9e098594e4277495fce15a20dbcacdcfa7915c..25bb7089209db2811a0a2a6f1c1dda01aca54fa1 100644 (file)
@@ -83,4 +83,12 @@ class generic_target:
                        cmd("/bin/bash " + self.settings["controller_file"] + " " + command, \
                                action + " script failed.", env=self.env)
 
+       def calculate_source_subpath(self):
+               depends = self.depends
+               subpaths = []
+               for x in depends:
+                       foo = self.settings['rel_type'] + '/' + x + '-' + self.settings['subarch'] + '-' + self.settings['version_stamp']
+                       subpaths.append(foo)
+               return subpaths
+
 # vim: ts=4 sw=4 sta noet sts=4 ai
index 44be4416435e4054279dc4623e6764ccdccc95b2..b2ec42ba27f45ebc8a017107d3ff41dd72d9b4dd 100644 (file)
@@ -234,6 +234,9 @@ class generic_stage_target(generic_target):
                                self.settings["version_stamp"]
 
        def set_source_subpath(self):
+               if not 'source_subpath' in self.settings:
+                       subpaths = self.calculate_source_subpath()
+                       msg("Possible source_subpath settings are: " + ', '.join(subpaths))
                if  not isinstance(self.settings["source_subpath"], str):
                        raise CatalystError,\
                                "source_subpath should have been a string. Perhaps you have something wrong in your spec file?"
index ccd22980aab03c8250c87c916b1265d649e49302..907080c4f0e63b6ac863a0627eea18f68925d1da 100644 (file)
@@ -11,6 +11,9 @@ from catalyst.spawn import cmd
 from catalyst.output import *
 
 class grp_target(generic_stage_target):
+
+       depends = ('system', 'stage3')
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -110,6 +113,6 @@ class grp_target(generic_stage_target):
                                "setup_environment","run_local","unbind",\
                                "generate_digests","clear_autoresume"]
 
-__target_map = {"grp":grp_target}
+__target_map = { "grp": grp_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index eec477a9a46fd21072e91d4ab49fdd08c9075427..e78a25e57206d25094b15b057dfae4114968008c 100644 (file)
@@ -9,6 +9,9 @@ from catalyst.spawn import cmd
 from catalyst.output import *
 
 class livecd_stage1_target(generic_stage_target):
+
+       depends = ('system', 'stage3')
+
        def __init__(self):
                self.required_values=["livecd/packages"]
                self.valid_values=self.required_values[:]
@@ -63,6 +66,6 @@ class livecd_stage1_target(generic_stage_target):
                else:
                        generic_stage_target.set_pkgcache_path(self)
 
-__target_map = {"livecd-stage1":livecd_stage1_target}
+__target_map = { "livecd-stage1": livecd_stage1_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index 00bf939313a0065e9572a361638733301b685930..bc7c8eb08a7cc8b9c1ad72d53892a6d75cefc975 100644 (file)
@@ -11,6 +11,9 @@ from catalyst.spawn import cmd
 from catalyst.output import *
 
 class livecd_stage2_target(generic_stage_target):
+
+       depends = ('livecd-stage1', )
+
        def __init__(self):
                self.required_values=["boot/kernel"]
 
@@ -132,6 +135,6 @@ class livecd_stage2_target(generic_stage_target):
                                "setup_overlay","create_iso"]
                self.settings["action_sequence"].append("clear_autoresume")
 
-__target_map = {"livecd-stage2":livecd_stage2_target}
+__target_map = { "livecd-stage2": livecd_stage2_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index 9f4f6f92fc9c9e23d3e4e43aed4e233a661877eb..211d825313c4d263379111378a2d0240b1016b25 100644 (file)
@@ -11,6 +11,9 @@ from catalyst.spawn import cmd
 from catalyst.output import *
 
 class netboot_target(generic_stage_target):
+
+       depends = ('system', 'stage3')
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -145,6 +148,6 @@ class netboot_target(generic_stage_target):
                                "copy_files_to_image","setup_overlay","build_kernel","move_kernels",\
                                "remove","empty","unbind","clean","clear_autoresume"]
 
-__target_map = {"netboot":netboot_target}
+__target_map = { "netboot": netboot_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index 0eb7a3fba1ff2b2d4d6ea8ef69fa05c00e32b89c..47695a8723a711a2db099222148b7f3dac8e7a65 100644 (file)
@@ -11,6 +11,8 @@ from catalyst.output import *
 
 class snapshot_target(catalyst.target.generic.generic_target):
 
+       depends = ()
+
        def __init__(self):
                generic_target.__init__(self)
 
@@ -66,6 +68,6 @@ class snapshot_target(catalyst.target.generic.generic_target):
                        msg("Emptying directory " + myemp)
                        catalyst.util.empty_dir(myemp)
 
-__target_map = {"snapshot":snapshot_target}
+__target_map = { "snapshot": snapshot_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index dde9b32a0ee967fc74acd279a0b44b1198c0633f..ccc42767d3768aafbe32f687a6db52b903c9386d 100644 (file)
@@ -9,6 +9,9 @@ from catalyst.output import *
 
 class stage1_target(generic_stage_target):
 
+       # We're leaving this empty since we can't do automatic source_subpath calculation for stage1
+       depends = ()
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -94,6 +97,6 @@ class stage1_target(generic_stage_target):
                self.mountmap["/tmp/stage1root/proc"]="/proc"
 
 
-__target_map = {"stage1":stage1_target}
+__target_map = { "stage1": stage1_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index a8c46ed7fe67d23bca1c0e358e2ae58b368c22f6..14b59fceaa864a66d9a046a0949fe330627068de 100644 (file)
@@ -9,6 +9,8 @@ from catalyst.output import *
 
 class stage2_target(generic_stage_target):
 
+       depends = ('stage1', )
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -63,6 +65,6 @@ class stage2_target(generic_stage_target):
                                msg("\tDont say we did not warn you")
                                msg()
 
-__target_map = {"stage2":stage2_target}
+__target_map = { "stage2": stage2_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index 4d630dbb38da6069ae05274ab38238f8966e6fb1..1f0039fa7da183dee327484df402f5156d42ec12 100644 (file)
@@ -7,6 +7,8 @@ from generic_stage import *
 
 class stage3_target(generic_stage_target):
 
+       depends = ('stage2', )
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -27,6 +29,6 @@ class stage3_target(generic_stage_target):
                generic_stage_target.set_cleanables(self)
                self.settings["cleanables"].extend(["/etc/portage"])
 
-__target_map = {"stage3":stage3_target}
+__target_map = { "stage3": stage3_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index a42b79c11de4cf321ff42875f065d14efe13b9bb..318805883830fc65e560351e228a268fe84d37cc 100644 (file)
@@ -7,6 +7,8 @@ from generic_stage import *
 
 class stage4_target(generic_stage_target):
 
+       depends = ('system', 'stage3')
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -35,6 +37,6 @@ class stage4_target(generic_stage_target):
                        self.settings["action_sequence"].append("capture")
                self.settings["action_sequence"].append("clear_autoresume")
 
-__target_map = {"stage4":stage4_target}
+__target_map = { "stage4": stage4_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index 9d2b6589bf321561ffa495371a59160978af74e2..1a4d315daf7024f5d713b35733c5aa79f86c4b72 100644 (file)
@@ -9,6 +9,9 @@ from catalyst.output import *
 
 class system_target(generic_stage_target):
 
+       # We're leaving this empty since we can't do automatic source_subpath calculation for system
+       depends = ()
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -90,6 +93,6 @@ class system_target(generic_stage_target):
                self.mountmap[self.settings["root_path"] + "/proc"]="/proc"
 
 
-__target_map = {"system": system_target}
+__target_map = { "system": system_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai
index d78fcea034c11803beb42bcbe7a485696b4e39a5..ccaf4950e20dcbe8165f80c9b462b2f64cdb63d7 100644 (file)
@@ -10,6 +10,8 @@ from catalyst.spawn import cmd
 
 class tinderbox_target(generic_stage_target):
 
+       depends = ('system', 'stage3')
+
        def __init__(self):
                generic_stage_target.__init__(self)
 
@@ -37,6 +39,6 @@ class tinderbox_target(generic_stage_target):
                                "setup_environment","run_local","preclean","unbind","clean",\
                                "clear_autoresume"]
 
-__target_map = {"tinderbox":tinderbox_target}
+__target_map = { "tinderbox": tinderbox_target }
 
 # vim: ts=4 sw=4 sta noet sts=4 ai