2 * Copyright (c) 2013, 2015 IBM Corporation and others. All rights reserved.
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
9 package org.opendaylight.neutron.spi;
11 import org.osgi.framework.BundleContext;
12 import org.osgi.framework.FrameworkUtil;
13 import org.osgi.framework.ServiceReference;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
17 public class NeutronCRUDInterfaces {
18 private static final Logger LOGGER = LoggerFactory
19 .getLogger(NeutronCRUDInterfaces.class);
21 private INeutronNetworkCRUD networkInterface;
22 private INeutronSubnetCRUD subnetInterface;
23 private INeutronPortCRUD portInterface;
24 private INeutronRouterCRUD routerInterface;
25 private INeutronFloatingIPCRUD fipInterface;
26 private INeutronSecurityGroupCRUD sgInterface;
27 private INeutronSecurityRuleCRUD srInterface;
28 private INeutronFirewallCRUD fwInterface;
29 private INeutronFirewallPolicyCRUD fwpInterface;
30 private INeutronFirewallRuleCRUD fwrInterface;
31 private INeutronLoadBalancerCRUD lbInterface;
32 private INeutronLoadBalancerPoolCRUD lbpInterface;
33 private INeutronLoadBalancerListenerCRUD lblInterface;
34 private INeutronLoadBalancerHealthMonitorCRUD lbhmInterface;
35 private INeutronMeteringLabelCRUD mlInterface;
36 private INeutronMeteringLabelRuleCRUD mlrInterface;
37 private INeutronVPNIKEPolicyCRUD ikepInterface;
38 private INeutronVPNIPSECPolicyCRUD ipsecpInterface;
39 private INeutronVPNServiceCRUD vpnInterface;
40 private INeutronVPNIPSECSiteConnectionsCRUD ipsecScInterface;
41 private INeutronBgpvpnCRUD bgpvpnInterface;
42 private INeutronL2gatewayCRUD l2gatewayInterface;
43 private INeutronL2gatewayConnectionCRUD l2gatewayConnectionInterface;
44 private INeutronSFCFlowClassifierCRUD sfcFlowClassifierInterface;
45 private INeutronSFCPortPairCRUD sfcPortPairInterface;
46 private INeutronSFCPortPairGroupCRUD sfcPortPairGroupInterface;
47 private INeutronSFCPortChainCRUD sfcPortChainInterface;
49 public NeutronCRUDInterfaces() {
52 public INeutronNetworkCRUD getNetworkInterface() {
53 return networkInterface;
56 public INeutronSubnetCRUD getSubnetInterface() {
57 return subnetInterface;
60 public INeutronPortCRUD getPortInterface() {
64 public INeutronRouterCRUD getRouterInterface() {
65 return routerInterface;
68 public INeutronFloatingIPCRUD getFloatingIPInterface() {
72 public INeutronSecurityGroupCRUD getSecurityGroupInterface() {
76 public INeutronSecurityRuleCRUD getSecurityRuleInterface() {
80 public INeutronFirewallCRUD getFirewallInterface() {
84 public INeutronFirewallPolicyCRUD getFirewallPolicyInterface() {
88 public INeutronFirewallRuleCRUD getFirewallRuleInterface() {
92 public INeutronLoadBalancerCRUD getLoadBalancerInterface() {
96 public INeutronLoadBalancerPoolCRUD getLoadBalancerPoolInterface() {
100 public INeutronLoadBalancerListenerCRUD getLoadBalancerListenerInterface() {
104 public INeutronLoadBalancerHealthMonitorCRUD getLoadBalancerHealthMonitorInterface() {
105 return lbhmInterface;
108 public INeutronMeteringLabelCRUD getMeteringLabelInterface() {
112 public INeutronMeteringLabelRuleCRUD getMeteringLabelRuleInterface() {
116 public INeutronVPNIKEPolicyCRUD getVPNIKEPolicyInterface() {
117 return ikepInterface;
120 public INeutronVPNIPSECPolicyCRUD getVPNIPSECPolicyInterface() {
121 return ipsecpInterface;
124 public INeutronL2gatewayCRUD getL2gatewayInterface() {
125 return l2gatewayInterface;
128 public INeutronL2gatewayConnectionCRUD getL2gatewayConnectionInterface() {
129 return l2gatewayConnectionInterface;
132 public void setVPNServiceInterface(INeutronVPNServiceCRUD iface) {
133 vpnInterface = iface;
136 public INeutronVPNServiceCRUD getVPNServiceInterface() {
140 public INeutronVPNIPSECSiteConnectionsCRUD getVPNIPSECSiteConnectionsInterface() {
141 return ipsecScInterface;
144 public INeutronBgpvpnCRUD getBgpvpnInterface() {
145 return bgpvpnInterface;
148 public INeutronSFCFlowClassifierCRUD getSFCFlowClassifierInterface() {
149 return sfcFlowClassifierInterface;
152 public INeutronSFCPortPairCRUD getSFCPortPairInterface() {
153 return sfcPortPairInterface;
156 public INeutronSFCPortPairGroupCRUD getSFCPortPairGroupInterface() {
157 return sfcPortPairGroupInterface;
160 public INeutronSFCPortChainCRUD getSFCPortChainInterface() {
161 return sfcPortChainInterface;
164 public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
165 networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
169 public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
170 subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
174 public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
175 portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
179 public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
180 routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
184 public NeutronCRUDInterfaces fetchINeutronFloatingIPCRUD(Object obj) {
185 fipInterface = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, obj);
189 public NeutronCRUDInterfaces fetchINeutronSecurityGroupCRUD(Object obj) {
190 sgInterface = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, obj);
194 public NeutronCRUDInterfaces fetchINeutronSecurityRuleCRUD(Object obj) {
195 srInterface = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, obj);
199 public NeutronCRUDInterfaces fetchINeutronFirewallCRUD(Object obj) {
200 fwInterface = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, obj);
204 public NeutronCRUDInterfaces fetchINeutronFirewallPolicyCRUD(Object obj) {
205 fwpInterface = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, obj);
209 public NeutronCRUDInterfaces fetchINeutronFirewallRuleCRUD(Object obj) {
210 fwrInterface = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, obj);
214 public NeutronCRUDInterfaces fetchINeutronLoadBalancerCRUD(Object obj) {
215 lbInterface = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, obj);
219 public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolCRUD(Object obj) {
220 lbpInterface = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, obj);
224 public NeutronCRUDInterfaces fetchINeutronLoadBalancerListenerCRUD(Object obj) {
225 lblInterface = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, obj);
229 public NeutronCRUDInterfaces fetchINeutronLoadBalancerHealthMonitorCRUD(Object obj) {
230 lbhmInterface = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, obj);
234 public NeutronCRUDInterfaces fetchINeutronMeteringLabelCRUD(Object obj) {
235 mlInterface = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, obj);
239 public NeutronCRUDInterfaces fetchINeutronMeteringLabelRuleCRUD(Object obj) {
240 mlrInterface = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, obj);
244 public NeutronCRUDInterfaces fetchINeutronVPNIKEPolicyCRUD(Object obj) {
245 ikepInterface = (INeutronVPNIKEPolicyCRUD) getInstances(INeutronVPNIKEPolicyCRUD.class, obj);
249 public NeutronCRUDInterfaces fetchINeutronVPNIPSECPolicyCRUD(Object obj) {
250 ipsecpInterface = (INeutronVPNIPSECPolicyCRUD) getInstances(INeutronVPNIPSECPolicyCRUD.class, obj);
254 public NeutronCRUDInterfaces fetchINeutronVPNServiceCRUD(Object obj) {
255 vpnInterface = (INeutronVPNServiceCRUD) getInstances(INeutronVPNServiceCRUD.class, obj);
259 public NeutronCRUDInterfaces fetchINeutronVPNIPSECSiteConnectionsCRUD(Object obj) {
260 ipsecScInterface = (INeutronVPNIPSECSiteConnectionsCRUD) getInstances(INeutronVPNIPSECSiteConnectionsCRUD.class, obj);
264 public NeutronCRUDInterfaces fetchINeutronBgpvpnCRUD(Object obj) {
265 bgpvpnInterface = (INeutronBgpvpnCRUD) getInstances(INeutronBgpvpnCRUD.class, obj);
269 public NeutronCRUDInterfaces fetchINeutronL2gatewayCRUD(Object obj) {
270 l2gatewayInterface = (INeutronL2gatewayCRUD) getInstances(INeutronL2gatewayCRUD.class, obj);
274 public NeutronCRUDInterfaces fetchINeutronL2gatewayConnectionCRUD(Object obj) {
275 l2gatewayConnectionInterface = (INeutronL2gatewayConnectionCRUD) getInstances(INeutronL2gatewayConnectionCRUD.class, obj);
279 public NeutronCRUDInterfaces fetchINeutronSFCFlowClassifierCRUD (Object obj) {
280 sfcFlowClassifierInterface =
281 (INeutronSFCFlowClassifierCRUD) getInstances(INeutronSFCFlowClassifierCRUD.class, obj);
285 public NeutronCRUDInterfaces fetchINeutronSFCPortPairCRUD (Object obj) {
286 sfcPortPairInterface =
287 (INeutronSFCPortPairCRUD) getInstances(INeutronSFCPortPairCRUD.class, obj);
291 public NeutronCRUDInterfaces fetchINeutronSFCPortPairGroupCRUD (Object obj) {
292 sfcPortPairGroupInterface =
293 (INeutronSFCPortPairGroupCRUD) getInstances(INeutronSFCPortPairGroupCRUD.class, obj);
297 public NeutronCRUDInterfaces fetchINeutronSFCPortChainCRUD (Object obj) {
298 sfcPortChainInterface =
299 (INeutronSFCPortChainCRUD) getInstances(INeutronSFCPortChainCRUD.class, obj);
303 public Object getInstances(Class<?> clazz, Object bundle) {
305 BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
307 ServiceReference<?>[] services = null;
308 services = bCtx.getServiceReferences(clazz.getName(), null);
309 if (services != null) {
310 return bCtx.getService(services[0]);
312 } catch (Exception e) {
313 LOGGER.error("Error in getInstances", e);