Merge "Not found exception was in the wrong place."
authorLukasz Muszkieta <lukasz.muszkieta@nokia.com>
Tue, 21 Jul 2020 16:19:37 +0000 (16:19 +0000)
committerGerrit Code Review <gerrit@onap.org>
Tue, 21 Jul 2020 16:19:37 +0000 (16:19 +0000)
1  2 
adapters/mso-openstack-adapters/src/main/java/org/onap/so/heatbridge/HeatBridgeImpl.java

@@@ -67,7 -67,6 +67,7 @@@ import org.onap.aaiclient.client.aai.en
  import org.onap.aaiclient.client.aai.entities.Relationships;
  import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
  import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
 +import org.onap.aaiclient.client.generated.fluentbuilders.AAIFluentTypeBuilder;
  import org.onap.aaiclient.client.graphinventory.entities.uri.Depth;
  import org.onap.aaiclient.client.graphinventory.exceptions.BulkProcessFailed;
  import org.onap.logging.filter.base.ErrorCode;
@@@ -292,15 -291,15 +292,15 @@@ public class HeatBridgeImpl implements 
                  }
              }
              lIf.setL2Multicasting(isL2Multicast);
 +
 +            transaction.createIfNotExists(AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner,
 +                    cloudRegionId, tenantId, port.getDeviceId(), lIf.getInterfaceName()), Optional.of(lIf));
 +
              updateLInterfaceIps(port, lIf);
              if (cloudOwner.equals(env.getProperty("mso.cloudOwner.included", ""))) {
                  updateLInterfaceVlan(port, lIf);
              }
  
 -            // Update l-interface to the vserver
 -            transaction.create(AAIUriFactory.createResourceUri(AAIObjectType.L_INTERFACE, cloudOwner, cloudRegionId,
 -                    tenantId, port.getDeviceId(), lIf.getInterfaceName()), lIf);
 -
              updateSriovPfToPserver(port, lIf);
          }
      }
              vlan.setInMaint(false);
              vlan.setIsIpUnnumbered(false);
              vlan.setIsPrivate(false);
 -            Vlans vlans = new Vlans();
 -            List<Vlan> vlanList = vlans.getVlan();
 -            vlanList.add(vlan);
 -            lIf.setVlans(vlans);
 +
 +            transaction
 +                    .createIfNotExists(
 +                            AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
 +                                    .cloudRegion(cloudOwner, cloudRegionId).tenant(tenantId).vserver(port.getDeviceId())
 +                                    .lInterface(lIf.getInterfaceName()).vlan(vlan.getVlanInterface())),
 +                            Optional.of(vlan));
          }
 -        // Build sriov-vf to the l-interface
 +
          if (port.getvNicType() != null && port.getvNicType().equalsIgnoreCase(HeatBridgeConstants.OS_SRIOV_PORT_TYPE)) {
 -            SriovVfs sriovVfs = new SriovVfs();
 -            // JAXB does not generate setters for list, however getter ensures its creation.
 -            // Thus, all list manipulations must be made on live list.
 -            List<SriovVf> sriovVfList = sriovVfs.getSriovVf();
              SriovVf sriovVf = new SriovVf();
              sriovVf.setPciId(port.getProfile().get(HeatBridgeConstants.OS_PCI_SLOT_KEY).toString());
              sriovVf.setNeutronNetworkId(port.getNetworkId());
              sriovVf.setVfVlanFilter("0");
              sriovVf.setVfVlanAntiSpoofCheck(false);
              sriovVf.setVfMacAntiSpoofCheck(false);
 -            sriovVfList.add(sriovVf);
  
 -            lIf.setSriovVfs(sriovVfs);
 +            transaction
 +                    .createIfNotExists(
 +                            AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
 +                                    .cloudRegion(cloudOwner, cloudRegionId).tenant(tenantId).vserver(port.getDeviceId())
 +                                    .lInterface(lIf.getInterfaceName()).sriovVf(sriovVf.getPciId())),
 +                            Optional.of(sriovVf));
          }
      }
  
                              AAIResourceUri sriovPfUri = AAIUriFactory.createResourceUri(AAIObjectType.SRIOV_PF,
                                      pserverHostName, matchingPifName.get(), sriovPf.getPfPciId());
  
 -                            transaction.create(sriovPfUri, sriovPf);
 +                            if (!resourcesClient.exists(sriovPfUri)) {
 +                                transaction.create(sriovPfUri, sriovPf);
  
 -                            AAIResourceUri sriovVfUri = AAIUriFactory.createResourceUri(AAIObjectType.SRIOV_VF,
 -                                    cloudOwner, cloudRegionId, tenantId, port.getDeviceId(), lIf.getInterfaceName(),
 -                                    port.getProfile().get(HeatBridgeConstants.OS_PCI_SLOT_KEY).toString());
 +                                AAIResourceUri sriovVfUri = AAIUriFactory.createResourceUri(AAIObjectType.SRIOV_VF,
 +                                        cloudOwner, cloudRegionId, tenantId, port.getDeviceId(), lIf.getInterfaceName(),
 +                                        port.getProfile().get(HeatBridgeConstants.OS_PCI_SLOT_KEY).toString());
  
 -                            transaction.connect(sriovPfUri, sriovVfUri);
 +                                transaction.connect(sriovPfUri, sriovVfUri);
 +                            }
                          }
                      }
                  } catch (WebApplicationException e) {
      }
  
      private void updateLInterfaceIps(final Port port, final LInterface lIf) {
 -        List<L3InterfaceIpv4AddressList> lInterfaceIps = lIf.getL3InterfaceIpv4AddressList();
          for (IP ip : port.getFixedIps()) {
              String ipAddress = ip.getIpAddress();
              if (InetAddressValidator.getInstance().isValidInet4Address(ipAddress)) {
                  lInterfaceIp.setNeutronNetworkId(port.getNetworkId());
                  lInterfaceIp.setNeutronSubnetId(ip.getSubnetId());
                  lInterfaceIp.setL3InterfaceIpv4PrefixLength(Long.parseLong(cidr.getNetworkPrefixLength().toString()));
 -                lInterfaceIps.add(lInterfaceIp);
 +
 +                transaction.createIfNotExists(
 +                        AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.cloudInfrastructure()
 +                                .cloudRegion(cloudOwner, cloudRegionId).tenant(tenantId).vserver(port.getDeviceId())
 +                                .lInterface(lIf.getInterfaceName()).l3InterfaceIpv4AddressList(ipAddress)),
 +                        Optional.of(lInterfaceIp));
              }
          }
      }
          Objects.requireNonNull(vnfId, "Null vnf-id!");
          Objects.requireNonNull(vfModuleId, "Null vf-module-id!");
          try {
-             Optional<VfModule> vfModule = resourcesClient.get(
-                     AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId, NotFoundException.class)
-                             .depth(Depth.ONE))
+             Optional<VfModule> vfModule = resourcesClient
+                     .get(AAIUriFactory.createResourceUri(AAIObjectType.VF_MODULE, vnfId, vfModuleId).depth(Depth.ONE),
+                             NotFoundException.class)
                      .asBean(VfModule.class);
  
              AAIResultWrapper resultWrapper = new AAIResultWrapper(vfModule.get());