summaryrefslogtreecommitdiffstats
path: root/appc-sequence-generator/appc-sequence-generator-bundle/src/main/java/org/onap/appc/seqgen/impl/RestartSequenceGenerator.java
diff options
context:
space:
mode:
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.java64
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