diff options
author | Gamboa, Gilbert <gilbert.g.gamboa@att.com> | 2019-06-06 14:23:36 -0400 |
---|---|---|
committer | Benjamin, Max (mb388a) <mb388a@us.att.com> | 2019-06-06 15:38:14 -0400 |
commit | 62b2e47808fe1adcbac31dbcdf992617b7f0bd4d (patch) | |
tree | 6fbdcf652784be141c869259f2c2919d2a7ce378 /bpmn/MSOCommonBPMN/src/main | |
parent | c4b90365d5c117bc6fd64af421a1468539a8aec3 (diff) |
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) <mb388a@us.att.com>
Diffstat (limited to 'bpmn/MSOCommonBPMN/src/main')
11 files changed, 252 insertions, 9 deletions
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<Configuration> { @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<Configuration> { 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<ServiceInstanc @JsonProperty("service-proxies") private List<ServiceProxy> serviceProxies = new ArrayList<ServiceProxy>(); + public void setServiceProxies(List<ServiceProxy> serviceProxies) { + this.serviceProxies = serviceProxies; + } + public List<GenericVnf> 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<Candidate> excludedCandidates = new ArrayList<Candidate>(); @JsonProperty("existingCandidates") private List<Candidate> existingCandidates = new ArrayList<Candidate>(); + @JsonProperty("filteringAttributes") + private List<Candidate> filteringAttributes = new ArrayList<Candidate>(); public List<Candidate> getRequiredCandidates() { @@ -58,6 +60,8 @@ public class SolutionCandidates implements Serializable { return existingCandidates; } - + public List<Candidate> 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<ResourceKey, String> 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<org.onap.aai.domain.yang.VpnBinding> 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<ResourceKey, String> 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<org.onap.aai.domain.yang.VpnBinding> 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(); + } } |