modify subnetCapabilityQuery interface and some workflow error 78/114378/6
authorhetengjiao <hetengjiao@chinamobile.com>
Thu, 29 Oct 2020 03:18:50 +0000 (11:18 +0800)
committerHE TENGJIAO <hetengjiao@chinamobile.com>
Thu, 29 Oct 2020 10:34:40 +0000 (10:34 +0000)
Issue-ID: SO-2963

Signed-off-by: hetengjiao <hetengjiao@chinamobile.com>
Change-Id: Ieda037b617f3743a28aaba30e7f22bf5df919a24

adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/consts/NssmfAdapterConsts.java
adapters/mso-nssmf-adapter/src/main/java/org/onap/so/adapters/nssmf/util/RestUtil.java
bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/DoHandleOofRequest.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSliceService.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateSliceServiceInstance.groovy
bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoCreateSliceServiceInstance.bpmn
common/src/main/java/org/onap/so/beans/nsmf/SliceTaskParamsAdapter.java

index 28789f2..84e1eb2 100644 (file)
@@ -159,7 +159,7 @@ public class NssmfAdapterConsts {
                 new NssmfUrlInfo(EXTERNAL_QUERY_JOB_STATUS, HttpMethod.GET));
 
         urlInfoMap.put(generateKey(ExecutorType.INTERNAL, null, ActionType.QUERY_SUB_NET_CAPABILITY),
-                new NssmfUrlInfo(INTERNAL_QUERY_SUB_NET_CAPABILITY, HttpMethod.POST));
+                new NssmfUrlInfo(INTERNAL_QUERY_SUB_NET_CAPABILITY, HttpMethod.GET));
     }
 
     /**
index a4a79bf..432cfac 100644 (file)
@@ -219,7 +219,11 @@ public class RestUtil {
                 break;
 
             case GET:
-                base = new HttpGet(url);
+                HttpGetWithBody get = new HttpGetWithBody(url);
+                if (content != null) {
+                    get.setEntity(new StringEntity(content, APPLICATION_JSON));
+                }
+                base = get;
                 break;
 
             case PUT:
@@ -280,6 +284,29 @@ public class RestUtil {
         }
     }
 
+    class HttpGetWithBody extends HttpEntityEnclosingRequestBase {
+        public static final String METHOD_NAME = "GET";
+
+        public HttpGetWithBody() {
+            super();
+        }
+
+        public HttpGetWithBody(final String uri) {
+            super();
+            setURI(URI.create(uri));
+        }
+
+        public HttpGetWithBody(final URI uri) {
+            super();
+            setURI(uri);
+        }
+
+        @Override
+        public String getMethod() {
+            return METHOD_NAME;
+        }
+    }
+
 
     public HttpClient getHttpsClient() {
 
index 644cf5e..1964a18 100644 (file)
@@ -95,7 +95,7 @@ class DoHandleOofRequest extends AbstractServiceTaskProcessor {
                Response httpResponse = httpClient.post(oofRequest)
                int responseCode = httpResponse.getStatus()
                logger.debug("OOF sync response code is: " + responseCode)
-               if(responseCode != 200){
+        if(responseCode < 200 || responseCode >= 300){
                        exceptionUtil.buildAndThrowWorkflowException(execution, responseCode, "Received a Bad Sync Response from OOF.")
                }
        }
index 72fd052..5f0d412 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.infrastructure.scripts
 
 import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder
+import org.onap.so.serviceinstancebeans.Service
 
 import static org.apache.commons.lang3.StringUtils.*
 import org.camunda.bpm.engine.delegate.BpmnError
@@ -126,21 +127,22 @@ public class CreateSliceService extends AbstractServiceTaskProcessor {
 
             logger.debug("modelInfo: " + serviceModelInfo)
 
-            //requestParameters
-            String subscriptionServiceType = jsonUtil.getJsonValue(ssRequest, "requestDetails.requestParameters.subscriptionServiceType")
-            if (isBlank(subscriptionServiceType)) {
-                msg = "Input subscriptionServiceType is null"
-                logger.debug(msg)
-                exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
-            } else {
-                execution.setVariable("subscriptionServiceType", subscriptionServiceType)
-            }
-            logger.debug("subscriptionServiceType: " + subscriptionServiceType)
+//            //requestParameters
+//            String subscriptionServiceType = jsonUtil.getJsonValue(ssRequest, "requestDetails.requestParameters.subscriptionServiceType")
+//            if (isBlank(subscriptionServiceType)) {
+//                msg = "Input subscriptionServiceType is null"
+//                logger.debug(msg)
+//                exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
+//            } else {
+//                subscriptionServiceType = "5G"
+//                execution.setVariable("subscriptionServiceType", subscriptionServiceType)
+//            }
+//            logger.debug("subscriptionServiceType: " + subscriptionServiceType)
 
             /*
             * Extracting User Parameters from incoming Request and converting into a Map
             */
