Fix FindBugs violations and enable enforcement in qosservice
[netvirt.git] / vpnservice / qosservice / impl / src / main / java / org / opendaylight / netvirt / qosservice / QosInterfaceStateChangeListener.java
index 75a1a55990ed267c0040170f0be180aab4d4009a..67aa3cd00aeb38d1a59577afb18e840bb94080fb 100644 (file)
@@ -14,14 +14,12 @@ import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase;
-import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
+import org.opendaylight.genius.datastoreutils.AsyncClusteredDataTreeChangeListenerBase;
 import org.opendaylight.netvirt.neutronvpn.interfaces.INeutronVpnManager;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev140508.L2vlan;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.networks.rev150712.networks.attributes.networks.Network;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;
@@ -32,33 +30,29 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @Singleton
-public class QosInterfaceStateChangeListener extends AsyncDataTreeChangeListenerBase<Interface,
-        QosInterfaceStateChangeListener> implements
-        AutoCloseable {
+public class QosInterfaceStateChangeListener extends AsyncClusteredDataTreeChangeListenerBase<Interface,
+        QosInterfaceStateChangeListener> {
 
     private static final Logger LOG = LoggerFactory.getLogger(QosInterfaceStateChangeListener.class);
 
     private final DataBroker dataBroker;
-    private final OdlInterfaceRpcService odlInterfaceRpcService;
-    private final INeutronVpnManager neutronVpnManager;
-    private final IMdsalApiManager mdsalUtils;
     private final UuidUtil uuidUtil;
+    private final QosAlertManager qosAlertManager;
+    private final QosNeutronUtils qosNeutronUtils;
+    private final INeutronVpnManager neutronVpnManager;
 
     @Inject
-    public QosInterfaceStateChangeListener(final DataBroker dataBroker,
-                                           final OdlInterfaceRpcService odlInterfaceRpcService,
-                                           final INeutronVpnManager neutronVpnManager,
-                                           final IMdsalApiManager mdsalUtils) {
+    public QosInterfaceStateChangeListener(final DataBroker dataBroker, final QosAlertManager qosAlertManager,
+            final QosNeutronUtils qosNeutronUtils, final INeutronVpnManager neutronVpnManager) {
         super(Interface.class, QosInterfaceStateChangeListener.class);
         this.dataBroker = dataBroker;
-        this.odlInterfaceRpcService = odlInterfaceRpcService;
-        this.neutronVpnManager = neutronVpnManager;
-        this.mdsalUtils = mdsalUtils;
         this.uuidUtil = new UuidUtil();
+        this.qosAlertManager = qosAlertManager;
+        this.qosNeutronUtils = qosNeutronUtils;
+        this.neutronVpnManager = neutronVpnManager;
         LOG.debug("{} created",  getClass().getSimpleName());
     }
 
-    @Override
     @PostConstruct
     public void init() {
         registerListener(LogicalDatastoreType.OPERATIONAL, dataBroker);
@@ -87,34 +81,32 @@ public class QosInterfaceStateChangeListener extends AsyncDataTreeChangeListener
                     if (port.getAugmentation(QosPortExtension.class) != null) {
                         Uuid portQosUuid = port.getAugmentation(QosPortExtension.class).getQosPolicyId();
                         if (portQosUuid != null) {
-                            QosNeutronUtils.addToQosPortsCache(portQosUuid, port);
-                            QosNeutronUtils.handleNeutronPortQosAdd(dataBroker, odlInterfaceRpcService, mdsalUtils,
-                                    port, portQosUuid);
+                            qosNeutronUtils.addToQosPortsCache(portQosUuid, port);
+                            qosNeutronUtils.handleNeutronPortQosAdd(port, portQosUuid);
                         }
 
                     } else {
                         if (network.getAugmentation(QosNetworkExtension.class) != null) {
                             Uuid networkQosUuid = network.getAugmentation(QosNetworkExtension.class).getQosPolicyId();
                             if (networkQosUuid != null) {
-                                QosNeutronUtils.handleNeutronPortQosAdd(dataBroker, odlInterfaceRpcService, mdsalUtils,
-                                        port, networkQosUuid);
+                                qosNeutronUtils.handleNeutronPortQosAdd(port, networkQosUuid);
                             }
                         }
                     }
-                    if (QosNeutronUtils.hasBandwidthLimitRule(neutronVpnManager, port)) {
-                        QosAlertManager.addToQosAlertCache(port);
+                    if (qosNeutronUtils.hasBandwidthLimitRule(port)) {
+                        qosAlertManager.addToQosAlertCache(port);
                     }
                 });
             }
         } catch (Exception e) {
-            LOG.error("Qos:Exception caught in Interface Operational State Up event", e);
+            LOG.error("Qos:Exception caught in Interface Operational State Up event {}", e);
         }
     }
 
     private java.util.Optional<Port> getNeutronPort(String portName) {
         return uuidUtil.newUuidIfValidPattern(portName)
                 .toJavaUtil()
-                .map(uuid -> neutronVpnManager.getNeutronPort(uuid));
+                .map(neutronVpnManager::getNeutronPort);
     }
 
     private Optional<Port> getNeutronPortForRemove(Interface intrf) {
@@ -123,10 +115,10 @@ public class QosInterfaceStateChangeListener extends AsyncDataTreeChangeListener
         if (uuid.isPresent()) {
             Port port = neutronVpnManager.getNeutronPort(portName);
             if (port != null) {
-                return uuid.transform(uuid1 -> neutronVpnManager.getNeutronPort(uuid1));
+                return Optional.fromJavaUtil(uuid.toJavaUtil().map(neutronVpnManager::getNeutronPort));
             }
             LOG.trace("Qos Service : interface {} clearing stale flow entries if any", portName);
-            QosNeutronUtils.removeStaleFlowEntry(dataBroker,mdsalUtils,odlInterfaceRpcService,intrf);
+            qosNeutronUtils.removeStaleFlowEntry(intrf);
         }
         return Optional.absent();
     }
