mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-26 09:22:14 +00:00
This commit is contained in:
parent
bc76515a6b
commit
146c56abab
@ -53,9 +53,11 @@ public abstract class ServiceEntityResource<
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected T decryptOrNullify(SecurityContext securityContext, T service) {
|
protected T decryptOrNullify(SecurityContext securityContext, T service) {
|
||||||
service
|
if (service.getConnection() != null) {
|
||||||
.getConnection()
|
service
|
||||||
.setConfig(retrieveServiceConnectionConfig(service, authorizer.shouldMaskPasswords(securityContext)));
|
.getConnection()
|
||||||
|
.setConfig(retrieveServiceConnectionConfig(service, authorizer.shouldMaskPasswords(securityContext)));
|
||||||
|
}
|
||||||
return service;
|
return service;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.openmetadata.service.resources.services.metadata;
|
package org.openmetadata.service.resources.services.metadata;
|
||||||
|
|
||||||
|
import static org.openmetadata.common.utils.CommonUtil.nullOrEmpty;
|
||||||
import static org.openmetadata.service.Entity.ADMIN_USER_NAME;
|
import static org.openmetadata.service.Entity.ADMIN_USER_NAME;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.ExternalDocumentation;
|
import io.swagger.v3.oas.annotations.ExternalDocumentation;
|
||||||
@ -84,36 +85,32 @@ public class MetadataServiceResource
|
|||||||
public static final String FIELDS = "pipelines,owner,tags";
|
public static final String FIELDS = "pipelines,owner,tags";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize(OpenMetadataApplicationConfig config) {
|
public void initialize(OpenMetadataApplicationConfig config) throws IOException {
|
||||||
registerMetadataServices(config);
|
registerMetadataServices(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerMetadataServices(OpenMetadataApplicationConfig config) {
|
private void registerMetadataServices(OpenMetadataApplicationConfig config) throws IOException {
|
||||||
try {
|
List<MetadataService> servicesList =
|
||||||
|
repository.getEntitiesFromSeedData(".*json/data/metadataService/OpenmetadataService.json$");
|
||||||
|
if (!nullOrEmpty(servicesList)) {
|
||||||
|
MetadataService openMetadataService = servicesList.get(0);
|
||||||
|
openMetadataService.setId(UUID.randomUUID());
|
||||||
|
openMetadataService.setUpdatedBy(ADMIN_USER_NAME);
|
||||||
|
openMetadataService.setUpdatedAt(System.currentTimeMillis());
|
||||||
if (config.getElasticSearchConfiguration() != null) {
|
if (config.getElasticSearchConfiguration() != null) {
|
||||||
OpenMetadataConnection openMetadataServerConnection =
|
OpenMetadataConnection openMetadataServerConnection =
|
||||||
new OpenMetadataConnectionBuilder(config)
|
new OpenMetadataConnectionBuilder(config)
|
||||||
.build()
|
.build()
|
||||||
.withElasticsSearch(getElasticSearchConnectionSink(config.getElasticSearchConfiguration()));
|
.withElasticsSearch(getElasticSearchConnectionSink(config.getElasticSearchConfiguration()));
|
||||||
MetadataConnection metadataConnection = new MetadataConnection().withConfig(openMetadataServerConnection);
|
MetadataConnection metadataConnection = new MetadataConnection().withConfig(openMetadataServerConnection);
|
||||||
List<MetadataService> servicesList =
|
openMetadataService.setConnection(metadataConnection);
|
||||||
repository.getEntitiesFromSeedData(".*json/data/metadataService/.*\\.json$");
|
|
||||||
if (servicesList.size() == 1) {
|
|
||||||
MetadataService service = servicesList.get(0);
|
|
||||||
service.setId(UUID.randomUUID());
|
|
||||||
service.setConnection(metadataConnection);
|
|
||||||
service.setUpdatedBy(ADMIN_USER_NAME);
|
|
||||||
service.setUpdatedAt(System.currentTimeMillis());
|
|
||||||
repository.setFullyQualifiedName(service);
|
|
||||||
repository.createOrUpdate(null, service);
|
|
||||||
} else {
|
|
||||||
throw new IOException("Only one Openmetadata Service can be initialized from the Data.");
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
LOG.error("[MetadataService] Missing Elastic Search Config.");
|
LOG.error("[MetadataService] Missing Elastic Search Config.");
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
repository.setFullyQualifiedName(openMetadataService);
|
||||||
LOG.error("[MetadataService] Error in creating Metadata Services.", ex);
|
repository.createOrUpdate(null, openMetadataService);
|
||||||
|
} else {
|
||||||
|
throw new IOException("Failed to initialize OpenMetadata Service.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ import org.openmetadata.service.util.TestUtils;
|
|||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MetadataServiceResourceTest extends EntityResourceTest<MetadataService, CreateMetadataService> {
|
public class MetadataServiceResourceTest extends EntityResourceTest<MetadataService, CreateMetadataService> {
|
||||||
|
public static final String DEFAULT_OPENMETADATA_SERVICE_NAME = "OpenMetadata";
|
||||||
|
|
||||||
public MetadataServiceResourceTest() {
|
public MetadataServiceResourceTest() {
|
||||||
super(
|
super(
|
||||||
Entity.METADATA_SERVICE,
|
Entity.METADATA_SERVICE,
|
||||||
@ -69,6 +71,12 @@ public class MetadataServiceResourceTest extends EntityResourceTest<MetadataServ
|
|||||||
ATLAS_SERVICE_REFERENCE = metadataService.getEntityReference();
|
ATLAS_SERVICE_REFERENCE = metadataService.getEntityReference();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void defaultOpenMetadataServiceMustExist(TestInfo test) throws HttpResponseException {
|
||||||
|
MetadataService service = getEntityByName(DEFAULT_OPENMETADATA_SERVICE_NAME, ADMIN_AUTH_HEADERS);
|
||||||
|
assertEquals(service.getName(), DEFAULT_OPENMETADATA_SERVICE_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void post_withoutRequiredFields_400_badRequest(TestInfo test) {
|
void post_withoutRequiredFields_400_badRequest(TestInfo test) {
|
||||||
// Create metadata with mandatory serviceType field empty
|
// Create metadata with mandatory serviceType field empty
|
||||||
|
Loading…
x
Reference in New Issue
Block a user