diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2024-05-21 13:48:43 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2024-05-21 13:50:10 +0300 |
commit | bad54b28bcc59fe5d19ecaf486f52e6359009e68 (patch) | |
tree | 4dcc9c10413d46bf9f506863b6f154ee5998e469 /mod/ci-common.hxx | |
parent | c4798955364d3a5e4074e56a0038148837c75d82 (diff) |
Add support for build_unloaded() notification for tenant-associated services
Diffstat (limited to 'mod/ci-common.hxx')
-rw-r--r-- | mod/ci-common.hxx | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/mod/ci-common.hxx b/mod/ci-common.hxx index 6f62c4b..45c959a 100644 --- a/mod/ci-common.hxx +++ b/mod/ci-common.hxx @@ -36,6 +36,7 @@ namespace brep package_name name; optional<brep::version> version; }; + // Note that the inability to generate the reference is an internal // error. Thus, it is not optional. // @@ -62,7 +63,47 @@ namespace brep const optional<string>& interactive = nullopt, const optional<string>& simulate = nullopt, const vector<pair<string, string>>& custom_request = {}, - const vector<pair<string, string>>& overrides = {}); + const vector<pair<string, string>>& overrides = {}) const; + + // Create an unloaded CI request returning start_result::reference on + // success and nullopt on an internal error. Such a request is not started + // until loaded with the load() function below. See also the + // build_unloaded() tenant services notification. + // + // Note: should be called out of the database transaction. + // + optional<string> + create (const basic_mark& error, + const basic_mark& warn, + const basic_mark* trace, + odb::core::database&, + tenant_service&&) const; + + // Load (and start) previously created (as unloaded) CI request. Similarly + // to the start() function, return nullopt on an internal error. + // + // Note that tenant_service::id is used to identify the CI request tenant. + // + // Note: should be called out of the database transaction. + // + optional<start_result> + load (const basic_mark& error, + const basic_mark& warn, + const basic_mark* trace, + odb::core::database&, + tenant_service&&, + const repository_location& repository) const; + + // Abandon previously created (as unloaded) CI request. + // + // Note: should be called out of the database transaction. + // + void + abandon (const basic_mark& error, + const basic_mark& warn, + const basic_mark* trace, + odb::core::database&, + tenant_service&&) const; // Helpers. // |