diff options
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 | 53 |
1 files changed, 36 insertions, 17 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 390ed38764..6b980cb590 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 @@ -55,10 +55,11 @@ import org.onap.aai.domain.yang.SriovPf; import org.onap.aai.domain.yang.SriovPfs; import org.onap.aai.domain.yang.SriovVf; import org.onap.aai.domain.yang.SriovVfs; +import org.onap.aai.domain.yang.VfModule; import org.onap.aai.domain.yang.Vlan; import org.onap.aai.domain.yang.Vlans; import org.onap.aai.domain.yang.Vserver; -import org.onap.aai.domain.yang.VfModule; +import org.onap.logging.filter.base.ErrorCode; import org.onap.so.client.aai.AAIObjectType; import org.onap.so.client.aai.AAIResourcesClient; import org.onap.so.client.aai.AAISingleTransactionClient; @@ -69,13 +70,13 @@ import org.onap.so.client.aai.entities.uri.AAIUriFactory; import org.onap.so.client.graphinventory.entities.uri.Depth; import org.onap.so.client.graphinventory.exceptions.BulkProcessFailed; import org.onap.so.db.catalog.beans.CloudIdentity; +import org.onap.so.db.catalog.beans.ServerType; import org.onap.so.heatbridge.constants.HeatBridgeConstants; import org.onap.so.heatbridge.factory.MsoCloudClientFactoryImpl; import org.onap.so.heatbridge.helpers.AaiHelper; import org.onap.so.heatbridge.openstack.api.OpenstackClient; import org.onap.so.heatbridge.openstack.factory.OpenstackClientFactoryImpl; import org.onap.so.heatbridge.utils.HeatBridgeUtils; -import org.onap.logging.filter.base.ErrorCode; import org.onap.so.logger.LoggingAnchor; import org.onap.so.logger.MessageEnum; import org.openstack4j.model.compute.Server; @@ -133,10 +134,19 @@ public class HeatBridgeImpl implements HeatBridgeApi { @Override public OpenstackClient authenticate() throws HeatBridgeException { + String keystoneVersion = ""; + if (ServerType.KEYSTONE.equals(cloudIdentity.getIdentityServerType())) + keystoneVersion = "v2.0"; + else if (ServerType.KEYSTONE_V3.equals(cloudIdentity.getIdentityServerType())) { + keystoneVersion = "v3"; + } else { + keystoneVersion = "UNKNOWN"; + } + logger.trace("Keystone Version: {} ", keystoneVersion); this.osClient = new MsoCloudClientFactoryImpl(new OpenstackClientFactoryImpl()).getOpenstackClient( cloudIdentity.getIdentityUrl(), cloudIdentity.getMsoId(), cloudIdentity.getMsoPass(), regionId, - tenantId); - logger.debug("Successfully authenticated with keystone for tenant: " + tenantId + " and region: " + regionId); + tenantId, keystoneVersion); + logger.trace("Successfully authenticated with keystone for tenant: {} and region: {}", tenantId, regionId); return osClient; } @@ -170,7 +180,6 @@ public class HeatBridgeImpl implements HeatBridgeApi { @Override public List<Server> getAllOpenstackServers(final List<Resource> stackResources) { Objects.requireNonNull(osClient, ERR_MSG_NULL_OS_CLIENT); - // Filter Openstack Compute resources List<String> serverIds = extractStackResourceIdsByResourceType(stackResources, HeatBridgeConstants.OS_SERVER_RESOURCE_TYPE); @@ -220,12 +229,7 @@ public class HeatBridgeImpl implements HeatBridgeApi { try { AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectType.FLAVOR, cloudOwner, cloudRegionId, aaiFlavor.getFlavorId()); - if (!resourcesClient.exists(uri)) { - transaction.create(uri, aaiFlavor); - logger.debug("Queuing AAI command to add flavor: " + aaiFlavor.getFlavorId()); - } else { - logger.debug("Nothing to add since flavor: " + aaiFlavor.getFlavorId() + "already exists in AAI."); - } + transaction.createIfNotExists(uri, Optional.of(aaiFlavor)); } catch (WebApplicationException e) { throw new HeatBridgeException( "Failed to update flavor to AAI: " + aaiFlavor.getFlavorId() + ". Error" + " cause: " + e, e); @@ -259,12 +263,15 @@ public class HeatBridgeImpl implements HeatBridgeApi { lIf.setInterfaceId(port.getId()); lIf.setInterfaceName(port.getName()); lIf.setMacaddr(port.getMacAddress()); + lIf.setNetworkName((String) port.getProfile().get("physical_network")); + lIf.setIsPortMirrored(false); + lIf.setIsIpUnnumbered(false); + lIf.setInMaint(false); if (oobMgtNetIds != null && oobMgtNetIds.contains(port.getNetworkId())) { lIf.setInterfaceRole(OOB_MGT_NETWORK_IDENTIFIER); } else { lIf.setInterfaceRole(port.getvNicType()); } - updateLInterfaceIps(port, lIf); updateLInterfaceVlan(port, lIf); @@ -323,9 +330,14 @@ public class HeatBridgeImpl implements HeatBridgeApi { private void updateLInterfaceVlan(final Port port, final LInterface lIf) { Vlan vlan = new Vlan(); Network network = osClient.getNetworkById(port.getNetworkId()); - lIf.setNetworkName(network.getName()); if (network.getNetworkType().equals(NetworkType.VLAN)) { - vlan.setVlanInterface(network.getProviderSegID()); + vlan.setVlanInterface(network.getName() + network.getProviderSegID()); + + vlan.setVlanIdOuter(Long.parseLong(network.getProviderSegID())); + vlan.setVlanIdInner(0L); + vlan.setInMaint(false); + vlan.setIsIpUnnumbered(false); + vlan.setIsPrivate(false); Vlans vlans = new Vlans(); List<Vlan> vlanList = vlans.getVlan(); vlanList.add(vlan); @@ -343,6 +355,8 @@ public class HeatBridgeImpl implements HeatBridgeApi { if (port.getVifDetails() != null) { sriovVf.setVfVlanFilter((String) port.getVifDetails().get(HeatBridgeConstants.OS_VLAN_NETWORK_KEY)); } + sriovVf.setVfVlanAntiSpoofCheck(false); + sriovVf.setVfMacAntiSpoofCheck(false); sriovVfList.add(sriovVf); lIf.setSriovVfs(sriovVfs); @@ -424,9 +438,9 @@ public class HeatBridgeImpl implements HeatBridgeApi { } @Override - public void submitToAai() throws HeatBridgeException { + public void submitToAai(boolean dryrun) throws HeatBridgeException { try { - transaction.execute(); + transaction.execute(dryrun); } catch (BulkProcessFailed e) { String msg = "Failed to commit transaction"; logger.debug(msg + " with error: " + e); @@ -442,15 +456,20 @@ public class HeatBridgeImpl implements HeatBridgeApi { try { Optional<VfModule> vfModule = resourcesClient.get(VfModule.class, AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId).depth(Depth.ONE)); + logger.debug("vfModule is present: {}", vfModule.isPresent()); if (vfModule.isPresent()) { - AAIResultWrapper resultWrapper = new AAIResultWrapper(vfModule); + AAIResultWrapper resultWrapper = new AAIResultWrapper(vfModule.get()); Optional<Relationships> relationships = resultWrapper.getRelationships(); + logger.debug("relationships is present: {}", relationships.isPresent()); if (relationships.isPresent()) { List<AAIResourceUri> vserverUris = relationships.get().getRelatedUris(AAIObjectType.VSERVER); + logger.debug("vserverList isEmpty: {}", vserverUris.isEmpty()); createTransactionToDeleteSriovPfFromPserver(vserverUris); + if (!vserverUris.isEmpty()) { for (AAIResourceUri vserverUri : vserverUris) { + logger.debug("Deleting Vservers: {}", vserverUri.toString()); resourcesClient.delete(vserverUri); } } |