diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7f93135..d64cd49 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1af9e09..a80b22c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/ExnConnector.java b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/ExnConnector.java index b45bba0..b0eef82 100644 --- a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/ExnConnector.java +++ b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/ExnConnector.java @@ -114,8 +114,8 @@ public class ExnConnector { * Connect to ActiveMQ and activate all publishers and consumers. It is * an error to start the controller more than once. * - * @param synchronizer if non-null, a countdown latch that will be signaled - * when the connector is stopped by calling {@link + * @param synchronizer if non-null, a countdown latch that will be + * signaled when the connector is stopped by calling {@link * CountDownLatch#countDown} once. */ public synchronized void start(CountDownLatch synchronizer) { diff --git a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/SalConnector.java b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/SalConnector.java index 8978313..2e57daf 100644 --- a/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/SalConnector.java +++ b/optimiser-controller/src/main/java/eu/nebulouscloud/optimiser/controller/SalConnector.java @@ -26,15 +26,23 @@ public class SalConnector { private static final ObjectMapper mapper = new ObjectMapper(); + /** + * Get list of node candidates that fulfil the requirements. + * + * See https://github.com/ow2-proactive/scheduling-abstraction-layer/blob/master/documentation/nodecandidates-endpoints.md#71--filter-node-candidates-endpoint + * + * @param requirements The list of requirements. + * @param appID The application ID, if available. + * @return A list of node candidates, or null in case of error. + */ public static List findNodeCandidates(List requirements, String appID) { - Map msg = new HashMap<>(); - Map metadata = new HashMap<>(); - metadata.put("user", "admin"); - msg.put("metaData", metadata); + Map msg; try { - msg.put("body", mapper.writeValueAsString(requirements)); + msg = Map.of( + "metaData", Map.of("user", "admin"), + "body", mapper.writeValueAsString(requirements)); } catch (JsonProcessingException e) { - log.error("Could not convert requirements list to JSON string", e); + log.error("Could not convert requirements list to JSON string (this should never happen)", e); return null; } Map response = ExnConnector.findNodeCandidates.sendSync(msg, appID, null, false); @@ -42,7 +50,7 @@ public class SalConnector { try { return Arrays.asList(mapper.readValue(body, NodeCandidate[].class)); } catch (JsonProcessingException e) { - log.error("Error receiving findNodeCandidates result", e); + log.error("Error receiving findNodeCandidates result (this should never happen)", e); return null; } }