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:
Luca Frosini 2018-12-05 10:09:51 +00:00
parent 016f11f549
commit ed473f09f2
1 changed files with 8 additions and 2 deletions

View File

@ -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);