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;
46 public NeutronCRUDInterfaces() {
49 public INeutronNetworkCRUD getNetworkInterface() {
50 return networkInterface;
53 public INeutronSubnetCRUD getSubnetInterface() {
54 return subnetInterface;
57 public INeutronPortCRUD getPortInterface() {
61 public INeutronRouterCRUD getRouterInterface() {
62 return routerInterface;
65 public INeutronFloatingIPCRUD getFloatingIPInterface() {
69 public INeutronSecurityGroupCRUD getSecurityGroupInterface() {
73 public INeutronSecurityRuleCRUD getSecurityRuleInterface() {
77 public INeutronFirewallCRUD getFirewallInterface() {
81 public INeutronFirewallPolicyCRUD getFirewallPolicyInterface() {
85 public INeutronFirewallRuleCRUD getFirewallRuleInterface() {
89 public INeutronLoadBalancerCRUD getLoadBalancerInterface() {
93 public INeutronLoadBalancerPoolCRUD getLoadBalancerPoolInterface() {
97 public INeutronLoadBalancerListenerCRUD getLoadBalancerListenerInterface() {
101 public INeutronLoadBalancerHealthMonitorCRUD getLoadBalancerHealthMonitorInterface() {
102 return lbhmInterface;
105 public INeutronMeteringLabelCRUD getMeteringLabelInterface() {
109 public INeutronMeteringLabelRuleCRUD getMeteringLabelRuleInterface() {
113 public INeutronVPNIKEPolicyCRUD getVPNIKEPolicyInterface() {
114 return ikepInterface;
117 public INeutronVPNIPSECPolicyCRUD getVPNIPSECPolicyInterface() {
118 return ipsecpInterface;
121 public INeutronL2gatewayCRUD getL2gatewayInterface() {
122 return l2gatewayInterface;
125 public INeutronL2gatewayConnectionCRUD getL2gatewayConnectionInterface() {
126 return l2gatewayConnectionInterface;
129 public void setVPNServiceInterface(INeutronVPNServiceCRUD iface) {
130 vpnInterface = iface;
133 public INeutronVPNServiceCRUD getVPNServiceInterface() {
137 public INeutronVPNIPSECSiteConnectionsCRUD getVPNIPSECSiteConnectionsInterface() {
138 return ipsecScInterface;
141 public INeutronBgpvpnCRUD getBgpvpnInterface() {
142 return bgpvpnInterface;
145 public INeutronSFCFlowClassifierCRUD getSFCFlowClassifierInterface() {
146 return sfcFlowClassifierInterface;
149 public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
150 networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
154 public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
155 subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
159 public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
160 portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
164 public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
165 routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
169 public NeutronCRUDInterfaces fetchINeutronFloatingIPCRUD(Object obj) {
170 fipInterface = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, obj);
174 public NeutronCRUDInterfaces fetchINeutronSecurityGroupCRUD(Object obj) {
175 sgInterface = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, obj);
179 public NeutronCRUDInterfaces fetchINeutronSecurityRuleCRUD(Object obj) {
180 srInterface = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, obj);
184 public NeutronCRUDInterfaces fetchINeutronFirewallCRUD(Object obj) {
185 fwInterface = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, obj);
189 public NeutronCRUDInterfaces fetchINeutronFirewallPolicyCRUD(Object obj) {
190 fwpInterface = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, obj);
194 public NeutronCRUDInterfaces fetchINeutronFirewallRuleCRUD(Object obj) {
195 fwrInterface = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, obj);
199 public NeutronCRUDInterfaces fetchINeutronLoadBalancerCRUD(Object obj) {
200 lbInterface = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, obj);
204 public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolCRUD(Object obj) {
205 lbpInterface = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, obj);
209 public NeutronCRUDInterfaces fetchINeutronLoadBalancerListenerCRUD(Object obj) {
210 lblInterface = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, obj);
214 public NeutronCRUDInterfaces fetchINeutronLoadBalancerHealthMonitorCRUD(Object obj) {
215 lbhmInterface = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, obj);
219 public NeutronCRUDInterfaces fetchINeutronMeteringLabelCRUD(Object obj) {
220 mlInterface = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, obj);
224 public NeutronCRUDInterfaces fetchINeutronMeteringLabelRuleCRUD(Object obj) {
225 mlrInterface = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, obj);
229 public NeutronCRUDInterfaces fetchINeutronVPNIKEPolicyCRUD(Object obj) {
230 ikepInterface = (INeutronVPNIKEPolicyCRUD) getInstances(INeutronVPNIKEPolicyCRUD.class, obj);
234 public NeutronCRUDInterfaces fetchINeutronVPNIPSECPolicyCRUD(Object obj) {
235 ipsecpInterface = (INeutronVPNIPSECPolicyCRUD) getInstances(INeutronVPNIPSECPolicyCRUD.class, obj);
239 public NeutronCRUDInterfaces fetchINeutronVPNServiceCRUD(Object obj) {
240 vpnInterface = (INeutronVPNServiceCRUD) getInstances(INeutronVPNServiceCRUD.class, obj);
244 public NeutronCRUDInterfaces fetchINeutronVPNIPSECSiteConnectionsCRUD(Object obj) {
245 ipsecScInterface = (INeutronVPNIPSECSiteConnectionsCRUD) getInstances(INeutronVPNIPSECSiteConnectionsCRUD.class, obj);
249 public NeutronCRUDInterfaces fetchINeutronBgpvpnCRUD(Object obj) {
250 bgpvpnInterface = (INeutronBgpvpnCRUD) getInstances(INeutronBgpvpnCRUD.class, obj);
254 public NeutronCRUDInterfaces fetchINeutronL2gatewayCRUD(Object obj) {
255 l2gatewayInterface = (INeutronL2gatewayCRUD) getInstances(INeutronL2gatewayCRUD.class, obj);
259 public NeutronCRUDInterfaces fetchINeutronL2gatewayConnectionCRUD(Object obj) {
260 l2gatewayConnectionInterface = (INeutronL2gatewayConnectionCRUD) getInstances(INeutronL2gatewayConnectionCRUD.class, obj);
264 public NeutronCRUDInterfaces fetchINeutronSFCFlowClassifierCRUD (Object obj) {
265 sfcFlowClassifierInterface =
266 (INeutronSFCFlowClassifierCRUD) getInstances(INeutronSFCFlowClassifierCRUD.class, obj);
270 public Object getInstances(Class<?> clazz, Object bundle) {
272 BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
274 ServiceReference<?>[] services = null;
275 services = bCtx.getServiceReferences(clazz.getName(), null);
276 if (services != null) {
277 return bCtx.getService(services[0]);
279 } catch (Exception e) {
280 LOGGER.error("Error in getInstances", e);