+ /* (non-Javadoc)
+ * @see org.opendaylight.transportpce.networkmodel.service.NetworkModelService#deleteOpenROADMnode(java.lang.String)
+ */
+ @Override
+ public void deleteOpenROADMnode(String nodeId) {
+ try {
+ LOG.info("deleteOpenROADMnode: {} ", nodeId);
+ this.portMapping.deleteMappingData(nodeId);
+
+ NodeKey nodeIdKey = new NodeKey(new NodeId(nodeId));
+ WriteTransaction writeTransaction = this.dataBroker.newWriteOnlyTransaction();
+ LOG.info("deleting node in {}", NetworkUtils.CLLI_NETWORK_ID);
+ InstanceIdentifier<Node> iiClliNode = InstanceIdentifier
+ .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.CLLI_NETWORK_ID)))
+ .child(Node.class, nodeIdKey)
+ .build();
+ writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiClliNode);
+ LOG.info("deleting node in {}", NetworkUtils.UNDERLAY_NETWORK_ID);
+ InstanceIdentifier<Node> iiOpenRoadmNode = InstanceIdentifier
+ .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.UNDERLAY_NETWORK_ID)))
+ .child(Node.class, nodeIdKey)
+ .build();
+ writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmNode);
+ TopologyShard topologyShard = this.topologyShardMountedDevice.get(nodeId);
+ if (topologyShard != null) {
+ LOG.info("TopologyShard for node '{}' is present", nodeId);
+ for (Node openRoadmTopologyNode: topologyShard .getNodes()) {
+ LOG.info("deleting node {} in {}", openRoadmTopologyNode.getNodeId().getValue(),
+ NetworkUtils.OVERLAY_NETWORK_ID);
+ InstanceIdentifier<Node> iiOpenRoadmTopologyNode = InstanceIdentifier
+ .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
+ .child(Node.class, openRoadmTopologyNode.getKey())
+ .build();
+ writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyNode);
+ }
+ for (Link openRoadmTopologyLink: topologyShard.getLinks()) {
+ LOG.info("deleting link {} in {}", openRoadmTopologyLink.getLinkId().getValue(),
+ NetworkUtils.OVERLAY_NETWORK_ID);
+ InstanceIdentifier<Link> iiOpenRoadmTopologyLink = InstanceIdentifier
+ .builder(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OVERLAY_NETWORK_ID)))
+ .augmentation(Network1.class)
+ .child(Link.class, openRoadmTopologyLink.getKey())
+ .build();
+ writeTransaction.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyLink);
+ }
+ } else {
+ LOG.warn("TopologyShard for node '{}' is not present", nodeId);
+ }
+ writeTransaction.submit().get();
+ LOG.info("all nodes and links deleted ! ");
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Error when trying to delete node : {}", nodeId, e);
+ }
+ }