From 9891dbfdc88b94d01144151a8e30116e2ed28a59 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Wed, 3 May 2017 15:24:53 +0300 Subject: Add support for task request manifest toolchain name/version --- mod/mod-build-task.cxx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'mod/mod-build-task.cxx') diff --git a/mod/mod-build-task.cxx b/mod/mod-build-task.cxx index bff5b7e..d75c73d 100644 --- a/mod/mod-build-task.cxx +++ b/mod/mod-build-task.cxx @@ -154,7 +154,9 @@ handle (request& rq, response& rs) b->timestamp.time_since_epoch ()).count ()); string session (b->package_name + '/' + b->package_version.string () + - '/' + b->configuration + '/' + to_string (ts)); + '/' + b->configuration + + '/' + b->toolchain_version.string () + + '/' + to_string (ts)); string result_url (options_->host () + options_->root ().string () + "?build-result"); @@ -206,6 +208,10 @@ handle (request& rq, response& rs) timestamp normal_rebuild_expiration ( expiration (options_->build_normal_rebuild_timeout ())); + // Convert butl::standard_version type to brep::version. + // + brep::version toolchain_version (tqm.toolchain_version.string ()); + // Prepare the package version prepared query. // // Note that the number of packages can be large and so, in order not to @@ -284,6 +290,10 @@ handle (request& rq, response& rs) bld_query::id.configuration.in_range (cfg_names.begin (), cfg_names.end ()) && + compare_version_eq (bld_query::id.toolchain_version, + toolchain_version, + true) && + (bld_query::state == "tested" || (bld_query::state == "testing" && bld_query::timestamp > build_expiration_ns))); @@ -358,7 +368,7 @@ handle (request& rq, response& rs) { config_machine& cm (configs.begin ()->second); machine_header_manifest& mh (*cm.machine); - build_id bid (move (id), cm.config->name); + build_id bid (move (id), cm.config->name, toolchain_version); shared_ptr b (build_db_->find (bid)); // If build configuration doesn't exist then create the new one @@ -370,6 +380,8 @@ handle (request& rq, response& rs) b = make_shared (move (bid.package.name), move (pv.version), move (bid.configuration), + move (tqm.toolchain_name), + move (toolchain_version), mh.name, move (mh.summary)); @@ -403,6 +415,7 @@ handle (request& rq, response& rs) b->results.empty ()); b->state = build_state::testing; + b->toolchain_name = move (tqm.toolchain_name); b->machine = mh.name; b->machine_summary = move (mh.summary); b->timestamp = timestamp::clock::now (); @@ -523,6 +536,7 @@ handle (request& rq, response& rs) // Can't move from, as may need it on the next iteration. // + b->toolchain_name = tqm.toolchain_name; b->machine_summary = mh.summary; // Mark the section as loaded, so results are updated. -- cgit v1.1