2 * Copyright © 2017 AT&T and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.transportpce.inventory;
10 import org.opendaylight.mdsal.binding.api.DataBroker;
11 import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
12 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
13 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
14 import org.opendaylight.transportpce.common.InstanceIdentifiers;
15 import org.opendaylight.transportpce.inventory.listener.ClliNetworkChangeListener;
16 import org.opendaylight.transportpce.inventory.listener.DeviceConfigListener;
17 import org.opendaylight.transportpce.inventory.listener.DeviceListener;
18 import org.opendaylight.transportpce.inventory.listener.OverlayNetworkChangeListener;
19 import org.opendaylight.transportpce.inventory.listener.UnderlayNetworkChangeListener;
20 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
25 * {@link ListenerProvider} registers {@link DataTreeChangeListener} for each network layer.
27 public class ListenerProvider {
29 private static final Logger LOG = LoggerFactory.getLogger(ListenerProvider.class);
31 private final DataBroker dataBroker;
32 private final OverlayNetworkChangeListener overlayNetworkListener;
33 private final UnderlayNetworkChangeListener underlayNetworkListener;
34 private final ClliNetworkChangeListener clliNetworkChangeListener;
35 private final DeviceListener deviceListener;
36 private final DeviceConfigListener deviceConfigListener;
39 * Constructor invoked by blueprint injects all dependencies.
41 * @param dataBroker dataBroker
42 * @param overlayNetworkListener overlay-network Listener
43 * @param underlayNetworkListener underlay-network Listener
44 * @param clliNetworkChangeListener clli Network change Listener
45 * @param deviceListener device listener
46 * @param deviceConfigListener device config listener
48 public ListenerProvider(DataBroker dataBroker, OverlayNetworkChangeListener overlayNetworkListener,
49 UnderlayNetworkChangeListener underlayNetworkListener, ClliNetworkChangeListener clliNetworkChangeListener,
50 DeviceListener deviceListener, DeviceConfigListener deviceConfigListener) {
52 this.dataBroker = dataBroker;
53 this.overlayNetworkListener = overlayNetworkListener;
54 this.underlayNetworkListener = underlayNetworkListener;
55 this.clliNetworkChangeListener = clliNetworkChangeListener;
56 this.deviceListener = deviceListener;
57 this.deviceConfigListener = deviceConfigListener;
61 * Invoked by blueprint, registers the listeners.
63 public void initialize() {
64 LOG.debug("Registering listeners...");
65 dataBroker.registerDataTreeChangeListener(
66 DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.OVERLAY_NETWORK_II),
67 overlayNetworkListener);
68 LOG.info("Overlay network change listener was successfully registered");
69 dataBroker.registerDataTreeChangeListener(
70 DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.UNDERLAY_NETWORK_II),
71 underlayNetworkListener);
72 LOG.info("Underlay network change listener was successfully registered");
73 dataBroker.registerDataTreeChangeListener(
74 DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.CLLI_NETWORK_II),
75 clliNetworkChangeListener);
76 LOG.info("CLLI network change listener was successfully registered");
77 dataBroker.registerDataTreeChangeListener(
78 DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
79 InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), deviceListener);
80 LOG.info("Device change listener was successfully registered");
81 dataBroker.registerDataTreeChangeListener(
82 DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION,
83 InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), deviceConfigListener);
84 LOG.info("Device config change listener was successfully registered");