Enhance resource sequence to add group 48/86448/2
authorsubhash kumar singh <subhash.kumar.singh@huawei.com>
Sat, 27 Apr 2019 07:01:21 +0000 (12:31 +0530)
committersubhash kumar singh <subhash.kumar.singh@huawei.com>
Sat, 27 Apr 2019 07:21:57 +0000 (12:51 +0530)
Enhance resource sequence to add group.

Change-Id: I9f7ad2a437cd66ba3b8382f3937b0b04752a184a
Issue-ID: SO-1393
Signed-off-by: subhash kumar singh <subhash.kumar.singh@huawei.com>
bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/domain/ServiceDecomposition.java
bpmn/MSOCoreBPMN/src/main/java/org/onap/so/bpmn/core/domain/VnfResource.java
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateResources.groovy

index 419f545..b3439d5 100644 (file)
@@ -245,7 +245,7 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
      */
     @JsonIgnore
     public List<Resource> getServiceResources() {
-        ArrayList serviceResources = new ArrayList();
+        ArrayList<Resource> serviceResources = new ArrayList();
         if (this.getAllottedResources() != null) {
             serviceResources.addAll(this.getAllottedResources());
         }
index 0804cbb..da8d5a1 100644 (file)
@@ -55,6 +55,9 @@ public class VnfResource extends Resource {
     @JsonProperty("groups")
     private List<GroupResource> groups;
 
+    @JsonProperty("group-order")
+    private String groupOrder;
+
     private String vnfHostname;
     private String vnfType;
     private String nfFunction;
@@ -163,6 +166,14 @@ public class VnfResource extends Resource {
         this.groups = groups;
     }
 
+    public String getGroupOrder() {
+        return groupOrder;
+    }
+
+    public void setGroupOrder(String groupOrder) {
+        this.groupOrder = groupOrder;
+    }
+
     /**
      * Returns a list of all VfModule objects. Base module is first entry in the list
      * 
index 98def61..a7d453d 100644 (file)
@@ -23,6 +23,7 @@
 package org.onap.so.bpmn.infrastructure.scripts
 
 import org.onap.so.bpmn.common.scripts.CatalogDbUtilsFactory
+import org.onap.so.bpmn.core.domain.GroupResource
 import org.onap.so.bpmn.infrastructure.properties.BPMNProperties
 import org.apache.commons.lang3.StringUtils
 import org.apache.http.HttpResponse
@@ -117,6 +118,22 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
                     if (StringUtils.containsIgnoreCase(resource.getModelInfo().getModelName(), resourceType)) {
                         sequencedResourceList.add(resource)
 
+                        // if resource type is vnfResource then check for groups also
+                        // Did not use continue because if same model type is used twice
+                        // then we would like to add it twice for processing
+                        // e.g.  S{ V1{G1, G2, G1}} --> S{ V1{G1, G1, G2}}
+                        if (resource instanceof VnfResource) {
+                            if (resource.getGroups() != null) {
+                                String[] grpSequence = resource.getGroupOrder().split(",")
+                                for (String grpType in grpSequence) {
+                                    for (GroupResource gResource in resource.getGroups()) {
+                                        if (StringUtils.containsIgnoreCase(gResource.getModelInfo().getModelName(), grpType)) {
+                                            sequencedResourceList.add(gResource)
+                                        }
+                                    }
+                                }
+                            }
+                        }
                         if (resource instanceof NetworkResource) {
                             networkResourceList.add(resource)
                         }
@@ -126,7 +143,7 @@ public class DoCreateResources extends AbstractServiceTaskProcessor{
         } else {
 
             //define sequenced resource list, we deploy vf first and then network and then ar
-            //this is defaule sequence
+            //this is default sequence
             List<VnfResource> vnfResourceList = new ArrayList<VnfResource>()
             List<AllottedResource> arResourceList = new ArrayList<AllottedResource>()