- /**
- * Method checks up, whether a {@link Local} Service Function Forwarder is present on device or not.
- *
- * @param mountpoint used to access specific device
- * @return true if Local Forwarder is present, false otherwise
- */
- private static boolean checkLocalForwarderPresence(DataBroker mountpoint) {
- InstanceIdentifier<Local> localSffIid = InstanceIdentifier.builder(Native.class)
- .child(ServiceChain.class)
- .child(org.opendaylight.yang.gen.v1.urn.ios.rev160308._native.service.chain.ServiceFunctionForwarder.class)
- .child(Local.class).build();
- try {
- java.util.Optional<ReadOnlyTransaction> optionalTransaction =
- NetconfTransactionCreator.netconfReadOnlyTransaction(mountpoint);
- if (!optionalTransaction.isPresent()) {
- LOG.warn("Failed to create transaction, mountpoint: {}", mountpoint);
- return false;
- }
- ReadOnlyTransaction transaction = optionalTransaction.get();
- CheckedFuture<Optional<Local>, ReadFailedException> submitFuture =
- transaction.read(LogicalDatastoreType.CONFIGURATION,
- localSffIid);
- Optional<Local> optionalLocalSff = submitFuture.checkedGet();
- transaction.close(); // Release lock
- return optionalLocalSff.isPresent();
- } catch (ReadFailedException e) {
- LOG.warn("Read transaction failed to {} ", e);
- } catch (Exception e) {
- LOG.error("Failed to .. {}", e.getMessage());
- }
- return false;
- }
-