X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=bpmn%2Fso-bpmn-tasks%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fso%2Fbpmn%2Finfrastructure%2Fservice%2Fcomposition%2FChildServiceRequestBuilder.java;h=2a008e357312e412dbf27bf31a8b20ebe57ccfe0;hb=7afa4fdaecb5df4e6e67f94a46825ebbe6050110;hp=135b3d6ec48090a70a7e38970e0291fd2db69f0c;hpb=f2f6144f8600f87b8dce092574c0541eb17389b8;p=so.git diff --git a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/composition/ChildServiceRequestBuilder.java b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/composition/ChildServiceRequestBuilder.java index 135b3d6ec4..2a008e3573 100644 --- a/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/composition/ChildServiceRequestBuilder.java +++ b/bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/service/composition/ChildServiceRequestBuilder.java @@ -13,15 +13,14 @@ import org.onap.so.serviceinstancebeans.RelatedInstance; import org.onap.so.serviceinstancebeans.RelatedInstanceList; import org.onap.so.serviceinstancebeans.RequestDetails; import org.onap.so.serviceinstancebeans.RequestInfo; +import org.onap.so.serviceinstancebeans.RequestParameters; import org.onap.so.serviceinstancebeans.Service; import org.onap.so.serviceinstancebeans.ServiceInstancesRequest; -import org.onap.so.serviceinstancebeans.RequestParameters; import org.onap.so.serviceinstancebeans.SubscriberInfo; import java.io.IOException; import java.util.Map; public class ChildServiceRequestBuilder { - private final BuildingBlockExecution buildingBlockExecution; private Service parent; private Service child; @@ -66,6 +65,17 @@ public class ChildServiceRequestBuilder { return new ChildServiceRequestBuilder(buildingBlockExecution, parent, child); } + public static ChildServiceRequestBuilder getInstance(final BuildingBlockExecution buildingBlockExecution, + Service parentInstance, Service childInstance) { + Service child = null; + Service parent = null; + if (childInstance != null) { + parent = parentInstance; + child = childInstance; + } + return new ChildServiceRequestBuilder(buildingBlockExecution, parent, child); + } + public ChildServiceRequestBuilder setParentRequestId(String parentRequestId) { sir.getRequestDetails().getRequestInfo().setRequestorId(parentRequestId); return this; @@ -83,10 +93,28 @@ public class ChildServiceRequestBuilder { public ServiceInstancesRequest build() { RequestContext context = buildingBlockExecution.getGeneralBuildingBlock().getRequestContext(); - sir.setRequestDetails(createRequestDetails(context)); + + if (context.getAction().equals("deleteInstance")) { + sir.setRequestDetails(createRequestDetailsDeleteChild(context)); + } else { + sir.setRequestDetails(createRequestDetails(context)); + } return sir; } + private RequestDetails createRequestDetailsDeleteChild(RequestContext context) { + RequestDetails details = sir.getRequestDetails(); + + details.setRequestParameters(createRequestParameters(context, child)); + details.setRequestInfo(createRequestInfo(context)); + details.setCloudConfiguration(createCloudConfiguration()); + details.setModelInfo(child.getModelInfo()); + details.setSubscriberInfo(createSubscriberInfo()); + details.setRelatedInstanceList(createRelatedInstanceList()); + + return details; + } + private RequestDetails createRequestDetails(RequestContext context) { RequestDetails details = sir.getRequestDetails(); @@ -104,8 +132,13 @@ public class ChildServiceRequestBuilder { private RequestParameters createRequestParameters(RequestContext context, Service childService) { RequestParameters requestParameters = new RequestParameters(); - requestParameters.getUserParams().add(context.getRequestParameters().getUserParams().get(0)); - requestParameters.getUserParams().add(Map.of("service", childService)); + + if (!context.getRequestParameters().getUserParams().isEmpty()) { + requestParameters.getUserParams().add(context.getRequestParameters().getUserParams().get(0)); + if (context.getAction().equals("createInstance")) { + requestParameters.getUserParams().add(Map.of("service", childService)); + } + } requestParameters.setSubscriptionServiceType(context.getRequestParameters().getSubscriptionServiceType()); requestParameters.setaLaCarte(context.getRequestParameters().getALaCarte()); requestParameters.setPayload(context.getRequestParameters().getPayload());