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;
42 public NeutronCRUDInterfaces() {
45 public INeutronNetworkCRUD getNetworkInterface() {
46 return networkInterface;
49 public INeutronSubnetCRUD getSubnetInterface() {
50 return subnetInterface;
53 public INeutronPortCRUD getPortInterface() {
57 public INeutronRouterCRUD getRouterInterface() {
58 return routerInterface;
61 public INeutronFloatingIPCRUD getFloatingIPInterface() {
65 public INeutronSecurityGroupCRUD getSecurityGroupInterface() {
69 public INeutronSecurityRuleCRUD getSecurityRuleInterface() {
73 public INeutronFirewallCRUD getFirewallInterface() {
77 public INeutronFirewallPolicyCRUD getFirewallPolicyInterface() {
81 public INeutronFirewallRuleCRUD getFirewallRuleInterface() {
85 public INeutronLoadBalancerCRUD getLoadBalancerInterface() {
89 public INeutronLoadBalancerPoolCRUD getLoadBalancerPoolInterface() {
93 public INeutronLoadBalancerListenerCRUD getLoadBalancerListenerInterface() {
97 public INeutronLoadBalancerHealthMonitorCRUD getLoadBalancerHealthMonitorInterface() {
101 public INeutronMeteringLabelCRUD getMeteringLabelInterface() {
105 public INeutronMeteringLabelRuleCRUD getMeteringLabelRuleInterface() {
109 public INeutronVPNIKEPolicyCRUD getVPNIKEPolicyInterface() {
110 return ikepInterface;
113 public INeutronVPNIPSECPolicyCRUD getVPNIPSECPolicyInterface() {
114 return ipsecpInterface;
117 public void setVPNServiceInterface(INeutronVPNServiceCRUD iface) {
118 vpnInterface = iface;
121 public INeutronVPNServiceCRUD getVPNServiceInterface() {
125 public INeutronVPNIPSECSiteConnectionsCRUD getVPNIPSECSiteConnectionsInterface() {
126 return ipsecScInterface;
129 public NeutronCRUDInterfaces fetchINeutronNetworkCRUD(Object obj) {
130 networkInterface = (INeutronNetworkCRUD) getInstances(INeutronNetworkCRUD.class, obj);
134 public NeutronCRUDInterfaces fetchINeutronSubnetCRUD(Object obj) {
135 subnetInterface = (INeutronSubnetCRUD) getInstances(INeutronSubnetCRUD.class, obj);
139 public NeutronCRUDInterfaces fetchINeutronPortCRUD(Object obj) {
140 portInterface = (INeutronPortCRUD) getInstances(INeutronPortCRUD.class, obj);
144 public NeutronCRUDInterfaces fetchINeutronRouterCRUD(Object obj) {
145 routerInterface = (INeutronRouterCRUD) getInstances(INeutronRouterCRUD.class, obj);
149 public NeutronCRUDInterfaces fetchINeutronFloatingIPCRUD(Object obj) {
150 fipInterface = (INeutronFloatingIPCRUD) getInstances(INeutronFloatingIPCRUD.class, obj);
154 public NeutronCRUDInterfaces fetchINeutronSecurityGroupCRUD(Object obj) {
155 sgInterface = (INeutronSecurityGroupCRUD) getInstances(INeutronSecurityGroupCRUD.class, obj);
159 public NeutronCRUDInterfaces fetchINeutronSecurityRuleCRUD(Object obj) {
160 srInterface = (INeutronSecurityRuleCRUD) getInstances(INeutronSecurityRuleCRUD.class, obj);
164 public NeutronCRUDInterfaces fetchINeutronFirewallCRUD(Object obj) {
165 fwInterface = (INeutronFirewallCRUD) getInstances(INeutronFirewallCRUD.class, obj);
169 public NeutronCRUDInterfaces fetchINeutronFirewallPolicyCRUD(Object obj) {
170 fwpInterface = (INeutronFirewallPolicyCRUD) getInstances(INeutronFirewallPolicyCRUD.class, obj);
174 public NeutronCRUDInterfaces fetchINeutronFirewallRuleCRUD(Object obj) {
175 fwrInterface = (INeutronFirewallRuleCRUD) getInstances(INeutronFirewallRuleCRUD.class, obj);
179 public NeutronCRUDInterfaces fetchINeutronLoadBalancerCRUD(Object obj) {
180 lbInterface = (INeutronLoadBalancerCRUD) getInstances(INeutronLoadBalancerCRUD.class, obj);
184 public NeutronCRUDInterfaces fetchINeutronLoadBalancerPoolCRUD(Object obj) {
185 lbpInterface = (INeutronLoadBalancerPoolCRUD) getInstances(INeutronLoadBalancerPoolCRUD.class, obj);
189 public NeutronCRUDInterfaces fetchINeutronLoadBalancerListenerCRUD(Object obj) {
190 lblInterface = (INeutronLoadBalancerListenerCRUD) getInstances(INeutronLoadBalancerListenerCRUD.class, obj);
194 public NeutronCRUDInterfaces fetchINeutronLoadBalancerHealthMonitorCRUD(Object obj) {
195 lbhmInterface = (INeutronLoadBalancerHealthMonitorCRUD) getInstances(INeutronLoadBalancerHealthMonitorCRUD.class, obj);
199 public NeutronCRUDInterfaces fetchINeutronMeteringLabelCRUD(Object obj) {
200 mlInterface = (INeutronMeteringLabelCRUD) getInstances(INeutronMeteringLabelCRUD.class, obj);
204 public NeutronCRUDInterfaces fetchINeutronMeteringLabelRuleCRUD(Object obj) {
205 mlrInterface = (INeutronMeteringLabelRuleCRUD) getInstances(INeutronMeteringLabelRuleCRUD.class, obj);
209 public NeutronCRUDInterfaces fetchINeutronVPNIKEPolicyCRUD(Object obj) {
210 ikepInterface = (INeutronVPNIKEPolicyCRUD) getInstances(INeutronVPNIKEPolicyCRUD.class, obj);
214 public NeutronCRUDInterfaces fetchINeutronVPNIPSECPolicyCRUD(Object obj) {
215 ipsecpInterface = (INeutronVPNIPSECPolicyCRUD) getInstances(INeutronVPNIPSECPolicyCRUD.class, obj);
219 public NeutronCRUDInterfaces fetchINeutronVPNServiceCRUD(Object obj) {
220 vpnInterface = (INeutronVPNServiceCRUD) getInstances(INeutronVPNServiceCRUD.class, obj);
224 public NeutronCRUDInterfaces fetchINeutronVPNIPSECSiteConnectionsCRUD(Object obj) {
225 ipsecScInterface = (INeutronVPNIPSECSiteConnectionsCRUD) getInstances(INeutronVPNIPSECSiteConnectionsCRUD.class, obj);
229 public Object getInstances(Class<?> clazz, Object bundle) {
231 BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass()).getBundleContext();
233 ServiceReference<?>[] services = null;
234 services = bCtx.getServiceReferences(clazz.getName(), null);
235 if (services != null) {
236 return bCtx.getService(services[0]);
238 } catch (Exception e) {
239 LOGGER.error("Error in getInstances", e);