Integration of fcaps applications
[vpnservice.git] / fcapsapplication / fcapsapplication-impl / src / main / java / org / opendaylight / vpnservice / fcapsapp / portinfo / PortNameMapping.java
diff --git a/fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/vpnservice/fcapsapp/portinfo/PortNameMapping.java b/fcapsapplication/fcapsapplication-impl/src/main/java/org/opendaylight/vpnservice/fcapsapp/portinfo/PortNameMapping.java
new file mode 100644 (file)
index 0000000..5ea4555
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others.  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
+ */
+package org.opendaylight.vpnservice.fcapsapp.portinfo;
+
+import java.lang.String;
+import java.util.HashMap;
+import java.util.Map;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import javax.management.*;
+import java.lang.management.ManagementFactory;
+
+public class PortNameMapping implements PortNameMappingMBean {
+
+    private static final Logger LOG = LoggerFactory.getLogger(PortNameMapping.class);
+
+    private static Map<String,String> portNameToPortIdMap = new HashMap<String,String>();
+
+    @Override
+    public Map<String,String> getPortIdtoPortNameMap() {
+        return portNameToPortIdMap;
+    }
+
+    @Override
+    public String getPortName(String portId){
+        return portNameToPortIdMap.get(portId);
+    }
+
+    public static void updatePortMap(String portName,String portId,String status) {
+        if (status.equals("ADD")){
+            portNameToPortIdMap.put(portId,portName);
+            LOG.debug("PortId {} : portName {} added",portId,portName);
+        } else if(status.equals("DELETE")){
+            portNameToPortIdMap.remove(portId);
+            LOG.debug("PortId {} : portName {} removed",portId,portName);
+        }
+    }
+
+    public static void registerPortMappingBean() {
+        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+        ObjectName mbeanName = null;
+        String BEANNAME = "Ports:type=PortNameMapping";
+
+        try {
+            mbeanName = new ObjectName(BEANNAME);
+        } catch (MalformedObjectNameException e) {
+            LOG.error("ObjectName instance creation failed for BEANAME {} : {}", BEANNAME, e);
+
+        }
+        try {
+            if (!mbs.isRegistered(mbeanName)) {
+                mbs.registerMBean(new PortNameMapping(), mbeanName);
+                LOG.debug("Registered Mbean {} successfully", mbeanName);
+            }
+
+        } catch (Exception e) {
+            LOG.error("Registeration failed for Mbean {} :{}", mbeanName, e);
+        }
+    }
+}
\ No newline at end of file