From 2c1dcac0f2e48dbb7eca6512d72cfa77508caa4f Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Thu, 23 Jul 2009 19:36:49 +0000 Subject: [PATCH] Fixed dependencies --- build_conf_planetlab.py | 18 +++++++++++------- run_nightlies.py | 16 +++++++++++----- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/build_conf_planetlab.py b/build_conf_planetlab.py index 6eb296a7..c876caae 100755 --- a/build_conf_planetlab.py +++ b/build_conf_planetlab.py @@ -1,22 +1,26 @@ #!/usr/bin/python marcs_trunk_build = { - 'tags':['planetlab-tags.mk'], + 'tags':'planetlab-tags.mk', 'distro':['centos5','f8'], 'personality':['linux32','linux64'], 'test': 0, - 'release':['k22'], + 'release':'k22', } sapans_k27_build = { - 'tags':['k27-tags.mk'], - 'distro':['centos5'], - 'personality':['linux32'], + 'tags':'k27-tags.mk', + 'distro':'centos5', + 'personality':'linux32', 'test':1, - 'release':['k27'] + 'release':'k27' } ### +# +# Defaults: Any values that you leave out from the above specs will get filled in by the defaults specified below +# +# personality_to_arch={'linux32':'i386','linux64':'x86_64'} @@ -31,6 +35,6 @@ __default_build__ = { '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']] + 'arch':lambda build: personality_to_arch[concrete_build['personality']] } diff --git a/run_nightlies.py b/run_nightlies.py index 035806d5..12e682b0 100755 --- a/run_nightlies.py +++ b/run_nightlies.py @@ -15,10 +15,7 @@ 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 @@ -53,12 +50,21 @@ def concrete_build_to_commandline(concrete_build): return cmdline +# reduce dependencies in a build +def reduce_dependencies(concrete_build): + for b in concrete_build.keys(): + val = concrete_build[b] + if (type(val)==type(lambda x:x)): + concrete_build[b] = val(concrete_build) + return concrete_build + # Turn build parameter dicts into commandlines and execute them def process_builds (builds, build_names, default_build): for build_name in build_names: build = complete_build_spec_with_defaults (builds[build_name], default_build) - concrete_builds = interpret_build (build, build.keys()) + concrete_builds_without_deps = interpret_build (build, build.keys()) + concrete_builds = map(lambda cb: reduce_dependencies(cb), concrete_builds_without_deps) for concrete_build in concrete_builds: build_commandline = concrete_build_to_commandline(concrete_build) print build_commandline -- 2.47.0