From 62b2e47808fe1adcbac31dbcdf992617b7f0bd4d Mon Sep 17 00:00:00 2001 From: "Gamboa, Gilbert" Date: Thu, 6 Jun 2019 14:23:36 -0400 Subject: Accommodate WAN Networking checked and evaluated naming policy only if infra bonding. Updated workflowAction to include vrf configuration for vpn-binding in resourceIds list. added in linked resource to service proxy cust committing the asdc controller classpath change added some unit tests for vrf validation and updated bbinput setup test update config resource cust foreign key mapping Moved mockbean for AssignVrfConfiguration task class into BaseBpmnTest. added in a check to see if list is empty before access added unit tests for bbinput setup for vrf config Update AssignFlows enum with correct AssignVrfConfiguration flow name Change-Id: Ibf14e36505638b19c1366ecebfce560c02e69e44 Issue-ID: SO-1975 Signed-off-by: Benjamin, Max (mb388a) --- .../bbobjects/Configuration.java | 11 ++++ .../bbobjects/ServiceInstance.java | 4 ++ .../bbobjects/wrappers/ServiceInstanceWrapper.java | 32 ++++++++++ .../exceptions/ServiceProxyNotFoundException.java | 14 +++++ .../homingobjects/SolutionCandidates.java | 6 +- .../modelinfo/ModelInfoServiceInstance.java | 21 +++++++ .../modelinfo/ModelInfoServiceProxy.java | 20 ++++++ .../servicedecomposition/tasks/AssignFlows.java | 3 +- .../servicedecomposition/tasks/BBInputSetup.java | 73 ++++++++++++++++++++-- .../tasks/BBInputSetupMapperLayer.java | 36 ++++++++++- .../tasks/BBInputSetupUtils.java | 41 ++++++++++++ 11 files changed, 252 insertions(+), 9 deletions(-) create mode 100644 bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapper.java create mode 100644 bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/exceptions/ServiceProxyNotFoundException.java (limited to 'bpmn/MSOCommonBPMN/src/main/java/org') diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/Configuration.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/Configuration.java index dff5a57040..36262ec800 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/Configuration.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/Configuration.java @@ -78,6 +78,9 @@ public class Configuration implements Serializable, ShallowCopy { @JsonProperty("l-interface") private LInterface lInterface; + @JsonProperty("vpn-binding") + private VpnBinding vpnBinding; + public ModelInfoConfiguration getModelInfoConfiguration() { return modelInfoConfiguration; } @@ -222,6 +225,14 @@ public class Configuration implements Serializable, ShallowCopy { this.lInterface = lInterface; } + public VpnBinding getVpnBinding() { + return vpnBinding; + } + + public void setVpnBinding(VpnBinding vpnBinding) { + this.vpnBinding = vpnBinding; + } + @Override public boolean equals(final Object other) { if (!(other instanceof Configuration)) { diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/ServiceInstance.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/ServiceInstance.java index b9f5a6af8e..0803bed574 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/ServiceInstance.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/ServiceInstance.java @@ -81,6 +81,10 @@ public class ServiceInstance implements Serializable, ShallowCopy serviceProxies = new ArrayList(); + public void setServiceProxies(List serviceProxies) { + this.serviceProxies = serviceProxies; + } + public List getVnfs() { return vnfs; } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapper.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapper.java new file mode 100644 index 0000000000..40ffe7356c --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/ServiceInstanceWrapper.java @@ -0,0 +1,32 @@ +package org.onap.so.bpmn.servicedecomposition.bbobjects.wrappers; + +import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; +import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy; +import org.onap.so.bpmn.servicedecomposition.bbobjects.wrappers.exceptions.ServiceProxyNotFoundException; + +public class ServiceInstanceWrapper { + + private final ServiceInstance serviceInstance; + private static final String SERVICE_PROXY_TRANSPORT = "TRANSPORT"; + + public ServiceInstanceWrapper(ServiceInstance serviceInstance) { + this.serviceInstance = serviceInstance; + } + + public ServiceProxy getTransportServiceProxy() throws ServiceProxyNotFoundException { + ServiceProxy serviceProxy = null; + for (ServiceProxy sp : serviceInstance.getServiceProxies()) { + if (SERVICE_PROXY_TRANSPORT.equalsIgnoreCase(sp.getType())) { + serviceProxy = sp; + break; + } + } + if (serviceProxy == null) { + throw new ServiceProxyNotFoundException("Transport Service Proxy not found for service instance: " + + serviceInstance.getServiceInstanceId()); + } + return serviceProxy; + } + + +} diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/exceptions/ServiceProxyNotFoundException.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/exceptions/ServiceProxyNotFoundException.java new file mode 100644 index 0000000000..924d9eda87 --- /dev/null +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/bbobjects/wrappers/exceptions/ServiceProxyNotFoundException.java @@ -0,0 +1,14 @@ +package org.onap.so.bpmn.servicedecomposition.bbobjects.wrappers.exceptions; + +public class ServiceProxyNotFoundException extends Exception { + + private static final long serialVersionUID = 717577158109655720L; + + public ServiceProxyNotFoundException() { + super(); + } + + public ServiceProxyNotFoundException(String message) { + super(message); + } +} diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/homingobjects/SolutionCandidates.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/homingobjects/SolutionCandidates.java index 4c91ad38a0..068fa876ce 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/homingobjects/SolutionCandidates.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/homingobjects/SolutionCandidates.java @@ -36,6 +36,8 @@ public class SolutionCandidates implements Serializable { private List excludedCandidates = new ArrayList(); @JsonProperty("existingCandidates") private List existingCandidates = new ArrayList(); + @JsonProperty("filteringAttributes") + private List filteringAttributes = new ArrayList(); public List getRequiredCandidates() { @@ -58,6 +60,8 @@ public class SolutionCandidates implements Serializable { return existingCandidates; } - + public List getFilteringAttributes() { + return filteringAttributes; + } } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceInstance.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceInstance.java index 05cad456d0..bc330eeafd 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceInstance.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceInstance.java @@ -39,6 +39,10 @@ public class ModelInfoServiceInstance extends ModelInfoMetadata implements Seria private String environmentContext; @JsonProperty("workload-context") private String workloadContext; + @JsonProperty("naming-policy") + private String namingPolicy; + @JsonProperty("onap-generated-naming") + private Boolean onapGeneratedNaming; public String getDescription() { @@ -88,4 +92,21 @@ public class ModelInfoServiceInstance extends ModelInfoMetadata implements Seria public void setWorkloadContext(String workloadContext) { this.workloadContext = workloadContext; } + + + public String getNamingPolicy() { + return namingPolicy; + } + + public void setNamingPolicy(String namingPolicy) { + this.namingPolicy = namingPolicy; + } + + public Boolean getOnapGeneratedNaming() { + return onapGeneratedNaming; + } + + public void setOnapGeneratedNaming(Boolean onapGeneratedNaming) { + this.onapGeneratedNaming = onapGeneratedNaming; + } } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceProxy.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceProxy.java index b2494384f4..91ff3d623d 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceProxy.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/modelinfo/ModelInfoServiceProxy.java @@ -22,11 +22,31 @@ package org.onap.so.bpmn.servicedecomposition.modelinfo; import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonProperty; public class ModelInfoServiceProxy extends ModelInfoMetadata implements Serializable { private static final long serialVersionUID = -6256897576261215926L; + @JsonProperty("tosca-node-type") + private String toscaNodeType; + @JsonProperty("description") + private String description; + public String getToscaNodeType() { + return toscaNodeType; + } + + public void setToscaNodeType(String toscaNodeType) { + this.toscaNodeType = toscaNodeType; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/AssignFlows.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/AssignFlows.java index 2d6ce0fad7..f23f62d763 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/AssignFlows.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/AssignFlows.java @@ -29,7 +29,8 @@ public enum AssignFlows { NETWORK_MACRO("AssignNetworkBB"), VOLUME_GROUP("AssignVolumeGroupBB"), NETWORK_COLLECTION("CreateNetworkCollectionBB"), - FABRIC_CONFIGURATION("AssignFabricConfigurationBB"); + FABRIC_CONFIGURATION("AssignFabricConfigurationBB"), + VRF_CONFIGURATION("AssignVrfConfigurationBBV2"); private final String flowName; diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java index 2d066285a4..c7665acc68 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetup.java @@ -47,11 +47,13 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform; import org.onap.so.bpmn.servicedecomposition.bbobjects.Project; import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; +import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceProxy; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription; import org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc; import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup; +import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBinding; import org.onap.so.bpmn.servicedecomposition.entities.ConfigurationResourceKeys; import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock; import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock; @@ -76,6 +78,7 @@ import org.onap.so.db.catalog.beans.NetworkCollectionResourceCustomization; import org.onap.so.db.catalog.beans.NetworkResourceCustomization; import org.onap.so.db.catalog.beans.OrchestrationStatus; import org.onap.so.db.catalog.beans.Service; +import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResourceCustomization; import org.onap.so.db.catalog.beans.VnfcInstanceGroupCustomization; @@ -342,7 +345,7 @@ public class BBInputSetup implements JavaDelegate { ModelInfo configurationModelInfo = new ModelInfo(); configurationModelInfo.setModelCustomizationUuid(configurationKey); populateConfiguration(configurationModelInfo, service, bbName, serviceInstance, lookupKeyMap, - configurationId, instanceName, configurationResourceKeys); + configurationId, instanceName, configurationResourceKeys, requestDetails); } else { lookupKeyMap.put(ResourceKey.VF_MODULE_ID, resourceId); this.populateVfModule(modelInfo, service, bbName, serviceInstance, lookupKeyMap, resourceId, @@ -372,7 +375,7 @@ public class BBInputSetup implements JavaDelegate { protected void populateConfiguration(ModelInfo modelInfo, Service service, String bbName, ServiceInstance serviceInstance, Map lookupKeyMap, String resourceId, - String instanceName, ConfigurationResourceKeys configurationResourceKeys) { + String instanceName, ConfigurationResourceKeys configurationResourceKeys, RequestDetails requestDetails) { Configuration configuration = null; for (Configuration configurationTemp : serviceInstance.getConfigurations()) { if (lookupKeyMap.get(ResourceKey.CONFIGURATION_ID) != null && configurationTemp.getConfigurationId() @@ -385,14 +388,20 @@ public class BBInputSetup implements JavaDelegate { } } } - if (configuration == null && bbName.equalsIgnoreCase(AssignFlows.FABRIC_CONFIGURATION.toString())) { + if (configuration == null && (bbName.equalsIgnoreCase(AssignFlows.FABRIC_CONFIGURATION.toString()) + || bbName.equalsIgnoreCase(AssignFlows.VRF_CONFIGURATION.toString()))) { configuration = this.createConfiguration(lookupKeyMap, instanceName, resourceId); serviceInstance.getConfigurations().add(configuration); } - if (configuration != null) { + if (configuration != null && bbName.contains("Fabric")) { Vnfc vnfc = getVnfcToConfiguration(configurationResourceKeys.getVnfcName()); configuration.setVnfc(vnfc); this.mapCatalogConfiguration(configuration, modelInfo, service, configurationResourceKeys); + } else if (configuration != null && bbName.contains("Vrf")) { + configuration.setModelInfoConfiguration(mapperLayer.mapCatalogConfigurationToConfiguration( + findConfigurationResourceCustomization(modelInfo, service), null)); + configuration.setConfigurationType(configuration.getModelInfoConfiguration().getConfigurationType()); + configuration.setConfigurationSubType(configuration.getModelInfoConfiguration().getConfigurationRole()); } } @@ -1115,15 +1124,67 @@ public class BBInputSetup implements JavaDelegate { ModelInfo configurationModelInfo = new ModelInfo(); configurationModelInfo.setModelCustomizationUuid(key); this.populateConfiguration(configurationModelInfo, service, bbName, serviceInstance, lookupKeyMap, - configurationId, null, executeBB.getConfigurationResourceKeys()); + configurationId, null, executeBB.getConfigurationResourceKeys(), executeBB.getRequestDetails()); } if (executeBB.getWorkflowResourceIds() != null) { this.populateNetworkCollectionAndInstanceGroupAssign(service, bbName, serviceInstance, executeBB.getWorkflowResourceIds().getNetworkCollectionId(), key); } + RelatedInstance relatedVpnBinding = + bbInputSetupUtils.getRelatedInstanceByType(executeBB.getRequestDetails(), ModelType.vpnBinding); + RelatedInstance relatedLocalNetwork = + bbInputSetupUtils.getRelatedInstanceByType(executeBB.getRequestDetails(), ModelType.network); + if (relatedVpnBinding != null && relatedLocalNetwork != null) { + org.onap.aai.domain.yang.VpnBinding aaiVpnBinding = + bbInputSetupUtils.getAAIVpnBinding(relatedVpnBinding.getInstanceId()); + org.onap.aai.domain.yang.L3Network aaiLocalNetwork = + bbInputSetupUtils.getAAIL3Network(relatedLocalNetwork.getInstanceId()); + VpnBinding vpnBinding = mapperLayer.mapAAIVpnBinding(aaiVpnBinding); + L3Network localNetwork = mapperLayer.mapAAIL3Network(aaiLocalNetwork); + Optional aaiAICVpnBindingOp = + bbInputSetupUtils.getAICVpnBindingFromNetwork(aaiLocalNetwork); + if (aaiAICVpnBindingOp.isPresent()) { + localNetwork.getVpnBindings().add(mapperLayer.mapAAIVpnBinding(aaiAICVpnBindingOp.get())); + } + ServiceProxy serviceProxy = getServiceProxy(service); + gBB.getServiceInstance().getServiceProxies().add(serviceProxy); + gBB.getCustomer().getVpnBindings().add(vpnBinding); + lookupKeyMap.put(ResourceKey.VPN_ID, vpnBinding.getVpnId()); + gBB.getServiceInstance().getNetworks().add(localNetwork); + lookupKeyMap.put(ResourceKey.NETWORK_ID, localNetwork.getNetworkId()); + } return gBB; } + protected ServiceProxy getServiceProxy(Service service) { + if (!service.getServiceProxyCustomizations().isEmpty()) { + ServiceProxyResourceCustomization serviceProxyCatalog = getServiceProxyResourceCustomization(service); + ServiceProxy serviceProxy = new ServiceProxy(); + serviceProxy.setModelInfoServiceProxy( + mapperLayer.mapServiceProxyCustomizationToServiceProxy(serviceProxyCatalog)); + Service sourceService = serviceProxyCatalog.getSourceService(); + ServiceInstance sourceServiceShell = new ServiceInstance(); + sourceServiceShell + .setModelInfoServiceInstance(mapperLayer.mapCatalogServiceIntoServiceInstance(sourceService)); + serviceProxy.setServiceInstance(sourceServiceShell); + serviceProxy.setType(sourceService.getServiceType()); + return serviceProxy; + } else { + return null; + } + } + + protected ServiceProxyResourceCustomization getServiceProxyResourceCustomization(Service service) { + ServiceProxyResourceCustomization serviceProxyCatalog = null; + for (ServiceProxyResourceCustomization serviceProxyTemp : service.getServiceProxyCustomizations()) { + if (serviceProxyTemp.getSourceService() != null + && serviceProxyTemp.getSourceService().getServiceType().equalsIgnoreCase("TRANSPORT")) { + serviceProxyCatalog = serviceProxyTemp; + } + } + return serviceProxyCatalog; + } + protected L3Network getVirtualLinkL3Network(Map lookupKeyMap, String bbName, String key, String networkId, CollectionNetworkResourceCustomization collectionNetworkResourceCust, ServiceInstance serviceInstance) { @@ -1348,7 +1409,7 @@ public class BBInputSetup implements JavaDelegate { findConfigurationResourceCustomization(configurationModelInfo, service); if (configurationCust != null) { this.populateConfiguration(configurationModelInfo, service, bbName, serviceInstance, lookupKeyMap, - configurationId, null, executeBB.getConfigurationResourceKeys()); + configurationId, null, executeBB.getConfigurationResourceKeys(), executeBB.getRequestDetails()); } else { logger.debug("Could not find a configuration customization with key: {}", key); } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java index 2fc84b5dde..63dd72566b 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupMapperLayer.java @@ -49,6 +49,7 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.OwningEntity; import org.onap.so.bpmn.servicedecomposition.bbobjects.Platform; import org.onap.so.bpmn.servicedecomposition.bbobjects.Project; import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTableReference; +import org.onap.so.bpmn.servicedecomposition.bbobjects.RouteTarget; import org.onap.so.bpmn.servicedecomposition.bbobjects.SegmentationAssignment; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance; import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription; @@ -57,6 +58,7 @@ import org.onap.so.bpmn.servicedecomposition.bbobjects.Tenant; import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule; import org.onap.so.bpmn.servicedecomposition.bbobjects.Vnfc; import org.onap.so.bpmn.servicedecomposition.bbobjects.VolumeGroup; +import org.onap.so.bpmn.servicedecomposition.bbobjects.VpnBinding; import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey; import org.onap.so.bpmn.servicedecomposition.generalobjects.License; import org.onap.so.bpmn.servicedecomposition.generalobjects.OrchestrationContext; @@ -68,6 +70,7 @@ import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoGenericVnf; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoInstanceGroup; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance; +import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceProxy; import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoVfModule; import org.onap.so.db.catalog.beans.CollectionNetworkResourceCustomization; import org.onap.so.db.catalog.beans.CollectionResource; @@ -80,6 +83,7 @@ import org.onap.so.db.catalog.beans.InstanceGroupType; import org.onap.so.db.catalog.beans.NetworkResourceCustomization; import org.onap.so.db.catalog.beans.OrchestrationStatus; import org.onap.so.db.catalog.beans.Service; +import org.onap.so.db.catalog.beans.ServiceProxyResourceCustomization; import org.onap.so.db.catalog.beans.VfModuleCustomization; import org.onap.so.db.catalog.beans.VnfResourceCustomization; import org.onap.so.serviceinstancebeans.CloudConfiguration; @@ -517,13 +521,18 @@ public class BBInputSetupMapperLayer { protected ModelInfoConfiguration mapCatalogConfigurationToConfiguration( ConfigurationResourceCustomization configurationResourceCustomization, CvnfcConfigurationCustomization cvnfcConfigurationCustomization) { + ModelInfoConfiguration modelInfoConfiguration = new ModelInfoConfiguration(); modelInfoConfiguration .setModelVersionId(configurationResourceCustomization.getConfigurationResource().getModelUUID()); modelInfoConfiguration.setModelCustomizationId(configurationResourceCustomization.getModelCustomizationUUID()); modelInfoConfiguration.setModelInvariantId( configurationResourceCustomization.getConfigurationResource().getModelInvariantUUID()); - modelInfoConfiguration.setPolicyName(cvnfcConfigurationCustomization.getPolicyName()); + modelInfoConfiguration.setConfigurationRole(configurationResourceCustomization.getRole()); + modelInfoConfiguration.setConfigurationType(configurationResourceCustomization.getType()); + if (cvnfcConfigurationCustomization != null) { + modelInfoConfiguration.setPolicyName(cvnfcConfigurationCustomization.getPolicyName()); + } return modelInfoConfiguration; } @@ -549,4 +558,29 @@ public class BBInputSetupMapperLayer { public Vnfc mapAAIVnfc(org.onap.aai.domain.yang.Vnfc vnfcAAI) { return modelMapper.map(vnfcAAI, Vnfc.class); } + + public VpnBinding mapAAIVpnBinding(org.onap.aai.domain.yang.VpnBinding aaiVpnBinding) { + VpnBinding vpnBinding = modelMapper.map(aaiVpnBinding, VpnBinding.class); + mapAllRouteTargetsToAAIVpnBinding(aaiVpnBinding, vpnBinding); + return vpnBinding; + } + + protected void mapAllRouteTargetsToAAIVpnBinding(org.onap.aai.domain.yang.VpnBinding aaiVpnBinding, + VpnBinding vpnBinding) { + if (aaiVpnBinding.getRouteTargets() != null) { + for (org.onap.aai.domain.yang.RouteTarget aaiRouteTarget : aaiVpnBinding.getRouteTargets() + .getRouteTarget()) { + vpnBinding.getRouteTargets().add(mapAAIRouteTarget(aaiRouteTarget)); + } + } + } + + public RouteTarget mapAAIRouteTarget(org.onap.aai.domain.yang.RouteTarget aaiRouteTarget) { + return modelMapper.map(aaiRouteTarget, RouteTarget.class); + } + + protected ModelInfoServiceProxy mapServiceProxyCustomizationToServiceProxy( + ServiceProxyResourceCustomization serviceProxyCustomization) { + return modelMapper.map(serviceProxyCustomization, ModelInfoServiceProxy.class); + } } diff --git a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java index 5cf2bd7b39..8ac5f6e69b 100644 --- a/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java +++ b/bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/servicedecomposition/tasks/BBInputSetupUtils.java @@ -39,6 +39,7 @@ import org.onap.aai.domain.yang.ServiceSubscription; import org.onap.aai.domain.yang.VfModule; import org.onap.aai.domain.yang.VolumeGroup; import org.onap.aai.domain.yang.VolumeGroups; +import org.onap.aai.domain.yang.VpnBinding; import org.onap.so.bpmn.common.InjectionHelper; import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer; import org.onap.so.bpmn.servicedecomposition.tasks.exceptions.MultipleObjectsFoundException; @@ -60,6 +61,9 @@ import org.onap.so.db.catalog.client.CatalogDbClient; import org.onap.so.db.request.beans.InfraActiveRequests; import org.onap.so.db.request.client.RequestsDbClient; import org.onap.so.serviceinstancebeans.CloudConfiguration; +import org.onap.so.serviceinstancebeans.ModelType; +import org.onap.so.serviceinstancebeans.RelatedInstance; +import org.onap.so.serviceinstancebeans.RelatedInstanceList; import org.onap.so.serviceinstancebeans.RequestDetails; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -85,6 +89,20 @@ public class BBInputSetupUtils { @Autowired protected InjectionHelper injectionHelper; + public RelatedInstance getRelatedInstanceByType(RequestDetails requestDetails, ModelType modelType) { + if (requestDetails.getRelatedInstanceList() != null) { + for (RelatedInstanceList relatedInstanceList : requestDetails.getRelatedInstanceList()) { + RelatedInstance relatedInstance = relatedInstanceList.getRelatedInstance(); + if (relatedInstance != null && relatedInstance.getModelInfo() != null + && relatedInstance.getModelInfo().getModelType() != null + && relatedInstance.getModelInfo().getModelType().equals(modelType)) { + return relatedInstance; + } + } + } + return null; + } + public void updateInfraActiveRequestVnfId(InfraActiveRequests request, String vnfId) { if (request != null) { request.setVnfId(vnfId); @@ -334,6 +352,17 @@ public class BBInputSetupUtils { }); } + public VpnBinding getAAIVpnBinding(String vpnBindingId) { + + return this.injectionHelper.getAaiClient() + .get(VpnBinding.class, + AAIUriFactory.createResourceUri(AAIObjectType.VPN_BINDING, vpnBindingId).depth(Depth.ONE)) + .orElseGet(() -> { + logger.debug("No VpnBinding matched by id"); + return null; + }); + } + public VolumeGroup getAAIVolumeGroup(String cloudOwnerId, String cloudRegionId, String volumeGroupId) { return this.injectionHelper.getAaiClient() .get(VolumeGroup.class, AAIUriFactory @@ -463,4 +492,16 @@ public class BBInputSetupUtils { return Optional.of(volumeGroup); } } + + public Optional getAICVpnBindingFromNetwork( + org.onap.aai.domain.yang.L3Network aaiLocalNetwork) { + AAIResultWrapper networkWrapper = new AAIResultWrapper(aaiLocalNetwork); + if (networkWrapper.getRelationships().isPresent() + && !networkWrapper.getRelationships().get().getRelatedUris(AAIObjectType.VPN_BINDING).isEmpty()) { + return getAAIResourceDepthOne( + networkWrapper.getRelationships().get().getRelatedUris(AAIObjectType.VPN_BINDING).get(0)) + .asBean(org.onap.aai.domain.yang.VpnBinding.class); + } + return Optional.empty(); + } } -- cgit 1.2.3-korg