-            Map reqMap = jsonSlurper.parseText(ssRequest)
+            Map reqMap = jsonSlurper.parseText(ssRequest) as Map
 
             //InputParams
             def userParamsList = reqMap.requestDetails?.requestParameters?.userParams
@@ -168,6 +170,7 @@ public class CreateSliceService extends AbstractServiceTaskProcessor {
             execution.setVariable("serviceInputParams", inputMap)
             execution.setVariable("uuiRequest", uuiRequest)
             execution.setVariable("serviceProfile", serviceProfile)
+            execution.setVariable("subscriptionServiceType", serviceObject.get("serviceType"))
 
             //TODO
             //execution.setVariable("serviceInputParams", jsonUtil.getJsonValue(siRequest, "requestDetails.requestParameters.userParams"))
index 48e1acd..fc80a9f 100644 (file)
@@ -101,6 +101,9 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{
          */
         String serviceRole = "service-profile"
         String serviceType = execution.getVariable("serviceType")
+        String globalSubscriberId = execution.getVariable("globalSubscriberId")
+        String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
+
         Map<String, Object> serviceProfile = sliceParams.getServiceProfile()
         String ssInstanceId = execution.getVariable("serviceInstanceId")
         try {
@@ -121,7 +124,10 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{
             ss.setEnvironmentContext(snssai)
             ss.setServiceRole(serviceRole)
 
-            AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId")).serviceSubscription(execution.getVariable("subscriptionServiceType")).serviceInstance(ssInstanceId))
+            AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+                    .customer(globalSubscriberId)
+                    .serviceSubscription(subscriptionServiceType)
+                    .serviceInstance(ssInstanceId))
             client.create(uri, ss)
         } catch (BpmnError e) {
             throw e
@@ -139,8 +145,8 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{
         //rollbackData.put("SERVICEINSTANCE", "disableRollback", disableRollback.toString())
         rollbackData.put("SERVICEINSTANCE", "rollbackAAI", "true")
         rollbackData.put("SERVICEINSTANCE", "serviceInstanceId", ssInstanceId)
-        rollbackData.put("SERVICEINSTANCE", "subscriptionServiceType", execution.getVariable("subscriptionServiceType"))
-        rollbackData.put("SERVICEINSTANCE", "globalSubscriberId", execution.getVariable("globalSubscriberId"))
+        rollbackData.put("SERVICEINSTANCE", "subscriptionServiceType", subscriptionServiceType)
+        rollbackData.put("SERVICEINSTANCE", "globalSubscriberId", globalSubscriberId)
         execution.setVariable("rollbackData", rollbackData)
         execution.setVariable("RollbackData", rollbackData)
         logger.debug("RollbackData:" + rollbackData)
@@ -156,6 +162,8 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{
         /**
          * todo: ServiceProfile params changed
          */
+        String globalSubscriberId = execution.getVariable("globalSubscriberId")
+        String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
         SliceTaskParamsAdapter sliceParams =
                 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
         Map<String, Object> serviceProfileMap = sliceParams.getServiceProfile()
@@ -181,11 +189,11 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{
         serviceProfile.setSurvivalTime("0")
         serviceProfile.setReliability("")
         try {
-            AAIResourceUri uri = AAIUriFactory.createResourceUri(
-                AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId"))
-                .serviceSubscription(execution.getVariable("subscriptionServiceType"))
-                .serviceInstance(serviceProfileInstanceId)
-                .serviceProfile(serviceProfileId))
+            AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+                    .customer(globalSubscriberId)
+                    .serviceSubscription(subscriptionServiceType)
+                    .serviceInstance(serviceProfileInstanceId)
+                    .serviceProfile(serviceProfileId))
             client.create(uri, serviceProfile)
             execution.setVariable("sliceTaskParams", sliceParams)
 
@@ -206,15 +214,21 @@ class DoCreateSliceServiceInstance extends AbstractServiceTaskProcessor{
     public void createAllottedResource(DelegateExecution execution) {
 
         try {
-
+            String globalSubscriberId = execution.getVariable("globalSubscriberId")
+            String subscriptionServiceType = execution.getVariable("subscriptionServiceType")
             ServiceDecomposition serviceDecomposition =
                     execution.getVariable("serviceProfileDecomposition") as ServiceDecomposition
+            String serviceInstanceId = execution.getVariable("serviceInstanceId")
 
             List<org.onap.so.bpmn.core.domain.AllottedResource> allottedResourceList = serviceDecomposition.getAllottedResources()
             for(org.onap.so.bpmn.core.domain.AllottedResource allottedResource : allottedResourceList) {
                 String allottedResourceId = UUID.randomUUID().toString()
 
-                AAIResourceUri allottedResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business().customer(execution.getVariable("globalSubscriberId")).serviceSubscription(execution.getVariable("subscriptionServiceType")).serviceInstance(execution.getVariable("serviceInstanceId")).allottedResource(allottedResourceId))
+                AAIResourceUri allottedResourceUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.business()
+                        .customer(globalSubscriberId)
+                        .serviceSubscription(subscriptionServiceType)
+                        .serviceInstance(serviceInstanceId)
+                        .allottedResource(allottedResourceId))
 
                 execution.setVariable("allottedResourceUri", allottedResourceUri)
                 String arType = allottedResource.getAllottedResourceType()
index 2aa7da2..f2d4d7c 100644 (file)
@@ -44,7 +44,7 @@ dcsi.createAllottedResource(execution)</bpmn:script>
       <bpmn:incoming>SequenceFlow_0khtova</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1wafqwa</bpmn:outgoing>
       <bpmn:script>import org.onap.so.bpmn.infrastructure.scripts.*
-def dcsi= new CreateSliceService()
+def dcsi = new DoCreateSliceServiceInstance()
 dcsi.prepareDecomposeService(execution)</bpmn:script>
     </bpmn:scriptTask>
     <bpmn:callActivity id="CallActivity_0svmkxh" name="Call Decompose Service" calledElement="DecomposeService">
@@ -135,4 +135,4 @@ dcsi.prepareDecomposeService(execution)</bpmn:script>
       </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
-</bpmn:definitions>
\ No newline at end of file
+</bpmn:definitions>
index 8ea0eb6..e97aa70 100644 (file)
@@ -48,23 +48,23 @@ public class SliceTaskParamsAdapter implements Serializable {
 
     private String nstName;
 
-    private Map<String, Object> serviceProfile;
+    private Map<String, Object> serviceProfile = new HashMap<>();
 
     private String suggestNsiId;
 
     private String suggestNsiName;
 
-    private TemplateInfo NSTInfo;
+    private TemplateInfo NSTInfo = new TemplateInfo();
 
-    private SliceTaskInfo<TnSliceProfile> tnBHSliceTaskInfo;
+    private SliceTaskInfo<TnSliceProfile> tnBHSliceTaskInfo = new SliceTaskInfo<>();
 
-    private SliceTaskInfo<TnSliceProfile> tnMHSliceTaskInfo;
+    private SliceTaskInfo<TnSliceProfile> tnMHSliceTaskInfo = new SliceTaskInfo<>();
 
-    private SliceTaskInfo<TnSliceProfile> tnFHSliceTaskInfo;
+    private SliceTaskInfo<TnSliceProfile> tnFHSliceTaskInfo = new SliceTaskInfo<>();
 
-    private SliceTaskInfo<CnSliceProfile> cnSliceTaskInfo;
+    private SliceTaskInfo<CnSliceProfile> cnSliceTaskInfo = new SliceTaskInfo<>();
 
-    private SliceTaskInfo<AnSliceProfile> anSliceTaskInfo;
+    private SliceTaskInfo<AnSliceProfile> anSliceTaskInfo = new SliceTaskInfo<>();
 
     @SuppressWarnings("unchecked")
     public void convertFromJson(String jsonString) throws IOException {
@@ -226,6 +226,10 @@ public class SliceTaskParamsAdapter implements Serializable {
      */
     private <T> Map<String, Object> bean2Map(T t) {
         Map<String, Object> resMap = new HashMap<>();
+        if (t == null) {
+            return resMap;
+        }
+
         try {
             Field[] fields = t.getClass().getDeclaredFields();
             for (Field field : fields) {