Merge "Add new endpoint and macro for service upgrade"
authorSeshu Kumar M <seshu.kumar.m@huawei.com>
Fri, 13 Aug 2021 14:52:41 +0000 (14:52 +0000)
committerGerrit Code Review <gerrit@onap.org>
Fri, 13 Aug 2021 14:52:41 +0000 (14:52 +0000)
40 files changed:
INFO.yaml
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/listener/flowmanipulator/FlowManipulatorListenerRunner.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceInstance.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForPnf.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForService.java [new file with mode: 0644]
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModule.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVnf.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsUtil.java [new file with mode: 0644]
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ExtractServiceFromUserParameters.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ServiceCDSRequestProvider.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/cds/AbstractVnfCDSRequestProviderTest.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModuleTest.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/cds/ConfigureInstanceParamsForVnfTest.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/cds/ConfigureInstanceParamsUtilTest.java [new file with mode: 0644]
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/cds/ServiceCDSRequestProviderTest.java
bpmn/MSOCommonBPMN/src/test/resources/__files/ExecuteBuildingBlock/ModelInfoServiceInstance.json
bpmn/so-bpmn-building-blocks/src/main/resources/subprocess/BuildingBlock/WorkflowActionBB.bpmn
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/AllocateSliceSubnet.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateCommunicationService.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DeleteCommunicationService.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateAccessNSSI.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoAllocateNSIandNSSI.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoModifyAccessNSSI.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/ModifySliceSubnet.groovy
bpmn/so-bpmn-infrastructure-flows/src/main/resources/process/AllocateSliceSubnet.bpmn
bpmn/so-bpmn-infrastructure-flows/src/test/java/org/onap/so/GrpcNettyServer.java
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/decisionpoint/impl/AbstractControllerExecution.java
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/decisionpoint/impl/buildingblock/ControllerExecutionBB.java
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/ControllerExecution.java
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/GenericCDSProcessingBB.java
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasks.java
bpmn/so-bpmn-tasks/src/main/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListener.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/GrpcNettyServer.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/WorkflowActionBBTasksTest.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/workflow/tasks/listeners/SkipCDSBuildingBlockListenerTest.java
common/pom.xml
common/src/main/java/org/onap/so/beans/nsmf/SliceProfileAdapter.java
common/src/main/java/org/onap/so/client/cds/CDSProcessingHandler.java
common/src/test/java/org/onap/so/client/cds/CDSProcessingClientTest.java
pom.xml

index 25ed7eb..bc297f9 100644 (file)
--- a/INFO.yaml
+++ b/INFO.yaml
@@ -1,40 +1,4 @@
----
-project: 'so'
-project_creation_date: '2017-01-30'
-lifecycle_state: 'Incubation'
-project_category: ''
-project_lead: &onap_releng_ptl
-    name: 'Seshu Kumar'
-    email: 'seshu.kumar.m@huawei.com'
-    id: 'seshukm'
-    company: 'Huawei'
-    timezone: 'India/Bangalore'
-primary_contact: *onap_releng_ptl
-issue_tracking:
-    type: 'jira'
-    url: 'https://jira.onap.org/projects/SO'
-    key: 'SO'
-mailing_list:
-    type: 'groups.io'
-    url: 'lists.onap.org'
-    tag: '<[sub-project_name]>'
-realtime_discussion: ''
-meetings:
-    - type: 'zoom'
-      agenda: 'https://wiki.onap.org/display/DW/Minutes+Of+Meeting'
-      url: 'https://wiki.onap.org/display/DW/Service+Orchestrator+Project'
-      server: 'n/a'
-      channel: 'n/a'
-      repeats: 'weekly'
-      time: '13:30 UTC'
-repositories:
-    - so
-    - so-chef-repo
-    - so-docker-config
-    - so-libs
-    - so-so-config
-committers:
-    - <<: *onap_releng_ptl
+
     - name: 'Chuanyu Chen'
       email: 'chenchuanyu@huawei.com'
       company: 'Huawei'
@@ -65,39 +29,76 @@ tsc:
     changes:
         - type: 'removal'
           name: 'Tal Liron'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Heliu Zhong'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Yuanwei Yang'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Christophe Closset'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Claude Noshpitz'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'maopeng zhang'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Bin Hou'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Fu Jinhua'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Jie Feng'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'jackie tian'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'removal'
           name: 'Deng Hui'
           link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
         - type: 'addition'
           name: 'Marcus Williams'
+          link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
+        - type: 'addition'
           name: 'Sanchita Pathak'
           link: 'https://lists.onap.org/pipermail/onap-tsc/2018-May/004802.html'
         - type: 'addition'
           name: 'Steve Smokowski'
+          link: 'https://lists.onap.org/g/onap-tsc/message/4320'
+        - type: 'addition'
           name: 'Subhash Kumar Singh'
+          link: 'https://lists.onap.org/g/onap-tsc/message/4320'
+        - type: 'addition'
           name: 'Lukasz Muszkieta'
           link: 'https://lists.onap.org/g/onap-tsc/message/4320'
         - type: 'removal'
           name: 'Rob Daugherty'
+          link: 'https://lists.onap.org/g/onap-tsc/message/4320'          
         - type: 'addition'
           name: 'Max Benjamin'
-          link: 'https://lists.onap.org/g/onap-tsc/message/4981?p=,,,20,0,0,0::Created,,committer,20,2,0,31638681'
+          link: 'https://lists.onap.org/g/onap-tsc/message/4320'
         - type: 'removal'
           name: 'DeWayne Filppi'
+          link: 'https://wiki.onap.org/display/Meetings/TSC+2020-12-03'
+        - type: 'removal'
           name: 'Yan Yang'
+          link: 'https://wiki.onap.org/display/Meetings/TSC+2020-12-03'
+        - type: 'removal'
           name: 'Marcus Williams'
+          link: 'https://wiki.onap.org/display/Meetings/TSC+2020-12-03'
+        - type: 'removal'
           name: 'Sanchita Pathak'
+          link: 'https://wiki.onap.org/display/Meetings/TSC+2020-12-03'
+        - type: 'removal'
           name: 'Subhash Kumar Singh'
+          link: 'https://wiki.onap.org/display/Meetings/TSC+2020-12-03'
         - type: 'addition'
           name: 'Ramesh Parthasarathy'
           link: 'https://wiki.onap.org/display/Meetings/TSC+2020-12-03'
         - type: 'removal'
