use of org.onap.aai.domain.yang.LogicalLink in project so by onap.
the class ServicePluginFactory method selectLogicalLink.
private LogicalLink selectLogicalLink(List<LogicalLink> logicalLinks, String svcName) {
Optional<String> customType = Arrays.stream(CUSTOM_TP_LIST).filter(svcName::contains).findFirst();
if (customType.isPresent()) {
String[] allowedList = UrnPropertiesReader.getVariable(CUSTOM_RESOURCE_TP + "." + customType.get() + ".local").split(",");
for (String localTp : allowedList) {
for (LogicalLink link : logicalLinks) {
for (Relationship relationship : link.getRelationshipList().getRelationship()) {
if (relationship.getRelatedTo().equals("p-interface") && relationship.getRelatedLink().contains("-ltpId-" + localTp) && link.getOperationalStatus().equalsIgnoreCase("up")) {
logger.info("linkname:{} is matching with allowed list", link.getLinkName());
return link;
}
}
}
}
logger.error("There is no matching logical link for allowed list :{}", Arrays.toString(allowedList));
return null;
} else {
logger.info("link customization is not required");
return logicalLinks.get(0);
}
}
use of org.onap.aai.domain.yang.LogicalLink in project so by onap.
the class ServicePluginFactory method getTPsfromAAI.
// This method returns Local and remote TPs information from AAI
public Map getTPsfromAAI(String serviceName) {
Map<String, Object> tpInfo = new HashMap<>();
AAIPluralResourceUri uri = AAIUriFactory.createResourceUri(AAIFluentTypeBuilder.network().logicalLinks());
AAIResourcesClient client = new AAIResourcesClient();
Optional<LogicalLinks> result = client.get(LogicalLinks.class, uri);
if (result.isPresent()) {
LogicalLinks links = result.get();
LogicalLink link = selectLogicalLink(links.getLogicalLink(), serviceName);
if (link != null) {
boolean isRemoteLink = false;
logger.info("processing link :{}", link.getLinkName());
AAIResultWrapper wrapper = new AAIResultWrapper(link);
Optional<Relationships> optRelationships = wrapper.getRelationships();
List<AAIResourceUri> pInterfaces = new ArrayList<>();
if (optRelationships.isPresent()) {
Relationships relationships = optRelationships.get();
if (!relationships.getRelatedUris(Types.EXT_AAI_NETWORK).isEmpty()) {
isRemoteLink = true;
}
pInterfaces.addAll(relationships.getRelatedUris(Types.P_INTERFACE));
if (isRemoteLink) {
// find remote p interface
AAIResourceUri localTP = null;
AAIResourceUri remoteTP = null;
AAIResourceUri pInterface0 = pInterfaces.get(0);
if (isRemotePInterface(client, pInterface0)) {
remoteTP = pInterfaces.get(0);
localTP = pInterfaces.get(1);
} else {
localTP = pInterfaces.get(0);
remoteTP = pInterfaces.get(1);
}
tpInfo = getTPInfo(client, localTP, remoteTP);
}
}
}
}
return tpInfo;
}
Aggregations