public Ip getSffIp(SffName sffName) { ServiceFunctionForwarder serviceFunctionForwarder = SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(sffName); return getSffIp(serviceFunctionForwarder); }
/** * Delete the given list of service paths from the SFF operational * state * <p> * * @param renderedServicePaths String List of Service Path names * @return True if paths were deleted, false otherwise */ public static boolean deletePathFromServiceForwarderState(List<RspName> renderedServicePaths) { printTraceStart(LOG); boolean ret = false; for (RspName rspName : renderedServicePaths) { if (SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(rspName)) { ret = true; } else { LOG.debug("RSP {} already deleted by another thread or client", rspName); ret = true; } } printTraceStop(LOG); return ret; }
SffName sffName = serviceFunctionForwarder.getName(); List<RspName> rspList = new ArrayList<>(); List<SffServicePath> sffServicePathList = SfcProviderServiceForwarderAPI.readSffState(sffName); if ((sffServicePathList != null) && !sffServicePathList.isEmpty()) { if (SfcProviderServiceForwarderAPI.deleteServiceFunctionForwarderState(sffName)) { List<SffServicePath> sffServicePathList = SfcProviderServiceForwarderAPI.readSffState(sffName); List<RspName> rspList = new ArrayList<>(); if ((sffServicePathList != null) && !sffServicePathList.isEmpty()) { if (!SfcProviderServiceForwarderAPI.deleteServiceFunctionForwarderState(sffName)) { LOG.error("{}: Failed to delete SFF {} operational state", Thread.currentThread().getStackTrace()[1], sffName);
if (rspSuccessful && SfcProviderServiceForwarderAPI.addPathToServiceForwarderState(renderedServicePath)) { addPathToSffStateSuccessful = true; } else { SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(createdServiceFunctionPath); if (renderedServicePath != null) { SfcProviderRenderedPathAPI.deleteRenderedServicePath(renderedServicePath.getName()); SfcProviderServiceFunctionAPI .deleteServicePathFromServiceFunctionState(createdServiceFunctionPath.getName()); SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(createdServiceFunctionPath); if (renderedServicePath != null) { SfcProviderRenderedPathAPI.deleteRenderedServicePath(renderedServicePath.getName());
ServiceFunctionForwarder sff = SfcNetconfServiceForwarderAPI.buildServiceForwarderFromNetconf(nodeName, nnode); if (SfcProviderServiceForwarderAPI.putServiceFunctionForwarder(sff)) { LOG.info("Successfully created SFF from Netconf node {}", nodeName); } else { if (SfcProviderServiceForwarderAPI.deleteServiceFunctionForwarder(new SffName(nodeName))) { LOG.info("SFF {} deleted successfully", nodeName); } else { if (SfcProviderServiceForwarderAPI.deleteServiceFunctionForwarder(new SffName(nodeName))) { LOG.info("SFF {} deleted successfully", nodeName); } else {
sffname); List<SffServicePath> sffServicePathList = readSffState(sffname); if (sffServicePathList.isEmpty()) { if (!deleteServiceFunctionForwarderState(sffname)) { ret = false;
if (revRspSuccessful && SfcProviderServiceForwarderAPI.addPathToServiceForwarderState(revRenderedServicePath)) { addRevPathToSffStateSuccessful = true; } else { SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(revRenderedServicePath.getName()); SfcProviderRenderedPathAPI.deleteRenderedServicePath(revRenderedServicePath.getName()); SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(revRenderedServicePath.getName()); SfcProviderRenderedPathAPI.deleteRenderedServicePath(revRenderedServicePath.getName());
/** * This method searches for a data plane locator of a given name within a SFF * <p> * * @param sffName SFF name * @param sffLocatorName SFF data plane locator name * @return SffDataPlaneLocator object or null if not found */ public static SffDataPlaneLocator readServiceFunctionForwarderDataPlaneLocator(SffName sffName, SffDataPlaneLocatorName sffLocatorName) { ServiceFunctionForwarder serviceFunctionForwarder = readServiceFunctionForwarder(sffName); if (serviceFunctionForwarder != null) { List<SffDataPlaneLocator> sffDataPlaneLocatorList = serviceFunctionForwarder.getSffDataPlaneLocator(); for (SffDataPlaneLocator sffDataPlaneLocator : sffDataPlaneLocatorList) { if (sffDataPlaneLocator.getName().equals(sffLocatorName)) { return sffDataPlaneLocator; } } } else { LOG.error("{}: Failed to read SFF: {}", Thread.currentThread().getStackTrace()[1], sffName); } return null; }
sffName); List<SffServicePath> sffServicePathList = readSffState(sffName); if ((sffServicePathList != null) && sffServicePathList.isEmpty()) { if (!deleteServiceFunctionForwarderState(sffName)) { ret = false;
Thread.currentThread().getStackTrace()[1], sfName); SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(rspList); SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(rspName); rspList.add(rspName);
private ArrayList<String> getRestUriListFromSclServiceForwarderList( List<SclServiceFunctionForwarder> sclServiceForwarderList, String aclName, java.lang.Class<? extends AclBase> aclType) { // rest uri list should be created from Classifier SFFs. Classifier will be taken from ACL ArrayList<String> sffRestUriList = new ArrayList<>(); if (sclServiceForwarderList != null && aclName != null && aclType != null ) { for (SclServiceFunctionForwarder sclServiceForwarder : sclServiceForwarderList) { SffName sffName = new SffName(sclServiceForwarder.getName()); ServiceFunctionForwarder serviceForwarder = SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(sffName); if (serviceForwarder != null && serviceForwarder.getRestUri() != null && !serviceForwarder.getRestUri().getValue().isEmpty()) { String restUri = serviceForwarder.getRestUri().getValue() + ACL_REST_URI + aclName; sffRestUriList.add(restUri); LOG.info("ACL will be send to REST URI {}", restUri); } } } return sffRestUriList.isEmpty() ? null : sffRestUriList; } }
SfcProviderServiceForwarderAPI.deletePathFromServiceForwarderState(new RspName(input.getName())); SfcProviderServiceFunctionAPI.deleteServicePathFromServiceFunctionState(new SfpName(input.getName()));
@Override protected void setRestUriList(DataObject dataObject) { RenderedServicePath obj = (RenderedServicePath) dataObject; List<RenderedServicePathHop> hopList = obj.getRenderedServicePathHop(); this.restUriList = new ArrayList<>(); if (hopList != null) { for (RenderedServicePathHop hop : hopList) { ServiceFunctionForwarder sff = SfcProviderServiceForwarderAPI .readServiceFunctionForwarder(hop.getServiceFunctionForwarder()); if (sff != null && sff.getRestUri() != null) { RspName rspName = obj.getName(); if (rspName != null) { String restUri = sff.getRestUri().getValue() + RSP_REST_URI + rspName.getValue(); this.restUriList.add(restUri); LOG.info("RSP will be send to REST URI {}", restUri); } } } } if (this.restUriList != null && this.restUriList.isEmpty()) { this.restUriList = null; } } }
private static void createHopBuilderInternal(int serviceIndex, RenderedServicePathHopBuilder renderedServicePathHopBuilder, short posIndex, ServiceFunction serviceFunction) { SffName serviceFunctionForwarderName = serviceFunction.getSfDataPlaneLocator().get(0).getServiceFunctionForwarder(); ServiceFunctionForwarder serviceFunctionForwarder = SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(serviceFunctionForwarderName); if (serviceFunctionForwarder != null && serviceFunctionForwarder.getSffDataPlaneLocator() != null && serviceFunctionForwarder.getSffDataPlaneLocator().get(0) != null) { renderedServicePathHopBuilder .setServiceFunctionForwarderLocator(serviceFunctionForwarder.getSffDataPlaneLocator().get(0).getName()); } renderedServicePathHopBuilder.setHopNumber(posIndex) .setServiceIndex((short) serviceIndex) .setServiceFunctionForwarder(serviceFunctionForwarderName); }
String nodeId = sfdpl.getServiceFunctionForwarder().getValue(); if (SfcProviderServiceForwarderAPI .readServiceFunctionForwarder(sfdpl.getServiceFunctionForwarder()) == null) continue; List<SffDataPlaneLocator> listOfSffdpl = SfcProviderServiceForwarderAPI .readServiceFunctionForwarder(sfdpl.getServiceFunctionForwarder()).getSffDataPlaneLocator(); for (SffDataPlaneLocator sffdpl : listOfSffdpl) { SffDataPlaneLocatorName sffdplName = sffdpl.getName();
SffDataPlaneLocatorName locatorName = hop.getServiceFunctionForwarderLocator(); SffName sffName = hop.getServiceFunctionForwarder(); ServiceFunctionForwarder sff = SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(sffName); if (sff == null) { LOG.warn("Couldn't find SFF {} that supports hop {} in datastore", sffName,
.readServiceFunctionForwarder(hop.getServiceFunctionForwarder()); if (serviceFunctionForwarder == null) { LOG.warn("handleRenderedServicePath: Could not identify ServiceFunctionForwarder {} on {}",
SffName sffName = hop.getServiceFunctionForwarder(); LOG.debug("Looking up SFF {}", sffName); ServiceFunctionForwarder sff = SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(sffName); if (sff == null) { LOG.warn("Couldn't find SFF {} in datastore", sffName);