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 org.json.JSONObject;
 
  22 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeStateListener;
 
  23 import org.onap.ccsdk.features.sdnr.wt.netconfnodestateservice.NetconfNodeStateService;
 
  24 import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
 
  25 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 
  26 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 
  27 import org.slf4j.Logger;
 
  28 import org.slf4j.LoggerFactory;
 
  31 public class MountpointNodeStateListenerImpl implements NetconfNodeStateListener, AutoCloseable {
 
  32     private static final Logger LOG = LoggerFactory.getLogger(MountpointNodeStateListenerImpl.class);
 
  33     private NetconfNodeStateService netconfNodeStateService;
 
  34     private MountpointStatePublisher mountpointStatePublisher;
 
  35     private ListenerRegistration<MountpointNodeStateListenerImpl> registeredNodeStateListener;
 
  37     public MountpointNodeStateListenerImpl(NetconfNodeStateService netconfNodeStateService) {
 
  38         this.netconfNodeStateService = netconfNodeStateService;
 
  41     public void start(MountpointStatePublisher mountpointStatePublisher) {
 
  42         this.mountpointStatePublisher = mountpointStatePublisher;
 
  43         registeredNodeStateListener = netconfNodeStateService.registerNetconfNodeStateListener(this);
 
  47     public void onCreated(NodeId nNodeId, NetconfNode netconfNode) {
 
  49         LOG.info("In onCreated of MountpointNodeStateListenerImpl - nNodeId = " + nNodeId.getValue() + " IP Address = "
 
  50                 + netconfNode.getHost().getIpAddress().getIpv4Address().toString());
 
  51         JSONObject obj = new JSONObject();
 
  52         obj.put("NodeId", nNodeId.getValue());
 
  53         obj.put("NetConfNodeState", netconfNode.getConnectionStatus().toString());
 
  54         obj.put("TimeStamp", java.time.Clock.systemUTC().instant());
 
  56         mountpointStatePublisher.addToPublish(obj);
 
  60     public void onStateChange(NodeId nNodeId, NetconfNode netconfNode) {
 
  62         LOG.info("In onStateChange of MountpointNodeStateListenerImpl - nNodeId = " + nNodeId.getValue()
 
  63                 + " IP Address = " + netconfNode.getHost().getIpAddress().getIpv4Address().getValue());
 
  64         JSONObject obj = new JSONObject();
 
  65         obj.put("NodeId", nNodeId.getValue());
 
  66         obj.put("NetConfNodeState", netconfNode.getConnectionStatus().toString());
 
  67         obj.put("TimeStamp", java.time.Clock.systemUTC().instant());
 
  69         mountpointStatePublisher.addToPublish(obj);
 
  73     public void onRemoved(NodeId nNodeId) {
 
  75         LOG.info("In onRemoved of MountpointNodeStateListenerImpl - nNodeId = " + nNodeId);
 
  76         JSONObject obj = new JSONObject();
 
  77         obj.put("NodeId", nNodeId.getValue());
 
  78         obj.put("NetConfNodeState", "Removed");
 
  79         obj.put("TimeStamp", java.time.Clock.systemUTC().instant());
 
  81         mountpointStatePublisher.addToPublish(obj);
 
  84     public void stop() throws Exception {
 
  89     public void close() throws Exception {
 
  90         registeredNodeStateListener.close();