use of io.envoyproxy.envoy.api.v2.DiscoveryRequest in project metron by apache.
the class TaxiiHandler method discoverPollingClient.
private static DiscoveryResults discoverPollingClient(URL proxy, URL endpoint, String username, String password, HttpClientContext context, String defaultCollection) throws Exception {
DiscoveryResults results = new DiscoveryResults();
{
HttpClient discoverClient = buildClient(proxy, username, password);
String sessionID = MessageHelper.generateMessageId();
// Prepare the message to send.
DiscoveryRequest request = messageFactory.get().createDiscoveryRequest().withMessageId(sessionID);
DiscoveryResponse response = call(discoverClient, endpoint.toURI(), request, context, DiscoveryResponse.class);
for (ServiceInstanceType serviceInstance : response.getServiceInstances()) {
if (serviceInstance.isAvailable() && serviceInstance.getServiceType() == ServiceTypeEnum.POLL) {
results.pollEndpoint = new URL(serviceInstance.getAddress());
} else if (serviceInstance.isAvailable() && serviceInstance.getServiceType() == ServiceTypeEnum.COLLECTION_MANAGEMENT) {
results.collectionManagementEndpoint = new URL(serviceInstance.getAddress());
}
}
if (results.pollEndpoint == null) {
throw new RuntimeException("Unable to discover a poll TAXII feed");
}
}
if (defaultCollection == null) // get collections
{
HttpClient discoverClient = buildClient(proxy, username, password);
String sessionID = MessageHelper.generateMessageId();
CollectionInformationRequest request = messageFactory.get().createCollectionInformationRequest().withMessageId(sessionID);
CollectionInformationResponse response = call(discoverClient, results.collectionManagementEndpoint.toURI(), request, context, CollectionInformationResponse.class);
LOG.info("Unable to find the default collection; available collections are:");
for (CollectionRecordType c : response.getCollections()) {
LOG.info(c.getCollectionName());
results.collections.add(c.getCollectionName());
}
System.exit(0);
}
return results;
}
use of io.envoyproxy.envoy.api.v2.DiscoveryRequest in project grpc-java by grpc.
the class ClientXdsClientV2Test method createAdsService.
@Override
protected BindableService createAdsService() {
return new AggregatedDiscoveryServiceImplBase() {
@Override
public StreamObserver<DiscoveryRequest> streamAggregatedResources(final StreamObserver<DiscoveryResponse> responseObserver) {
// ensure previous call was ended
assertThat(adsEnded.get()).isTrue();
adsEnded.set(false);
@SuppressWarnings("unchecked") StreamObserver<DiscoveryRequest> requestObserver = mock(StreamObserver.class);
DiscoveryRpcCall call = new DiscoveryRpcCallV2(requestObserver, responseObserver);
resourceDiscoveryCalls.offer(call);
Context.current().addListener(new CancellationListener() {
@Override
public void cancelled(Context context) {
adsEnded.set(true);
}
}, MoreExecutors.directExecutor());
return requestObserver;
}
};
}
use of io.envoyproxy.envoy.api.v2.DiscoveryRequest in project grpc-java by grpc.
the class ClientXdsClientV3Test method createAdsService.
@Override
protected BindableService createAdsService() {
return new AggregatedDiscoveryServiceImplBase() {
@Override
public StreamObserver<DiscoveryRequest> streamAggregatedResources(final StreamObserver<DiscoveryResponse> responseObserver) {
// ensure previous call was ended
assertThat(adsEnded.get()).isTrue();
adsEnded.set(false);
@SuppressWarnings("unchecked") StreamObserver<DiscoveryRequest> requestObserver = mock(StreamObserver.class);
DiscoveryRpcCall call = new DiscoveryRpcCallV3(requestObserver, responseObserver);
resourceDiscoveryCalls.offer(call);
Context.current().addListener(new CancellationListener() {
@Override
public void cancelled(Context context) {
adsEnded.set(true);
}
}, MoreExecutors.directExecutor());
return requestObserver;
}
};
}
Aggregations