@@ -141,19 +133,17 @@ public class QosInterfaceStateChangeListener extends AsyncDataTreeChangeListener
 
                 String lowerLayerIf = intrf.getLowerLayerIf().get(0);
                 LOG.trace("lowerLayerIf {}", lowerLayerIf);
-                QosAlertManager.removeFromQosAlertCache(new NodeConnectorId(lowerLayerIf));
+                qosAlertManager.removeFromQosAlertCache(new NodeConnectorId(lowerLayerIf));
                 QosPortExtension removeQos = port.getAugmentation(QosPortExtension.class);
                 if (removeQos != null) {
-                    QosNeutronUtils.handleNeutronPortRemove(dataBroker, odlInterfaceRpcService,
-                            mdsalUtils, port, removeQos.getQosPolicyId(), intrf);
-                    QosNeutronUtils.removeFromQosPortsCache(removeQos.getQosPolicyId(), port);
+                    qosNeutronUtils.handleNeutronPortRemove(port, removeQos.getQosPolicyId(), intrf);
+                    qosNeutronUtils.removeFromQosPortsCache(removeQos.getQosPolicyId(), port);
                 } else {
                     Network network = neutronVpnManager.getNeutronNetwork(port.getNetworkId());
                     if (network != null && network.getAugmentation(QosNetworkExtension.class) != null) {
                         Uuid networkQosUuid = network.getAugmentation(QosNetworkExtension.class).getQosPolicyId();
                         if (networkQosUuid != null) {
-                            QosNeutronUtils.handleNeutronPortRemove(dataBroker, odlInterfaceRpcService,
-                                    mdsalUtils, port, networkQosUuid, intrf);
+                            qosNeutronUtils.handleNeutronPortRemove(port, networkQosUuid, intrf);
                         }
                     }
                 }