Refs #12984: Fixed smart-exectuor discovery to filter gCoreEndpoint results using got ServiceEndpoints
Task-Url: https://support.d4science.org/issues/12984 git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/vre-management/smart-executor-client@174570 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
016f11f549
commit
ed473f09f2
|
@ -3,6 +3,7 @@ package org.gcube.vremanagement.executor.client.query;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import org.gcube.common.clients.exceptions.DiscoveryException;
|
||||
import org.gcube.common.resources.gcore.GCoreEndpoint;
|
||||
|
@ -11,6 +12,7 @@ import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
|||
import org.gcube.resources.discovery.icclient.ICFactory;
|
||||
import org.gcube.vremanagement.executor.client.Constants;
|
||||
import org.gcube.vremanagement.executor.client.plugins.query.filter.EndpointDiscoveryFilter;
|
||||
import org.gcube.vremanagement.executor.client.plugins.query.filter.SpecificEndpointDiscoveryFilter;
|
||||
import org.gcube.vremanagement.executor.client.query.filter.GCoreEndpointQueryFilter;
|
||||
import org.gcube.vremanagement.executor.client.query.filter.ServiceEndpointQueryFilter;
|
||||
import org.gcube.vremanagement.executor.client.util.Tuple;
|
||||
|
@ -142,9 +144,13 @@ public class Discover {
|
|||
}
|
||||
|
||||
SimpleQuery gCoreEndpointDiscoveryQuery = getGCoreEndpointQuery();
|
||||
if(endpointDiscoveryFilter!=null) {
|
||||
endpointDiscoveryFilter.filter(gCoreEndpointDiscoveryQuery, serviceEndpoints);
|
||||
if(endpointDiscoveryFilter==null) {
|
||||
Random random = new Random();
|
||||
int index = random.nextInt(serviceEndpoints.size());
|
||||
ServiceEndpoint serviceEndpoint = serviceEndpoints.get(index);
|
||||
endpointDiscoveryFilter = new SpecificEndpointDiscoveryFilter(serviceEndpoint.profile().runtime().hostedOn());
|
||||
}
|
||||
endpointDiscoveryFilter.filter(gCoreEndpointDiscoveryQuery, serviceEndpoints);
|
||||
|
||||
List<String> addresses = ICFactory.client().submit(gCoreEndpointDiscoveryQuery);
|
||||
|
||||
|
|
Loading…
Reference in New Issue