+ /* (non-Javadoc)
+ * @see org.opendaylight.transportpce.networkmodel.service.NetworkModelService#deleteOpenROADMnode(java.lang.String)
+ */
+
+
+
+ @Override
+ public void deleteOpenRoadmnode(String nodeId) {
+ try {
+ @Nullable
+ OpenroadmVersion deviceVersion = this.portMapping.getNode(nodeId).getOpenroadmVersion();
+ LOG.info("deleteOpenROADMnode: {} version {}", nodeId, deviceVersion.getName());
+ this.portMapping.deleteMappingData(nodeId);
+
+ NodeKey nodeIdKey = new NodeKey(new NodeId(nodeId));
+
+ 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();
+ this.networkTransactionService.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();
+ this.networkTransactionService.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.key())
+ .build();
+ this.networkTransactionService.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.key())
+ .build();
+ this.networkTransactionService.delete(LogicalDatastoreType.CONFIGURATION, iiOpenRoadmTopologyLink);
+ }
+ } else {
+ LOG.warn("TopologyShard for node '{}' is not present", nodeId);
+ }
+ this.networkTransactionService.submit().get(1, TimeUnit.SECONDS);
+ LOG.info("all nodes and links deleted ! ");
+ } catch (InterruptedException | ExecutionException | TimeoutException e) {
+ LOG.error("Error when trying to delete node : {}", nodeId, e);
+ }
+ }