public MetadataValdiator(IScheduleContext context) { this.context = context; this.state = new ValidateState(); }
for (PolicyDefinition pd : context.getPolicies().values()) { if (!pubs.stream().anyMatch(p -> p.getPolicyIds().contains(pd.getName()))) { state.appendUnPublishedPolicies(pd.getName()); for (String inputStream : pd.getInputStreams()) { if (context.getStreamSchemas().get(inputStream) == null) { state.appendPublishemtnValidation(pd.getName(), String.format("policy %s contains unknown stream %s!", pd.getName(), inputStream)); isStreamMiss = true; break; } catch (Exception e) { LOG.error(String.format("siddhi creation failed! %s ", builder.toString()), e); state.appendPolicyValidation(pd.getName(), e.getMessage());
private void validateStreams() { Collection<Kafka2TupleMetadata> datasources = context.getDataSourceMetadata().values(); Collection<PolicyDefinition> definitions = context.getPolicies().values(); for (StreamDefinition sd : context.getStreamSchemas().values()) { if (!datasources.stream().anyMatch(d -> d.getName().equals(sd.getDataSource()))) { state.appendStreamValidation(sd.getStreamId(), String.format("stream %s reference unknown data source %s !", sd.getStreamId(), sd.getDataSource())); } if (!definitions.stream().anyMatch(p -> p.getInputStreams().contains(sd.getStreamId()))) { state.appendUnusedStreams(sd.getStreamId()); } // more on columns if (sd.getColumns() == null || sd.getColumns().size() == 0) { state.appendStreamValidation(sd.getStreamId(), String.format("stream %s have empty columns!", sd.getStreamId())); } } }
state.appendUnusedDatasource(ds.getName()); state.appendDataSourceValidation(ds.getName(), String.format(" unsupported data source type %s !", ds.getType())); state.appendDataSourceValidation(ds.getName(), String.format("codec of datasource must *not* be null!")); continue;
private void validatePublishments() { Collection<PolicyDefinition> definitions = context.getPolicies().values(); for (Publishment p : context.getPublishments().values()) { //TODO: check type; check serializer types; check dedup fields existence; check extend deduplicator... Set<String> unknown = p.getPolicyIds().stream().filter(pid -> definitions.stream().anyMatch(pd -> pd.getName().equals(pid))).collect(Collectors.toSet()); if (unknown.size() > 0) { state.appendPublishemtnValidation(p.getName(), String.format("publishment %s reference unknown/uneabled policy %s!", p.getName(), unknown)); } } }
public MetadataValdiator(IMetadataServiceClient client) { List<Topology> topologies = client.listTopologies(); List<Kafka2TupleMetadata> datasources = client.listDataSources(); List<StreamDefinition> streams = client.listStreams(); // filter out disabled policies List<PolicyDefinition> enabledPolicies = client.listPolicies(); List<Publishment> publishments = client.listPublishment(); context = new InMemScheduleConext(ScheduleContextBuilder.listToMap(topologies), new HashMap<>(), ScheduleContextBuilder.listToMap(datasources), ScheduleContextBuilder.listToMap(enabledPolicies), ScheduleContextBuilder.listToMap(publishments), ScheduleContextBuilder.listToMap(streams), new HashMap<>(), new HashMap<>()); this.state = new ValidateState(); }