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;
48 private INeutronQosPolicyCRUD qospInterface;
50 public NeutronCRUDInterfaces() {
53 public INeutronNetworkCRUD getNetworkInterface() {
54 return networkInterface;
57 public INeutronSubnetCRUD getSubnetInterface() {
58 return subnetInterface;
61 public INeutronPortCRUD getPortInterface() {
65 public INeutronRouterCRUD getRouterInterface() {
66 return routerInterface;
69 public INeutronFloatingIPCRUD getFloatingIPInterface() {
73 public INeutronSecurityGroupCRUD getSecurityGroupInterface() {
77 public INeutronSecurityRuleCRUD getSecurityRuleInterface() {
81 public INeutronFirewallCRUD getFirewallInterface() {
85 public INeutronFirewallPolicyCRUD getFirewallPolicyInterface() {
89 public INeutronFirewallRuleCRUD getFirewallRuleInterface() {
93 public INeutronLoadBalancerCRUD getLoadBalancerInterface() {
97 public INeutronLoadBalancerPoolCRUD getLoadBalancerPoolInterface() {
101 public INeutronLoadBalancerListenerCRUD getLoadBalancerListenerInterface() {
105 public INeutronLoadBalancerHealthMonitorCRUD getLoadBalancerHealthMonitorInterface() {
106 return lbhmInterface;
109 public INeutronMeteringLabelCRUD getMeteringLabelInterface() {
113 public INeutronMeteringLabelRuleCRUD getMeteringLabelRuleInterface() {
117 public INeutronVPNIKEPolicyCRUD getVPNIKEPolicyInterface() {
118 return ikepInterface;
121 public INeutronVPNIPSECPolicyCRUD getVPNIPSECPolicyInterface() {
122 return ipsecpInterface;
125 public INeutronL2gatewayCRUD getL2gatewayInterface() {
126 return l2gatewayInterface;
129 public INeutronL2gatewayConnectionCRUD getL2gatewayConnectionInterface() {
130 return l2gatewayConnectionInterface;
133 public void setVPNServiceInterface(INeutronVPNServiceCRUD iface) {
134 vpnInterface = iface;
137 public INeutronVPNServiceCRUD getVPNServiceInterface() {
141 public INeutronVPNIPSECSiteConnectionsCRUD getVPNIPSECSiteConnectionsInterface() {
142 return ipsecScInterface;
145 public INeutronBgpvpnCRUD getBgpvpnInterface() {
146 return bgpvpnInterface;
149 public INeutronSFCFlowClassifierCRUD getSFCFlowClassifierInterface() {
150 return sfcFlowClassifierInterface;
153 public INeutronSFCPortPairCRUD getSFCPortPairInterface() {
154 return sfcPortPairInterface;
157 public INeutronSFCPortPairGroupCRUD getSFCPortPairGroupInterface() {
158 return sfcPortPairGroupInterface;
161 public INeutronSFCPortChainCRUD getSFCPortChainInterface() {
162 return sfcPortChainInterface;
165 public INeutronQosPolicyCRUD getQosPolicyInterface() {
166 return qospInterface;
169 public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
170 networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
174 public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
175 subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
179 public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
180 portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
184 public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
185 routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
189 public NeutronCRUDInterfaces fetchINeutronFloatingIPCRUD(Object obj) {
190 fipInterface = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, obj);
194 public NeutronCRUDInterfaces fetchINeutronSecurityGroupCRUD(Object obj) {
195 sgInterface = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, obj);
199 public NeutronCRUDInterfaces fetchINeutronSecurityRuleCRUD(Object obj) {
200 srInterface = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, obj);
204 public NeutronCRUDInterfaces fetchINeutronFirewallCRUD(Object obj) {
205 fwInterface = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, obj);
209 public NeutronCRUDInterfaces fetchINeutronFirewallPolicyCRUD(Object obj) {
210 fwpInterface = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, obj);
214 public NeutronCRUDInterfaces fetchINeutronFirewallRuleCRUD(Object obj) {
215 fwrInterface = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, obj);
219 public NeutronCRUDInterfaces fetchINeutronLoadBalancerCRUD(Object obj) {
220 lbInterface = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, obj);
224 public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolCRUD(Object obj) {
225 lbpInterface = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, obj);
229 public NeutronCRUDInterfaces fetchINeutronLoadBalancerListenerCRUD(Object obj) {
230 lblInterface = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, obj);
234 public NeutronCRUDInterfaces fetchINeutronLoadBalancerHealthMonitorCRUD(Object obj) {
235 lbhmInterface = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, obj);
239 public NeutronCRUDInterfaces fetchINeutronMeteringLabelCRUD(Object obj) {
240 mlInterface = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, obj);
244 public NeutronCRUDInterfaces fetchINeutronMeteringLabelRuleCRUD(Object obj) {
245 mlrInterface = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, obj);
249 public NeutronCRUDInterfaces fetchINeutronVPNIKEPolicyCRUD(Object obj) {
250 ikepInterface = (INeutronVPNIKEPolicyCRUD) getInstances(INeutronVPNIKEPolicyCRUD.class, obj);
254 public NeutronCRUDInterfaces fetchINeutronVPNIPSECPolicyCRUD(Object obj) {
255 ipsecpInterface = (INeutronVPNIPSECPolicyCRUD) getInstances(INeutronVPNIPSECPolicyCRUD.class, obj);
259 public NeutronCRUDInterfaces fetchINeutronVPNServiceCRUD(Object obj) {
260 vpnInterface = (INeutronVPNServiceCRUD) getInstances(INeutronVPNServiceCRUD.class, obj);
264 public NeutronCRUDInterfaces fetchINeutronVPNIPSECSiteConnectionsCRUD(Object obj) {
265 ipsecScInterface = (INeutronVPNIPSECSiteConnectionsCRUD) getInstances(INeutronVPNIPSECSiteConnectionsCRUD.class, obj);
269 public NeutronCRUDInterfaces fetchINeutronBgpvpnCRUD(Object obj) {
270 bgpvpnInterface = (INeutronBgpvpnCRUD) getInstances(INeutronBgpvpnCRUD.class, obj);
274 public NeutronCRUDInterfaces fetchINeutronL2gatewayCRUD(Object obj) {
275 l2gatewayInterface = (INeutronL2gatewayCRUD) getInstances(INeutronL2gatewayCRUD.class, obj);
279 public NeutronCRUDInterfaces fetchINeutronL2gatewayConnectionCRUD(Object obj) {
280 l2gatewayConnectionInterface = (INeutronL2gatewayConnectionCRUD) getInstances(INeutronL2gatewayConnectionCRUD.class, obj);
284 public NeutronCRUDInterfaces fetchINeutronSFCFlowClassifierCRUD (Object obj) {
285 sfcFlowClassifierInterface =
286 (INeutronSFCFlowClassifierCRUD) getInstances(INeutronSFCFlowClassifierCRUD.class, obj);
290 public NeutronCRUDInterfaces fetchINeutronSFCPortPairCRUD (Object obj) {
291 sfcPortPairInterface =
292 (INeutronSFCPortPairCRUD) getInstances(INeutronSFCPortPairCRUD.class, obj);
296 public NeutronCRUDInterfaces fetchINeutronSFCPortPairGroupCRUD (Object obj) {
297 sfcPortPairGroupInterface =
298 (INeutronSFCPortPairGroupCRUD) getInstances(INeutronSFCPortPairGroupCRUD.class, obj);
302 public NeutronCRUDInterfaces fetchINeutronSFCPortChainCRUD (Object obj) {
303 sfcPortChainInterface =
304 (INeutronSFCPortChainCRUD) getInstances(INeutronSFCPortChainCRUD.class, obj);
308 public NeutronCRUDInterfaces fetchINeutronQosPolicyCRUD(Object obj) {
309 qospInterface = (INeutronQosPolicyCRUD) getInstances(INeutronQosPolicyCRUD.class, obj);
313 public Object getInstances(Class<?> clazz, Object bundle) {
315 BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
317 ServiceReference<?>[] services = null;
318 services = bCtx.getServiceReferences(clazz.getName(), null);
319 if (services != null) {
320 return bCtx.getService(services[0]);
322 } catch (Exception e) {
323 LOGGER.error("Error in getInstances", e);