Merge 'origin/casablanca' into master 75/77475/1
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Fri, 25 Jan 2019 22:08:41 +0000 (17:08 -0500)
committerSmokowski, Steve (ss835w) <ss835w@us.att.com>
Mon, 28 Jan 2019 19:39:43 +0000 (14:39 -0500)
Issue-ID: SO-1435
Change-Id: If065ef5c91e769452fd6701fa6c28a23b4bdf2b2
Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
45 files changed:
1  2 
adapters/mso-adapter-utils/src/main/java/org/onap/so/openstack/utils/MsoMulticloudUtils.java
adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/CatalogDBRestTest.java
adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/adapters/catalogdb/catalogrest/CloudConfigTest.java
adapters/mso-catalog-db-adapter/src/test/java/org/onap/so/db/catalog/client/CatalogDbClientTest.java
adapters/mso-catalog-db-adapter/src/test/resources/db/migration/afterMigrate.sql
adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/vnf/MsoVnfPluginAdapterImpl.java
adapters/mso-openstack-adapters/src/test/java/org/onap/so/adapters/vnf/MsoVnfMulticloudAdapterImplTest.java
adapters/mso-openstack-adapters/src/test/resources/schema.sql
adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/MsoRequestsDbAdapterImpl.java
adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/impl/SDNCRestClient.java
asdc-controller/src/main/java/org/onap/so/asdc/client/ASDCController.java
asdc-controller/src/main/java/org/onap/so/asdc/installer/ToscaResourceStructure.java
asdc-controller/src/main/java/org/onap/so/asdc/installer/bpmn/BpmnInstaller.java
asdc-controller/src/main/java/org/onap/so/asdc/installer/heat/ToscaResourceInstaller.java
asdc-controller/src/test/resources/schema.sql
bpmn/MSOCommonBPMN/pom.xml
bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/MsoUtils.groovy
bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofHoming.groovy
bpmn/MSOCommonBPMN/src/main/groovy/org/onap/so/bpmn/common/scripts/OofUtils.groovy
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilder.java
bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoUtilsTest.groovy
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/resource/ResourceRequestBuilderTest.java
bpmn/MSOCommonBPMN/src/test/resources/application-test.yaml
bpmn/mso-infrastructure-bpmn/pom.xml
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/DoCreateResources.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVfModule.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoCreateVnfAndModules.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/infrastructure/scripts/DoDeleteVFCNetworkServiceInstance.groovy
bpmn/so-bpmn-infrastructure-common/src/main/groovy/org/onap/so/bpmn/vcpe/scripts/CreateVcpeResCustService.groovy
bpmn/so-bpmn-infrastructure-common/src/main/java/org/onap/so/bpmn/infrastructure/workflow/service/ServicePluginFactory.java
bpmn/so-bpmn-infrastructure-common/src/test/groovy/org/onap/so/bpmn/infrastructure/scripts/CreateSDNCNetworkResourceTest.groovy
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/CreatePnfEntryInAaiDelegateTest.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/GeneratePnfUuidDelegateTest.java
bpmn/so-bpmn-infrastructure-common/src/test/java/org/onap/so/bpmn/infrastructure/pnf/delegate/PnfCheckInputsTest.java
bpmn/so-bpmn-infrastructure-flows/src/main/resources/subprocess/DoDeleteE2EServiceInstance.bpmn
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/bpmn/infrastructure/flowspecific/tasks/GenericVnfHealthCheckTest.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterObjectMapperTest.java
bpmn/so-bpmn-tasks/src/test/java/org/onap/so/client/adapter/vnf/mapper/VnfAdapterVfModuleObjectMapperTest.java
mso-api-handlers/mso-api-handler-infra/pom.xml
mso-api-handlers/mso-api-handler-infra/src/test/java/org/onap/so/apihandlerinfra/ServiceInstancesTest.java
mso-api-handlers/mso-api-handler-infra/src/test/resources/schema.sql
mso-catalog-db/src/main/java/org/onap/so/db/catalog/beans/CloudIdentity.java
mso-catalog-db/src/main/java/org/onap/so/db/catalog/client/CatalogDbClient.java
mso-catalog-db/src/test/resources/schema.sql

@@@ -28,12 -27,12 +28,9 @@@ import java.util.List
  import java.util.Map;
  import java.util.Scanner;
  
 -import javax.ws.rs.core.UriBuilder;
--import javax.ws.rs.core.UriBuilderException;
  import javax.ws.rs.core.Response;
++import javax.ws.rs.core.UriBuilderException;
  
- import org.onap.so.client.HttpClientFactory;
--import org.slf4j.Logger;
--import org.slf4j.LoggerFactory;
  import org.onap.so.adapters.vdu.CloudInfo;
  import org.onap.so.adapters.vdu.PluginAction;
  import org.onap.so.adapters.vdu.VduArtifact;
@@@ -44,20 -43,28 +41,25 @@@ import org.onap.so.adapters.vdu.VduMode
  import org.onap.so.adapters.vdu.VduPlugin;
  import org.onap.so.adapters.vdu.VduStateType;
  import org.onap.so.adapters.vdu.VduStatus;
++import org.onap.so.client.HttpClientFactory;
++import org.onap.so.client.RestClient;
++import org.onap.so.db.catalog.beans.CloudSite;
++import org.onap.so.logger.MessageEnum;
++import org.onap.so.logger.MsoLogger;
  import org.onap.so.openstack.beans.HeatStatus;
  import org.onap.so.openstack.beans.StackInfo;
+ import org.onap.so.openstack.exceptions.MsoAdapterException;
  import org.onap.so.openstack.exceptions.MsoCloudSiteNotFound;
  import org.onap.so.openstack.exceptions.MsoException;
  import org.onap.so.openstack.exceptions.MsoOpenstackException;
 -import org.onap.so.client.HttpClient;
--import org.onap.so.client.RestClient;
--import org.onap.so.db.catalog.beans.CloudSite;
--import org.onap.so.logger.MessageEnum;
 -import org.onap.so.logger.MsoAlarmLogger;
--import org.onap.so.logger.MsoLogger;
  import org.onap.so.utils.TargetEntity;
++import org.slf4j.Logger;
++import org.slf4j.LoggerFactory;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.core.env.Environment;
 -import org.springframework.http.HttpEntity;
 -import org.springframework.http.HttpHeaders;
 -import org.springframework.http.MediaType;
  import org.springframework.stereotype.Component;
  
 -import com.fasterxml.jackson.core.JsonProcessingException;
+ import com.fasterxml.jackson.databind.JsonNode;
  import com.fasterxml.jackson.databind.ObjectMapper;
  import com.woorea.openstack.heat.model.CreateStackParam;
  
@@@ -215,9 -215,14 +210,13 @@@ public class MsoMulticloudUtils extend
              }
              return getStackStatus(cloudSiteId, tenantId, createInfo.getCanonicalName(), pollForCompletion, timeoutMinutes, backout);
          } else {
-             createInfo.setStatus(HeatStatus.FAILED);
-             createInfo.setStatusMessage(response.getStatusInfo().getReasonPhrase());
-             return createInfo;
+             StringBuilder stackErrorStatusReason = new StringBuilder(response.getStatusInfo().getReasonPhrase());
+             if (null != multicloudResponseBody) {
+                 stackErrorStatusReason.append(multicloudResponseBody.toString());
+             }
+             MsoOpenstackException me = new MsoOpenstackException(0, "", stackErrorStatusReason.toString());
+             me.addContext(CREATE_STACK);
 -            alarmLogger.sendAlarm(HEAT_ERROR, MsoAlarmLogger.CRITICAL, me.getContextMessage());
+             throw me;
          }
      }
  
