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.controller.md.sal.binding.api.DataBroker;
11 import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
12 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
13 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
14 import org.opendaylight.transportpce.common.InstanceIdentifiers;
15 import org.opendaylight.transportpce.inventory.listener.ClliNetworkChangeListener;
16 import org.opendaylight.transportpce.inventory.listener.DeviceListener;
17 import org.opendaylight.transportpce.inventory.listener.OverlayNetworkChangeListener;
18 import org.opendaylight.transportpce.inventory.listener.ServiceListener;
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
29 public class ListenerProvider {
31 private static final Logger LOG = LoggerFactory.getLogger(ListenerProvider.class);
33 private final DataBroker dataBroker;
34 private final OverlayNetworkChangeListener overlayNetworkListener;
35 private final UnderlayNetworkChangeListener underlayNetworkListener;
36 private final ClliNetworkChangeListener clliNetworkChangeListener;
37 private final ServiceListener serviceListener;
38 private final DeviceListener deviceListener;
41 * Constructor invoked by blueprint injects all dependencies.
43 * @param dataBroker the databroker
44 * @param overlayNetworkListener the overlay network listener
45 * @param underlayNetworkListener the underlay network listener
46 * @param clliNetworkChangeListener the CLLI network changes listener
47 * @param serviceListener the service listener
48 * @param deviceListener the device listener
50 public ListenerProvider(DataBroker dataBroker, OverlayNetworkChangeListener overlayNetworkListener,
51 UnderlayNetworkChangeListener underlayNetworkListener, ClliNetworkChangeListener clliNetworkChangeListener,
52 ServiceListener serviceListener, DeviceListener deviceListener) {
53 this.dataBroker = dataBroker;
54 this.overlayNetworkListener = overlayNetworkListener;
55 this.underlayNetworkListener = underlayNetworkListener;
56 this.clliNetworkChangeListener = clliNetworkChangeListener;
57 this.serviceListener = serviceListener;
58 this.deviceListener = deviceListener;
62 * Invoked by blueprint, registers the listeners.
64 public void initialize() {
65 LOG.debug("Registering listeners...");
66 dataBroker.registerDataTreeChangeListener(
67 new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.OVERLAY_NETWORK_II),
68 overlayNetworkListener);
69 LOG.info("Overlay network change listener was successfully registered");
70 dataBroker.registerDataTreeChangeListener(
71 new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.UNDERLAY_NETWORK_II),
72 underlayNetworkListener);
73 LOG.info("Underlay network change listener was successfully registered");
74 dataBroker.registerDataTreeChangeListener(
75 new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, InstanceIdentifiers.CLLI_NETWORK_II),
76 clliNetworkChangeListener);
77 LOG.info("CLLI network change listener was successfully registered");
78 dataBroker.registerDataTreeChangeListener(
79 new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, ServiceListener.SERVICES_II),
81 LOG.info("Service path listener was successfully registered");
82 dataBroker.registerDataTreeChangeListener(new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL,
83 InstanceIdentifiers.NETCONF_TOPOLOGY_II.child(Node.class)), deviceListener);
84 LOG.info("Device change listener was successfully registered");