aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2025-01-15 14:13:47 +0200
committerKaren Arutyunov <karen@codesynthesis.com>2025-01-15 14:13:47 +0200
commit2baa14d5e07095a5ce2d82f60806e34c20c4aa71 (patch)
tree61e1c9eb9800e07d531e971f42fd225502c0712f
parent6ea1ad3b71eddb051c72fcfc335b84f00bcfac5f (diff)
Fix CI module initialization compiled with unloaded tenant service support
-rw-r--r--mod/mod-build-configs.cxx6
-rw-r--r--mod/mod-builds.cxx6
-rw-r--r--mod/mod-ci.cxx48
-rw-r--r--mod/mod-submit.cxx10
4 files changed, 39 insertions, 31 deletions
diff --git a/mod/mod-build-configs.cxx b/mod/mod-build-configs.cxx
index ce79edb..2754f95 100644
--- a/mod/mod-build-configs.cxx
+++ b/mod/mod-build-configs.cxx
@@ -34,10 +34,12 @@ init (scanner& s)
s, unknown_mode::fail, unknown_mode::fail);
if (options_->build_config_specified ())
+ {
build_config_module::init (*options_);
- if (options_->root ().empty ())
- options_->root (dir_path ("/"));
+ if (options_->root ().empty ())
+ options_->root (dir_path ("/"));
+ }
}
bool brep::build_configs::
diff --git a/mod/mod-builds.cxx b/mod/mod-builds.cxx
index 0155c2e..b11b3d7 100644
--- a/mod/mod-builds.cxx
+++ b/mod/mod-builds.cxx
@@ -58,10 +58,10 @@ init (scanner& s)
{
database_module::init (*options_, options_->build_db_retry ());
build_config_module::init (*options_);
- }
- if (options_->root ().empty ())
- options_->root (dir_path ("/"));
+ if (options_->root ().empty ())
+ options_->root (dir_path ("/"));
+ }
}
template <typename T, typename C>
diff --git a/mod/mod-ci.cxx b/mod/mod-ci.cxx
index 46fbf6a..16ec5a7 100644
--- a/mod/mod-ci.cxx
+++ b/mod/mod-ci.cxx
@@ -105,17 +105,17 @@ init (scanner& s)
fail << "unable to read ci-form file '" << ci_form << "': " << e;
}
}
- }
#ifdef BREP_CI_TENANT_SERVICE_UNLOADED
- if (!options_->build_config_specified ())
- fail << "package building functionality must be enabled";
+ if (!options_->build_config_specified ())
+ fail << "package building functionality must be enabled";
- database_module::init (*options_, options_->build_db_retry ());
+ database_module::init (*options_, options_->build_db_retry ());
#endif
- if (options_->root ().empty ())
- options_->root (dir_path ("/"));
+ if (options_->root ().empty ())
+ options_->root (dir_path ("/"));
+ }
}
bool brep::ci::
@@ -131,8 +131,6 @@ handle (request& rq, response& rs)
HANDLER_DIAG;
- const dir_path& root (options_->root ());
-
// We will respond with the manifest to the CI request submission protocol
// violations and with a plain text message on the internal errors. In the
// latter case we will always respond with the same neutral message for
@@ -180,6 +178,8 @@ handle (request& rq, response& rs)
if (!options_->ci_data_specified ())
return respond_manifest (404, "CI request submission disabled");
+ const dir_path& root (options_->root ());
+
// Parse the request form data and verify the submission size limit.
//
// Note that the submission may include the overrides upload that we don't
@@ -387,18 +387,19 @@ handle (request& rq, response& rs)
optional<start_result> r;
- if (optional<string> ref = create (error,
- warn,
- verb_ ? &trace : nullptr,
- *build_db_,
- tenant_service ("", "ci", rl.string ()),
- chrono::seconds (40),
- chrono::seconds (10)))
+ if (optional<pair<string, duplicate_tenant_result>> ref =
+ create (error,
+ warn,
+ verb_ ? &trace : nullptr,
+ *build_db_, retry_,
+ tenant_service ("", "ci", rl.string ()),
+ chrono::seconds (40),
+ chrono::seconds (10)))
{
string msg ("unloaded CI request is created: " +
- options_->host () + tenant_dir (root, *ref).string ());
+ options_->host () + tenant_dir (root, ref->first).string ());
- r = start_result {200, move (msg), move (*ref), {}};
+ r = start_result {200, move (msg), move (ref->first), {}};
}
#endif
@@ -519,8 +520,10 @@ build_built (const string& /*tenant_id*/,
}
#ifdef BREP_CI_TENANT_SERVICE_UNLOADED
-function<optional<string> (const brep::tenant_service&)> brep::ci::
-build_unloaded (tenant_service&& ts,
+function<optional<string> (const string& tenant_id,
+ const brep::tenant_service&)> brep::ci::
+build_unloaded (const string& /* tenant_id */,
+ tenant_service&& ts,
const diag_epilogue& log_writer) const noexcept
{
NOTIFICATION_DIAG (log_writer);
@@ -532,7 +535,7 @@ build_unloaded (tenant_service&& ts,
repository_location rl (*ts.data);
if (!load (error, warn, verb_ ? &trace : nullptr,
- *build_db_,
+ *build_db_, retry_,
move (ts),
rl))
return nullptr; // The diagnostics is already issued.
@@ -545,7 +548,10 @@ build_unloaded (tenant_service&& ts,
return nullptr;
}
- return [] (const tenant_service& ts) {return "loaded " + *ts.data;};
+ return [] (const string& tenant_id, const tenant_service& ts)
+ {
+ return "loaded " + tenant_id + ' ' + *ts.data;
+ };
}
#endif
#endif
diff --git a/mod/mod-submit.cxx b/mod/mod-submit.cxx
index 5ee358a..6c767cb 100644
--- a/mod/mod-submit.cxx
+++ b/mod/mod-submit.cxx
@@ -93,10 +93,10 @@ init (scanner& s)
if (options_->submit_handler_specified () &&
options_->submit_handler ().relative ())
fail << "submit-handler path must be absolute";
- }
- if (options_->root ().empty ())
- options_->root (dir_path ("/"));
+ if (options_->root ().empty ())
+ options_->root (dir_path ("/"));
+ }
}
bool brep::submit::
@@ -109,8 +109,6 @@ handle (request& rq, response& rs)
HANDLER_DIAG;
- const dir_path& root (options_->root ());
-
// We will respond with the manifest to the submission protocol violations
// and with a plain text message on the internal errors. In the latter case
// we will always respond with the same neutral message for security reason,
@@ -163,6 +161,8 @@ handle (request& rq, response& rs)
if (!options_->submit_data_specified ())
return respond_manifest (404, "submission disabled");
+ const dir_path& root (options_->root ());
+
// Parse the request form data and verify the submission size limit.
//
// Note that if it is exceeded, then there are parameters and this is the