diff options
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModule.java')
-rw-r--r-- | bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModule.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModule.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModule.java index 6f850fa898..eeaecb9264 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModule.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/client/cds/ConfigureInstanceParamsForVfModule.java @@ -21,7 +21,7 @@ package org.onap.so.client.cds; import com.google.gson.JsonObject; -import org.onap.so.client.cds.ExtractServiceFromUserParameters; +import org.apache.commons.lang3.StringUtils; import org.onap.so.client.exception.PayloadGenerationException; import org.onap.so.serviceinstancebeans.Service; import org.onap.so.serviceinstancebeans.VfModules; @@ -47,12 +47,17 @@ public class ConfigureInstanceParamsForVfModule { * @throws PayloadGenerationException- If it doesn't able to populate instance parameters from SO payload. */ public void populateInstanceParams(JsonObject jsonObject, List<Map<String, Object>> userParamsFromRequest, - String vnfCustomizationUuid, String vfModuleCustomizationUuid) throws PayloadGenerationException { + String vnfCustomizationUuid, String vfModuleCustomizationUuid, String vfModuleInstanceName) + throws PayloadGenerationException { try { Service service = extractServiceFromUserParameters.getServiceFromRequestUserParams(userParamsFromRequest); - List<Map<String, String>> instanceParamsList = - getInstanceParams(service, vnfCustomizationUuid, vfModuleCustomizationUuid); + List<Map<String, String>> instanceParamsList; + if (StringUtils.isNotBlank(vfModuleInstanceName)) { + instanceParamsList = getInstanceParamsByInstanceNames(service, vfModuleInstanceName); + } else { + instanceParamsList = getInstanceParams(service, vnfCustomizationUuid, vfModuleCustomizationUuid); + } instanceParamsList.stream().flatMap(instanceParamsMap -> instanceParamsMap.entrySet().stream()) .forEachOrdered(entry -> jsonObject.addProperty(entry.getKey(), entry.getValue())); @@ -61,6 +66,14 @@ public class ConfigureInstanceParamsForVfModule { } } + private List<Map<String, String>> getInstanceParamsByInstanceNames(Service service, String vfModuleInstanceName) + throws PayloadGenerationException { + return service.getResources().getVnfs().stream().map(Vnfs::getVfModules).flatMap(List::stream) + .filter(vfm -> vfModuleInstanceName.equals(vfm.getInstanceName())).findFirst() + .map(VfModules::getInstanceParams).orElseThrow(() -> new PayloadGenerationException( + "Could not find vfModule with instanceName: " + vfModuleInstanceName)); + } + private List<Map<String, String>> getInstanceParams(Service service, String vnfCustomizationUuid, String vfModuleCustomizationUuid) throws PayloadGenerationException { |