Dependecies within configurations
authorSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 23 Jul 2009 18:48:37 +0000 (18:48 +0000)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 23 Jul 2009 18:48:37 +0000 (18:48 +0000)
build_conf_planetlab.py
run_nightlies.py

index 0da358e..6eb296a 100755 (executable)
@@ -5,7 +5,7 @@ marcs_trunk_build = {
        'distro':['centos5','f8'],
        'personality':['linux32','linux64'],
        'test': 0,
-       'release':['k22']
+       'release':['k22'],
 }
                
 sapans_k27_build = {
@@ -17,6 +17,9 @@ sapans_k27_build = {
 }
 
 ###
+
+personality_to_arch={'linux32':'i386','linux64':'x86_64'}
+
 __default_build__ = {
        'path':'/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin',
        'sh':'/bin/bash',
@@ -25,6 +28,9 @@ __default_build__ = {
        'webpath':'/vservers/build.planet-lab.org/var/www/html/install-rpms/archive',
        'pldistro':'planetlab',
        'date':'2009-07-21',
-       'svnpath':'http://svn.planet-lab.org/svn/build/trunk'
+       'svnpath':'http://svn.planet-lab.org/svn/build/trunk',
+    'personality':'linux32',
+### Define lambdas at the end, because they may need the above values to be filled in for their evaluation
+    'arch':lambda concrete_build: personality_to_arch[concrete_build['personality']]
 }
 
index fe9d8a6..035806d 100755 (executable)
@@ -15,7 +15,10 @@ def interpret_build(build, param_names, current_concrete_build={}, concrete_buil
                                new_concrete_build = current_concrete_build.copy()
                                 new_concrete_build[cur_param_name] = value
                                 concrete_build_list = interpret_build(build, remaining_param_names, new_concrete_build, concrete_build_list)
-
+                elif (type(cur_param)==type(lambda x:x)):
+                        # XXX Assumes that the value is behind it
+                        current_concrete_build[cur_param_name] = cur_param(current_concrete_build)
+                        concrete_build_list = interpret_build(build, remaining_param_names, current_concrete_build,concrete_build_list)
                 # If not, just tack on the value and move on
                 else:
                         current_concrete_build[cur_param_name] = cur_param
@@ -35,7 +38,7 @@ def complete_build_spec_with_defaults (build, default_build):
 # Turn a concrete build into a commandline
 
 def concrete_build_to_commandline(concrete_build):
-    cmdline = """%(shell) \
+    cmdline = """%(sh) \
             %(vbuildinghtly) \
             -b %(pldistro)-%(fcdistro)-%(arch)-%(myplc_version)-%(release)-%(date) \
             -f %(distro) \
@@ -61,7 +64,7 @@ def process_builds (builds, build_names, default_build):
                         print build_commandline
         
 def main():
-        config_file = '/etc/build_conf.py'
+        config_file = './build_conf_planetlab.py'
         builds = {}
         try:
                 execfile(config_file, builds)