26#ifndef MRS_COMPONENT_BACKEND_H
27#define MRS_COMPONENT_BACKEND_H
56 throw std::logic_error(
"Unknown log level");
64 throw std::logic_error(
"Unexpected value for @@log_error_verbosity: " +
81 .provider_role =
"mysql_rest_service_meta_provider"};
86 .provider_role =
"mysql_rest_service_data_provider"};
168 bool validate_metadata_account);
177 const std::string &
host,
178 bool validate_metadata_account);
179 void run(std::promise<int>
p,
bool has_bootstrap_context);
Owns and controls the embedded MRS backend lifecycle.
Definition: mrs_component_backend.h:111
void reset_embedded_runtime_integration()
Definition: mrs_component_backend.cc:1210
LifecycleState m_lifecycle_state
Definition: mrs_component_backend.h:194
LifecycleState
Definition: mrs_component_backend.h:146
CurrentSecurityCtx get_current_sec_ctx() const
Definition: mrs_component_backend.h:141
void install_embedded_runtime_integration()
Definition: mrs_component_backend.cc:1143
void run(std::promise< int > p, bool has_bootstrap_context)
Definition: mrs_component_backend.cc:1313
const char * lifecycle_state_name() const
Definition: mrs_component_backend.cc:552
void fetch_current_sec_ctx()
Definition: mrs_component_backend.cc:118
void enable_lifecycle_operations()
Definition: mrs_component_backend.cc:541
CurrentSecurityCtx m_sec_ctx
Definition: mrs_component_backend.h:218
std::unique_ptr< mysql_harness::Loader > m_loader
Definition: mrs_component_backend.h:200
mrs::MrsStartResult on_mrs_start() override
Definition: mrs_component_backend.cc:1157
Backend & operator=(Backend &&src)=delete
void report_backend_error()
Definition: mrs_component_backend.cc:794
int restart()
Definition: mrs_component_backend.cc:649
mysql_harness::DIM & init_DIM()
Definition: mrs_component_backend.cc:960
bool m_lifecycle_admission_open
Definition: mrs_component_backend.h:195
void configure_loader(mysql_harness::DIM &dim) const
Definition: mrs_component_backend.cc:1005
std::mutex m_lifecycle_operation_mtx
Definition: mrs_component_backend.h:189
int start_backend(AccountProvisioning account_provisioning)
Definition: mrs_component_backend.cc:803
mysql_harness::logging::DomainLogger m_logger
Definition: mrs_component_backend.h:186
std::unique_ptr< ComponentEmbeddedRuntimeServices > m_embedded_runtime_services
Definition: mrs_component_backend.h:201
void configure_accounts(bool retry_account_provisioning, bool validate_metadata_account)
Definition: mrs_component_backend.cc:399
void init_builtins()
Definition: mrs_component_backend.cc:413
std::thread m_service_thread
Definition: mrs_component_backend.h:203
void log_disabled_lifecycle_operation_rejection(const char *operation) const
Definition: mrs_component_backend.cc:546
void breakable_sleep(std::chrono::seconds duration) const
Definition: mrs_component_backend.cc:1216
std::atomic< bool > m_backend_thd_stop_requested
Definition: mrs_component_backend.h:204
int stop_backend()
Definition: mrs_component_backend.cc:1519
bool provision_accounts(bool ignore_missing_provider_role_error) const
Definition: mrs_component_backend.cc:381
~Backend() override=default
Backend(const Backend &src)=delete
std::mutex m_loader_create_mtx
Definition: mrs_component_backend.h:198
bool m_debug_pause_before_runtime_status_publication
Definition: mrs_component_backend.h:214
std::mutex m_lifecycle_state_mtx
Definition: mrs_component_backend.h:193
bool wait_for_metadata_schema(const std::string &user, const std::string &host, bool validate_metadata_account)
Definition: mrs_component_backend.cc:1224
int shutdown()
Definition: mrs_component_backend.cc:736
void report_waiting_for_metadata()
Definition: mrs_component_backend.cc:777
LogLevel m_log_level
Definition: mrs_component_backend.h:185
Backend(Backend &&src)=delete
void setup_logger(mysql_harness::DIM &dim) const
Definition: mrs_component_backend.cc:990
std::optional< CurrentSecurityCtx > m_deferred_account_provisioning_context
Definition: mrs_component_backend.h:208
uint64_t populate_mrs_metadata() const
Definition: mrs_component_backend.cc:434
bool m_debug_pause_before_account_provisioning
Definition: mrs_component_backend.h:210
Backend & operator=(const Backend &src)=delete
void reset_process_state_component() const
Definition: mrs_component_backend.cc:978
void report_metadata_ready()
Definition: mrs_component_backend.cc:785
std::atomic< bool > m_debug_resume_runtime_status_publication
Definition: mrs_component_backend.h:215
int start(AccountProvisioning account_provisioning)
Definition: mrs_component_backend.cc:574
int stop()
Definition: mrs_component_backend.cc:700
std::thread m_backend_starter_thread
Definition: mrs_component_backend.h:203
RouterConfig m_router_config
Definition: mrs_component_backend.h:184
const char * p
Definition: ctype-mb.cc:1227
const char * host
Definition: mysqladmin.cc:66
std::chrono::seconds seconds
Definition: authorize_manager.cc:71
Definition: mrs_component.cc:137
std::string to_string(LogLevel level)
Definition: mrs_component_backend.h:47
AccountProvisioning
Definition: mrs_component_backend.h:100
LogLevel log_level_from_string(const std::string &level_str)
Definition: mrs_component_backend.h:59
LogLevel
Definition: mrs_component_backend.h:45
MrsStartResult
Definition: mrs_start_observer.h:31
static const char *const level_str[]
Definition: handler.cc:55
Definition: mrs_component_backend.h:95
std::string priv_hostname
Definition: mrs_component_backend.h:97
std::string user
Definition: mrs_component_backend.h:96
std::string priv_user
Definition: mrs_component_backend.h:96
Definition: mrs_component_backend.h:69
std::string provider_role
Definition: mrs_component_backend.h:71
std::string username
Definition: mrs_component_backend.h:70
Definition: mrs_component_backend.h:68
std::string http_port
Definition: mrs_component_backend.h:74
std::string local_address
Definition: mrs_component_backend.h:76
uint64_t router_id
Definition: mrs_component_backend.h:91
std::string ssl_cipher
Definition: mrs_component_backend.h:89
std::string name
Definition: mrs_component_backend.h:92
std::string ssl_key
Definition: mrs_component_backend.h:88
MRSAccount data_account
Definition: mrs_component_backend.h:85
std::string ssl_cert
Definition: mrs_component_backend.h:87
std::string logging_folder
Definition: mrs_component_backend.h:75
MRSAccount metadata_account
Definition: mrs_component_backend.h:79
unsigned long io_worker_threads
Definition: mrs_component_backend.h:90