@@@ -210,16 -213,14 +218,26 @@@ INSERT INTO vnf_components_recipe (VNF_
  VALUES
  ('volumeGroup', 'createInstance', '1', 'Gr api recipe to create volume-group', '/mso/async/services/WorkflowActionBB', 180, '20c4431c-246d-11e7-93ae-92361f002671');
  
+ insert into homing_instances (service_instance_id, cloud_owner, cloud_region_id, oof_directives) values
+ ('5df8b6de-2083-11e7-93ae-92361f232671', 'CloudOwner', 'CloudRegionId', '{"directives": [{"directives": [{"attributes": [{"attribute_value": "onap.hpa.flavor32","attribute_name": "firewall_flavor_name"}],"type": "flavor_directives"}],"type": "vnfc","id": "vfw"},{"directives": [{"attributes": [{"attribute_value": "onap.hpa.flavor33","attribute_name": "packetgen_flavor_name"}],"type": "flavor_directives"}],"type": "vnfc","id": "vgenerator"},{"directives": [{"attributes": [{"attribute_value": "onap.hpa.flavor32","attribute_name": "sink_flavor_name"}],"type": "flavor_directives"}],"type": "vnfc","id": "vsink"}]}'),
+ ('5df8b6de-2083-11e7-93ae-92361f562672', 'CloudOwner', 'CloudRegionId', '{"directives": [{"directives": [{"attributes": [{"attribute_value": "onap.hpa.flavor32","attribute_name": "firewall_flavor_name"}],"type": "flavor_directives"}],"type": "vnfc","id": "vfw"},{"directives": [{"attributes": [{"attribute_value": "onap.hpa.flavor33","attribute_name": "packetgen_flavor_name"}],"type": "flavor_directives"}],"type": "vnfc","id": "vgenerator"},{"directives": [{"attributes": [{"attribute_value": "onap.hpa.flavor32","attribute_name": "sink_flavor_name"}],"type": "flavor_directives"}],"type": "vnfc","id": "vsink"}]}');
+ -- for query resource receipe
+ INSERT INTO allotted_resource
+ (MODEL_UUID, MODEL_INVARIANT_UUID, MODEL_VERSION, MODEL_NAME, TOSCA_NODE_TYPE, SUBCATEGORY, DESCRIPTION, CREATION_TIMESTAMP)
+ VALUES('25e2d69b-3b22-47b8-b4c9-7b14fd4a80df', '8f5fe343-9a3a-4d31-a829-49b27bbfc1c4', '2.0', 'sotnvpnattachmentvF', 'org.openecomp.resource.vf.Sdwanvpnattachmentvf', 'Allotted Resource', 'sdwanvpnattachmentVF', '2019-01-24 09:59:16.000');
  
+ INSERT INTO ar_recipe(ID, MODEL_NAME, ACTION, VERSION_STR, SERVICE_TYPE, DESCRIPTION, ORCHESTRATION_URI, AR_PARAM_XSD, RECIPE_TIMEOUT, CREATION_TIMESTAMP)
+ VALUES(1, 'sotnvpnattachmentvF', 'createInstance', '2.0', 'VF', 'sotnvpnattachmentvF', '/mso/async/services/CreateSDNCNetworkResource', '', 180, '2019-01-24 09:59:16.000');
 +INSERT INTO northbound_request_ref_lookup(MACRO_ACTION, ACTION, REQUEST_SCOPE, IS_ALACARTE, MIN_API_VERSION, MAX_API_VERSION, CLOUD_OWNER, SERVICE_TYPE) VALUES
 +('Service-Create', 'createInstance', 'Service', true, '7','7', 'my-custom-cloud-owner','*');
 +
 +
 +INSERT INTO orchestration_flow_reference(COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, FLOW_VERSION, NB_REQ_REF_LOOKUP_ID) VALUES
 +('Service-Create', '1', 'AssignServiceInstanceBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Create' and CLOUD_OWNER = 'my-custom-cloud-owner'));
 +
 +INSERT INTO northbound_request_ref_lookup(MACRO_ACTION, ACTION, REQUEST_SCOPE, IS_ALACARTE, MIN_API_VERSION, MAX_API_VERSION, CLOUD_OWNER, SERVICE_TYPE) VALUES
 +('Service-Create', 'createInstance', 'Service', true, '7','7', 'my-custom-cloud-owner','TRANSPORT');
 +
 +INSERT INTO orchestration_flow_reference(COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, FLOW_VERSION, NB_REQ_REF_LOOKUP_ID) VALUES
 +('Service-Create', '1', 'AssignServiceInstanceBB', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Create' and CLOUD_OWNER = 'my-custom-cloud-owner' and SERVICE_TYPE = 'TRANSPORT'));
  
  package org.onap.so.asdc.installer.bpmn;
  
 -import java.io.*;
 +import java.io.BufferedOutputStream;
 +import java.io.FileInputStream;
 +import java.io.FileOutputStream;
 +import java.io.IOException;
 +import java.net.URI;
  import java.nio.file.Path;
  import java.nio.file.Paths;
 -import java.util.zip.*;
+ import java.util.Enumeration;
 +import java.util.zip.ZipEntry;
++import java.util.zip.ZipFile;
 +import java.util.zip.ZipInputStream;
  
  import org.apache.commons.io.IOUtils;
  import org.apache.http.HttpEntity;
@@@ -109,10 -106,34 +111,34 @@@ public class BpmnInstaller 
                }
                return;
        }       
+       public boolean containsWorkflows(String csarFilePath) {
+               boolean workflowsInCsar = false;
+               try {
+                       ZipFile zipFile = new ZipFile(csarFilePath);
+                       Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
+                       while (zipEntries.hasMoreElements()) {
+                               String fileName = ((ZipEntry) zipEntries.nextElement()).getName();
+                               if (fileName.endsWith(BPMN_SUFFIX)) {
+                                       workflowsInCsar = true;
+                                       break;
+                               }                               
+                       }
+               }
+               catch (Exception e) {
+                       LOGGER.debug("Exception :",e);
+             LOGGER.error(MessageEnum.ASDC_ARTIFACT_CHECK_EXC,
+                               csarFilePath,
+                               "",
+                               "",
+                               e.getMessage(), "", "", MsoLogger.ErrorCode.DataError, "ASDC Unable to check CSAR entries"); 
+               }
+               return workflowsInCsar;
+       }
        
 -      protected HttpResponse sendDeploymentRequest(String bpmnFileName) throws Exception {                                    
 +      protected HttpResponse sendDeploymentRequest(String bpmnFileName) throws Exception {
                HttpClient client = HttpClientBuilder.create().build(); 
 -              String deploymentUri = this.env.getProperty(CAMUNDA_URL) + CREATE_DEPLOYMENT_PATH;
 +              URI deploymentUri = new URI(this.env.getProperty(CAMUNDA_URL) + CREATE_DEPLOYMENT_PATH);
                HttpPost post = new HttpPost(deploymentUri);
                RequestConfig requestConfig =
                                RequestConfig.custom().setSocketTimeout(1000000).setConnectTimeout(1000).setConnectionRequestTimeout(1000).build();
@@@ -25,18 -25,26 +25,23 @@@ package org.onap.so.asdc.installer.heat
  import java.sql.Timestamp;
  import java.util.ArrayList;
  import java.util.Date;
+ import java.util.HashMap;
  import java.util.HashSet;
+ import java.util.LinkedHashMap;
  import java.util.List;
+ import java.util.Map;
  import java.util.Optional;
  import java.util.Set;
+ import java.util.stream.Collectors;
  
 -import com.fasterxml.jackson.core.JsonProcessingException;
 -import com.fasterxml.jackson.databind.ObjectMapper;
 -import com.google.gson.Gson;
  import org.hibernate.exception.ConstraintViolationException;
  import org.hibernate.exception.LockAcquisitionException;
  import org.onap.sdc.api.notification.IArtifactInfo;
  import org.onap.sdc.api.notification.IResourceInstance;
  import org.onap.sdc.api.notification.IStatusData;
 -import org.onap.sdc.tosca.parser.impl.SdcPropertyNames;
+ import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
  import org.onap.sdc.tosca.parser.enums.SdcTypes;
 +import org.onap.sdc.tosca.parser.impl.SdcPropertyNames;
  import org.onap.sdc.toscaparser.api.CapabilityAssignment;
  import org.onap.sdc.toscaparser.api.CapabilityAssignments;
  import org.onap.sdc.toscaparser.api.Group;
@@@ -118,6 -132,6 +127,9 @@@ import org.springframework.beans.factor
  import org.springframework.stereotype.Component;
  import org.springframework.transaction.annotation.Transactional;
  
++import com.fasterxml.jackson.core.JsonProcessingException;
++import com.fasterxml.jackson.databind.ObjectMapper;
++
  @Component
  public class ToscaResourceInstaller {
  
  
        protected static final String MSO = "SO";
  
++
        @Autowired
        protected ServiceRepository serviceRepo;
        
        
        @Autowired
        protected ServiceProxyResourceCustomizationRepository serviceProxyCustomizationRepo;
-               
+       
 -      @Autowired
 -      protected ServiceProxyResourceRepository serviceProxyRepo;
 -      
        @Autowired
        protected CollectionResourceRepository collectionRepo;
        
  
        @Transactional(rollbackFor = { ArtifactInstallerException.class })
        public void installTheResource(ToscaResourceStructure toscaResourceStruct, VfResourceStructure vfResourceStruct)
--                      throws ArtifactInstallerException {
++                      throws ArtifactInstallerException {             
                VfResourceStructure vfResourceStructure = vfResourceStruct;
--              extractHeatInformation(toscaResourceStruct, vfResourceStructure);
++              extractHeatInformation(toscaResourceStruct, vfResourceStructure);       
  
                // PCLO: in case of deployment failure, use a string that will represent
                // the type of artifact that failed...
                        createToscaCsar(toscaResourceStruct);                   
                        createService(toscaResourceStruct, vfResourceStruct);                   
                        Service service = toscaResourceStruct.getCatalogService();                              
--
++                      List<NodeTemplate> vfNodeTemplatesList = toscaResourceStruct.getSdcCsarHelper().getServiceVfList();
++                      
++              
++                      for (NodeTemplate nodeTemplate : vfNodeTemplatesList) { 
++                              
++                              Metadata metadata = nodeTemplate.getMetaData();         
++                              String serviceType = toscaResourceStruct.getCatalogService().getServiceType();                  
++                              String vfCustomizationCategory = toscaResourceStruct.getSdcCsarHelper()
++                                              .getMetadataPropertyValue(metadata, SdcPropertyNames.PROPERTY_NAME_CATEGORY);
++                              processVfModules(toscaResourceStruct, vfResourceStructure, service, nodeTemplate, metadata,
++                                              vfCustomizationCategory);
++                      }
++                      
+                       processResourceSequence(toscaResourceStruct, service);
                        processVFResources(toscaResourceStruct, service, vfResourceStructure);
--                      processAllottedResources(toscaResourceStruct, service);
++                      List<NodeTemplate> allottedResourceList = toscaResourceStruct.getSdcCsarHelper().getAllottedResources();
++                      processAllottedResources(toscaResourceStruct, service, allottedResourceList);
                        processNetworks(toscaResourceStruct, service);  
                        // process Network Collections
                        processNetworkCollections(toscaResourceStruct, service);
                                      Service service) throws ArtifactInstallerException {
          List <NodeTemplate> nodeTemplatesVLList = toscaResourceStruct.getSdcCsarHelper ().getServiceVlList ();
  
--        if (nodeTemplatesVLList != null) {
--            for (NodeTemplate vlNode : nodeTemplatesVLList) {
++              if (nodeTemplatesVLList != null) {
++                      for (NodeTemplate vlNode : nodeTemplatesVLList) {
                  String networkResourceModelName = vlNode.getMetaData ().getValue (SdcPropertyNames.PROPERTY_NAME_NAME);
  
                  TempNetworkHeatTemplateLookup tempNetworkLookUp =
                      } else {
                          throw new ArtifactInstallerException ("No HeatTemplate found for artifactUUID: "
                                                                + tempNetworkLookUp.getHeatTemplateArtifactUuid ());
--                    }
--                } else {
++                                      }
++                              } else {
                      NetworkResourceCustomization networkCustomization = createNetwork (vlNode,
                                                                                         toscaResourceStruct,
                                                                                         null,
                                                                                         null,
                                                                                         null,
                                                                                         service);
 -                                      networkCustomization.setResourceInput(getResourceInput(toscaResourceStruct, networkCustomization.getModelCustomizationUUID()));
 -                                      service.getNetworkCustomizations().add (networkCustomization);
 +                    service.getNetworkCustomizations().add (networkCustomization);
                      logger.debug ("No NetworkResourceName found in TempNetworkHeatTemplateLookup for "
--                                  + networkResourceModelName);
--                }
--
--            }
--        }
++                                                                      + networkResourceModelName);
++                              }                                       
++                              
++                      }
++              }
        }
  
