Initial Alivenessmonitor code
[vpnservice.git] / alivenessmonitor / alivenessmonitor-impl / src / main / java / org / opendaylight / vpnservice / alivenessmonitor / internal / AlivenessMonitorUtil.java
1 /*
2  * Copyright (c) 2015 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.alivenessmonitor.internal;
9
10 import java.net.InetAddress;
11 import java.net.UnknownHostException;
12
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.InterfaceMonitorMap;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.MonitorConfigs;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.MonitorProfiles;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.MonitoridKeyMap;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.MonitoringStates;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629._interface.monitor.map.InterfaceMonitorEntry;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629._interface.monitor.map.InterfaceMonitorEntryKey;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitor.configs.MonitoringInfo;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitor.configs.MonitoringInfoKey;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitor.profiles.MonitorProfile;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitor.profiles.MonitorProfileKey;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitorid.key.map.MonitoridKeyEntry;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitorid.key.map.MonitoridKeyEntryKey;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitoring.states.MonitoringState;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.alivenessmonitor.rev150629.monitoring.states.MonitoringStateKey;
28 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
29
30 import com.google.common.primitives.UnsignedBytes;
31
32 public class AlivenessMonitorUtil {
33
34     static InstanceIdentifier<MonitoringState> getMonitorStateId(String keyId) {
35         return InstanceIdentifier.builder(MonitoringStates.class)
36                 .child(MonitoringState.class, new MonitoringStateKey(keyId)).build();
37     }
38
39     static InstanceIdentifier<MonitoringInfo> getMonitoringInfoId(Long monitorId) {
40         return InstanceIdentifier.builder(MonitorConfigs.class)
41                 .child(MonitoringInfo.class, new MonitoringInfoKey(monitorId)).build();
42     }
43
44     static InstanceIdentifier<MonitorProfile> getMonitorProfileId(Long profileId) {
45         return InstanceIdentifier.builder(MonitorProfiles.class)
46                 .child(MonitorProfile.class, new MonitorProfileKey(profileId)).build();
47     }
48
49     static InstanceIdentifier<MonitoridKeyEntry> getMonitorMapId(Long keyId) {
50         return InstanceIdentifier.builder(MonitoridKeyMap.class)
51                 .child(MonitoridKeyEntry.class, new MonitoridKeyEntryKey(keyId)).build();
52     }
53
54     static InstanceIdentifier<InterfaceMonitorEntry> getInterfaceMonitorMapId(String interfaceName) {
55         return InstanceIdentifier.builder(InterfaceMonitorMap.class)
56                 .child(InterfaceMonitorEntry.class, new InterfaceMonitorEntryKey(interfaceName)).build();
57     }
58
59     public static String toStringIpAddress(byte[] ipAddress)
60     {
61         String ip = "";
62         if (ipAddress == null) {
63             return ip;
64         }
65
66         try {
67             ip = InetAddress.getByAddress(ipAddress).getHostAddress();
68         } catch(UnknownHostException e) {  }
69
70         return ip;
71     }
72
73     public static String toStringMacAddress(byte[] macAddress)
74     {
75         if (macAddress == null) {
76             return "";
77         }
78
79         StringBuilder sb = new StringBuilder(18);
80
81         for (int i = 0; i < macAddress.length; i++) {
82             sb.append(UnsignedBytes.toString(macAddress[i], 16).toUpperCase());
83             sb.append(":");
84         }
85
86         sb.setLength(17);
87         return sb.toString();
88     }
89
90     public static byte[] parseIpAddress(String ipAddress) {
91         byte cur;
92
93         String[] addressPart = ipAddress.split(".");
94         int size = addressPart.length;
95
96         byte[] part = new byte[size];
97         for (int i = 0; i < size; i++) {
98             cur = UnsignedBytes.parseUnsignedByte(addressPart[i], 16);
99             part[i] = cur;
100         }
101
102         return part;
103     }
104
105     public static byte[] parseMacAddress(String macAddress) {
106         byte cur;
107
108         String[] addressPart = macAddress.split(":");
109         int size = addressPart.length;
110
111         byte[] part = new byte[size];
112         for (int i = 0; i < size; i++) {
113             cur = UnsignedBytes.parseUnsignedByte(addressPart[i], 16);
114             part[i] = cur;
115         }
116
117         return part;
118     }
119 }