mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-01 05:36:58 +00:00
modified neccesary files
This commit is contained in:
parent
9776cec660
commit
11f55cc1c2
@ -25,9 +25,8 @@ import org.openmetadata.catalog.type.EntityReference;
|
||||
import org.openmetadata.catalog.type.Schedule;
|
||||
import org.openmetadata.catalog.type.TagLabel;
|
||||
import org.openmetadata.catalog.util.EntityInterface;
|
||||
import org.openmetadata.catalog.util.EntityUtil.Fields;
|
||||
import org.openmetadata.catalog.util.EntityUtil;
|
||||
import org.openmetadata.catalog.util.JsonUtils;
|
||||
import org.openmetadata.catalog.util.Utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
@ -50,7 +49,7 @@ public class DashboardServiceRepository extends EntityRepository<DashboardServic
|
||||
public DashboardService update(UUID id, String description, URI dashboardUrl, String username, String password,
|
||||
Schedule ingestionSchedule)
|
||||
throws IOException {
|
||||
Utils.validateIngestionSchedule(ingestionSchedule);
|
||||
EntityUtil.validateIngestionSchedule(ingestionSchedule);
|
||||
DashboardService dashboardService = dao.dashboardServiceDAO().findEntityById(id);
|
||||
// Update fields
|
||||
dashboardService.withDescription(description).withDashboardUrl(dashboardUrl).withUsername(username)
|
||||
@ -84,7 +83,7 @@ public class DashboardServiceRepository extends EntityRepository<DashboardServic
|
||||
|
||||
@Override
|
||||
public void validate(DashboardService entity) throws IOException {
|
||||
Utils.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
EntityUtil.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -26,9 +26,8 @@ import org.openmetadata.catalog.type.JdbcInfo;
|
||||
import org.openmetadata.catalog.type.Schedule;
|
||||
import org.openmetadata.catalog.type.TagLabel;
|
||||
import org.openmetadata.catalog.util.EntityInterface;
|
||||
import org.openmetadata.catalog.util.EntityUtil.Fields;
|
||||
import org.openmetadata.catalog.util.EntityUtil;
|
||||
import org.openmetadata.catalog.util.JsonUtils;
|
||||
import org.openmetadata.catalog.util.Utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
@ -50,7 +49,7 @@ public class DatabaseServiceRepository extends EntityRepository<DatabaseService>
|
||||
|
||||
public DatabaseService update(UUID id, String description, JdbcInfo jdbc, Schedule ingestionSchedule)
|
||||
throws IOException {
|
||||
Utils.validateIngestionSchedule(ingestionSchedule);
|
||||
EntityUtil.validateIngestionSchedule(ingestionSchedule);
|
||||
DatabaseService dbService = dao.dbServiceDAO().findEntityById(id);
|
||||
// Update fields
|
||||
dbService.withDescription(description).withJdbc((jdbc)).withIngestionSchedule(ingestionSchedule);
|
||||
@ -84,7 +83,7 @@ public class DatabaseServiceRepository extends EntityRepository<DatabaseService>
|
||||
|
||||
@Override
|
||||
public void validate(DatabaseService entity) throws IOException {
|
||||
Utils.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
EntityUtil.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,9 +25,8 @@ import org.openmetadata.catalog.type.EntityReference;
|
||||
import org.openmetadata.catalog.type.Schedule;
|
||||
import org.openmetadata.catalog.type.TagLabel;
|
||||
import org.openmetadata.catalog.util.EntityInterface;
|
||||
import org.openmetadata.catalog.util.EntityUtil.Fields;
|
||||
import org.openmetadata.catalog.util.EntityUtil;
|
||||
import org.openmetadata.catalog.util.JsonUtils;
|
||||
import org.openmetadata.catalog.util.Utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
@ -50,7 +49,7 @@ public class MessagingServiceRepository extends EntityRepository<MessagingServic
|
||||
public MessagingService update(UUID id, String description, List<String> brokers, URI schemaRegistry,
|
||||
Schedule ingestionSchedule)
|
||||
throws IOException {
|
||||
Utils.validateIngestionSchedule(ingestionSchedule);
|
||||
EntityUtil.validateIngestionSchedule(ingestionSchedule);
|
||||
MessagingService dbService = dao.messagingServiceDAO().findEntityById(id);
|
||||
// Update fields
|
||||
dbService.withDescription(description).withIngestionSchedule(ingestionSchedule)
|
||||
@ -85,7 +84,7 @@ public class MessagingServiceRepository extends EntityRepository<MessagingServic
|
||||
|
||||
@Override
|
||||
public void validate(MessagingService entity) throws IOException {
|
||||
Utils.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
EntityUtil.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,9 +25,8 @@ import org.openmetadata.catalog.type.EntityReference;
|
||||
import org.openmetadata.catalog.type.Schedule;
|
||||
import org.openmetadata.catalog.type.TagLabel;
|
||||
import org.openmetadata.catalog.util.EntityInterface;
|
||||
import org.openmetadata.catalog.util.EntityUtil.Fields;
|
||||
import org.openmetadata.catalog.util.EntityUtil;
|
||||
import org.openmetadata.catalog.util.JsonUtils;
|
||||
import org.openmetadata.catalog.util.Utils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
@ -51,7 +50,7 @@ public class PipelineServiceRepository extends EntityRepository<PipelineService>
|
||||
public PipelineService update(UUID id, String description, URI url,
|
||||
Schedule ingestionSchedule)
|
||||
throws IOException {
|
||||
Utils.validateIngestionSchedule(ingestionSchedule);
|
||||
EntityUtil.validateIngestionSchedule(ingestionSchedule);
|
||||
PipelineService pipelineService = dao.pipelineServiceDAO().findEntityById(id);
|
||||
// Update fields
|
||||
pipelineService.withDescription(description).withIngestionSchedule(ingestionSchedule)
|
||||
@ -86,7 +85,7 @@ public class PipelineServiceRepository extends EntityRepository<PipelineService>
|
||||
|
||||
@Override
|
||||
public void validate(PipelineService entity) throws IOException {
|
||||
Utils.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
EntityUtil.validateIngestionSchedule(entity.getIngestionSchedule());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -72,6 +72,34 @@ public final class EntityUtil {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Ingestion Schedule
|
||||
*/
|
||||
public static void validateIngestionSchedule(Schedule ingestion) {
|
||||
if (ingestion == null) {
|
||||
return;
|
||||
}
|
||||
String duration = ingestion.getRepeatFrequency();
|
||||
|
||||
// ISO8601 duration format is P{y}Y{m}M{d}DT{h}H{m}M{s}S.
|
||||
String[] splits = duration.split("T");
|
||||
if (splits[0].contains("Y") || splits[0].contains("M") ||
|
||||
(splits.length == 2 && splits[1].contains("S"))) {
|
||||
throw new IllegalArgumentException("Ingestion repeatFrequency can only contain Days, Hours, and Minutes - " +
|
||||
"example P{d}DT{h}H{m}M");
|
||||
}
|
||||
|
||||
Period period;
|
||||
try {
|
||||
period = ISOPeriodFormat.standard().parsePeriod(duration);
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new IllegalArgumentException("Invalid ingestion repeatFrequency " + duration, e);
|
||||
}
|
||||
if (period.toStandardMinutes().getMinutes() < 60) {
|
||||
throw new IllegalArgumentException("Ingestion repeatFrequency is too short and must be more than 60 minutes");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate that JSON payload can be turned into POJO object
|
||||
*/
|
||||
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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.catalog.util;
|
||||
|
||||
import org.joda.time.Period;
|
||||
import org.joda.time.format.ISOPeriodFormat;
|
||||
import org.openmetadata.catalog.type.Schedule;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public final class Utils {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(Utils.class);
|
||||
|
||||
private Utils() {}
|
||||
|
||||
public static void validateIngestionSchedule(Schedule ingestion) {
|
||||
if (ingestion == null) {
|
||||
return;
|
||||
}
|
||||
String duration = ingestion.getRepeatFrequency();
|
||||
|
||||
// ISO8601 duration format is P{y}Y{m}M{d}DT{h}H{m}M{s}S.
|
||||
String[] splits = duration.split("T");
|
||||
if (splits[0].contains("Y") || splits[0].contains("M") ||
|
||||
(splits.length == 2 && splits[1].contains("S"))) {
|
||||
throw new IllegalArgumentException("Ingestion repeatFrequency can only contain Days, Hours, and Minutes - " +
|
||||
"example P{d}DT{h}H{m}M");
|
||||
}
|
||||
|
||||
Period period;
|
||||
try {
|
||||
period = ISOPeriodFormat.standard().parsePeriod(duration);
|
||||
} catch (IllegalArgumentException e) {
|
||||
throw new IllegalArgumentException("Invalid ingestion repeatFrequency " + duration, e);
|
||||
}
|
||||
if (period.toStandardMinutes().getMinutes() < 60) {
|
||||
throw new IllegalArgumentException("Ingestion repeatFrequency is too short and must be more than 60 minutes");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user