-          name: 'Max Benjamin'  
+          name: 'Max Benjamin'
+          link: 'https://wiki.onap.org/display/DW/2021+TSC+Decisions'
index 054cc37..c6d92cc 100644 (file)
@@ -60,6 +60,9 @@ public class FlowManipulatorListenerRunner extends ListenerRunner {
         int sequenceBeforeFlowManipulator;
         do {
             sequenceBeforeFlowManipulator = execution.getVariable(BBConstants.G_CURRENT_SEQUENCE);
+            if (sequenceBeforeFlowManipulator >= flowsToExecute.size()) {
+                break;
+            }
             ExecuteBuildingBlock currentBB = flowsToExecute.get(execution.getCurrentSequence());
             List<PreFlowManipulator> filtered = filterListeners(flowManipulators,
                     (item -> item.shouldRunFor(currentBB.getBuildingBlock().getBpmnFlowName(),
index b554d7a..4ad7fbd 100644 (file)
@@ -45,6 +45,14 @@ public class ModelInfoServiceInstance extends ModelInfoMetadata implements Seria
     private String namingPolicy;
     @JsonProperty("onap-generated-naming")
     private Boolean onapGeneratedNaming;
+    @JsonProperty("cds-blueprint-name")
+    private String blueprintName;
+    @JsonProperty("cds-blueprint-version")
+    private String blueprintVersion;
+    @JsonProperty("controller-actor")
+    private String controllerActor;
+    @JsonProperty("skip-post-instantiation-configuration")
+    private Boolean skipPostInstConf = Boolean.TRUE;
 
 
     public String getDescription() {
@@ -119,4 +127,36 @@ public class ModelInfoServiceInstance extends ModelInfoMetadata implements Seria
     public void setOnapGeneratedNaming(Boolean onapGeneratedNaming) {
         this.onapGeneratedNaming = onapGeneratedNaming;
     }
+
+    public String getBlueprintName() {
+        return blueprintName;
+    }
+
+    public void setBlueprintName(String blueprintName) {
+        this.blueprintName = blueprintName;
+    }
+
+    public String getBlueprintVersion() {
+        return blueprintVersion;
+    }
+
+    public void setBlueprintVersion(String blueprintVersion) {
+        this.blueprintVersion = blueprintVersion;
+    }
+
+    public String getControllerActor() {
+        return controllerActor;
+    }
+
+    public void setControllerActor(String controllerActor) {
+        this.controllerActor = controllerActor;
+    }
+
+    public Boolean getSkipPostInstConf() {
+        return skipPostInstConf;
+    }
+
+    public void setSkipPostInstConf(Boolean skipPostInstConf) {
+        this.skipPostInstConf = skipPostInstConf;
+    }
 }
index 0d79dbb..f393d2a 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.onap.so.client.cds;
 
+import static org.onap.so.client.cds.ConfigureInstanceParamsUtil.applyParamsToObject;
 import com.google.gson.JsonObject;
 import org.onap.so.client.exception.PayloadGenerationException;
 import org.onap.so.serviceinstancebeans.Service;
@@ -51,13 +52,17 @@ public class ConfigureInstanceParamsForPnf {
     public void populateInstanceParams(JsonObject jsonObject, List<Map<String, Object>> userParamsFromRequest,
             String modelCustomizationUuid) throws PayloadGenerationException {
         try {
-            Service service = extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest);
-            List<Map<String, String>> instanceParamsList = getInstanceParamForPnf(service, modelCustomizationUuid);
+            Optional<Service> service =
+                    extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest);
 
-            instanceParamsList.stream().flatMap(instanceParamsMap -> instanceParamsMap.entrySet().stream())
-                    .forEachOrdered(entry -> jsonObject.addProperty(entry.getKey(), entry.getValue()));
+            if (service.isPresent()) {
+                List<Map<String, String>> instanceParamsList =
+                        getInstanceParamForPnf(service.get(), modelCustomizationUuid);
+
+                applyParamsToObject(instanceParamsList, jsonObject);
+            }
         } catch (Exception exception) {
-            throw new PayloadGenerationException("Couldn't able to resolve instance parameters", exception);
+            throw new PayloadGenerationException("Failed to resolve instance parameters", exception);
         }
     }
 
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForService.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForService.java
new file mode 100644 (file)
index 0000000..e8c88e0
--- /dev/null
@@ -0,0 +1,57 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2021 Bell Canada
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.client.cds;
+
+import static org.onap.so.client.cds.ConfigureInstanceParamsUtil.applyParamsToObject;
+import com.google.gson.JsonObject;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import org.onap.so.client.exception.PayloadGenerationException;
+import org.onap.so.serviceinstancebeans.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ConfigureInstanceParamsForService {
+
+    @Autowired
+    private ExtractServiceFromUserParameters extractServiceFromUserParameters;
+
+    /**
+     * Read instance parameters for Service and put into JsonObject.
+     *
+     * @param jsonObject - JsonObject which will hold the payload to send to CDS.
+     * @param userParamsFromRequest - User parameters.
+     * @throws PayloadGenerationException if it doesn't able to populate instance parameters from SO payload.
+     */
+    public void populateInstanceParams(JsonObject jsonObject, List<Map<String, Object>> userParamsFromRequest)
+            throws PayloadGenerationException {
+        try {
+            Optional<Service> service =
+                    extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest);
+
+            service.map(Service::getInstanceParams).ifPresent(p -> applyParamsToObject(p, jsonObject));
+        } catch (Exception e) {
+            throw new PayloadGenerationException("Failed to resolve instance parameters", e);
+        }
+    }
+}
index eeaecb9..b1e632a 100644 (file)
@@ -20,7 +20,9 @@
 
 package org.onap.so.client.cds;
 
+import static org.onap.so.client.cds.ConfigureInstanceParamsUtil.applyParamsToObject;
 import com.google.gson.JsonObject;
+import java.util.Optional;
 import org.apache.commons.lang3.StringUtils;
 import org.onap.so.client.exception.PayloadGenerationException;
 import org.onap.so.serviceinstancebeans.Service;
@@ -50,19 +52,22 @@ public class ConfigureInstanceParamsForVfModule {
             String vnfCustomizationUuid, String vfModuleCustomizationUuid, String vfModuleInstanceName)
             throws PayloadGenerationException {
         try {
-            Service service = extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest);
+            Optional<Service> service =
+                    extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest);
 
-            List<Map<String, String>> instanceParamsList;
-            if (StringUtils.isNotBlank(vfModuleInstanceName)) {
-                instanceParamsList = getInstanceParamsByInstanceNames(service, vfModuleInstanceName);
-            } else {
-                instanceParamsList = getInstanceParams(service, vnfCustomizationUuid, vfModuleCustomizationUuid);
-            }
+            if (service.isPresent()) {
+                List<Map<String, String>> instanceParamsList;
+                if (StringUtils.isNotBlank(vfModuleInstanceName)) {
+                    instanceParamsList = getInstanceParamsByInstanceNames(service.get(), vfModuleInstanceName);
+                } else {
+                    instanceParamsList =
+                            getInstanceParams(service.get(), vnfCustomizationUuid, vfModuleCustomizationUuid);
+                }
 
-            instanceParamsList.stream().flatMap(instanceParamsMap -> instanceParamsMap.entrySet().stream())
-                    .forEachOrdered(entry -> jsonObject.addProperty(entry.getKey(), entry.getValue()));
+                applyParamsToObject(instanceParamsList, jsonObject);
+            }
         } catch (Exception e) {
-            throw new PayloadGenerationException("Couldn't able to resolve instance parameters", e);
+            throw new PayloadGenerationException("Failed to resolve instance parameters", e);
         }
     }
 
index 43283ac..5d8388b 100644 (file)
@@ -20,8 +20,9 @@
 
 package org.onap.so.client.cds;
 
-import com.google.gson.JsonObject;
+import static org.onap.so.client.cds.ConfigureInstanceParamsUtil.applyParamsToObject;
 import org.apache.commons.lang3.StringUtils;
+import com.google.gson.JsonObject;
 import org.onap.so.client.exception.PayloadGenerationException;
 import org.onap.so.serviceinstancebeans.Service;
 import org.onap.so.serviceinstancebeans.Vnfs;
@@ -48,19 +49,20 @@ public class ConfigureInstanceParamsForVnf {
     public void populateInstanceParams(JsonObject jsonObject, List<Map<String, Object>> userParamsFromRequest,
             String modelCustomizationUuid, String vnfInstanceName) throws PayloadGenerationException {
         try {
-            Service service = extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest);
+            Optional<Service> service =
+                    extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest);
 
-            List<Map<String, String>> instanceParamsList;
-            if (StringUtils.isNotBlank(vnfInstanceName)) {
-                instanceParamsList = getInstanceParamByVnfInstanceName(service, vnfInstanceName);
-            } else {
-                instanceParamsList = getInstanceParamForVnf(service, modelCustomizationUuid);
+            if (service.isPresent()) {
+                List<Map<String, String>> instanceParamsList;
+                if (StringUtils.isNotBlank(vnfInstanceName)) {
+                    instanceParamsList = getInstanceParamByVnfInstanceName(service.get(), vnfInstanceName);
+                } else {
+                    instanceParamsList = getInstanceParamForVnf(service.get(), modelCustomizationUuid);
+                }
+                applyParamsToObject(instanceParamsList, jsonObject);
             }
-
-            instanceParamsList.stream().flatMap(instanceParamsMap -> instanceParamsMap.entrySet().stream())
-                    .forEachOrdered(entry -> jsonObject.addProperty(entry.getKey(), entry.getValue()));
         } catch (Exception e) {
-            throw new PayloadGenerationException("Couldn't able to resolve instance parameters", e);
+            throw new PayloadGenerationException("Failed to resolve instance parameters", e);
         }
     }
 
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsUtil.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsUtil.java
new file mode 100644 (file)
index 0000000..117fd74
--- /dev/null
@@ -0,0 +1,34 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2021 Bell Canada
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.client.cds;
+
+import com.google.gson.JsonObject;
+import java.util.List;
+import java.util.Map;
+
+public final class ConfigureInstanceParamsUtil {
+
+    public static void applyParamsToObject(List<Map<String, String>> instanceParamsList, JsonObject jsonObject) {
+        instanceParamsList.stream().flatMap(instanceParamsMap -> instanceParamsMap.entrySet().stream())
+                .forEachOrdered(entry -> jsonObject.addProperty(entry.getKey(), entry.getValue()));
+    }
+
+}
index 43fabd3..53e1da4 100644 (file)
@@ -20,6 +20,7 @@
 package org.onap.so.client.cds;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import java.util.Optional;
 import org.onap.so.client.exception.PayloadGenerationException;
 import org.onap.so.serviceinstancebeans.Service;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,10 +36,13 @@ public class ExtractServiceFromUserParameters {
     @Autowired
     private ObjectMapper objectMapper;
 
-    public Service getServiceFromRequestUserParams(List<Map<String, Object>> userParams) throws Exception {
-        Map<String, Object> serviceMap = userParams.stream().filter(key -> key.containsKey(SERVICE_KEY)).findFirst()
-                .orElseThrow(() -> new Exception("Can not find service in userParams section in generalBuildingBlock"));
-        return getServiceObjectFromServiceMap(serviceMap);
+    public Optional<Service> getServiceFromRequestUserParams(List<Map<String, Object>> userParams) throws Exception {
+        Optional<Map<String, Object>> serviceMap =
+                userParams.stream().filter(key -> key.containsKey(SERVICE_KEY)).findFirst();
+        if (serviceMap.isPresent()) {
+            return Optional.of(getServiceObjectFromServiceMap(serviceMap.get()));
+        }
+        return Optional.empty();
     }
 
     private Service getServiceObjectFromServiceMap(Map<String, Object> serviceMap) throws PayloadGenerationException {
index 12c841a..ce784dd 100644 (file)
 package org.onap.so.client.cds;
 
 import com.google.gson.JsonObject;
+import java.util.List;
+import java.util.Map;
 import org.onap.so.bpmn.common.BuildingBlockExecution;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
+import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
 import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
 import org.onap.so.client.exception.PayloadGenerationException;
@@ -38,21 +41,22 @@ import static org.onap.so.client.cds.PayloadConstants.SEPARATOR;
 @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
 public class ServiceCDSRequestProvider implements CDSRequestProvider {
 
-    private static final String EMPTY_STRING = "";
     private String resolutionKey;
     private BuildingBlockExecution execution;
+    private String bluePrintName;
+    private String bluePrintVersion;
 
     @Autowired
-    private ExtractPojosForBB extractPojosForBB;
+    private ConfigureInstanceParamsForService configureInstanceParamsForService;
 
     @Override
     public String getBlueprintName() {
-        return EMPTY_STRING;
+        return bluePrintName;
     }
 
     @Override
     public String getBlueprintVersion() {
-        return EMPTY_STRING;
+        return bluePrintVersion;
     }
 
     @Override
@@ -65,17 +69,21 @@ public class ServiceCDSRequestProvider implements CDSRequestProvider {
         JsonObject cdsPropertyObject = new JsonObject();
         JsonObject serviceObject = new JsonObject();
         try {
-            ServiceInstance serviceInstance =
-                    extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID);
-
+            ServiceInstance serviceInstance = execution.getGeneralBuildingBlock().getServiceInstance();
+            bluePrintName = serviceInstance.getModelInfoServiceInstance().getBlueprintName();
+            bluePrintVersion = serviceInstance.getModelInfoServiceInstance().getBlueprintVersion();
             resolutionKey = serviceInstance.getServiceInstanceName();
 
-            // TODO Need to figure out how to populate blueprint name and version for service.
-
             serviceObject.addProperty("service-instance-id", serviceInstance.getServiceInstanceId());
             serviceObject.addProperty("service-model-uuid",
                     serviceInstance.getModelInfoServiceInstance().getModelUuid());
 
+            final GeneralBuildingBlock buildingBlock = execution.getGeneralBuildingBlock();
+            List<Map<String, Object>> userParamsFromRequest =
+                    buildingBlock.getRequestContext().getRequestParameters().getUserParams();
+            if (userParamsFromRequest != null && userParamsFromRequest.size() != 0) {
+                configureInstanceParamsForService.populateInstanceParams(serviceObject, userParamsFromRequest);
+            }
         } catch (Exception e) {
             throw new PayloadGenerationException("Failed to buildPropertyObjectForService", e);
         }
index 6de1364..42b29ea 100644 (file)
@@ -20,6 +20,7 @@
 package org.onap.so.client.cds;
 
 import com.google.gson.JsonParser;
+import java.util.Optional;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
 import org.camunda.bpm.extension.mockito.delegate.DelegateExecutionFake;
 import org.junit.Before;
@@ -143,12 +144,12 @@ public abstract class AbstractVnfCDSRequestProviderTest {
         return userParams;
     }
 
-    protected Service getUserParams() {
+    protected Optional<Service> getUserParams() {
         Service service = new Service();
         Resources resources = new Resources();
         resources.setVnfs(createVnfList());
         service.setResources(resources);
-        return service;
+        return Optional.of(service);
     }
 
     protected List<Vnfs> createVnfList() {
index 0273b9d..be10065 100644 (file)
@@ -28,6 +28,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.UUID;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -67,7 +68,7 @@ public class ConfigureInstanceParamsForVfModuleTest {
         resources.setVnfs(createVnfs());
         service.setResources(resources);
 
-        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(service);
+        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(Optional.of(service));
         JsonObject jsonObject = new JsonObject();
 
         configureInstanceParamsForVfModule.populateInstanceParams(jsonObject, new ArrayList<>(), VNF_CUSTOMIZATION_ID,
@@ -85,7 +86,7 @@ public class ConfigureInstanceParamsForVfModuleTest {
         resources.setVnfs(createVnfs());
         service.setResources(resources);
 
-        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(service);
+        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(Optional.of(service));
         JsonObject jsonObject = new JsonObject();
 
         // No instance name is passed
index 547129e..6466da5 100644 (file)
@@ -28,6 +28,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.UUID;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -64,7 +65,7 @@ public class ConfigureInstanceParamsForVnfTest {
         Resources resources = new Resources();
         resources.setVnfs(createVnfs());
         service.setResources(resources);
-        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(service);
+        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(Optional.of(service));
         JsonObject jsonObject = new JsonObject();
 
         configureInstanceParamsForVnf.populateInstanceParams(jsonObject, new ArrayList<>(), VNF_2_CUSTOMIZATION_ID,
@@ -81,7 +82,7 @@ public class ConfigureInstanceParamsForVnfTest {
         Resources resources = new Resources();
         resources.setVnfs(createVnfs());
         service.setResources(resources);
-        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(service);
+        when(extractServiceFromUserParameters.getServiceFromRequestUserParams(any())).thenReturn(Optional.of(service));
         JsonObject jsonObject = new JsonObject();
 
         // No instance name is passed
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/cds/ConfigureInstanceParamsUtilTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/onap/so/client/cds/ConfigureInstanceParamsUtilTest.java
new file mode 100644 (file)
index 0000000..f7c3e8a
--- /dev/null
@@ -0,0 +1,24 @@
+package org.onap.so.client.cds;
+
+import static org.junit.Assert.assertEquals;
+import com.google.gson.JsonObject;
+import java.util.List;
+import java.util.Map;
+import org.junit.Test;
+
+public class ConfigureInstanceParamsUtilTest {
+
+    @Test
+    public void testApplyParamsToObject() {
+        List<Map<String, String>> instanceParamsList =
+                List.of(Map.of("test-param-1", "value1", "test-param-2", "value2"), Map.of("test-param-3", "value3"));
+        JsonObject jsonObject = new JsonObject();
+
+        ConfigureInstanceParamsUtil.applyParamsToObject(instanceParamsList, jsonObject);
+
+        assertEquals("value1", jsonObject.get("test-param-1").getAsString());
+        assertEquals("value2", jsonObject.get("test-param-2").getAsString());
+        assertEquals("value3", jsonObject.get("test-param-3").getAsString());
+    }
+
+}
index 70ce3a1..c860d0f 100644 (file)
@@ -23,6 +23,7 @@ import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.junit.Test;
 import org.mockito.InjectMocks;
+import org.mockito.Mock;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -35,13 +36,15 @@ public class ServiceCDSRequestProviderTest extends AbstractVnfCDSRequestProvider
     @InjectMocks
     private ServiceCDSRequestProvider serviceCDSRequestProvider;
 
+    @Mock
+    private ConfigureInstanceParamsForService configureInstanceParamsForService;
+
     @Test
     public void testRequestPayloadForCreateService() throws Exception {
         // given
         setScopeAndAction(SERVICE_SCOPE, SERVICE_ACTION);
         ServiceInstance instance = createServiceInstance();
-        doReturn(instance).when(extractPojosForBB).extractByKey(buildingBlockExecution,
-                ResourceKey.SERVICE_INSTANCE_ID);
+        buildingBlockExecution.getGeneralBuildingBlock().setServiceInstance(instance);
 
         // when
         serviceCDSRequestProvider.setExecutionObject(buildingBlockExecution);
index 42ae25a..af3b3ff 100644 (file)
@@ -8,5 +8,6 @@
        "service-type": "serviceType",
        "service-role": "serviceRole",
        "environment-context": "environmentContext",
-       "workload-context": "workloadContext"
+       "workload-context": "workloadContext",
+       "skip-post-instantiation-configuration": true
 }
\ No newline at end of file
index 5fd9701..6fb7b5b 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.1.2">
+<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.6.0">
   <bpmn:process id="WorkflowActionBB" name="WorkflowActionBB" isExecutable="true">
     <bpmn:extensionElements>
       <camunda:executionListener class="org.onap.so.bpmn.core.plugins.AsyncTaskExecutorListener" event="end" />
@@ -30,7 +30,7 @@
         <camunda:in source="rollbackTargetState" target="rollbackTargetState" />
         <camunda:out source="rollbackTargetState" target="rollbackTargetState" />
       </bpmn:extensionElements>
-      <bpmn:incoming>SequenceFlow_0mew9im</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_0duoleg</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1hsqed1</bpmn:outgoing>
     </bpmn:callActivity>
     <bpmn:sequenceFlow id="SequenceFlow_0mqrkxv" sourceRef="Task_SelectBB" targetRef="ServiceTask_0e2p0xs" />
       <bpmn:incoming>SequenceFlow_0mqrkxv</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_0mew9im</bpmn:outgoing>
     </bpmn:serviceTask>
-    <bpmn:sequenceFlow id="SequenceFlow_0mew9im" sourceRef="ServiceTask_0e2p0xs" targetRef="Call_ExecuteBB" />
+    <bpmn:sequenceFlow id="SequenceFlow_0mew9im" sourceRef="ServiceTask_0e2p0xs" targetRef="ExclusiveGateway_10j89d1" />
     <bpmn:sequenceFlow id="SequenceFlow_0kf5sen" name="yes" sourceRef="ExclusiveGateway_isTopLevelFlowC" targetRef="Task_UpdateRequestComplete" />
     <bpmn:sequenceFlow id="SequenceFlow_1tfizxf" sourceRef="Task_PreValidateWorkflow" targetRef="Task_SelectBB" />
     <bpmn:serviceTask id="Task_PreValidateWorkflow" name="PreValidate Workflow" camunda:expression="${WorkflowValidatorRunner.preValidate(execution.getVariable(&#34;requestAction&#34;), execution)}">
     </bpmn:serviceTask>
     <bpmn:serviceTask id="ServiceTask_0lbkcyp" name="Post Processing Execute BB" camunda:expression="${WorkflowActionBBTasks.postProcessingExecuteBB(execution)}">
       <bpmn:incoming>SequenceFlow_1hsqed1</bpmn:incoming>
+      <bpmn:incoming>SequenceFlow_1knplug</bpmn:incoming>
       <bpmn:outgoing>SequenceFlow_1fftixk</bpmn:outgoing>
     </bpmn:serviceTask>
     <bpmn:sequenceFlow id="SequenceFlow_1hsqed1" sourceRef="Call_ExecuteBB" targetRef="ServiceTask_0lbkcyp" />
       <bpmn:incoming>SequenceFlow_0ilo6lo</bpmn:incoming>
     </bpmn:endEvent>
     <bpmn:sequenceFlow id="SequenceFlow_0ilo6lo" name="yes" sourceRef="ExclusiveGateway_1dez26n" targetRef="EndEvent_12f15tu" />
+    <bpmn:exclusiveGateway id="ExclusiveGateway_10j89d1" default="SequenceFlow_0duoleg">
+      <bpmn:incoming>SequenceFlow_0mew9im</bpmn:incoming>
+      <bpmn:outgoing>SequenceFlow_0duoleg</bpmn:outgoing>
+      <bpmn:outgoing>SequenceFlow_1knplug</bpmn:outgoing>
+    </bpmn:exclusiveGateway>
+    <bpmn:sequenceFlow id="SequenceFlow_0duoleg" sourceRef="ExclusiveGateway_10j89d1" targetRef="Call_ExecuteBB" />
+    <bpmn:sequenceFlow id="SequenceFlow_1knplug" name="completed = true" sourceRef="ExclusiveGateway_10j89d1" targetRef="ServiceTask_0lbkcyp">
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${execution.getVariable("completed")==true}</bpmn:conditionExpression>
+    </bpmn:sequenceFlow>
   </bpmn:process>
   <bpmn:error id="Error_0kd2o2a" name="java.lang.Exception" errorCode="java.lang.Exception" />
   <bpmndi:BPMNDiagram id="BPMNDiagram_1">
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="CallActivity_03m7z4y_di" bpmnElement="Call_ExecuteBB">
-        <dc:Bounds x="1150" y="356" width="100" height="80" />
+        <dc:Bounds x="1200" y="356" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0mqrkxv_di" bpmnElement="SequenceFlow_0mqrkxv">
         <di:waypoint x="929" y="396" />
-        <di:waypoint x="990" y="396" />
+        <di:waypoint x="960" y="396" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="324.5" y="105" width="90" height="0" />
         </bpmndi:BPMNLabel>
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNShape id="ServiceTask_0e2p0xs_di" bpmnElement="ServiceTask_0e2p0xs">
-        <dc:Bounds x="990" y="356" width="100" height="80" />
+        <dc:Bounds x="960" y="356" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_0mew9im_di" bpmnElement="SequenceFlow_0mew9im">
-        <di:waypoint x="1090" y="396" />
-        <di:waypoint x="1150" y="396" />
+        <di:waypoint x="1060" y="396" />
+        <di:waypoint x="1105" y="396" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="530" y="99" width="0" height="12" />
         </bpmndi:BPMNLabel>
         <dc:Bounds x="670" y="356" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNShape id="ServiceTask_0lbkcyp_di" bpmnElement="ServiceTask_0lbkcyp">
-        <dc:Bounds x="1325" y="356" width="100" height="80" />
+        <dc:Bounds x="1350" y="356" width="100" height="80" />
       </bpmndi:BPMNShape>
       <bpmndi:BPMNEdge id="SequenceFlow_1hsqed1_di" bpmnElement="SequenceFlow_1hsqed1">
-        <di:waypoint x="1250" y="396" />
-        <di:waypoint x="1325" y="396" />
+        <di:waypoint x="1300" y="396" />
+        <di:waypoint x="1350" y="396" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="697.5" y="99" width="0" height="12" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
       <bpmndi:BPMNEdge id="SequenceFlow_1fftixk_di" bpmnElement="SequenceFlow_1fftixk">
-        <di:waypoint x="1425" y="396" />
+        <di:waypoint x="1450" y="396" />
         <di:waypoint x="1501" y="396" />
         <bpmndi:BPMNLabel>
           <dc:Bounds x="873" y="99" width="0" height="12" />
           <dc:Bounds x="727" y="173" width="18" height="14" />
         </bpmndi:BPMNLabel>
       </bpmndi:BPMNEdge>
+      <bpmndi:BPMNShape id="ExclusiveGateway_10j89d1_di" bpmnElement="ExclusiveGateway_10j89d1" isMarkerVisible="true">
+        <dc:Bounds x="1105" y="371" width="50" height="50" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1100" y="428" width="60" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge id="SequenceFlow_0duoleg_di" bpmnElement="SequenceFlow_0duoleg">
+        <di:waypoint x="1155" y="396" />
+        <di:waypoint x="1200" y="396" />
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge id="SequenceFlow_1knplug_di" bpmnElement="SequenceFlow_1knplug">
+        <di:waypoint x="1130" y="371" />
+        <di:waypoint x="1130" y="330" />
+        <di:waypoint x="1400" y="330" />
+        <di:waypoint x="1400" y="356" />
+        <bpmndi:BPMNLabel>
+          <dc:Bounds x="1224" y="312" width="83" height="14" />
+        </bpmndi:BPMNLabel>
+      </bpmndi:BPMNEdge>
     </bpmndi:BPMNPlane>
   </bpmndi:BPMNDiagram>
 </bpmn:definitions>
index 78cafa7..1e65c1a 100644 (file)
@@ -114,7 +114,7 @@ class AllocateSliceSubnet extends AbstractServiceTaskProcessor {
                 exceptionUtil.buildAndThrowWorkflowException(execution, 500, msg)
             } else
             {
-                execution.setVariable("networkType", networkType.toUpperCase())
+                execution.setVariable("networkType", networkType.toLowerCase())
             }
 
             //requestParameters, subscriptionServiceType is 5G
index bb6fe21..c7302d0 100644 (file)
@@ -395,6 +395,10 @@ class CreateCommunicationService extends AbstractServiceTaskProcessor {
             e2eInputMap.put("dLThptPerSlice", dLThptPerSlice)
             e2eInputMap.put("uLThptPerSlice", uLThptPerSlice)
             e2eInputMap.put("maxNumberofConns", maxNumberofConns)
+            //TODO temp solution - service to slice profile mapping
+            e2eInputMap.put("expDataRateDL", dLThptPerSlice)
+            e2eInputMap.put("expDataRateUL", uLThptPerSlice)
+            e2eInputMap.put("maxNumberofPDUSession", maxNumberofConns)
 
             execution.setVariable("e2eInputMap", e2eInputMap)
             execution.setVariable("e2eServiceType", e2eServiceDecomposition.getServiceType())
index d00f349..a1acbb3 100644 (file)
@@ -215,13 +215,15 @@ class DeleteCommunicationService extends AbstractServiceTaskProcessor {
             requestBody.replaceAll("\\s+", "")
 
             String msoKey = UrnPropertiesReader.getVariable("mso.msoKey", execution)
-            String basicAuth =  UrnPropertiesReader.getVariable("mso.infra.endpoint.auth", execution)
+            String basicAuth =  UrnPropertiesReader.getVariable("mso.adapters.po.auth", execution)
+            def authHeader = utils.getBasicAuth(basicAuth, msoKey)
+
 //            String basicAuthValue = utils.encrypt(basicAuth, msoKey)
 //            String encodeString = utils.getBasicAuth(basicAuthValue, msoKey)
 
             HttpClient httpClient = getHttpClientFactory().newJsonClient(new URL(url), ONAPComponents.SO)
 //            httpClient.addAdditionalHeader("Authorization", encodeString)
-            httpClient.addAdditionalHeader("Authorization", basicAuth)
+            httpClient.addAdditionalHeader("Authorization", authHeader)
             httpClient.addAdditionalHeader("Accept", "application/json")
             Response httpResponse = httpClient.delete(requestBody)
             handleNSSMFWFResponse(httpResponse, execution)
index f3fca05..a4d503a 100644 (file)
@@ -565,7 +565,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
                 List<String> snssaiList = execution.getVariable("snssaiList")
                String snssai = snssaiList.get(0)
                //ANServiceInstance.setEnvironmentContext(snssai)
-                ANServiceInstance.setEnvironmentContext("an") //Network Type
+                ANServiceInstance.setEnvironmentContext(execution.getVariable("networkType")) //Network Type
                ANServiceInstance.setWorkloadContext("AN") //domain Type
                
                logger.debug("completed AN service instance build "+ ANServiceInstance.toString())
@@ -631,7 +631,8 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
                ANServiceInstance.setServiceRole(serviceRole)
                List<String> snssaiList = execution.getVariable("snssaiList")
                String snssai = snssaiList.get(0)
-               ANServiceInstance.setEnvironmentContext(snssai)
+               //ANServiceInstance.setEnvironmentContext(snssai)
+                ANServiceInstance.setEnvironmentContext(execution.getVariable("networkType"))
                 String modelInvariantUuid = execution.getVariable("modelInvariantUuid")
                 String modelUuid = execution.getVariable("modelUuid")
                 ANServiceInstance.setModelInvariantId(modelInvariantUuid)
@@ -651,7 +652,8 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
                ANNFServiceInstance.setServiceRole(serviceRole)
                snssaiList = execution.getVariable("snssaiList")
                snssai = snssaiList.get(0)
-               ANNFServiceInstance.setEnvironmentContext(snssai)
+               //ANNFServiceInstance.setEnvironmentContext(snssai)
+                ANNFServiceInstance.setEnvironmentContext(execution.getVariable("networkType"))
                 ANNFServiceInstance.setModelInvariantId(execution.getVariable("ANNF_modelInvariantUuid"))
                 ANNFServiceInstance.setModelVersionId(execution.getVariable("ANNF_modelUuid"))
                ANNFServiceInstance.setWorkloadContext("AN_NF")
@@ -923,7 +925,7 @@ class DoAllocateAccessNSSI extends AbstractServiceTaskProcessor {
                JsonObject commonHeader = new JsonObject()
                JsonObject payload = new JsonObject()
                JsonObject payloadInput = new JsonObject()
-               commonHeader.addProperty("timeStamp",new Date(System.currentTimeMillis()).format("yyyy-MM-dd'T'HH:mm:ss.sss'Z'", TimeZone.getDefault()))
+               commonHeader.addProperty("timestamp",new Date(System.currentTimeMillis()).format("yyyy-MM-dd'T'HH:mm:ss.sss'Z'", TimeZone.getDefault()))
                commonHeader.addProperty("api-ver", "1.0")
                 commonHeader.addProperty("originator-id", "testing")
                commonHeader.addProperty("request-id", requestId)
index e428104..0d64d78 100644 (file)
@@ -127,6 +127,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
         String serviceStatus = "deactivated"
         String modelInvariantUuid = sliceParams.getNSTInfo().invariantUUID
         String modelUuid = sliceParams.getNSTInfo().UUID
+        String serviceFunction = sliceParams.serviceProfile.get("resourceSharingLevel")
 
         sliceParams.setSuggestNsiId(sliceInstanceId)
         sliceParams.setSuggestNsiName(sliceInstanceName)
@@ -144,6 +145,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
         nsi.setModelVersionId(modelUuid)
         nsi.setServiceInstanceLocationId(serviceInstanceLocationid)
         nsi.setServiceRole(serviceRole)
+        nsi.setServiceFunction(serviceFunction)
         String msg
         try {
 
@@ -263,7 +265,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
                 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
         SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.anSliceTaskInfo
         sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
-        String sliceProfileName = "an_" + sliceParams.serviceName
+        String sliceProfileName = "sliceprofile_an_" + sliceParams.serviceName
 
         // create slice profile
         ServiceInstance rspi = createSliceProfileInstance(sliceTaskInfo, sliceProfileName, oStatus)
@@ -401,6 +403,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
         allocateAnNssi.nsstId = sliceTaskInfo.NSSTInfo.UUID
         allocateAnNssi.nssiId = sliceTaskInfo.suggestNssiId
         allocateAnNssi.nssiName = "nssi_an" + execution.getVariable("sliceServiceInstanceName")
+        allocateAnNssi.scriptName = sliceTaskInfo.getScriptName()
         NsiInfo nsiInfo = new NsiInfo()
         nsiInfo.nsiId = sliceParams.suggestNsiId
         nsiInfo.nsiName = sliceParams.suggestNsiName
@@ -458,7 +461,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
                 execution.getVariable("sliceTaskParams") as SliceTaskParamsAdapter
         SliceTaskInfo<SliceProfileAdapter> sliceTaskInfo = sliceParams.cnSliceTaskInfo
         sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
-        String sliceProfileName = "cn_"+sliceParams.serviceName
+        String sliceProfileName = "sliceprofile_cn_"+sliceParams.serviceName
 
         // create slice profile
         ServiceInstance rspi = createSliceProfileInstance(sliceTaskInfo, sliceProfileName, oStatus)
@@ -544,6 +547,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
         allocateCnNssi.nssiName = "nssi_cn" + execution.getVariable("sliceServiceInstanceName")
         allocateCnNssi.sliceProfile = sliceTaskInfo.sliceProfile.trans2CnProfile()
         allocateCnNssi.sliceProfile.sliceProfileId = sliceTaskInfo.sliceInstanceId
+        allocateCnNssi.scriptName = sliceTaskInfo.getScriptName()
 
         NsiInfo nsiInfo = new NsiInfo()
         nsiInfo.nsiId = sliceParams.suggestNsiId
@@ -602,7 +606,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
         String serviceInstanceId = UUID.randomUUID().toString()
 
         sliceTaskInfo.setSliceInstanceId(serviceInstanceId)
-        String sliceProfileName = "tn_" + sliceParams.serviceName
+        String sliceProfileName = "sliceprofile_tn_" + sliceParams.serviceName
         //execution.setVariable("cnSliceProfileInstanceId", serviceInstanceId) //todo:
 
         // create slice profile
@@ -671,6 +675,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
 
         AllocateTnNssi allocateTnNssi = new AllocateTnNssi()
         allocateTnNssi.setNssiId(sliceTaskInfo.suggestNssiId)
+        allocateTnNssi.scriptName = sliceTaskInfo.getScriptName()
         //todo: AllocateTnNssi
         //todo: endPointId -> set into tn
         List<TransportSliceNetwork> transportSliceNetworks = new ArrayList<>()
@@ -943,6 +948,7 @@ class DoAllocateNSIandNSSI extends AbstractServiceTaskProcessor{
         rspi.setModelVersionId(sliceTaskInfo.NSSTInfo.UUID)
         rspi.setWorkloadContext(sliceTaskInfo.subnetType.subnetType)
         rspi.setEnvironmentContext(sliceTaskInfo.sliceProfile.getSNSSAIList())
+        rspi.setServiceFunction(sliceTaskInfo.sliceProfile.getResourceSharingLevel())
 
         //timestamp format YYYY-MM-DD hh:mm:ss
         rspi.setCreatedAt(new Date(System.currentTimeMillis()).format("yyyy-MM-dd HH:mm:ss", TimeZone.getDefault()))
index 8859af2..f6be861 100644 (file)
@@ -388,12 +388,12 @@ class DoModifyAccessNSSI extends AbstractServiceTaskProcessor {
                                 Optional<org.onap.aai.domain.yang.LogicalLink> resource = wrapper01.asBean(org.onap.aai.domain.yang.LogicalLink.class)
                                 if (resource.isPresent()) {
                                         org.onap.aai.domain.yang.LogicalLink logicalLinkInstance = resource.get()
-                                        if(domainType.equalsIgnoreCase("TN-FH"))
+                                        if(domainType.equalsIgnoreCase("TN_FH"))
                                         {
                                         execution.setVariable("tranportEp_ID_RU",logicalLinkInstance.getLinkName())
                                         execution.setVariable("tranportEp_ID_DUIN",logicalLinkInstance.getLinkName2())
                                         }
-                                        else if(domainType.equalsIgnoreCase("TN-MH"))
+                                        else if(domainType.equalsIgnoreCase("TN_MH"))
                                         {
                                         execution.setVariable("tranportEp_ID_DUEG",logicalLinkInstance.getLinkName())
                                         execution.setVariable("tranportEp_ID_CUIN",logicalLinkInstance.getLinkName2())
index 7e505d1..146cedd 100644 (file)
@@ -142,7 +142,8 @@ class ModifySliceSubnet extends AbstractServiceTaskProcessor {
         ResourceOperationStatus initStatus = new ResourceOperationStatus()
         initStatus.setServiceId(nsiId)
         initStatus.setOperationId(jobId)
-        initStatus.setResourceTemplateUUID(modelUuid)
+        //initStatus.setResourceTemplateUUID(modelUuid)
+        initStatus.setResourceInstanceID(nssiId)
         initStatus.setOperType("Modify")
         requestDBUtil.prepareInitResourceOperationStatus(execution, initStatus)
 
index 4012467..bfc8cca 100644 (file)
@@ -55,13 +55,13 @@ nss.sendSyncResponse(execution)</bpmn:script>
     <bpmn:sequenceFlow id="Flow_0ayd6dj" sourceRef="Activity_0qlstj2" targetRef="Activity_1usi32q" />
     <bpmn:sequenceFlow id="Flow_0m5n6md" sourceRef="Activity_1usi32q" targetRef="Gateway_15a04ct" />
     <bpmn:sequenceFlow id="Flow_1fij4ds" name="Is CN ?" sourceRef="Gateway_15a04ct" targetRef="CallDoAllocateCoreNSSI">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("networkType") == "CN"}</bpmn:conditionExpression>
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("networkType") == "cn"}</bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:sequenceFlow id="Flow_0g7721r" name="Is TN ?" sourceRef="Gateway_15a04ct" targetRef="CallDoAllocateTransportNSSI">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("networkType") == "TN"}</bpmn:conditionExpression>
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("networkType") == "tn"}</bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:sequenceFlow id="Flow_1kk0exp" name="Is AN ?" sourceRef="Gateway_15a04ct" targetRef="CallDoAllocateAccessNSSI">
-      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("networkType") == "AN"}</bpmn:conditionExpression>
+      <bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">#{execution.getVariable("networkType") == "an"}</bpmn:conditionExpression>
     </bpmn:sequenceFlow>
     <bpmn:sequenceFlow id="Flow_09b50tn" sourceRef="CallDoAllocateAccessNSSI" targetRef="Event_18u424w" />
     <bpmn:callActivity id="CallDoAllocateAccessNSSI" name="Call ANAllocateNSSI" calledElement="DoAllocateAccessNSSI">
index 35c5fe1..7aaf558 100644 (file)
@@ -26,7 +26,7 @@ import javax.annotation.PostConstruct;
 import org.junit.Rule;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.Status;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.BlueprintProcessingServiceGrpc.BlueprintProcessingServiceImplBase;
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc.BluePrintProcessingServiceImplBase;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.slf4j.Logger;
@@ -35,7 +35,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 @Component
-public class GrpcNettyServer extends BlueprintProcessingServiceImplBase {
+public class GrpcNettyServer extends BluePrintProcessingServiceImplBase {
 
     private static final Logger logger = LoggerFactory.getLogger(GrpcNettyServer.class);
 
@@ -55,7 +55,7 @@ public class GrpcNettyServer extends BlueprintProcessingServiceImplBase {
     @PostConstruct
     public void start() throws IOException {
 
-        final BlueprintProcessingServiceImplBase blueprintPrcessorImpl = new BlueprintProcessingServiceImplBase() {
+        final BluePrintProcessingServiceImplBase blueprintPrcessorImpl = new BluePrintProcessingServiceImplBase() {
             @Override
             public StreamObserver<ExecutionServiceInput> process(
                     StreamObserver<ExecutionServiceOutput> responseObserver) {
index f3b767a..1da9ad5 100644 (file)
@@ -156,6 +156,16 @@ public abstract class AbstractControllerExecution<T> {
         return ("pnf").equalsIgnoreCase(controllerScope);
     }
 
+    /**
+     * Check whether the controller scope is SERVICE
+     *
+     * @param controllerScope controller scope, e.g, pnf, vnf, vfModule, service
+     * @return true if the controller scope is service, else return false
+     */
+    protected boolean isServiceResourceScope(final String controllerScope) {
+        return "service".equalsIgnoreCase(controllerScope);
+    }
+
     /**
      * Check whether the controller scope is VNF resource related.
      * 
index 39a695b..92be824 100644 (file)
@@ -109,6 +109,8 @@ public class ControllerExecutionBB extends AbstractControllerExecution<BuildingB
                 PnfResourceCustomization pnfResourceCustomization =
                         catalogDbClient.getPnfResourceCustomizationByModelCustomizationUUID(resourceCustomizationUuid);
                 controllerActor = pnfResourceCustomization.getControllerActor();
+            } else if (isServiceResourceScope(controllerScope)) {
+                return controllerActor;
             } else if (isVnfResourceScope(controllerScope)) {
                 VnfResourceCustomization vnfResourceCustomization =
                         catalogDbClient.getVnfResourceCustomizationByModelCustomizationUUID(resourceCustomizationUuid);
index c56ab3e..f2f3b5d 100644 (file)
@@ -26,7 +26,9 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf;
 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
+import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
 import org.onap.so.bpmn.servicedecomposition.tasks.ExtractPojosForBB;
 import org.onap.so.client.exception.BBObjectNotFoundException;
 import org.onap.so.client.exception.ExceptionBuilder;
@@ -87,6 +89,11 @@ public class ControllerExecution {
                         execution.getGeneralBuildingBlock().getRequestContext().getMsoRequestId());
                 execution.setVariable(PRC_BLUEPRINT_VERSION, pnfResourceCustomization.getBlueprintVersion());
                 execution.setVariable(PRC_BLUEPRINT_NAME, pnfResourceCustomization.getBlueprintName());
+            } else if ("service".equalsIgnoreCase(scope)) {
+                GeneralBuildingBlock gbb = execution.getGeneralBuildingBlock();
+                ModelInfoServiceInstance modelInfoServiceInstance =
+                        gbb.getServiceInstance().getModelInfoServiceInstance();
+                controllerActor = Optional.ofNullable(modelInfoServiceInstance.getControllerActor()).orElse("CDS");
             } else {
                 GenericVnf genericVnf = getGenericVnf(execution);
                 String modelUuid = genericVnf.getModelInfoGenericVnf().getModelCustomizationUuid();
index 1fae5ce..5442f44 100644 (file)
@@ -46,6 +46,7 @@ public class GenericCDSProcessingBB implements ControllerRunnable<BuildingBlockE
     public static final String CDS_ACTOR = "cds";
     public static final String VNF_SCOPE = "vnf";
     public static final String VF_MODULE_SCOPE = "vfmodule";
+    public static final String SERVICE_SCOPE = "service";
 
     @Autowired
     private ExceptionBuilder exceptionBuilder;
@@ -59,8 +60,8 @@ public class GenericCDSProcessingBB implements ControllerRunnable<BuildingBlockE
     @Override
     public Boolean understand(ControllerContext<BuildingBlockExecution> context) {
         String scope = context.getControllerScope();
-        return CDS_ACTOR.equalsIgnoreCase(context.getControllerActor())
-                && (VNF_SCOPE.equalsIgnoreCase(scope) || VF_MODULE_SCOPE.equalsIgnoreCase(scope));
+        return CDS_ACTOR.equalsIgnoreCase(context.getControllerActor()) && (SERVICE_SCOPE.equalsIgnoreCase(scope)
+                || VNF_SCOPE.equalsIgnoreCase(scope) || VF_MODULE_SCOPE.equalsIgnoreCase(scope));
     }
 
     @Override
index cd151ba..b76cf1e 100644 (file)
@@ -111,13 +111,15 @@ public class WorkflowActionBBTasks {
             }
             int currentSequence = (int) execution.getVariable(BBConstants.G_CURRENT_SEQUENCE);
 
-            ExecuteBuildingBlock ebb = flowsToExecute.get(currentSequence);
-
-            execution.setVariable("buildingBlock", ebb);
-            currentSequence++;
-            execution.setVariable(COMPLETED, currentSequence >= flowsToExecute.size());
-            execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, currentSequence);
-
+            boolean completed = false;
+            if (currentSequence < flowsToExecute.size()) {
+                ExecuteBuildingBlock ebb = flowsToExecute.get(currentSequence);
+                execution.setVariable("buildingBlock", ebb);
+                execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, currentSequence + 1);
+            } else {
+                completed = true;
+            }
+            execution.setVariable(COMPLETED, completed);
         } catch (Exception e) {
             workflowAction.buildAndThrowException(execution, "Internal Error occured during selectBB", e);
         }
@@ -425,6 +427,9 @@ public class WorkflowActionBBTasks {
             final boolean aLaCarte = (boolean) execution.getVariable(BBConstants.G_ALACARTE);
             int currentSequence = (int) execution.getVariable(BBConstants.G_CURRENT_SEQUENCE);
             logger.debug("Current Sequence: {}", currentSequence);
+            if (currentSequence >= flowsToExecute.size()) {
+                execution.setVariable(COMPLETED, true);
+            }
             ExecuteBuildingBlock ebb = flowsToExecute.get(currentSequence - 1);
             String bbFlowName = ebb.getBuildingBlock().getBpmnFlowName();
             if ("ActivateVfModuleBB".equalsIgnoreCase(bbFlowName) && aLaCarte
index 272c618..ff6c113 100644 (file)
@@ -29,8 +29,10 @@ import org.onap.so.bpmn.common.BBConstants;
 import org.onap.so.bpmn.common.BuildingBlockExecution;
 import org.onap.so.bpmn.common.listener.flowmanipulator.FlowManipulatorListenerRunner;
 import org.onap.so.bpmn.common.listener.flowmanipulator.PreFlowManipulator;
+import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
 import org.onap.so.db.catalog.beans.PnfResourceCustomization;
+import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
 import org.onap.so.db.catalog.client.CatalogDbClient;
@@ -76,11 +78,11 @@ public class SkipCDSBuildingBlockListener implements PreFlowManipulator {
             BuildingBlockExecution execution) {
         String customizationUUID = currentBB.getBuildingBlock().getKey();
 
-        if (Strings.isEmpty(customizationUUID)) {
-            return;
-        }
-
-        if (currentBB.getBuildingBlock().getBpmnScope().equalsIgnoreCase("VNF")
+        if ("SERVICE".equalsIgnoreCase(currentBB.getBuildingBlock().getBpmnScope())) {
+            String modelUUID = currentBB.getRequestDetails().getModelInfo().getModelUuid();
+            Service service = catalogDbClient.getServiceByID(modelUUID);
+            currentSequenceSkipCheck(execution, service.getSkipPostInstConf());
+        } else if (currentBB.getBuildingBlock().getBpmnScope().equalsIgnoreCase("VNF")
                 && containsIgnoreCaseAction(currentBB, vnfActions)) {
             List<VnfResourceCustomization> vnfResourceCustomizations =
                     catalogDbClient.getVnfResourceCustomizationByModelUuid(
index a6e2922..a0a47a1 100644 (file)
@@ -31,7 +31,7 @@ import javax.annotation.PostConstruct;
 import org.junit.Rule;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.Status;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.BlueprintProcessingServiceGrpc.BlueprintProcessingServiceImplBase;
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc.BluePrintProcessingServiceImplBase;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.slf4j.Logger;
@@ -40,7 +40,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 @Component
-public class GrpcNettyServer extends BlueprintProcessingServiceImplBase {
+public class GrpcNettyServer extends BluePrintProcessingServiceImplBase {
 
     private static final Logger logger = LoggerFactory.getLogger(GrpcNettyServer.class);
 
@@ -60,7 +60,7 @@ public class GrpcNettyServer extends BlueprintProcessingServiceImplBase {
     @PostConstruct
     public void start() throws IOException {
 
-        final BlueprintProcessingServiceImplBase blueprintPrcessorImpl = new BlueprintProcessingServiceImplBase() {
+        final BluePrintProcessingServiceImplBase blueprintPrcessorImpl = new BluePrintProcessingServiceImplBase() {
             @Override
             public StreamObserver<ExecutionServiceInput> process(
                     StreamObserver<ExecutionServiceOutput> responseObserver) {
index 5cd3055..cbb746d 100644 (file)
@@ -149,7 +149,7 @@ public class WorkflowActionBBTasksTest extends BaseTaskTest {
         workflowActionBBTasks.selectBB(execution);
         boolean success = (boolean) execution.getVariable("completed");
         int currentSequence = (int) execution.getVariable("gCurrentSequence");
-        assertTrue(success);
+        assertFalse(success);
         assertEquals(1, currentSequence);
     }
 
index fdf4d36..b23147e 100644 (file)
@@ -37,6 +37,7 @@ import org.onap.so.bpmn.common.DelegateExecutionImpl;
 import org.onap.so.bpmn.servicedecomposition.entities.BuildingBlock;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
 import org.onap.so.db.catalog.beans.PnfResourceCustomization;
+import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.VfModuleCustomization;
 import org.onap.so.db.catalog.beans.VnfResourceCustomization;
 import org.onap.so.db.catalog.client.CatalogDbClient;
@@ -46,6 +47,7 @@ import org.onap.so.serviceinstancebeans.RequestDetails;
 @RunWith(MockitoJUnitRunner.Silent.class)
 public class SkipCDSBuildingBlockListenerTest {
 
+    private static final String SERVICE_SCOPE = "service";
     private static final String VNF_SCOPE = "VNF";
     private static final String VF_SCOPE = "VFModule";
     private static final String PNF_SCOPE = "pnf";
@@ -89,6 +91,18 @@ public class SkipCDSBuildingBlockListenerTest {
         assertEquals("ControllerExecutionBB", BBNAME);
     }
 
+    @Test
+    public void testSkipCDSforService() {
+        setBuildingBlockAndCurrentSequence(SERVICE_SCOPE, "service-config-assign", 0);
+        Service service = new Service();
+        when(catalogDbClient.getServiceByID(TEST_MODELUUID)).thenReturn(service);
+
+        skipCDSBuildingBlockListener.run(flowsToExecute, executeBuildingBlock, buildingBlockExecution);
+
+        actual = buildingBlockExecution.getVariable(BBConstants.G_CURRENT_SEQUENCE);
+        assertEquals(1, actual);
+    }
+
     @Test
     public void testProcessForVNFToSkipCDSBB() {
         // given
index a6e8a79..bbb32b5 100644 (file)
@@ -14,8 +14,9 @@
     <grpc.version>1.25.0</grpc.version>
     <protobuf.version>3.10.0</protobuf.version>
     <grpc.netty.version>4.1.30.Final</grpc.netty.version>
-    <ccsdk.version>1.1.2</ccsdk.version>
+    <ccsdk.version>1.1.5</ccsdk.version>
     <spring-cloud-sleuth.version>2.0.2.RELEASE</spring-cloud-sleuth.version>
+    <tomcat-catalina-version>9.0.45</tomcat-catalina-version>
   </properties>
   <dependencies>
     <dependency>
@@ -79,7 +80,7 @@
     <dependency>
       <groupId>org.apache.tomcat</groupId>
       <artifactId>tomcat-catalina</artifactId>
-      <version>9.0.30</version>
+      <version>${tomcat-catalina-version}</version>
     </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
index 0bd6d64..f06ee49 100644 (file)
@@ -159,8 +159,6 @@ public class SliceProfileAdapter implements Serializable {
             List<PerfReqEmbb> perfReqEmbbs = new ArrayList<>();
             PerfReqEmbb perfReqEmbb = new PerfReqEmbb();
             BeanUtils.copyProperties(this, perfReqEmbb);
-            perfReqEmbb.setExpDataRateDL(this.expDataRateDL);
-            perfReqEmbb.setExpDataRateUL(this.expDataRateUL);
             perfReqEmbbs.add(perfReqEmbb);
             perfReq.setPerfReqEmbbList(perfReqEmbbs);
         } else if ("ullc".equalsIgnoreCase(sST)) {
index a0a5577..6097f7e 100644 (file)
@@ -24,8 +24,8 @@ import io.grpc.ManagedChannel;
 import io.grpc.stub.StreamObserver;
 import java.util.concurrent.CountDownLatch;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.BlueprintProcessingServiceGrpc;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.BlueprintProcessingServiceGrpc.BlueprintProcessingServiceStub;
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc;
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc.BluePrintProcessingServiceStub;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 import org.slf4j.Logger;
@@ -50,7 +50,7 @@ class CDSProcessingHandler {
 
         final CountDownLatch finishLatch = new CountDownLatch(1);
 
-        final BlueprintProcessingServiceStub asyncStub = BlueprintProcessingServiceGrpc.newStub(channel);
+        final BluePrintProcessingServiceStub asyncStub = BluePrintProcessingServiceGrpc.newStub(channel);
 
         final StreamObserver<ExecutionServiceOutput> responseObserver = new StreamObserver<ExecutionServiceOutput>() {
             @Override
index b92326c..5792c28 100644 (file)
@@ -41,7 +41,7 @@ import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 import org.mockito.Mock;
 import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.BlueprintProcessingServiceGrpc.BlueprintProcessingServiceImplBase;
+import org.onap.ccsdk.cds.controllerblueprints.processing.api.BluePrintProcessingServiceGrpc.BluePrintProcessingServiceImplBase;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
 import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
 
@@ -72,7 +72,7 @@ public class CDSProcessingClientTest {
 
         client = new CDSProcessingClient(InProcessChannelBuilder.forName(serverName).directExecutor().build(), handler);
 
-        final BlueprintProcessingServiceImplBase routeChatImpl = new BlueprintProcessingServiceImplBase() {
+        final BluePrintProcessingServiceImplBase routeChatImpl = new BluePrintProcessingServiceImplBase() {
             @Override
             public StreamObserver<ExecutionServiceInput> process(
                     StreamObserver<ExecutionServiceOutput> responseObserver) {
diff --git a/pom.xml b/pom.xml
index 49d4b75..879a3ee 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -74,7 +74,7 @@
     <appc.client.version>1.7.2</appc.client.version>
     <bowman.client.version>0.9.0</bowman.client.version>
     <aaf.cadi.version>2.1.15</aaf.cadi.version>
-    <so-etsi-sol003-adapter-version>1.8.1-SNAPSHOT</so-etsi-sol003-adapter-version>
+    <so-etsi-sol003-adapter-version>1.9.0-SNAPSHOT</so-etsi-sol003-adapter-version>
     <onap-logging-version>1.6.9</onap-logging-version>
   </properties>
   <distributionManagement>