+
+ requestData.setCurrentRequest(requestModel);
+
+ for (TransactionRecord record : inProgressTransactions) {
+ RequestModel request = new RequestModel();
+ ActionIdentifierModel actionIdentifier = new ActionIdentifierModel();
+
+ actionIdentifier.setServiceInstanceId(record.getServiceInstanceId());
+ actionIdentifier.setVnfId(record.getTargetId());
+ actionIdentifier.setVnfcName(record.getVnfcName());
+ actionIdentifier.setVfModuleId(record.getVfModuleId());
+ actionIdentifier.setVserverId(record.getVserverId());
+
+ request.setAction(record.getOperation().name());
+ request.setActionIdentifier(actionIdentifier);
+ if (request.getActionIdentifier().getVnfcName() != null
+ || request.getActionIdentifier().getVfModuleId() != null
+ || request.getActionIdentifier().getVserverId() != null) {
+
+ request.getActionIdentifier().setVnfId(null);
+ }
+ inProgressRequests.add(request);
+ }
+
+ requestData.setInProgressRequests(inProgressRequests);
+
+ Request request = new Request();
+
+ Date date = new Date();
+ request.setRequestID("RequestId-ScopeOverlap " + date.toString());
+ request.setAction("isScopeOverlap");
+ ObjectMapper objectMapper = new ObjectMapper();
+ JsonNode json = objectMapper.valueToTree(requestData);
+ request.setRequestData(json.toString());
+ Input input = new Input();
+ input.setRequest(request);
+ scopeOverlapModel.setInput(input);
+
+ return scopeOverlapModel;
+ }
+
+ private ActionIdentifierModel extractActionIdentifierModel(RequestContext requestContext) {
+ ActionIdentifierModel actionIdentifierModel = new ActionIdentifierModel();
+ actionIdentifierModel.setServiceInstanceId(requestContext.getActionIdentifiers().getServiceInstanceId());
+ actionIdentifierModel.setVnfId(requestContext.getActionIdentifiers().getVnfId());
+ actionIdentifierModel.setVnfcName(requestContext.getActionIdentifiers().getVnfcName());
+ actionIdentifierModel.setVfModuleId(requestContext.getActionIdentifiers().getVfModuleId());
+ actionIdentifierModel.setVserverId(requestContext.getActionIdentifiers().getVserverId());
+ return actionIdentifierModel;
+ }
+
+ private VNFContext queryAAI(String vnfId) throws VNFNotFoundException, MissingVNFDataInAAIException {
+ SvcLogicContext ctx = new SvcLogicContext();
+ ctx = getVnfdata(vnfId, "vnf", ctx);
+
+ VNFContext vnfContext = new VNFContext();
+ populateVnfContext(vnfContext, ctx);
+
+ return vnfContext;
+ }
+
+ private SvcLogicContext getVnfdata(String vnf_id, String prefix, SvcLogicContext ctx) throws VNFNotFoundException {
+ if (logger.isTraceEnabled()) {
+ logger.trace("Entering to getVnfdata with vnfid = " + ObjectUtils.toString(vnf_id) + ", prefix = "
+ + ObjectUtils.toString(prefix) + ", SvcLogicContext" + ObjectUtils.toString(ctx));
+ }
+ String key = "vnf-id = '" + vnf_id + "'";
+ logger.debug("inside getVnfdata=== " + key);
+ try {
+ Date beginTimestamp = new Date();
+ SvcLogicResource.QueryStatus response = aaiService.query("generic-vnf", false, null, key, prefix, null,
+ ctx);
+ Date endTimestamp = new Date();
+ String status = SvcLogicResource.QueryStatus.SUCCESS.equals(response)
+ ? LoggingConstants.StatusCodes.COMPLETE : LoggingConstants.StatusCodes.ERROR;
+ LoggingUtils.logMetricsMessage(beginTimestamp.toInstant(), endTimestamp.toInstant(),
+ LoggingConstants.TargetNames.AAI, LoggingConstants.TargetServiceNames.AAIServiceNames.QUERY, status,
+ "", response.name(), this.getClass().getCanonicalName());
+ if (SvcLogicResource.QueryStatus.NOT_FOUND.equals(response)) {
+ throw new VNFNotFoundException("VNF not found for vnf_id = " + vnf_id, vnf_id);
+ } else if (SvcLogicResource.QueryStatus.FAILURE.equals(response)) {
+ throw new RuntimeException("Error Querying AAI with vnfID = " + vnf_id);