-       protected void processAllottedResources(ToscaResourceStructure toscaResourceStruct, Service service) {
 -      protected void processAllottedResources(ToscaResourceStructure toscaResourceStruct, Service service) throws ArtifactInstallerException {
--              List<NodeTemplate> allottedResourceList = toscaResourceStruct.getSdcCsarHelper().getAllottedResources();
--              
++      protected void processAllottedResources(ToscaResourceStructure toscaResourceStruct, Service service,
++                      List<NodeTemplate> allottedResourceList) {
                if (allottedResourceList != null) {
 -                      for (NodeTemplate allottedNode : allottedResourceList) {
 -                              AllottedResourceCustomization allottedResource = createAllottedResource(allottedNode, toscaResourceStruct, service);
 -                              allottedResource.setResourceInput(getResourceInput(toscaResourceStruct, allottedResource.getModelCustomizationUUID()));
 -                              service.getAllottedCustomizations().add(allottedResource);
 +                      for (NodeTemplate allottedNode : allottedResourceList) {                                                                        
 +                              service.getAllottedCustomizations()
 +                                              .add(createAllottedResource(allottedNode, toscaResourceStruct, service));                               
                        }
                }
        }
                                logger.debug("vfCustomizationUUID: " + vfCustomizationUUID
                                                + " matches vfNotificationResource CustomizationUUID");                         
                                
--                              processVfModules(toscaResourceStruct, vfResourceStructure, service, nodeTemplate, vfCustomizationUUID);
--                      }
--                      else {
++                              processVfModules(toscaResourceStruct, vfResourceStructure, service, nodeTemplate, metadata,
++                                              vfCustomizationCategory);
++                      else {
                                logger.debug("Notification VF ResourceCustomizationUUID: "
                                                + vfNotificationResource.getResourceCustomizationUUID() + " doesn't match "
                                                + "Tosca VF Customization UUID: " + vfCustomizationUUID);
        
        
        protected void processVfModules(ToscaResourceStructure toscaResourceStruct, VfResourceStructure vfResourceStructure,
--                      Service service, NodeTemplate nodeTemplate, String vfCustomizationUUID)
--                      throws Exception {
--              logger.debug("processVfModules for vfCustomizationUUID: " + vfCustomizationUUID);
++                      Service service, NodeTemplate nodeTemplate, Metadata metadata, String vfCustomizationCategory) throws Exception {
                
--              VnfResourceCustomization vnfResource = createVnfResource(nodeTemplate, toscaResourceStruct, service);
++              logger.debug("VF Category is : " + vfCustomizationCategory);
                
--              if (vfResourceStructure.getVfModuleStructure() != null && !vfResourceStructure.getVfModuleStructure().isEmpty()) {
--                      Set<CvnfcCustomization> existingCvnfcSet = new HashSet<CvnfcCustomization>();
--                      Set<VnfcCustomization> existingVnfcSet = new HashSet<VnfcCustomization>();
-                       for (VfModuleStructure vfModuleStructure : vfResourceStructure.getVfModuleStructure()) {
-                               logger.debug("vfModuleStructure:" + vfModuleStructure.toString());
-                               List<org.onap.sdc.toscaparser.api.Group> vfGroups = toscaResourceStruct.getSdcCsarHelper()
-                                               .getVfModulesByVf(vfCustomizationUUID);
-                               IVfModuleData vfMetadata = vfModuleStructure.getVfModuleMetadata();
-                               logger.debug("Comparing Vf_Modules_Metadata CustomizationUUID : " + vfMetadata.getVfModuleModelCustomizationUUID());
-                               Optional<org.onap.sdc.toscaparser.api.Group> matchingObject = vfGroups.stream()
-                                               .peek(group -> logger.debug("To Csar Group VFModuleModelCustomizationUUID "     + group.getMetadata().getValue("vfModuleModelCustomizationUUID")))
-                                               .filter(group -> group.getMetadata().getValue("vfModuleModelCustomizationUUID").equals(vfMetadata.getVfModuleModelCustomizationUUID()))
-                                               .findFirst();
-                               if (matchingObject.isPresent()) {
-                                       VfModuleCustomization vfModuleCustomization = createVFModuleResource(matchingObject.get(), nodeTemplate, toscaResourceStruct, 
-                                                                                    vfResourceStructure, vfMetadata, vnfResource,service, existingCvnfcSet, existingVnfcSet);
-                                       vfModuleCustomization.getVfModule().setVnfResources(vnfResource.getVnfResources());
-                               } else {
-                                       throw new Exception("Cannot find matching VFModule Customization in Csar for Vf_Modules_Metadata: " + vfMetadata.getVfModuleModelCustomizationUUID());
++              if(vfResourceStructure.getVfModuleStructure() != null && !vfResourceStructure.getVfModuleStructure().isEmpty())
++              {
 -                      for (VfModuleStructure vfModuleStructure : vfResourceStructure.getVfModuleStructure()) {
 -
 -                              logger.debug("vfModuleStructure:" + vfModuleStructure.toString());
 -                              List<org.onap.sdc.toscaparser.api.Group> vfGroups = toscaResourceStruct.getSdcCsarHelper()
 -                                              .getVfModulesByVf(vfCustomizationUUID);
 -                              IVfModuleData vfMetadata = vfModuleStructure.getVfModuleMetadata();
 -
 -                              logger.debug("Comparing Vf_Modules_Metadata CustomizationUUID : " + vfMetadata.getVfModuleModelCustomizationUUID());
 -
 -                              Optional<org.onap.sdc.toscaparser.api.Group> matchingObject = vfGroups.stream()
 -                                              .peek(group -> logger.debug("To Csar Group VFModuleModelCustomizationUUID "     + group.getMetadata().getValue("vfModuleModelCustomizationUUID")))
 -                                              .filter(group -> group.getMetadata().getValue("vfModuleModelCustomizationUUID").equals(vfMetadata.getVfModuleModelCustomizationUUID()))
 -                                              .findFirst();
 -                              if (matchingObject.isPresent()) {
 -                                      VfModuleCustomization vfModuleCustomization = createVFModuleResource(matchingObject.get(), nodeTemplate, toscaResourceStruct, 
 -                                                                                   vfResourceStructure, vfMetadata, vnfResource,service, existingCvnfcSet, existingVnfcSet);
 -                                      vfModuleCustomization.getVfModule().setVnfResources(vnfResource.getVnfResources());
 -                              } else {
 -                                      throw new Exception("Cannot find matching VFModule Customization in Csar for Vf_Modules_Metadata: " + vfMetadata.getVfModuleModelCustomizationUUID());
++                      String vfCustomizationUUID = toscaResourceStruct.getSdcCsarHelper()
++                                      .getMetadataPropertyValue(metadata, SdcPropertyNames.PROPERTY_NAME_CUSTOMIZATIONUUID);
++                      logger.debug("VFCustomizationUUID=" + vfCustomizationUUID);     
++                      
++                      IResourceInstance vfNotificationResource = vfResourceStructure.getResourceInstance();           
++                      
++                      // Make sure the VF ResourceCustomizationUUID from the notification and tosca customizations match before comparing their VF Modules UUID's
++                      logger.debug("Checking if Notification VF ResourceCustomizationUUID: " + vfNotificationResource.getResourceCustomizationUUID() + 
++                                                 " matches Tosca VF Customization UUID: " +  vfCustomizationUUID);
++                      
++                      if(vfCustomizationUUID.equals(vfNotificationResource.getResourceCustomizationUUID())){
++                              
++                              logger.debug("vfCustomizationUUID: " + vfCustomizationUUID + " matches vfNotificationResource CustomizationUUID");
++                      
++                              VnfResourceCustomization vnfResource = createVnfResource(nodeTemplate, toscaResourceStruct, service);
++                              
++                              Set<CvnfcCustomization> existingCvnfcSet = new HashSet<CvnfcCustomization>(); 
++                              Set<VnfcCustomization> existingVnfcSet = new HashSet<VnfcCustomization>();
++                                                              
++                              for (VfModuleStructure vfModuleStructure : vfResourceStructure.getVfModuleStructure()) {
++                                      
++                                      logger.debug("vfModuleStructure:" + vfModuleStructure.toString());
++                                      List<org.onap.sdc.toscaparser.api.Group> vfGroups = toscaResourceStruct
++                                                      .getSdcCsarHelper().getVfModulesByVf(vfCustomizationUUID);
++                                      IVfModuleData vfMetadata = vfModuleStructure.getVfModuleMetadata();     
++                                      
++                                      logger.debug("Comparing Vf_Modules_Metadata CustomizationUUID : " + vfMetadata.getVfModuleModelCustomizationUUID());
++                                      
++                                      Optional<org.onap.sdc.toscaparser.api.Group> matchingObject = vfGroups.stream()
++                                                      .peek(group -> logger.debug("To Csar Group VFModuleModelCustomizationUUID " + group.getMetadata().getValue("vfModuleModelCustomizationUUID")))
++                                                  .filter(group -> group.getMetadata().getValue("vfModuleModelCustomizationUUID").equals(vfMetadata.getVfModuleModelCustomizationUUID()))
++                                                  .findFirst();
++                                      if(matchingObject.isPresent()){
++                                              VfModuleCustomization vfModuleCustomization = createVFModuleResource(matchingObject.get(), nodeTemplate, toscaResourceStruct, 
++                                                                                                                                                                                       vfResourceStructure,vfMetadata, vnfResource, service, existingCvnfcSet, existingVnfcSet);
++                                              vfModuleCustomization.getVfModule().setVnfResources(vnfResource.getVnfResources());
++                                      }else
++                                              throw new Exception("Cannot find matching VFModule Customization in Csar for Vf_Modules_Metadata: " + vfMetadata.getVfModuleModelCustomizationUUID());
++                                      
                                }
++                              service.getVnfCustomizations().add(vnfResource);
++                      } else{
++                              logger.debug("Notification VF ResourceCustomizationUUID: " + vfNotificationResource.getResourceCustomizationUUID() + " doesn't match " +
++                                                   "Tosca VF Customization UUID: " +  vfCustomizationUUID);
                        }
                }
--
 -              vnfResource.setResourceInput(getResourceInput(toscaResourceStruct, vnfResource.getModelCustomizationUUID()));
--              service.getVnfCustomizations().add(vnfResource);
        }
  
        public void processWatchdog(String distributionId, String servideUUID) {
                spCustomizationResource.setModelInstanceName(nodeTemplate.getName());
                spCustomizationResource.setToscaNodeType(nodeTemplate.getType());
                spCustomizationResource.setSourceService(service);
 -              spCustomizationResource.setServiceProxyResource(spResource);
                spCustomizationResource.setToscaNodeType(nodeTemplate.getType());
 -              spCustomizationResource.setServiceProxyResource(spResource);
                serviceProxyCustomizationSet.add(spCustomizationResource);
 -              toscaResourceStructure.setCatalogServiceProxyResource(spResource);
                
                toscaResourceStructure.setCatalogServiceProxyResourceCustomization(spCustomizationResource);
                
Simple merge
@@@ -30,14 -30,14 +30,14 @@@ import org.onap.so.bpmn.core.domain.Ser
  import org.onap.so.bpmn.core.domain.Subscriber
  import org.onap.so.bpmn.core.domain.VnfResource
  import org.onap.so.bpmn.core.json.JsonUtils
 -import org.onap.so.db.catalog.beans.AuthenticationType
 +import org.onap.so.client.HttpClient
 +import org.onap.so.client.HttpClientFactory
 +import org.onap.so.logger.MsoLogger
  import org.onap.so.db.catalog.beans.CloudIdentity
  import org.onap.so.db.catalog.beans.CloudSite
+ import org.onap.so.db.catalog.beans.HomingInstance
 -import org.onap.so.db.catalog.beans.ServerType
 -import org.onap.so.rest.APIResponse
 -import org.onap.so.rest.RESTClient
 -import org.onap.so.rest.RESTConfig
 +import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
 +import org.onap.so.utils.TargetEntity
  
  import org.json.JSONArray
  import org.json.JSONObject
@@@ -33,23 -33,10 +33,24 @@@ import org.onap.so.bpmn.core.domain.Ser
  import org.onap.so.bpmn.core.domain.Subscriber
  import org.onap.so.bpmn.core.domain.VnfResource
  import org.onap.so.bpmn.core.json.JsonUtils
 +import org.onap.so.client.HttpClient
 +import org.onap.so.client.HttpClientFactory
  import org.onap.so.db.catalog.beans.CloudSite
 -import javax.ws.rs.core.UriBuilder
 -import org.onap.so.bpmn.common.util.OofInfraUtils
+ import org.onap.so.db.catalog.beans.HomingInstance
 +import org.onap.so.utils.TargetEntity
 +import org.springframework.http.HttpEntity
 +import org.springframework.http.HttpHeaders
 +import org.springframework.http.HttpMethod
 +import org.springframework.http.ResponseEntity
 +import org.springframework.http.client.BufferingClientHttpRequestFactory
 +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory
 +import org.springframework.web.client.RestTemplate
 +import org.springframework.web.util.UriComponentsBuilder
 +
 +import javax.ws.rs.core.MediaType
 +import javax.ws.rs.core.Response
 +import javax.xml.ws.http.HTTPException
 +
  import static org.onap.so.bpmn.common.scripts.GenericUtils.*
  
  class OofUtils {
       *
       * @return void
       */
 -    Void createCloudSite(CloudSite cloudSite, DelegateExecution execution) {
 -        oofInfraUtils.createCloudSite(cloudSite, execution)
 -    }
 +    Void createCloudSiteCatalogDb(CloudSite cloudSite, DelegateExecution execution) {
 +
 +        String endpoint = UrnPropertiesReader.getVariable("mso.catalog.db.spring.endpoint", execution)
 +        String auth = UrnPropertiesReader.getVariable("mso.db.auth", execution)
 +        String uri = "/cloudSite"
 +
 +          URL url = new URL(endpoint + uri)
 +        HttpClient client = new HttpClientFactory().newJsonClient(url, TargetEntity.EXTERNAL)
 +        client.addAdditionalHeader(HttpHeaders.AUTHORIZATION, auth)
 +          client.addAdditionalHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON)
 +
 +        Response response = client.post(request.getBody().toString())
  
 +        int responseCode = response.getStatus()
 +        logDebug("CatalogDB response code is: " + responseCode, isDebugEnabled)
 +        String syncResponse = response.readEntity(String.class)
 +        logDebug("CatalogDB response is: " + syncResponse, isDebugEnabled)
 +
 +        if(responseCode != 202){
 +            exceptionUtil.buildAndThrowWorkflowException(execution, responseCode, "Received a Bad Sync Response from CatalogDB.")
 +        }
 +    }
 -
++    
+     /**
+      * This method creates a HomingInstance in catalog database.
+      *
+      * @param HomingInstance homingInstance
+      *
+      * @return void
+      */
+     Void createHomingInstance(HomingInstance homingInstance, DelegateExecution execution) {
+         oofInfraUtils.createHomingInstance(homingInstance, execution)
+     }
       String getMsbHost(DelegateExecution execution) {
-          msbHost = UrnPropertiesReader.getVariable("mso.msb.host", execution, "msb-iag.onap")
+          String msbHost = UrnPropertiesReader.getVariable("mso.msb.host", execution, "msb-iag.onap")
  
           Integer msbPort = UrnPropertiesReader.getVariable("mso.msb.port", execution, "80").toInteger()
  
  
  package org.onap.so.bpmn.common.resource;
  
--import java.io.File;
  import java.io.IOException;
- import java.nio.file.Paths;
+ import java.lang.reflect.Type;
 -import java.net.MalformedURLException;
  import java.util.ArrayList;
+ import java.util.Arrays;
  import java.util.HashMap;
--import java.util.LinkedHashMap;
  import java.util.List;
  import java.util.Map;
--import java.util.Optional;
 -import java.util.logging.Logger;
  
  import javax.ws.rs.core.Response;
  import javax.ws.rs.core.UriBuilder;
  
  import org.camunda.bpm.engine.runtime.Execution;
--import org.onap.sdc.tosca.parser.api.ISdcCsarHelper;
--import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
--import org.onap.sdc.tosca.parser.impl.SdcToscaParserFactory;
--import org.onap.sdc.toscaparser.api.NodeTemplate;
--import org.onap.sdc.toscaparser.api.Property;
--import org.onap.sdc.toscaparser.api.RequirementAssignment;
--import org.onap.sdc.toscaparser.api.RequirementAssignments;
--import org.onap.sdc.toscaparser.api.functions.GetInput;
--import org.onap.sdc.toscaparser.api.parameters.Input;
  import org.onap.so.bpmn.core.UrnPropertiesReader;
  import org.onap.so.bpmn.core.json.JsonUtils;
  import org.onap.so.client.HttpClient;
@@@ -198,91 -148,98 +131,95 @@@ public class ResourceRequestBuilder 
          return result;
      }
  
-     public static Map<String, Object> buildResouceRequest(String serviceUuid, String resourceCustomizationUuid, Map<String, Object> serviceInputs)
-             throws SdcToscaParserException {
-         Map<String, Object> resouceRequest = new HashMap<>();
-         String csarpath = null;
+     @SuppressWarnings("unchecked")
+     public static Map<String, Object> buildResouceRequest(String serviceUuid, String resourceCustomizationUuid, Map<String, Object> serviceInputs) {
          try {
-             csarpath = getCsarFromUuid(serviceUuid);
-         } catch(Exception e) {
-             LOGGER.debug("csar file is not available for service uuid:" + serviceUuid, e);
-             return resouceRequest;
-         }
+             Map<String, Object> serviceInstnace = getServiceInstnace(serviceUuid);
  
-         SdcToscaParserFactory toscaParser = SdcToscaParserFactory.getInstance();
-         ISdcCsarHelper iSdcCsarHelper = toscaParser.getSdcCsarHelper(csarpath, false);
+             // find match of customization uuid in vnf
+             Map<String, Map<String, Object>> serviceResources = (Map<String, Map<String, Object>>) serviceInstnace.get("serviceResources");
  
-         List<Input> serInput = iSdcCsarHelper.getServiceInputs();
-         Optional<NodeTemplate> nodeTemplateOpt = iSdcCsarHelper.getServiceNodeTemplates().stream()
-                 .filter(e -> e.getMetaData().getValue(CUSTOMIZATION_UUID).equals(resourceCustomizationUuid)).findFirst();
+             List<Map<String, Object>> serviceVnfCust = (List<Map<String, Object>>) serviceResources.get("serviceVnfs");
+             String resourceInputStr = getResourceInputStr(serviceVnfCust, resourceCustomizationUuid);
  
-         if(nodeTemplateOpt.isPresent()) {
-             NodeTemplate nodeTemplate = nodeTemplateOpt.get();
-             LinkedHashMap<String, Property> resourceProperties = nodeTemplate.getProperties();
+             // find match in network resource
+             if (resourceInputStr == null) {
+                 List<Map<String, Object>> serviceNetworkCust = (List<Map<String, Object>>) serviceResources.get("serviceNetworks");
+                 resourceInputStr = getResourceInputStr(serviceNetworkCust, resourceCustomizationUuid);
  
-             for(String key : resourceProperties.keySet()) {
-                 Property property = resourceProperties.get(key);
-                 Object value = getValue(property.getValue(), serviceInputs, serInput);
-                 resouceRequest.put(key, value);
+                 // find match in AR resource
+                 if (resourceInputStr == null) {
+                     List<Map<String, Object>> serviceArCust = (List<Map<String, Object>>) serviceResources.get("serviceAllottedResources");
+                     resourceInputStr = getResourceInputStr(serviceArCust, resourceCustomizationUuid);
+                 }
              }
+            if (resourceInputStr != null || !resourceInputStr.equals("")) {
+                 return getResourceInput(resourceInputStr, serviceInputs);
+            }
+         } catch (Exception e) {
+             LOGGER.error("not able to retrieve service instance");
          }
-         return resouceRequest;
+         return new HashMap();
      }
  
-     private static Object getValue(Object value, Map<String, Object> serviceInputs, List<Input> servInputs) {
-         if(value instanceof Map) {
-             Map<String, Object> valueMap = new HashMap<>();
+     private static String getResourceInputStr(List<Map<String, Object>> resources, String resCustomizationUuid) {
  
-             Map<String, Object> propertyMap = (Map<String, Object>)value;
+         for (Map<String, Object> resource : resources) {
+             Map<String, String> modelInfo = (Map<String, String>) resource.get("modelInfo");
  
-             for(String key : propertyMap.keySet()) {
-                 valueMap.put(key, getValue(propertyMap.get(key), serviceInputs, servInputs));
+             if (modelInfo.get("modelCustomizationUuid").equalsIgnoreCase(resCustomizationUuid)) {
+                 return (String) resource.get("resourceInput");
              }
-             return valueMap; // return if the value is nested hashmap
-         } else if(value instanceof GetInput) {
-             String inputName = ((GetInput)value).getInputName();
-             if(serviceInputs.get(inputName) != null) {
-                 value = serviceInputs.get(inputName);
-             } else {
-                 for(Input input : servInputs) {
-                     if(input.getName().equals(inputName)) {
-                         return input.getDefault(); // return default value
-                     }
+         }
+         return null;
+     }
+     // this method combines resource input with service input
+     private static Map<String, Object> getResourceInput(String resourceInputStr, Map<String, Object> serviceInputs) {
+         Gson gson = new Gson();
+         Type type = new TypeToken<Map<String, String>>(){}.getType();
+         Map<String, Object> resourceInput = gson.fromJson(resourceInputStr, type);
+         // replace value if key is available in service input
+         for (String key: resourceInput.keySet()) {
+             String value = (String) resourceInput.get(key);
+             if (value.contains("|")) {
+                 // node it type of getinput
+                 String[] split = value.split("\\|");
+                 String tmpKey = split[0];
+                 if (serviceInputs.containsKey(tmpKey)) {
+                     value = (String) serviceInputs.get(tmpKey);
+                 } else {
+                     value = split[1];
                  }
              }
+             resourceInput.put(key,value);
          }
-         return value; // return property value
+         return resourceInput;
      }
  
-     private static String getCsarFromUuid(String uuid) throws Exception {
-               String catalogEndPoint = UrnPropertiesReader.getVariable("mso.catalog.db.endpoint");
-       HttpClient client = new HttpClientFactory().newJsonClient(
-           UriBuilder.fromUri(catalogEndPoint).path(SERVICE_URL_TOSCA_CSAR).queryParam("serviceModelUuid", uuid).build().toURL(),
-             TargetEntity.CATALOG_DB);
-       
-       client.addAdditionalHeader("Accept", "application/json");
- //            client.addBasicAuthHeader (UrnPropertiesReader.getVariable("mso.adapters.db.auth"), UrnPropertiesReader.getVariable("mso.msoKey"));
-       client.addAdditionalHeader("Authorization", UrnPropertiesReader.getVariable("mso.db.auth"));
-         Response response = client.get();
-         String value = response.readEntity(String.class);
+     public static Map<String, Object> getServiceInstnace(String uuid) throws Exception {
+         String catalogEndPoint = UrnPropertiesReader.getVariable("mso.catalog.db.endpoint");
  
-         HashMap<String, String> map = new Gson().fromJson(value, new TypeToken<HashMap<String, String>>() {}.getType());
 -        RESTClient restClient = new RESTClient(new RESTConfig(
 -                UriBuilder.fromUri(catalogEndPoint)
 -                        .path(SERVICE_URL_SERVICE_INSTANCE)
 -                        .queryParam("serviceModelUuid", uuid)
 -                        .build().toURL().toString()
 -        ));
++        HttpClient client = new HttpClientFactory().newJsonClient(
++                  UriBuilder.fromUri(catalogEndPoint).path(SERVICE_URL_SERVICE_INSTANCE).queryParam("serviceModelUuid", uuid).build().toURL(),
++                TargetEntity.CATALOG_DB);
  
-         String filePath = Paths.get(System.getProperty("mso.config.path"), "ASDC",  map.get("version"), map.get("name")).normalize().toString();
 -        restClient.addHeader("Accept", "application/json");
 -        restClient.addAuthorizationHeader(UrnPropertiesReader.getVariable("mso.db.auth"));
++        client.addAdditionalHeader("Accept", "application/json");
++        client.addAdditionalHeader("Authorization", UrnPropertiesReader.getVariable("mso.db.auth"));
  
-         File csarFile = new File(filePath);
 -        APIResponse apiResponse = restClient.httpGet();
++        Response apiResponse = client.get();
  
-         if(!csarFile.exists()) {
-             throw new Exception("csar file does not exist in filePath:" + csarFile.getAbsolutePath());
-         }
 -        String value = apiResponse.getResponseBodyAsString();
++        String value = apiResponse.readEntity(String.class);
  
-         return csarFile.getAbsolutePath();
+         ObjectMapper objectMapper = new ObjectMapper();
+         HashMap<String, Object> map = objectMapper.readValue(value, HashMap.class);
+         return map;
      }
-     
      public static <T> T getJsonObject(String jsonstr, Class<T> type) {
          ObjectMapper mapper = new ObjectMapper();
          mapper.configure(SerializationFeature.WRAP_ROOT_VALUE, true);
   */
  package org.onap.so.bpmn.common.resource;
  
 -import com.github.tomakehurst.wiremock.client.WireMock;
 -import com.github.tomakehurst.wiremock.junit.WireMockRule;
 -import org.junit.Rule;
--import org.junit.Test;
 -import org.mockito.Mock;
 -import org.onap.so.bpmn.core.UrnPropertiesReader;
 -import org.springframework.core.env.Environment;
++import static org.junit.Assert.assertEquals;
++import static org.mockito.ArgumentMatchers.eq;
++import static org.mockito.Mockito.mock;
++import static org.mockito.Mockito.when;
  
  import java.util.HashMap;
 -import static org.junit.Assert.assertEquals;
 -import static org.mockito.Matchers.eq;
 -import static org.mockito.Mockito.mock;
 -import static org.mockito.Mockito.when;
+ import java.util.List;
+ import java.util.Map;
 -public class ResourceRequestBuilderTest {
++import org.junit.Rule;
++import org.junit.Test;
++import org.mockito.Mock;
++import org.onap.so.BaseTest;
++import org.onap.so.bpmn.core.UrnPropertiesReader;
++import org.springframework.core.env.Environment;
 -    @Rule
 -    public WireMockRule wireMockRule = new WireMockRule();
++import static com.github.tomakehurst.wiremock.client.WireMock.*;
  
- public class ResourceRequestBuilderTest {
 -    @Mock
 -    UrnPropertiesReader urnPropertiesReader;
++public class ResourceRequestBuilderTest extends BaseTest {
  
      @Test
-     public void buildResouceRequestTest() throws Exception {
+     public void getResourceInputTest() throws Exception {
  
-         ResourceRequestBuilder.buildResouceRequest("xxxxxx",
-                 "a1074969-944f-4ddc-b687-9550b0c8cd57", new HashMap<>());
 -        UrnPropertiesReader reader = new UrnPropertiesReader();
 -        Environment env = mock(Environment.class);
 -        when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
 -        reader.setEnvironment(env);
 -        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
 -                .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
++        stubFor(get(urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
++                .willReturn(ok("{ \"serviceResources\"    : {\n" +
+                         "\t\"modelInfo\"       : {\n" +
+                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
+                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
+                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
+                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
+                         "\t},\n" +
+                         "\t\"serviceType\"        : \"\",\n" +
+                         "\t\"serviceRole\"        : \"\",\n" +
+                         "\t\"environmentContext\" : null,\n" +
+                         "\t\"resourceOrder\"       : \"res1,res2\",\n" +
+                         "\t\"workloadContext\"    : \"Production\",\n" +
+                         "\t\"serviceVnfs\": [\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t},\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\"," +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t}\n" +
+                         "\t],\n" +
+                         "\t\"serviceNetworks\": [],\n" +
+                         "\t\"serviceAllottedResources\": []\n" +
+                         "\t}}")));
+ //        when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+         HashMap serviceInput = new HashMap();
+         serviceInput.put("key", "value");
+         Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest("c3954379-4efe-431c-8258-f84905b158e5",
+                 "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+         assertEquals(stringObjectMap.get("a"), "value");
      }
  
      @Test
-     public void buildResouceRequestParametersTest() throws Exception {
+     public void getResourceInputDefaultValueTest() throws Exception {
 -        UrnPropertiesReader reader = new UrnPropertiesReader();
 -        Environment env = mock(Environment.class);
 -
 -        when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
 -        reader.setEnvironment(env);
 -
 -        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
 -                .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
++        stubFor(get(urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
++                .willReturn(ok("{ \"serviceResources\"    : {\n" +
+                         "\t\"modelInfo\"       : {\n" +
+                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
+                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
+                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
+                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
+                         "\t},\n" +
+                         "\t\"serviceType\"        : \"\",\n" +
+                         "\t\"serviceRole\"        : \"\",\n" +
+                         "\t\"environmentContext\" : null,\n" +
+                         "\t\"workloadContext\"    : \"Production\",\n" +
+                         "\t\"serviceVnfs\": [\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t},\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\"," +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t}\n" +
+                         "\t],\n" +
+                         "\t\"serviceNetworks\": [],\n" +
+                         "\t\"serviceAllottedResources\": []\n" +
+                         "\t}}")));
+ //        when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+         HashMap serviceInput = new HashMap();
+         serviceInput.put("key1", "value");
+         Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest("c3954379-4efe-431c-8258-f84905b158e5",
+                 "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+         assertEquals(stringObjectMap.get("a"), "default_value");
+     }
+     @Test
+     public void getResourceInputValueNoDefaultTest() throws Exception {
 -        UrnPropertiesReader reader = new UrnPropertiesReader();
 -        Environment env = mock(Environment.class);
 -
 -        when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
 -        reader.setEnvironment(env);
 -
 -        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
 -                .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
++        stubFor(get(urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
++                .willReturn(ok("{ \"serviceResources\"    : {\n" +
+                         "\t\"modelInfo\"       : {\n" +
+                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
+                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
+                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
+                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
+                         "\t},\n" +
+                         "\t\"serviceType\"        : \"\",\n" +
+                         "\t\"serviceRole\"        : \"\",\n" +
+                         "\t\"environmentContext\" : null,\n" +
+                         "\t\"workloadContext\"    : \"Production\",\n" +
+                         "\t\"serviceVnfs\": [\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t},\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"value\\\"}\"," +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t}\n" +
+                         "\t],\n" +
+                         "\t\"serviceNetworks\": [],\n" +
+                         "\t\"serviceAllottedResources\": []\n" +
+                         "\t}}")));
+ //        when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
+         HashMap serviceInput = new HashMap();
+         serviceInput.put("key1", "value");
+         Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest("c3954379-4efe-431c-8258-f84905b158e5",
+                 "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
+         assertEquals(stringObjectMap.get("a"), "value");
+     }
+     @Test
+     public void getResourceSequenceTest() throws Exception {
 -        UrnPropertiesReader reader = new UrnPropertiesReader();
 -        Environment env = mock(Environment.class);
 -
 -        when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
 -        reader.setEnvironment(env);
 -
 -        WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
 -                .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
++        stubFor(get(urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
++                .willReturn(ok("{ \"serviceResources\"    : {\n" +
+                         "\t\"modelInfo\"       : {\n" +
+                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
+                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
+                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
+                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
+                         "\t},\n" +
+                         "\t\"serviceType\"        : \"\",\n" +
+                         "\t\"serviceRole\"        : \"\",\n" +
+                         "\t\"environmentContext\" : null,\n" +
+                         "\t\"resourceOrder\"       : \"res1,res2\",\n" +
+                         "\t\"workloadContext\"    : \"Production\",\n" +
+                         "\t\"serviceVnfs\": [\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t},\n" +
+                         "\t\n" +
+                         "\t\t{ \"modelInfo\"                    : {\n" +
+                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
+                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
+                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
+                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
+                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
+                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
+                         "\t\t\t},\n" +
+                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
+                         "\t\t\"nfFunction\"           \t: null,\n" +
+                         "\t\t\"nfType\"              \t\t: null,\n" +
+                         "\t\t\"nfRole\"              \t\t: null,\n" +
+                         "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\"," +
+                         "\t\t\"nfNamingCode\"         \t: null,\n" +
+                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
+                         "\t\t\t\"vfModules\": [\n" +
+                         "\t\t\t\t{\n" +
+                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
+                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
+                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
+                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
+                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
+                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
+                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
+                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
+                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
+                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
+                         "\t\t\t\t}\n" +
+                         "\t\t\t]\n" +
+                         "\t\t}\n" +
+                         "\t],\n" +
+                         "\t\"serviceNetworks\": [],\n" +
+                         "\t\"serviceAllottedResources\": []\n" +
+                         "\t}}")));
  
-         String parameters =
-                 "{            \"locationConstraints\":[            ],            \"resources\":[                {                    \"resourceName\":\"vEPC_ONAP01\",                    \"resourceInvariantUuid\":\"36ebe421-283a-4ee8-92f1-d09e7c44b911\",                    \"resourceUuid\":\"27a0e235-b67a-4ea4-a0cf-25761afed111\",                    \"resourceCustomizationUuid\":\"27a0e235-b67a-4ea4-a0cf-25761afed231\",                    \"parameters\":{                        \"locationConstraints\":[                            {                                \"vnfProfileId\":\"b244d433-8c9c-49ad-9c70-8e34b8dc8328\",                                \"locationConstraints\":{                                    \"vimId\":\"vmware_vio\"                                }                            },                            {                                \"vnfProfileId\":\"8a9f7c48-21ce-41b7-95b8-a8ac61ccb1ff\",                                \"locationConstraints\":{                                    \"vimId\":\"core-dc_RegionOne\"                                }                            }                        ],                        \"resources\":[                        ],                        \"requestInputs\":{                            \"sdncontroller\":\"\"                        }                    }                },                {                    \"resourceName\":\"VL OVERLAYTUNNEL\",                    \"resourceInvariantUuid\":\"184494cf-472f-436f-82e2-d83dddde21cb\",                    \"resourceUuid\":\"95bc3e59-c9c5-458f-ad6e-78874ab4b3cc\",                    \"resourceCustomizationUuid\":\"27a0e235-b67a-4ea4-a0cf-25761afed232\",                    \"parameters\":{                        \"locationConstraints\":[                        ],                        \"resources\":[                        ],                        \"requestInputs\":{                        }                    }                }            ],            \"requestInputs\":{                \"vlunderlayvpn0_name\":\"l3connect\",                \"vlunderlayvpn0_site1_id\":\"IP-WAN-Controller-1\",                \"vlunderlayvpn0_site2_id\":\"SPTNController\",                \"vlunderlayvpn0_site1_networkName\":\"network1,network2\",                \"vlunderlayvpn0_site2_networkName\":\"network3,network4\",                \"vlunderlayvpn0_site1_routerId\":\"a8098c1a-f86e-11da-bd1a-00112444be1a\",                \"vlunderlayvpn0_site2_routerId\":\"a8098c1a-f86e-11da-bd1a-00112444be1e\",                \"vlunderlayvpn0_site2_importRT1\":\"200:1,200:2\",                \"vlunderlayvpn0_site1_exportRT1\":\"300:1,300:2\",                \"vlunderlayvpn0_site2_exportRT1\":\"400:1,400:2\",                \"vlunderlayvpn0_site1_vni\":\"2000\",                \"vlunderlayvpn0_site2_vni\":\"3000\",                \"vlunderlayvpn0_tunnelType\":\"L3-DCI\"            }        }";
-         ResourceRequestBuilder.buildResourceRequestParameters(null, "1bd0eae6-2dcc-4461-9ae6-56d641f369d6", "27a0e235-b67a-4ea4-a0cf-25761afed231", parameters);
+         List<String> resourceSequence = ResourceRequestBuilder.getResourceSequence("c3954379-4efe-431c-8258-f84905b158e5");
+         assertEquals(resourceSequence.size(), 2);
+         assertEquals(resourceSequence.get(0), "res1");
+         assertEquals(resourceSequence.get(1), "res2");
      }
  }
@@@ -84,7 -83,7 +84,7 @@@ mso
    callbackRetryAttempts: '5'
    catalog:
      db:
--      endpoint: http://localhost:${wiremock.server.port}/
++      endpoint: http://localhost:${wiremock.server.port}/ecomp/mso/catalog
        spring:
          endpoint: http://localhost:${wiremock.server.port} 
    correlation:
                <dependency>
                        <groupId>org.camunda.bpm.springboot</groupId>
                        <artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
 -                      <version>2.3.0</version>
 +                      <version>${camunda.springboot.version}</version>
                </dependency>
+               <dependency>
+                       <groupId>org.camunda.bpm.springboot</groupId>
+                       <artifactId>camunda-bpm-spring-boot-starter-webapp</artifactId>
+                       <version>2.3.0</version>
+               </dependency>
                <dependency>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-web</artifactId>
        </bpmndi:BPMNEdge>
        <bpmndi:BPMNEdge id="SequenceFlow_0kf5sen_di" bpmnElement="SequenceFlow_0kf5sen">
          <di:waypoint xsi:type="dc:Point" x="866" y="190" />
 -        <di:waypoint xsi:type="dc:Point" x="866" y="250" />
 -        <di:waypoint xsi:type="dc:Point" x="900" y="250" />
 +        <di:waypoint xsi:type="dc:Point" x="866" y="246" />
 +        <di:waypoint xsi:type="dc:Point" x="942" y="246" />
          <bpmndi:BPMNLabel>
 -          <dc:Bounds x="872" y="220" width="18" height="12" />
 +          <dc:Bounds x="872" y="217.6" width="18" height="12" />
          </bpmndi:BPMNLabel>
        </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNEdge id="SequenceFlow_1tfizxf_di" bpmnElement="SequenceFlow_1tfizxf">
 +        <di:waypoint xsi:type="dc:Point" x="180" y="120" />
 +        <di:waypoint xsi:type="dc:Point" x="211" y="120" />
 +        <di:waypoint xsi:type="dc:Point" x="211" y="120" />
 +        <di:waypoint xsi:type="dc:Point" x="239" y="120" />
 +        <bpmndi:BPMNLabel>
 +          <dc:Bounds x="226" y="120" width="0" height="0" />
 +        </bpmndi:BPMNLabel>
 +      </bpmndi:BPMNEdge>
 +      <bpmndi:BPMNShape id="ServiceTask_0m5xr0e_di" bpmnElement="Task_PreValidateWorkflow">
 +        <dc:Bounds x="80" y="80" width="100" height="80" />
 +      </bpmndi:BPMNShape>
      </bpmndi:BPMNPlane>
    </bpmndi:BPMNDiagram>
--</bpmn:definitions>
++</bpmn:definitions>
@@@ -44,9 -41,11 +45,10 @@@ import org.onap.so.bpmn.common.util.Oof
  import org.onap.so.bpmn.core.RollbackData
  import org.onap.so.bpmn.core.UrnPropertiesReader
  import org.onap.so.bpmn.core.WorkflowException
 -
  import org.onap.so.bpmn.core.domain.VnfResource
+ import org.onap.so.bpmn.core.json.DecomposeJsonUtil
  import org.onap.so.bpmn.core.json.JsonUtils
 -import org.onap.so.client.graphinventory.entities.uri.Depth
 +import org.onap.so.client.HttpClient
  import org.onap.so.client.aai.AAIObjectPlurals
  import org.onap.so.client.aai.AAIObjectType;
  import org.onap.so.client.aai.AAIResourcesClient
@@@ -54,12 -53,13 +56,13 @@@ import org.onap.so.client.aai.entities.
  import org.onap.so.client.aai.entities.uri.AAIResourceUri
  import org.onap.so.client.aai.entities.uri.AAIUri
  import org.onap.so.client.aai.entities.uri.AAIUriFactory;
 +import org.onap.so.client.graphinventory.entities.uri.Depth
  import org.onap.so.constants.Defaults
++import org.onap.so.db.catalog.beans.HomingInstance
  import org.onap.so.logger.MessageEnum
  import org.onap.so.logger.MsoLogger
 -import org.onap.so.rest.APIResponse
 -import org.onap.so.rest.RESTClient
 -import org.onap.so.rest.RESTConfig
 -import org.springframework.web.util.UriUtils
 +
 +import org.onap.so.utils.TargetEntity
  import org.w3c.dom.Document
  import org.w3c.dom.Element
  import org.w3c.dom.NamedNodeMap
@@@ -78,8 -78,9 +81,10 @@@ public class DoCreateVfModule extends V
        ExceptionUtil exceptionUtil = new ExceptionUtil()
        JsonUtils jsonUtil = new JsonUtils()
        SDNCAdapterUtils sdncAdapterUtils = new SDNCAdapterUtils(this)
 -      CatalogDbUtils catalog = new CatalogDbUtils()
+       OofInfraUtils oofInfraUtils = new OofInfraUtils()
 +      CatalogDbUtils catalogDbUtils = new CatalogDbUtilsFactory().create()
+       DecomposeJsonUtil decomposeJsonUtils = new DecomposeJsonUtil()
 +      private final HttpClientFactory httpClientFactory = new HttpClientFactory()
  
        /**
         * Validates the request message and sets up the workflow.
@@@ -247,24 -256,33 +247,24 @@@ public class DoDeleteVFCNetworkServiceI
  
          msoLogger.trace("Started Execute VFC adapter Delete Process ")
          msoLogger.info("url:"+url +"\nrequestBody:"+ requestBody)
-               Response r
 -      
 -              APIResponse apiResponse = null
 -              try{
 -                      // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
 -                      def basicAuthHeaderValue = ""
 -                      RESTConfig config = new RESTConfig(url)
 -                      RESTClient client = null;
 -                      int statusCode = 0;
 -                      
 -                      // user 'bepl' authHeader is the same with mso.db.auth
 -                      String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
 -                      msoLogger.debug("basicAuthValuedb: " + basicAuthValuedb)
 -      
 -                      client = new RESTClient(config)
 -                      client.addHeader("Accept", "application/json")
 -                      client.addAuthorizationHeader(basicAuthValuedb)
 -                      client.addHeader("Content-Type", "application/json")
 -                      
 -                      apiResponse = client.httpDelete(requestBody)
 -                      statusCode = apiResponse.getStatusCode()
 -                              
 -                      msoLogger.debug("response code:"+ apiResponse.getStatusCode() +"\nresponse body:"+ apiResponse.getResponseBodyAsString())
++      Response r
 +        try{
 +
-                       URL Url = new URL(url)
++              URL Url = new URL(url)
 +            // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
 +            // user 'bepl' authHeader is the same with mso.db.auth
 +            String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
 +            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.VNF_ADAPTER)
 +            httpClient.addAdditionalHeader("Accept", "application/json")
 +            httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
-                       r = httpClient.delete(requestBody)
++            httpClient.addAdditionalHeader("Content-Type", "application/json")
++            r = httpClient.delete(requestBody)
+               
 -              }catch(Exception e){
 -                      msoLogger.error("Exception occured while executing VF-C Delete Call. Exception is: \n" + e.getMessage());
 -                      throw new BpmnError("MSOWorkflowException")
 -              }
 -        return apiResponse
 +            msoLogger.trace("Completed Execute VF-C adapter Delete Process ")
 +        }catch(Exception e){
 +            msoLogger.error("Exception occured while executing VF-C Post Call. Exception is: \n" + e.getMessage());
 +            throw new BpmnError("MSOWorkflowException")
 +        }
 +        return r
      }
  }
@@@ -51,6 -51,6 +51,6 @@@ public class CreatePnfEntryInAaiDelegat
          Pnf createdEntry = aaiConnection.getCreated().get("testCorrelationId");
          assertThat(createdEntry.getPnfId()).isEqualTo(pnfUuid);
          assertThat(createdEntry.getPnfName()).isEqualTo("testCorrelationId");
 -        assertThat(createdEntry.isInMaint()).isTrue();
 +        assertThat(createdEntry.isInMaint()).isNull();
      }
--}
++}
@@@ -38,6 -36,6 +36,6 @@@ public class GeneratePnfUuidDelegateTes
          // when
          delegate.execute(execution);
          // then
-         assertThat((String) execution.getVariable(PNF_UUID)).matches(UUID_REGEX);
+         assertThat((String) execution.getVariable(PNF_UUID)).matches(PnfCheckInputs.UUID_REGEX);
      }
--}
++}
@@@ -35,17 -32,13 +35,18 @@@ import java.util.UUID
  
  import org.camunda.bpm.engine.delegate.BpmnError;
  import org.junit.Before;
++import org.junit.Ignore;
  import org.junit.Test;
 +import org.mockito.ArgumentMatchers;
 +import org.mockito.InjectMocks;
  import org.onap.appc.client.lcm.model.Action;
  import org.onap.so.bpmn.BaseTaskTest;
 +import org.onap.so.bpmn.common.BuildingBlockExecution;
  import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 +import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
  import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
 +import org.onap.so.client.exception.BBObjectNotFoundException;
  import org.onap.so.db.catalog.beans.ControllerSelectionReference;
 -import org.springframework.beans.factory.annotation.Autowired;
  
  public class GenericVnfHealthCheckTest extends BaseTaskTest {
        
                execution.setVariable("vnfHostIpAddress", "testOamIpAddress");
                execution.setVariable("payload", payload);
                
 -              doThrow(Exception.class).when(appCClient).runAppCCommand(action, msoRequestId, vnfId, Optional.of(payload), payloadInfo, controllerType);
 +              doThrow(new BpmnError("BPMN Error")).when(exceptionUtil).buildAndThrowWorkflowException(any(BuildingBlockExecution.class), eq(1002), eq("APPC Client Failed")); 
 +              doThrow(new RuntimeException("APPC Client Failed")).when(appCClient).runAppCCommand(action, msoRequestId, vnfId, Optional.of(payload), payloadInfo, controllerType);
                
                
 -      public void callAppcClientTimeOutExceptionTest() throws java.util.concurrent.TimeoutException {
+               genericVnfHealthCheck.callAppcClient(execution);
+               verify(appCClient, times(1)).runAppCCommand(action, msoRequestId, vnfId, Optional.of(payload), payloadInfo, controllerType);
+       }
+       
+       @Test
++      @Ignore //The runAppCCommand method in not capable of throwing this exception
++      public void callAppcClientTimeOutExceptionTest() {
+               expectedException.expect(java.util.concurrent.TimeoutException.class);
+               Action action = Action.HealthCheck;
+               String vnfId = genericVnf.getVnfId();
+               String payload = "{\"testName\":\"testValue\",}";
+               String controllerType = "testType";
+               HashMap<String, String> payloadInfo = new HashMap<String, String>();
+               payloadInfo.put("vnfName", "testVnfName");
+               payloadInfo.put("vfModuleId", "testVfModuleId");
+               payloadInfo.put("oamIpAddress", "testOamIpAddress");
+               payloadInfo.put("vnfHostIpAddress", "testOamIpAddress");
+               execution.setVariable("action", Action.HealthCheck.toString());
+               execution.setVariable("msoRequestId", msoRequestId);
+               execution.setVariable("controllerType", controllerType);
+               execution.setVariable("vnfId", "testVnfId1");
+               execution.setVariable("vnfName", "testVnfName");
+               execution.setVariable("vfModuleId", "testVfModuleId");
+               execution.setVariable("oamIpAddress", "testOamIpAddress");
+               execution.setVariable("vnfHostIpAddress", "testOamIpAddress");
+               execution.setVariable("payload", payload);
+               
+               doThrow(java.util.concurrent.TimeoutException.class).when(appCClient).runAppCCommand(action, msoRequestId, vnfId, Optional.of(payload), payloadInfo, controllerType);
+               
+               
                genericVnfHealthCheck.callAppcClient(execution);
                verify(appCClient, times(1)).runAppCCommand(action, msoRequestId, vnfId, Optional.of(payload), payloadInfo, controllerType);
        }
                </dependency>
                <dependency>
                        <groupId>javax.servlet</groupId>
-                       <artifactId>servlet-api</artifactId>
-                       <version>2.5</version>
+                       <artifactId>javax.servlet-api</artifactId>
                </dependency>
                <dependency>
 -                      <groupId>org.javassist</groupId>
 -                      <artifactId>javassist</artifactId>
 -              </dependency>
 -              <dependency>
 -                      <groupId>org.json</groupId>
 -                      <artifactId>json</artifactId>
 +                      <groupId>javax.interceptor</groupId>
 +                      <artifactId>javax.interceptor-api</artifactId>
                </dependency>
  
                <!-- Dependencies on other MSO Projects -->
@@@ -126,9 -126,9 +127,10 @@@ public class CatalogDbClient 
        private static final String WORK_STEP = "workStep";
        private static final String CLLI = "clli";
        private static final String CLOUD_VERSION = "cloudVersion";
+       private static final String HOMING_INSTANCE = "/homingInstance";
        
        private static final String TARGET_ENTITY = "SO:CatalogDB";
 +      private static final String ASTERISK = "*";
  
        private String findExternalToInternalServiceByServiceName = "/findByServiceName";
        private String findServiceByModelName = "/findOneByModelName";
        private String findVnfcInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
        private String findCollectionResourceInstanceGroupCustomizationByModelCustomizationUUID = "/findByModelCustomizationUUID";
        private String findOneByActionAndRequestScopeAndIsAlacarte = "/findOneByActionAndRequestScopeAndIsAlacarte";
 +      private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwner";
 +      private String findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType = "/findOneByActionAndRequestScopeAndIsAlacarteAndCloudOwnerAndServiceType";
        private String findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep = "/findOneByFlowNameAndServiceTypeAndVnfTypeAndErrorCodeAndWorkStep";
        private String findByClliAndCloudVersion = "/findByClliAndCloudVersion";
+       private String findServiceByServiceInstanceId = "/findServiceByServiceInstanceId";
  
        private String serviceURI;
        private String vfModuleURI;