Integration of fcaps applications
[vpnservice.git] / fcapsapplication / fcapsapplication-impl / src / main / java / org / opendaylight / vpnservice / fcapsapp / portinfo / PortNameMapping.java
1 /*
2  * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.vpnservice.fcapsapp.portinfo;
9
10 import java.lang.String;
11 import java.util.HashMap;
12 import java.util.Map;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
15 import javax.management.*;
16 import java.lang.management.ManagementFactory;
17
18 public class PortNameMapping implements PortNameMappingMBean {
19
20     private static final Logger LOG = LoggerFactory.getLogger(PortNameMapping.class);
21
22     private static Map<String,String> portNameToPortIdMap = new HashMap<String,String>();
23
24     @Override
25     public Map<String,String> getPortIdtoPortNameMap() {
26         return portNameToPortIdMap;
27     }
28
29     @Override
30     public String getPortName(String portId){
31         return portNameToPortIdMap.get(portId);
32     }
33
34     public static void updatePortMap(String portName,String portId,String status) {
35         if (status.equals("ADD")){
36             portNameToPortIdMap.put(portId,portName);
37             LOG.debug("PortId {} : portName {} added",portId,portName);
38         } else if(status.equals("DELETE")){
39             portNameToPortIdMap.remove(portId);
40             LOG.debug("PortId {} : portName {} removed",portId,portName);
41         }
42     }
43
44     public static void registerPortMappingBean() {
45         MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
46         ObjectName mbeanName = null;
47         String BEANNAME = "Ports:type=PortNameMapping";
48
49         try {
50             mbeanName = new ObjectName(BEANNAME);
51         } catch (MalformedObjectNameException e) {
52             LOG.error("ObjectName instance creation failed for BEANAME {} : {}", BEANNAME, e);
53
54         }
55         try {
56             if (!mbs.isRegistered(mbeanName)) {
57                 mbs.registerMBean(new PortNameMapping(), mbeanName);
58                 LOG.debug("Registered Mbean {} successfully", mbeanName);
59             }
60
61         } catch (Exception e) {
62             LOG.error("Registeration failed for Mbean {} :{}", mbeanName, e);
63         }
64     }
65 }