2  * ============LICENSE_START========================================================================
 
   3  * ONAP : ccsdk feature sdnr wt
 
   4  * =================================================================================================
 
   5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
 
   6  * =================================================================================================
 
   7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 
   8  * in compliance with the License. You may obtain a copy of the License at
 
  10  * http://www.apache.org/licenses/LICENSE-2.0
 
  12  * Unless required by applicable law or agreed to in writing, software distributed under the License
 
  13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 
  14  * or implied. See the License for the specific language governing permissions and limitations under
 
  16  * ============LICENSE_END==========================================================================
 
  19 package org.onap.ccsdk.features.sdnr.wt.mountpointstateprovider.impl;
 
  21 import java.util.Objects;
 
  22 import java.util.Optional;
 
  23 import org.eclipse.jdt.annotation.NonNull;
 
  24 import org.json.JSONObject;
 
  25 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfAccessor;
 
  26 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeConnectListener;
 
  27 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeStateService;
 
  28 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
 
  29 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 
  30 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 
  31 import org.slf4j.Logger;
 
  32 import org.slf4j.LoggerFactory;
 
  34 public class MountpointNodeConnectListenerImpl implements NetconfNodeConnectListener, AutoCloseable {
 
  35     private static final Logger LOG = LoggerFactory.getLogger(MountpointNodeConnectListenerImpl.class);
 
  36     private NetconfNodeStateService netconfNodeStateService;
 
  37     private MountpointStatePublisher mountpointStatePublisher;
 
  38     private ListenerRegistration<MountpointNodeConnectListenerImpl> registeredNodeConnectListener;
 
  40     public MountpointNodeConnectListenerImpl(NetconfNodeStateService netconfNodeStateService) {
 
  41         this.netconfNodeStateService = netconfNodeStateService;
 
  44     public void start(MountpointStatePublisher mountpointStatePublisher) {
 
  45         this.mountpointStatePublisher = mountpointStatePublisher;
 
  46         registeredNodeConnectListener = netconfNodeStateService.registerNetconfNodeConnectListener(this);
 
  50     public void onEnterConnected(@NonNull NetconfAccessor accessor) {
 
  51         NodeId nNodeId = accessor.getNodeId();
 
  52         NetconfNode netconfNode = accessor.getNetconfNode();
 
  54         LOG.debug("In onEnterConnected of MountpointNodeConnectListenerImpl - nNodeId = " + nNodeId.getValue()
 
  55                 + " IP Address = " + netconfNode.getHost().getIpAddress().getIpv4Address().getValue());
 
  57         JSONObject obj = new JSONObject();
 
  58         obj.put("NodeId", nNodeId.getValue());
 
  59         obj.put("NetConfNodeState", netconfNode.getConnectionStatus().toString());
 
  60         obj.put("TimeStamp", java.time.Clock.systemUTC().instant());
 
  62         mountpointStatePublisher.addToPublish(obj);
 
  66     public void onLeaveConnected(NodeId nNodeId, Optional<NetconfNode> optionalNetconfNode) {
 
  68         LOG.debug("In onLeaveConnected of MountpointNodeConnectListenerImpl - nNodeId = " + nNodeId);
 
  70         JSONObject obj = new JSONObject();
 
  71         obj.put("NodeId", nNodeId.getValue());
 
  72         obj.put("NetConfNodeState", "Unmounted");
 
  73         obj.put("TimeStamp", java.time.Clock.systemUTC().instant());
 
  75         mountpointStatePublisher.addToPublish(obj);
 
  78     public void stop() throws Exception {
 
  83     public void close() throws Exception {
 
  84         LOG.debug("In close of MountpointNodeConnectListenerImpl");
 
  85         if (!Objects.isNull(registeredNodeConnectListener))
 
  86             registeredNodeConnectListener.close();