It helps if I update the ChangeLog properly.
[catalyst.git] / modules / tinderbox_target.py
1
2 """
3 builder class for the tinderbox target
4 """
5
6 from catalyst_support import *
7 from generic_stage_target import *
8
9 class tinderbox_target(generic_stage_target):
10         def __init__(self,spec,addlargs):
11                 self.required_values=["tinderbox/packages"]
12                 self.valid_values=self.required_values[:]
13                 self.valid_values.extend(["tinderbox/use"])
14                 generic_stage_target.__init__(self,spec,addlargs)
15
16         def run_local(self):
17                 # tinderbox
18                 # example call: "grp.sh run xmms vim sys-apps/gleep"
19                 try:
20                         if os.path.exists(self.settings["controller_file"]):
21                             cmd("/bin/bash "+self.settings["controller_file"]+" run "+\
22                                 list_bashify(self.settings["tinderbox/packages"]),"run script failed.",env=self.env)
23                 
24                 except CatalystError:
25                         self.unbind()
26                         raise CatalystError,"Tinderbox aborting due to error."
27
28         def set_cleanables(self):
29             self.settings["cleanables"]=["/etc/resolv.conf","/var/tmp/*","/root/*",\
30                                         "/usr/portage"]
31         def set_action_sequence(self):
32                 #Default action sequence for run method
33                 self.settings["action_sequence"]=["unpack","unpack_snapshot",\
34                               "config_profile_link","setup_confdir","bind","chroot_setup",\
35                               "setup_environment","run_local","preclean","unbind","clean",\
36                               "clear_autoresume"]
37         
38 def register(foo):
39         foo.update({"tinderbox":tinderbox_target})
40         return foo