2 * Copyright IBM Corporation, 2013. 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 INeutronLoadBalancerPoolMemberCRUD lbpmInterface;
36 private INeutronMeteringLabelCRUD mlInterface;
37 private INeutronMeteringLabelRuleCRUD mlrInterface;
38 private INeutronVPNIKEPolicyCRUD ikepInterface;
39 private INeutronVPNIPSECPolicyCRUD ipsecpInterface;
40 private INeutronVPNServiceCRUD vpnInterface;
41 private INeutronVPNIPSECSiteConnectionsCRUD ipsecScInterface;
43 public NeutronCRUDInterfaces() {
46 public INeutronNetworkCRUD getNetworkInterface() {
47 return networkInterface;
50 public INeutronSubnetCRUD getSubnetInterface() {
51 return subnetInterface;
54 public INeutronPortCRUD getPortInterface() {
58 public INeutronRouterCRUD getRouterInterface() {
59 return routerInterface;
62 public INeutronFloatingIPCRUD getFloatingIPInterface() {
66 public INeutronSecurityGroupCRUD getSecurityGroupInterface() {
70 public INeutronSecurityRuleCRUD getSecurityRuleInterface() {
74 public INeutronFirewallCRUD getFirewallInterface() {
78 public INeutronFirewallPolicyCRUD getFirewallPolicyInterface() {
82 public INeutronFirewallRuleCRUD getFirewallRuleInterface() {
86 public INeutronLoadBalancerCRUD getLoadBalancerInterface() {
90 public INeutronLoadBalancerPoolCRUD getLoadBalancerPoolInterface() {
94 public INeutronLoadBalancerListenerCRUD getLoadBalancerListenerInterface() {
98 public INeutronLoadBalancerHealthMonitorCRUD getLoadBalancerHealthMonitorInterface() {
102 public INeutronLoadBalancerPoolMemberCRUD getLoadBalancerPoolMemberInterface() {
103 return lbpmInterface;
106 public INeutronMeteringLabelCRUD getMeteringLabelInterface() {
110 public INeutronMeteringLabelRuleCRUD getMeteringLabelRuleInterface() {
114 public INeutronVPNIKEPolicyCRUD getVPNIKEPolicyInterface() {
115 return ikepInterface;
118 public INeutronVPNIPSECPolicyCRUD getVPNIPSECPolicyInterface() {
119 return ipsecpInterface;
122 public void setVPNServiceInterface(INeutronVPNServiceCRUD iface) {
123 vpnInterface = iface;
126 public INeutronVPNServiceCRUD getVPNServiceInterface() {
130 public INeutronVPNIPSECSiteConnectionsCRUD getVPNIPSECSiteConnectionsInterface() {
131 return ipsecScInterface;
134 public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
135 networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
139 public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
140 subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
144 public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
145 portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
149 public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
150 routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
154 public NeutronCRUDInterfaces fetchINeutronFloatingIPCRUD(Object obj) {
155 fipInterface = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, obj);
159 public NeutronCRUDInterfaces fetchINeutronSecurityGroupCRUD(Object obj) {
160 sgInterface = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, obj);
164 public NeutronCRUDInterfaces fetchINeutronSecurityRuleCRUD(Object obj) {
165 srInterface = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, obj);
169 public NeutronCRUDInterfaces fetchINeutronFirewallCRUD(Object obj) {
170 fwInterface = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, obj);
174 public NeutronCRUDInterfaces fetchINeutronFirewallPolicyCRUD(Object obj) {
175 fwpInterface = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, obj);
179 public NeutronCRUDInterfaces fetchINeutronFirewallRuleCRUD(Object obj) {
180 fwrInterface = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, obj);
184 public NeutronCRUDInterfaces fetchINeutronLoadBalancerCRUD(Object obj) {
185 lbInterface = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, obj);
189 public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolCRUD(Object obj) {
190 lbpInterface = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, obj);
194 public NeutronCRUDInterfaces fetchINeutronLoadBalancerListenerCRUD(Object obj) {
195 lblInterface = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, obj);
199 public NeutronCRUDInterfaces fetchINeutronLoadBalancerHealthMonitorCRUD(Object obj) {
200 lbhmInterface = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, obj);
204 public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolMemberCRUD(Object obj) {
205 lbpmInterface = (INeutronLoadBalancerPoolMemberCRUD) getInstances(INeutronLoadBalancerPoolMemberCRUD.class, obj);
209 public NeutronCRUDInterfaces fetchINeutronMeteringLabelCRUD(Object obj) {
210 mlInterface = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, obj);
214 public NeutronCRUDInterfaces fetchINeutronMeteringLabelRuleCRUD(Object obj) {
215 mlrInterface = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, obj);
219 public NeutronCRUDInterfaces fetchINeutronVPNIKEPolicyCRUD(Object obj) {
220 ikepInterface = (INeutronVPNIKEPolicyCRUD) getInstances(INeutronVPNIKEPolicyCRUD.class, obj);
224 public NeutronCRUDInterfaces fetchINeutronVPNIPSECPolicyCRUD(Object obj) {
225 ipsecpInterface = (INeutronVPNIPSECPolicyCRUD) getInstances(INeutronVPNIPSECPolicyCRUD.class, obj);
229 public NeutronCRUDInterfaces fetchINeutronVPNServiceCRUD(Object obj) {
230 vpnInterface = (INeutronVPNServiceCRUD) getInstances(INeutronVPNServiceCRUD.class, obj);
234 public NeutronCRUDInterfaces fetchINeutronVPNIPSECSiteConnectionsCRUD(Object obj) {
235 ipsecScInterface = (INeutronVPNIPSECSiteConnectionsCRUD) getInstances(INeutronVPNIPSECSiteConnectionsCRUD.class, obj);
239 public Object getInstances(Class<?> clazz, Object bundle) {
241 BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
243 ServiceReference<?>[] services = null;
244 services = bCtx.getServiceReferences(clazz.getName(), null);
245 if (services != null) {
246 return bCtx.getService(services[0]);
248 } catch (Exception e) {
249 LOGGER.error("Error in getInstances", e);