From 8561022c70d61d90124f442634b90ff07a064de7 Mon Sep 17 00:00:00 2001 From: Mohit Yadav <105265192+mohityadav766@users.noreply.github.com> Date: Fri, 19 Jul 2024 01:17:12 +0530 Subject: [PATCH] Add Sync Option in OpenmetadataOperations (#17089) --- .../service/util/OpenMetadataOperations.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java b/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java index 80b2f813c42..526ccdb5161 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/util/OpenMetadataOperations.java @@ -44,6 +44,8 @@ import org.openmetadata.schema.ServiceEntityInterface; import org.openmetadata.schema.entity.app.App; import org.openmetadata.schema.entity.app.AppRunRecord; import org.openmetadata.schema.entity.services.ingestionPipelines.IngestionPipeline; +import org.openmetadata.schema.settings.Settings; +import org.openmetadata.schema.settings.SettingsType; import org.openmetadata.schema.system.EventPublisherJob; import org.openmetadata.schema.type.Include; import org.openmetadata.sdk.PipelineServiceClientInterface; @@ -60,6 +62,7 @@ import org.openmetadata.service.jdbi3.EntityRepository; import org.openmetadata.service.jdbi3.IngestionPipelineRepository; import org.openmetadata.service.jdbi3.ListFilter; import org.openmetadata.service.jdbi3.MigrationDAO; +import org.openmetadata.service.jdbi3.SystemRepository; import org.openmetadata.service.jdbi3.locator.ConnectionAwareAnnotationSqlLocator; import org.openmetadata.service.jdbi3.locator.ConnectionType; import org.openmetadata.service.migration.api.MigrationWorkflow; @@ -160,6 +163,26 @@ public class OpenMetadataOperations implements Callable { } } + @Command( + name = "syncEmailFromEnv", + description = "Sync the email configuration from environment variables") + public Integer syncEmailFromEnv() { + try { + parseConfig(); + Entity.setCollectionDAO(jdbi.onDemand(CollectionDAO.class)); + SystemRepository systemRepository = new SystemRepository(); + Settings updatedSettings = + new Settings() + .withConfigType(SettingsType.EMAIL_CONFIGURATION) + .withConfigValue(config.getSmtpSettings()); + systemRepository.createOrUpdate(updatedSettings); + return 0; + } catch (Exception e) { + LOG.error("Email Sync failed due to ", e); + return 1; + } + } + @Command( name = "check-connection", description =