diff options
Diffstat (limited to 'src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java')
-rw-r--r-- | src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java index d63d122..fe0938d 100644 --- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java +++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java @@ -24,6 +24,7 @@ import org.onap.nbi.apis.serviceorder.model.ServiceOrder; import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem; import org.onap.nbi.apis.serviceorder.model.StateType; import org.onap.nbi.apis.serviceorder.model.consumer.CreateE2EServiceInstanceResponse; +import org.onap.nbi.apis.serviceorder.model.consumer.CreateMacroServiceInstanceResponse; import org.onap.nbi.apis.serviceorder.model.consumer.CreateServiceInstanceResponse; import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask; import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfo; @@ -92,8 +93,10 @@ public class SOTaskProcessor { updateE2EServiceOrderItem(response, serviceOrderItem, serviceOrder); } else if (macroService) { LOGGER.info("Mode type macro"); - //TODO: Add logic to construct SO macro request body and call SO macro flow.(EXTAPI-368) - + // call SO macro flow.(EXTAPI-368) + ResponseEntity<CreateMacroServiceInstanceResponse> response = postSoProcessor + .postMacroServiceOrderItem(serviceOrderInfo, serviceOrderItem); + updateMacroServiceOrderItem(response, serviceOrderItem, serviceOrder); } else { ResponseEntity<CreateServiceInstanceResponse> response = @@ -216,6 +219,35 @@ public class SOTaskProcessor { } } + /** + * Update ServiceOrderItem with SO response by using serviceOrderRepository with the serviceOrderId + */ + private void updateMacroServiceOrderItem(ResponseEntity<CreateMacroServiceInstanceResponse> response, + ServiceOrderItem orderItem, ServiceOrder serviceOrder) { + + if (response == null || !response.getStatusCode().is2xxSuccessful()) { + LOGGER.warn("response ko for serviceOrderItem.id=" + orderItem.getId()); + serviceOrderService.updateOrderItemState(serviceOrder, orderItem, StateType.FAILED); + buildOrderMessageIfNeeded(orderItem, serviceOrder, response); + } else { + CreateMacroServiceInstanceResponse createMacroServiceInstanceResponse = response.getBody(); + if (createMacroServiceInstanceResponse != null && !orderItem.getState().equals(StateType.FAILED)) { + orderItem.getService().setId(createMacroServiceInstanceResponse.getRequestReferences().getInstanceId()); + orderItem.setRequestId(createMacroServiceInstanceResponse.getRequestReferences().getRequestId()); + } + + if (!response.getStatusCode().is2xxSuccessful() || response.getBody() == null + || response.getBody().getRequestReferences() == null) { + serviceOrderService.updateOrderItemState(serviceOrder, orderItem, StateType.FAILED); + LOGGER + .warn("order item {} failed , status {} , response {}", orderItem.getId(), response.getStatusCode(), + response.getBody()); + } else { + serviceOrderService.updateOrderItemState(serviceOrder, orderItem, StateType.INPROGRESS); + } + } + } + private void updateOrderItemToInProgress(ServiceOrder serviceOrder, ServiceOrderItem serviceOrderItem) { if (serviceOrderItem.getAction() != ActionType.MODIFY) { serviceOrderService.updateOrderItemState(serviceOrder, serviceOrderItem, StateType.INPROGRESS); @@ -341,4 +373,4 @@ public class SOTaskProcessor { LOGGER.debug("Difference {} and Polling Duration {}", differenceInMillis, pollingDurationInMins); return (differenceInMillis > pollingDurationInMillis); } -} +}
\ No newline at end of file |