diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java index 0239b716eda..e0b89427258 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/ClassConverterFactory.java @@ -28,6 +28,7 @@ import org.openmetadata.schema.services.connections.database.BigQueryConnection; import org.openmetadata.schema.services.connections.database.DatalakeConnection; import org.openmetadata.schema.services.connections.database.MysqlConnection; import org.openmetadata.schema.services.connections.database.PostgresConnection; +import org.openmetadata.schema.services.connections.database.TrinoConnection; import org.openmetadata.schema.services.connections.database.datalake.GCSConfig; import org.openmetadata.schema.services.connections.metadata.OpenMetadataConnection; import org.openmetadata.schema.services.connections.pipeline.AirflowConnection; @@ -48,6 +49,7 @@ public final class ClassConverterFactory { Map.entry(BigQueryConnection.class, new BigQueryConnectionClassConverter()), Map.entry(DatalakeConnection.class, new DatalakeConnectionClassConverter()), Map.entry(MysqlConnection.class, new MysqlConnectionClassConverter()), + Map.entry(TrinoConnection.class, new TrinoConnectionClassConverter()), Map.entry(PostgresConnection.class, new PostgresConnectionClassConverter()), Map.entry(DbtGCSConfig.class, new DbtGCSConfigClassConverter()), Map.entry(DbtPipeline.class, new DbtPipelineClassConverter()), diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/TrinoConnectionClassConverter.java b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/TrinoConnectionClassConverter.java new file mode 100644 index 00000000000..e39586e947b --- /dev/null +++ b/openmetadata-service/src/main/java/org/openmetadata/service/secrets/converter/TrinoConnectionClassConverter.java @@ -0,0 +1,39 @@ +/* + * Copyright 2021 Collate + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openmetadata.service.secrets.converter; + +import java.util.List; +import org.openmetadata.schema.services.connections.database.TrinoConnection; +import org.openmetadata.schema.services.connections.database.common.basicAuth; +import org.openmetadata.schema.services.connections.database.common.jwtAuth; +import org.openmetadata.service.util.JsonUtils; + +/** Converter class to get an `DatalakeConnection` object. */ +public class TrinoConnectionClassConverter extends ClassConverter { + + private static final List> CONFIG_SOURCE_CLASSES = List.of(basicAuth.class, jwtAuth.class); + + public TrinoConnectionClassConverter() { + super(TrinoConnection.class); + } + + @Override + public Object convert(Object object) { + TrinoConnection trinoConnection = (TrinoConnection) JsonUtils.convertValue(object, this.clazz); + + tryToConvert(trinoConnection.getAuthType(), CONFIG_SOURCE_CLASSES).ifPresent(trinoConnection::setAuthType); + + return trinoConnection; + } +} diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/secrets/converter/ClassConverterFactoryTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/secrets/converter/ClassConverterFactoryTest.java index 7ebb702683a..62c2b89dc84 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/secrets/converter/ClassConverterFactoryTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/secrets/converter/ClassConverterFactoryTest.java @@ -19,6 +19,7 @@ import org.openmetadata.schema.services.connections.database.BigQueryConnection; import org.openmetadata.schema.services.connections.database.DatalakeConnection; import org.openmetadata.schema.services.connections.database.MysqlConnection; import org.openmetadata.schema.services.connections.database.PostgresConnection; +import org.openmetadata.schema.services.connections.database.TrinoConnection; import org.openmetadata.schema.services.connections.database.datalake.GCSConfig; import org.openmetadata.schema.services.connections.metadata.OpenMetadataConnection; import org.openmetadata.schema.services.connections.pipeline.AirflowConnection; @@ -45,6 +46,7 @@ public class ClassConverterFactoryTest { GCPCredentials.class, TableauConnection.class, TestServiceConnectionRequest.class, + TrinoConnection.class, Workflow.class }) void testClassConverterIsSet(Class clazz) { @@ -53,6 +55,6 @@ public class ClassConverterFactoryTest { @Test void testClassConvertedMapIsNotModified() { - assertEquals(17, ClassConverterFactory.getConverterMap().size()); + assertEquals(18, ClassConverterFactory.getConverterMap().size()); } }