+ @Override
+ public void deleteMapping(String nodeId, String logicalConnectionPoint) {
+ LOG.info("Deleting Mapping {} of node '{}'", logicalConnectionPoint, nodeId);
+ WriteTransaction rw = this.dataBroker.newWriteOnlyTransaction();
+ InstanceIdentifier<Mapping> mappingIID = InstanceIdentifier.create(Network.class)
+ .child(Nodes.class, new NodesKey(nodeId)).child(Mapping.class, new MappingKey(logicalConnectionPoint));
+ rw.delete(LogicalDatastoreType.CONFIGURATION, mappingIID);
+ try {
+ rw.commit().get(1, TimeUnit.SECONDS);
+ LOG.info("Mapping {} removed for node '{}'", logicalConnectionPoint, nodeId);
+ } catch (InterruptedException | ExecutionException | TimeoutException e) {
+ LOG.error("Error for removing mapping {} for node '{}'", logicalConnectionPoint, nodeId);
+ }
+ }
+
+ @Override
+ public McCapabilities getMcCapbilities(String nodeId, String mcLcp) {
+ /*
+ * Getting physical mapping corresponding to logical connection point
+ */
+ InstanceIdentifier<McCapabilities> mcCapabilitiesIID = InstanceIdentifier.builder(Network.class)
+ .child(Nodes.class, new NodesKey(nodeId)).child(McCapabilities.class, new McCapabilitiesKey(mcLcp)).build();
+ try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) {
+ Optional<McCapabilities> mcCapObject = readTx.read(LogicalDatastoreType.CONFIGURATION,
+ mcCapabilitiesIID).get();
+ if (mcCapObject.isPresent()) {
+ McCapabilities mcCap = mcCapObject.get();
+ LOG.info("Found MC-cap for {} - {}. Mapping: {}", nodeId, mcLcp, mcCap.toString());
+ return mcCap;
+ }
+ LOG.warn("Could not find mc-capabilities for logical connection point {} for nodeId {}", mcLcp, nodeId);
+ } catch (InterruptedException | ExecutionException ex) {
+ LOG.error("Unable to read mapping for logical connection point : {} for nodeId {}", mcLcp,
+ nodeId, ex);
+ }
+ return null;
+ }