Use the memorized service reference
[netvirt.git] / openstack / net-virt / src / main / java / org / opendaylight / ovsdb / openstack / netvirt / impl / VlanConfigurationCacheImpl.java
index e91cc5c6818180695c2b770e58f4597d767c7606..ead275b352c79e0d78a7bcda218cd66273128a67 100644 (file)
@@ -1,23 +1,27 @@
 /*
- * Copyright (c) 2013 Hewlett-Packard Development Company, L.P. and others
+ * Copyright (c) 2013, 2015 Hewlett-Packard Development Company, L.P. and others. All rights reserved.
  *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
-*/
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
 package org.opendaylight.ovsdb.openstack.netvirt.impl;
 
-import org.opendaylight.ovsdb.openstack.netvirt.MdsalUtils;
+import org.opendaylight.ovsdb.openstack.netvirt.ConfigInterface;
 import org.opendaylight.ovsdb.openstack.netvirt.NodeConfiguration;
+import org.opendaylight.ovsdb.openstack.netvirt.api.Southbound;
 import org.opendaylight.ovsdb.openstack.netvirt.api.TenantNetworkManager;
 import org.opendaylight.ovsdb.openstack.netvirt.api.VlanConfigurationCache;
+import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 
 import com.google.common.collect.Maps;
 import java.util.List;
 import java.util.Map;
+
+import org.osgi.framework.ServiceReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -25,14 +29,11 @@ import org.slf4j.LoggerFactory;
  * @author Dave Tucker
  * @author Sam Hague
  */
-public class VlanConfigurationCacheImpl implements VlanConfigurationCache {
-    static final Logger logger = LoggerFactory.getLogger(VlanConfigurationCacheImpl.class);
+public class VlanConfigurationCacheImpl implements ConfigInterface, VlanConfigurationCache {
+    private static final Logger LOG = LoggerFactory.getLogger(VlanConfigurationCacheImpl.class);
     private Map<String, NodeConfiguration> configurationCache = Maps.newConcurrentMap();
     private volatile TenantNetworkManager tenantNetworkManager;
-
-    void init() {
-        logger.info(">>>>>> init {}", this.getClass());
-    }
+    private volatile Southbound southbound;
 
     private NodeConfiguration getNodeConfiguration(Node node){
         String nodeUuid = getNodeUUID(node);
@@ -47,22 +48,20 @@ public class VlanConfigurationCacheImpl implements VlanConfigurationCache {
     }
 
     private String getNodeUUID(Node node) {
-        return MdsalUtils.getOvsdbNodeUUID(node);
+        return southbound.getOvsdbNodeUUID(node);
     }
 
     private void initializeNodeConfiguration(Node node, String nodeUuid) {
         NodeConfiguration nodeConfiguration = new NodeConfiguration();
-        Integer vlan = 0;
-        String networkId = null;
-        List<OvsdbTerminationPointAugmentation> ports = MdsalUtils.getTerminationPointsOfBridge(node);
+        List<OvsdbTerminationPointAugmentation> ports = southbound.getTerminationPointsOfBridge(node);
         for (OvsdbTerminationPointAugmentation port : ports) {
-            vlan = port.getVlanTag().getValue();
-            networkId = tenantNetworkManager.getTenantNetwork(port).getNetworkUUID();
+            Integer vlan = port.getVlanTag().getValue();
+            String networkId = tenantNetworkManager.getTenantNetwork(port).getNetworkUUID();
             if (vlan != 0 && networkId != null) {
                 internalVlanInUse(nodeConfiguration, vlan);
                 nodeConfiguration.getTenantVlanMap().put(networkId, vlan);
             } else {
-                logger.debug("Node: {} initialized without a vlan", node);
+                LOG.debug("Node: {} initialized without a vlan", node);
             }
         }
         configurationCache.put(nodeUuid, nodeConfiguration);
@@ -111,4 +110,17 @@ public class VlanConfigurationCacheImpl implements VlanConfigurationCache {
         Integer vlan = nodeConfiguration.getTenantVlanMap().get(networkId);
         return vlan == null ? 0 : vlan;
     }
+
+    @Override
+    public void setDependencies(ServiceReference serviceReference) {
+        tenantNetworkManager =
+                (TenantNetworkManager) ServiceHelper.getGlobalInstance(TenantNetworkManager.class, this);
+        southbound =
+                (Southbound) ServiceHelper.getGlobalInstance(Southbound.class, this);
+    }
+
+    @Override
+    public void setDependencies(Object impl) {
+
+    }
 }