aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mod/mod-build-force.cxx9
-rw-r--r--mod/mod-build-result.cxx10
-rw-r--r--mod/mod-build-task.cxx18
-rw-r--r--mod/mod-ci.cxx4
-rw-r--r--mod/mod-ci.hxx4
-rw-r--r--mod/tenant-service.hxx31
6 files changed, 34 insertions, 42 deletions
diff --git a/mod/mod-build-force.cxx b/mod/mod-build-force.cxx
index 780bd40..ea921e9 100644
--- a/mod/mod-build-force.cxx
+++ b/mod/mod-build-force.cxx
@@ -188,7 +188,7 @@ handle (request& rq, response& rs)
//
const tenant_service_build_queued* tsq (nullptr);
optional<pair<tenant_service, shared_ptr<build>>> tss;
- tenant_service_base::build_hints bhs;
+ tenant_service_build_queued::build_queued_hints qhs;
// Acquire the database connection for the subsequent transactions.
//
@@ -269,9 +269,8 @@ handle (request& rq, response& rs)
shared_ptr<build_package> p (
build_db_->load<build_package> (b->id.package));
- bhs =
- tenant_service_base::build_hints {tpc == 1,
- p->configs.size () == 1};
+ qhs = tenant_service_build_queued::build_queued_hints {
+ tpc == 1, p->configs.size () == 1};
// Set the package tenant's queued timestamp.
//
@@ -312,7 +311,7 @@ handle (request& rq, response& rs)
if (auto f = tsq->build_queued (ss,
qbs,
build_state::building,
- bhs,
+ qhs,
log_writer_))
{
conn = build_db_->connection ();
diff --git a/mod/mod-build-result.cxx b/mod/mod-build-result.cxx
index 3ee1f57..3ba18e1 100644
--- a/mod/mod-build-result.cxx
+++ b/mod/mod-build-result.cxx
@@ -203,7 +203,7 @@ handle (request& rq, response&)
const tenant_service_build_built* tsb (nullptr);
const tenant_service_build_queued* tsq (nullptr);
optional<pair<tenant_service, shared_ptr<build>>> tss;
- tenant_service_base::build_hints bhs;
+ tenant_service_build_queued::build_queued_hints qhs;
// Acquire the database connection for the subsequent transactions.
//
@@ -357,8 +357,8 @@ handle (request& rq, response&)
shared_ptr<build_package> p (
build_db_->load<build_package> (b->id.package));
- bhs = tenant_service_base::build_hints {tpc == 1,
- p->configs.size () == 1};
+ qhs = tenant_service_build_queued::build_queued_hints {
+ tpc == 1, p->configs.size () == 1};
// Set the package tenant's queued timestamp.
//
@@ -531,7 +531,7 @@ handle (request& rq, response&)
if (auto f = tsq->build_queued (ss,
qbs,
build_state::building,
- bhs,
+ qhs,
log_writer_))
{
conn = build_db_->connection ();
@@ -555,7 +555,7 @@ handle (request& rq, response&)
//
conn.reset ();
- if (auto f = tsb->build_built (ss, b, bhs, log_writer_))
+ if (auto f = tsb->build_built (ss, b, log_writer_))
{
conn = build_db_->connection ();
update_tenant_service_state (conn, b.tenant, f);
diff --git a/mod/mod-build-task.cxx b/mod/mod-build-task.cxx
index 73bbed5..917017b 100644
--- a/mod/mod-build-task.cxx
+++ b/mod/mod-build-task.cxx
@@ -1109,7 +1109,7 @@ handle (request& rq, response& rs)
const tenant_service_build_queued* tsq (nullptr);
optional<pair<tenant_service, shared_ptr<build>>> tss;
vector<build> qbs;
- tenant_service_base::build_hints bhs;
+ tenant_service_build_queued::build_queued_hints qhs;
optional<build_state> initial_state;
bool rebuild_forced_build (false);
bool rebuild_interrupted_rebuild (false);
@@ -1181,14 +1181,14 @@ handle (request& rq, response& rs)
return r;
};
- auto build_hints = [this] (const build_package& p)
+ auto queue_hints = [this] (const build_package& p)
{
buildable_package_count tpc (
build_db_->query_value<buildable_package_count> (
query<buildable_package_count>::build_tenant::id == p.id.tenant));
- return tenant_service_base::build_hints {tpc == 1,
- p.configs.size () == 1};
+ return tenant_service_build_queued::build_queued_hints {
+ tpc == 1, p.configs.size () == 1};
};
// Collect the auxiliary machines required for testing of the specified
@@ -1976,7 +1976,7 @@ handle (request& rq, response& rs)
(*initial_state != build_state::queued &&
!rebuild_forced_build))
{
- bhs = build_hints (*p);
+ qhs = queue_hints (*p);
t->queued_timestamp = system_clock::now ();
build_db_->update (t);
@@ -2216,8 +2216,6 @@ handle (request& rq, response& rs)
tsb = dynamic_cast<const tenant_service_build_building*> (s);
tsq = dynamic_cast<const tenant_service_build_queued*> (s);
- bhs = build_hints (*p);
-
if (tsq != nullptr)
{
qbs = queue_builds (*p, *b);
@@ -2231,6 +2229,8 @@ handle (request& rq, response& rs)
//
if (!qbs.empty () || !rebuild_interrupted_rebuild)
{
+ qhs = queue_hints (*p);
+
t->queued_timestamp = system_clock::now ();
build_db_->update (t);
}
@@ -2318,7 +2318,7 @@ handle (request& rq, response& rs)
if (auto f = tsq->build_queued (ss,
qbs,
nullopt /* initial_state */,
- bhs,
+ qhs,
log_writer_))
{
conn = build_db_->connection ();
@@ -2350,7 +2350,7 @@ handle (request& rq, response& rs)
if (auto f = tsq->build_queued (ss,
qbs,
initial_state,
- bhs,
+ qhs,
log_writer_))
{
conn = build_db_->connection ();
diff --git a/mod/mod-ci.cxx b/mod/mod-ci.cxx
index 30e3648..8c47bc4 100644
--- a/mod/mod-ci.cxx
+++ b/mod/mod-ci.cxx
@@ -426,7 +426,7 @@ function<optional<string> (const brep::tenant_service&)> brep::ci::
build_queued (const tenant_service&,
const vector<build>& bs,
optional<build_state> initial_state,
- const build_hints& hints,
+ const build_queued_hints& hints,
const diag_epilogue& log_writer) const noexcept
{
NOTIFICATION_DIAG (log_writer);
@@ -470,7 +470,6 @@ build_queued (const tenant_service&,
function<optional<string> (const brep::tenant_service&)> brep::ci::
build_building (const tenant_service&,
const build& b,
- const build_hints&,
const diag_epilogue&) const noexcept
{
return [&b] (const tenant_service& ts)
@@ -491,7 +490,6 @@ build_building (const tenant_service&,
function<optional<string> (const brep::tenant_service&)> brep::ci::
build_built (const tenant_service&,
const build& b,
- const build_hints&,
const diag_epilogue&) const noexcept
{
return [&b] (const tenant_service& ts)
diff --git a/mod/mod-ci.hxx b/mod/mod-ci.hxx
index d7617f4..bd91e99 100644
--- a/mod/mod-ci.hxx
+++ b/mod/mod-ci.hxx
@@ -75,19 +75,17 @@ namespace brep
build_queued (const tenant_service&,
const vector<build>&,
optional<build_state> initial_state,
- const build_hints&,
+ const build_queued_hints&,
const diag_epilogue& log_writer) const noexcept override;
virtual function<optional<string> (const tenant_service&)>
build_building (const tenant_service&,
const build&,
- const build_hints&,
const diag_epilogue& log_writer) const noexcept override;
virtual function<optional<string> (const tenant_service&)>
build_built (const tenant_service&,
const build&,
- const build_hints&,
const diag_epilogue& log_writer) const noexcept override;
#ifdef BREP_CI_TENANT_SERVICE_UNLOADED
diff --git a/mod/tenant-service.hxx b/mod/tenant-service.hxx
index 3f1896b..c46cb7b 100644
--- a/mod/tenant-service.hxx
+++ b/mod/tenant-service.hxx
@@ -18,20 +18,6 @@ namespace brep
class tenant_service_base
{
public:
-
- // The build_hints can be used to omit certain components from the build
- // id. If single_package_version is true, then this tenant contains a
- // single (non-test) package version and this package name and package
- // version can be omitted. If single_package_config is true, then the
- // package version being built only has the default package configuration
- // and thus it can be omitted.
- //
- struct build_hints
- {
- bool single_package_version;
- bool single_package_config;
- };
-
virtual ~tenant_service_base () = default;
};
@@ -100,11 +86,24 @@ namespace brep
// the function name suffix (_queued, _building, _built) signify the
// logical end state.
//
+ // The build_queued_hints can be used to omit certain components from the
+ // build id. If single_package_version is true, then this tenant contains
+ // a single (non-test) package version and this package name and package
+ // version can be omitted. If single_package_config is true, then the
+ // package version being built only has the default package configuration
+ // and thus it can be omitted.
+ //
+ struct build_queued_hints
+ {
+ bool single_package_version;
+ bool single_package_config;
+ };
+
virtual function<optional<string> (const tenant_service&)>
build_queued (const tenant_service&,
const vector<build>&,
optional<build_state> initial_state,
- const build_hints&,
+ const build_queued_hints&,
const diag_epilogue& log_writer) const noexcept = 0;
};
@@ -114,7 +113,6 @@ namespace brep
virtual function<optional<string> (const tenant_service&)>
build_building (const tenant_service&,
const build&,
- const build_hints&,
const diag_epilogue& log_writer) const noexcept = 0;
};
@@ -124,7 +122,6 @@ namespace brep
virtual function<optional<string> (const tenant_service&)>
build_built (const tenant_service&,
const build&,
- const build_hints&,
const diag_epilogue& log_writer) const noexcept = 0;
};