summaryrefslogtreecommitdiffstats
path: root/cmso-optimizer
diff options
context:
space:
mode:
authorJerry Flood <jflood@att.com>2019-04-05 16:55:13 -0400
committerJerry Flood <jflood@att.com>2019-04-05 17:11:14 -0400
commita5e82a2a703fd31cac33cef4bbe07445a274ba71 (patch)
treecb796ecac95d3da0c82f765273d0c07ece650830 /cmso-optimizer
parentc98cf7f69ff8a7765766a6ca569c874ae075fdea (diff)
Fix so minizinc works in windows
Issue-ID: OPTFRA-458 Change-Id: Id63558456a13a31284f12007587706c66508512f Signed-off-by: Jerry Flood <jflood@att.com>
Diffstat (limited to 'cmso-optimizer')
-rw-r--r--cmso-optimizer/etc/config/optimizer.properties1
-rw-r--r--cmso-optimizer/scripts/minizinc/run.bat2
-rw-r--r--cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java21
3 files changed, 9 insertions, 15 deletions
diff --git a/cmso-optimizer/etc/config/optimizer.properties b/cmso-optimizer/etc/config/optimizer.properties
index 653d21b..e3ab89a 100644
--- a/cmso-optimizer/etc/config/optimizer.properties
+++ b/cmso-optimizer/etc/config/optimizer.properties
@@ -56,3 +56,4 @@ cmso.minizinc.command.exe="C:/Program Files/MiniZinc IDE (bundled)/minizinc.exe"
cmso.minizinc.command.solver=OSICBC
cmso.minizinc.command.timelimit=60000
cmso.minizinc.command.mzn=scripts/minizinc/generic_attributes.mzn
+cmso.minizinc.command.commandline=cmd.exe /C scripts\\minizinc\\run.bat \ No newline at end of file
diff --git a/cmso-optimizer/scripts/minizinc/run.bat b/cmso-optimizer/scripts/minizinc/run.bat
index dc40503..8c07b3c 100644
--- a/cmso-optimizer/scripts/minizinc/run.bat
+++ b/cmso-optimizer/scripts/minizinc/run.bat
@@ -1 +1 @@
-%MINIZINC% --solver %MINIZINC_SOLVER% --time-limit %MINIZINC_TIMELIMIT% --soln-sep "" --search-complete-msg "" -o %MINIZINC_OUTPUT% %MINIZINC_MZN% %MINIZINC_DZN% \ No newline at end of file
+%MINIZINC% --solver %MINIZINC_SOLVER% --time-limit %MINIZINC_TIMELIMIT% --soln-sep "" --search-complete-msg "" -o "%MINIZINC_OUTPUT%" "%MINIZINC_MZN%" "%MINIZINC_DZN%" \ No newline at end of file
diff --git a/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java b/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java
index 9f2f8e6..b382278 100644
--- a/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java
+++ b/cmso-optimizer/src/main/java/org/onap/optf/cmso/optimizer/clients/optimizer/OptimizerClient.java
@@ -32,7 +32,6 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.ParseException;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -214,33 +213,26 @@ public class OptimizerClient {
Path outputFileName = Paths.get(workingFolder.getAbsolutePath(), "results.yaml");
String dzn = request.toMiniZinc();
Files.write(inputFileName, dzn.getBytes());
- Map<String, String> environment = new HashMap<>();
ProcessBuilder processBuilder = buildCommand(inputFileName, outputFileName, timeLimit.toString());
process = processBuilder.start();
- //debug.debug("engine command=" + commandString);
+ // debug.debug("engine command=" + commandString);
String stdout = IOUtils.toString(process.getInputStream(), "UTF-8");
String stderr = IOUtils.toString(process.getErrorStream(), "UTF-8");
debug.debug("stdout=" + stdout);
debug.debug("stderr=" + stderr);
- if (process.isAlive()) {
- process.wait();
- }
OptimizerResponseUtility responseUtility = new OptimizerResponseUtility();
OptimizerResults optimizerResults = responseUtility.parseOptimizerResult(outputFileName.toFile());
apiResponse.setOptimizerResults(optimizerResults);
apiResponse.setStatus(OptimizerEngineResponseStatus.COMPLETED);
- } catch (InterruptedException e) {
- apiResponse.setStatus(OptimizerEngineResponseStatus.FAILED);
- apiResponse.setErrorMessage(
- LogMessages.OPTIMIZER_REQUEST_TIMEOUT.format(uuid.toString(), timeLimit.toString()));
- Observation.report(LogMessages.OPTIMIZER_REQUEST_TIMEOUT, uuid.toString(), timeLimit.toString());
- process.destroyForcibly();
} catch (Exception e) {
apiResponse.setStatus(OptimizerEngineResponseStatus.FAILED);
apiResponse.setErrorMessage(LogMessages.UNEXPECTED_EXCEPTION.format(e.getMessage()));
Observation.report(LogMessages.UNEXPECTED_RESPONSE, e, e.getMessage());
} finally {
+ if (process.isAlive()) {
+ process.destroyForcibly();
+ }
if (workingFolder.exists()) {
workingFolder.delete();
}
@@ -251,7 +243,8 @@ public class OptimizerClient {
private ProcessBuilder buildCommand(Path inputFileName, Path outputFileName, String timeLimit) {
ProcessBuilder processBuilder = new ProcessBuilder();
List<String> command = new ArrayList<>();
- String commandline = env.getProperty("cmso.minizinc.command.commandline", "/bin/bash -x scripts/minizinc/run.sh");
+ String commandline =
+ env.getProperty("cmso.minizinc.command.commandline", "/bin/bash -x scripts/minizinc/run.sh");
String minizinc = env.getProperty("cmso.minizinc.command.exe", "minizinc");
String solver = env.getProperty("cmso.minizinc.command.solver", "OSICBC");
String script = env.getProperty("cmso.minizinc.command.mzn", "scripts/minizinc/generic_attributes.mzn");
@@ -263,7 +256,7 @@ public class OptimizerClient {
environment.put("MINIZINC_MZN", script);
environment.put("MINIZINC_DZN", inputFileName.toString());
for (String arg : commandline.split(" ")) {
- command.add(arg);
+ command.add(arg);
}
processBuilder.command(command);
return processBuilder;