diff options
author | Smokowski, Steven <steve.smokowski@att.com> | 2020-11-03 12:29:22 -0500 |
---|---|---|
committer | Benjamin, Max (mb388a) <mb388a@att.com> | 2020-11-03 13:25:31 -0500 |
commit | 6dc5d95ce5fda8a5990f0e150b7b40be98172a08 (patch) | |
tree | f0030df74c3158c62e004330a796113623fbc7d9 /adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java | |
parent | 83ff479029986df8326e3119d3ee31f77209c455 (diff) |
put back logic to create VNFC edges
put back logic to create VNFC edges
Consolidated similiar sim scenrios into 1 and updated robots properties
Support macro scerios for vnfc to vfmodule relationship.
Issue-ID: SO-3361
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: Idcb9bb179b4dc3c16bc97939c8260462dd27ca4e
Diffstat (limited to 'adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java')
-rw-r--r-- | adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java index 1264727f35..8ee87b50c3 100644 --- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java +++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java @@ -317,8 +317,8 @@ public class HeatBridgeImpl implements HeatBridgeApi { @Override public void buildAddVserversToAaiAction(final String genericVnfId, final String vfModuleId, - final List<Server> servers) { - servers.forEach(server -> { + final List<Server> servers) throws HeatBridgeException { + for (Server server : servers) { Vserver vserver = aaiHelper.buildVserver(server.getId(), server); // Build vserver relationships to: image, flavor, pserver, vf-module @@ -326,11 +326,28 @@ public class HeatBridgeImpl implements HeatBridgeApi { aaiHelper.getVserverRelationshipList(cloudOwner, cloudRegionId, genericVnfId, vfModuleId, server)); AAIResourceUri vserverUri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure() .cloudRegion(cloudOwner, cloudRegionId).tenant(tenantId).vserver(vserver.getVserverId())); + if (resourcesClient.exists(vserverUri)) { AAIResultWrapper existingVserver = resourcesClient.get(vserverUri); + AAIResourceUri vfModuleUri = AAIUriFactory.createResourceUri( + AAIFluentTypeBuilder.network().genericVnf(genericVnfId).vfModule(vfModuleId)); + if (!existingVserver.hasRelationshipsTo(Types.VNFC)) { + AAIResultWrapper vfModule = resourcesClient.get(vfModuleUri); + if (vfModule.hasRelationshipsTo(Types.VNFC)) { + List<AAIResourceUri> vnfcUris = vfModule.getRelationships().get().getRelatedUris(Types.VNFC); + Optional<AAIResourceUri> foundVnfcURI = vnfcUris.stream().filter(resourceUri -> resourceUri + .getURIKeys().get("vnfc-name").startsWith(vserver.getVserverName())).findFirst(); + if (foundVnfcURI.isEmpty()) { + throw new HeatBridgeException("Cannot Find VNFC to create edge to VServer"); + } + transaction.connect(vserverUri, foundVnfcURI.get()); + } else { + throw new HeatBridgeException( + "VF Module contains no relationships to VNFCS, cannot build edge to VServer"); + } + } + if (!existingVserver.hasRelationshipsTo(Types.VF_MODULE)) { - AAIResourceUri vfModuleUri = AAIUriFactory.createResourceUri( - AAIFluentTypeBuilder.network().genericVnf(genericVnfId).vfModule(vfModuleId)); transaction.connect(vserverUri, vfModuleUri); } if (!existingVserver.hasRelationshipsTo(Types.PSERVER)) { @@ -341,7 +358,7 @@ public class HeatBridgeImpl implements HeatBridgeApi { } else { transaction.create(vserverUri, vserver); } - }); + } } @Override @@ -833,6 +850,10 @@ public class HeatBridgeImpl implements HeatBridgeApi { } } + protected void setAAIHelper(AaiHelper aaiHelper) { + this.aaiHelper = aaiHelper; + } + protected AAIDSLQueryClient getAAIDSLClient() { if (aaiDSLClient == null) { aaiDSLClient = new AAIDSLQueryClient(); |