diff options
Diffstat (limited to 'appc-sequence-generator/appc-sequence-generator-bundle/src/main/java/org/onap/appc/seqgen/impl/RestartSequenceGenerator.java')
-rw-r--r-- | appc-sequence-generator/appc-sequence-generator-bundle/src/main/java/org/onap/appc/seqgen/impl/RestartSequenceGenerator.java | 64 |
1 files changed, 54 insertions, 10 deletions
diff --git a/appc-sequence-generator/appc-sequence-generator-bundle/src/main/java/org/onap/appc/seqgen/impl/RestartSequenceGenerator.java b/appc-sequence-generator/appc-sequence-generator-bundle/src/main/java/org/onap/appc/seqgen/impl/RestartSequenceGenerator.java index 5ab0b5408..2f5080d0b 100644 --- a/appc-sequence-generator/appc-sequence-generator-bundle/src/main/java/org/onap/appc/seqgen/impl/RestartSequenceGenerator.java +++ b/appc-sequence-generator/appc-sequence-generator-bundle/src/main/java/org/onap/appc/seqgen/impl/RestartSequenceGenerator.java @@ -31,6 +31,7 @@ import org.onap.appc.domainmodel.Vserver; import org.onap.appc.seqgen.SequenceGenerator; import org.onap.appc.seqgen.objects.ActionIdentifier; import org.onap.appc.seqgen.objects.Constants; +import org.onap.appc.seqgen.objects.Constants.Action; import org.onap.appc.seqgen.objects.Response; import org.onap.appc.seqgen.objects.SequenceGeneratorInput; import org.onap.appc.seqgen.objects.Transaction; @@ -57,6 +58,11 @@ public class RestartSequenceGenerator implements SequenceGenerator{ List<Integer> transactionIds = new LinkedList<>(); PayloadGenerator payloadGenerator = new PayloadGenerator(); for (Vserver vm : vservers) { + // check vm-Restart-capabilities for this vm's vnfc-function-code (before incrementing transactionId) + String vmVnfcFunctionCode = vm.getVnfc().getVnfcFunctionCode(); + if (!vmSupportsRestart(input, vmVnfcFunctionCode)) { + continue; + } Transaction transactionStop = new Transaction(); transactionStop.setTransactionId(transactionId); transactionIds.add(transactionId++); @@ -73,12 +79,12 @@ public class RestartSequenceGenerator implements SequenceGenerator{ Response failureResponse = new Response(); failureResponse.setResponseMessage(Constants.ResponseMessage.FAILURE.getResponse()); Map<String,String> failureAction = new HashMap<>(); - if(!checkLastVM(vservers,vm.getId())) - { - failureAction.put(Constants.ResponseAction.JUMP.getAction(), String.valueOf(transactionId+1)); + //if(!checkLastVM(vservers,vm.getId())) + //{ + failureAction.put(Constants.ResponseAction.STOP.getAction(), String.valueOf(transactionId+1)); failureResponse.setResponseAction(failureAction); transactionStop.addResponse(failureResponse); - } + //} } transactionList.add(transactionStop); Transaction transactionStart = new Transaction(); @@ -95,20 +101,58 @@ public class RestartSequenceGenerator implements SequenceGenerator{ Response failureResponse = new Response(); failureResponse.setResponseMessage(Constants.ResponseMessage.FAILURE.getResponse()); Map<String,String> failureAction = new HashMap<>(); - if(!checkLastVM(vservers,vm.getId())) - { - failureAction.put(Constants.ResponseAction.JUMP.getAction(),transactionId.toString()); + //if(!checkLastVM(vservers,vm.getId())) + //{ + //failureAction.put(Constants.ResponseAction.JUMP.getAction(),transactionId.toString()); + failureAction.put(Constants.ResponseAction.STOP.getAction(),transactionId.toString()); failureResponse.setResponseAction(failureAction); transactionStart.addResponse(failureResponse); - } + //} } transactionList.add(transactionStart); } return transactionList; } + + private boolean vmSupportsRestart(SequenceGeneratorInput input, String vnfcFunctionCode) { + boolean vmSupported = true; + if (input.getCapability() == null) { + logger.info("vmSupportsRestart: " + "Capabilities model is null, returning vmSupported=" + vmSupported); + return vmSupported; + } + Map<String, List<String>> vmCapabilities = input.getCapability().getVmCapabilities(); + logger.info("vmSupportsRestart: vnfcFunctionCode=" + vnfcFunctionCode + ", vmCapabilities=" + vmCapabilities); + if (vmCapabilities != null) { + if (!vmCapabilities.isEmpty()) { + vmSupported = false; + if (vmCapabilities.get(Action.RESTART.getActionType()) != null) { + if (vnfcFunctionCode != null && !vnfcFunctionCode.isEmpty()) { + for (String enabledFuncCode : vmCapabilities.get(Action.RESTART.getActionType()) ) { + if (enabledFuncCode.equalsIgnoreCase(vnfcFunctionCode)) { + vmSupported = true; + logger.info("vmSupportsRestart: vnfcFunctionCode=" + vnfcFunctionCode + " found in vmCapabilties"); + break; + } + } + } else { + logger.info("vmSupportsRestart: " + "Inventory vnfcFunctionCode is null or empty"); + } + } else { + logger.info("vmSupportsRestart: " + "Given action in vm entry in Capabilities model is null"); + } + } else { + logger.info("vmSupportsRestart: " + "Vm entry in Capabilities model is empty"); + } + } else { + logger.info("vmSupportsRestart: " + "Vm entry in Capabilities model is null"); + } + + logger.info("vmSupportsRestart: " + "returning vmSupported=" + vmSupported); + return vmSupported; + } - private boolean checkLastVM(List<Vserver> vservers, String vmId){ + private boolean checkLastVM(List<Vserver> vservers, String vmId){ Vserver vm= vservers.get(vservers.size()-1); return vm.getId().equals(vmId); } -} +}
\ No newline at end of file |