MCPcopy Create free account
hub / github.com/Qovery/engine / run

Method run

lib-engine/src/environment/task.rs:516–677  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

514 }
515
516 fn run(&self) {
517 if self.request.is_self_managed() {
518 engine_task::enable_log_file_writer(&self.info_context(), &self.log_file_writer);
519 }
520
521 let _span = self.span.enter();
522 info!("environment task {} started", self.id());
523
524 self.logger.log(EngineEvent::Info(
525 self.get_event_details(EnvironmentStep::Start),
526 EventMessage::new("🚀 Qovery Engine starts to execute the deployment".to_string(), None),
527 ));
528 let guard = scopeguard::guard((), |_| {
529 hack::remove_gke_gcloud_auth_plugin_cache();
530 self.logger.log(EngineEvent::Info(
531 self.get_event_details(EnvironmentStep::Terminated),
532 EventMessage::new("Qovery Engine has terminated the deployment".to_string(), None),
533 ));
534 let Some(is_terminated_tx) = self.is_terminated.0.write().unwrap().take() else {
535 return;
536 };
537 let _ = is_terminated_tx.send(());
538 });
539
540 let infra_context = match self.infrastructure_context() {
541 Ok(infra_ctx) => infra_ctx,
542 Err(err) => {
543 self.logger.log(EngineEvent::Error(*err, None));
544 return;
545 }
546 };
547 let env_step = service::Action::from(self.request.target_environment.action).into();
548 let event_details = self.get_event_details(env_step);
549 let environment = match self.request.target_environment.to_environment_domain(
550 infra_context.context(),
551 infra_context.cloud_provider(),
552 infra_context.container_registry(),
553 infra_context.kubernetes(),
554 ) {
555 Ok(env) => env,
556 Err(err) => {
557 self.logger.log(EngineEvent::Error(
558 EngineError::new_invalid_engine_payload(event_details, err.to_string().as_str(), None),
559 None,
560 ));
561 return;
562 }
563 };
564
565 // run the actions
566 let metrics_registry = Arc::new(infra_context.metrics_registry().clone_dyn());
567 let service_ids = std::iter::empty()
568 .chain(environment.applications.iter().map(|x| x.as_service().long_id()))
569 .chain(environment.containers.iter().map(|x| x.as_service().long_id()))
570 .chain(environment.routers.iter().map(|x| x.as_service().long_id()))
571 .chain(environment.databases.iter().map(|x| x.as_service().long_id()))
572 .chain(environment.jobs.iter().map(|x| x.as_service().long_id()))
573 .chain(environment.helm_charts.iter().map(|x| x.as_service().long_id()))

Callers 2

test_builder_thread_poolFunction · 0.45

Calls 15

enable_log_file_writerFunction · 0.85
disable_log_file_writerFunction · 0.85
varFunction · 0.85
create_workspace_archiveFunction · 0.85
upload_s3_fileFunction · 0.85
writeMethod · 0.80
sendMethod · 0.80
to_environment_domainMethod · 0.80
container_registryMethod · 0.80
kubernetesMethod · 0.80
start_recordMethod · 0.80

Tested by 1

test_builder_thread_poolFunction · 0.36