+++ /dev/null
-/*
- * Copyright (C) 2013 Red Hat, Inc.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Authors : Madhu Venugopal, Brent Salisbury, Dave Tucker
- */
-
-package org.opendaylight.ovsdb.openstack.netvirt.providers;
-
-import org.apache.felix.dm.DependencyActivatorBase;
-import org.apache.felix.dm.DependencyManager;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.ovsdb.openstack.netvirt.api.*;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.AbstractServiceInstance;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumerImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.OF13Provider;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestratorImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.ArpResponderService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.ClassifierService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.EgressAclService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.InboundNatService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.IngressAclService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.L2ForwardingService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.L2RewriteService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.L3ForwardingService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.LoadBalancerService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.OutboundNatService;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.RoutingService;
-
-import org.osgi.framework.BundleContext;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-/**
- * OSGi Bundle Activator for the Neutron providers
- */
-public class Activator extends DependencyActivatorBase {
-
- @Override
- public void init(BundleContext context, DependencyManager manager) throws Exception {
-
- manager.add(createComponent()
- .setInterface(MdsalConsumer.class.getName(), null)
- .setImplementation(MdsalConsumerImpl.class)
- .add(createServiceDependency().setService(BindingAwareBroker.class).setRequired(true)));
-
- Dictionary<String, Object> props1 = new Hashtable<>();
- props1.put(Constants.SOUTHBOUND_PROTOCOL_PROPERTY, "ovsdb");
- props1.put(Constants.OPENFLOW_VERSION_PROPERTY, Constants.OPENFLOW13);
-
- manager.add(createComponent()
- .setInterface(NetworkingProvider.class.getName(), props1)
- .setImplementation(OF13Provider.class)
- .add(createServiceDependency().setService(ConfigurationService.class).setRequired(true))
- .add(createServiceDependency().setService(BridgeConfigurationManager.class).setRequired(true))
- .add(createServiceDependency().setService(TenantNetworkManager.class).setRequired(true))
- .add(createServiceDependency().setService(SecurityServicesManager.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true))
- .add(createServiceDependency().setService(ClassifierProvider.class).setRequired(true))
- .add(createServiceDependency().setService(IngressAclProvider.class).setRequired(true))
- .add(createServiceDependency().setService(EgressAclProvider.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true))
- .add(createServiceDependency().setService(L2ForwardingProvider.class).setRequired(true)));
-
- manager.add(createComponent()
- .setInterface(new String[]{PipelineOrchestrator.class.getName(),
- NodeCacheListener.class.getName()}, null)
- .setImplementation(PipelineOrchestratorImpl.class)
- .add(createServiceDependency().setService(AbstractServiceInstance.class)
- .setCallbacks("registerService", "unregisterService"))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true)));
-
- Dictionary<String, Object> props2 = new Hashtable<>();
- props2.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.CLASSIFIER);
- props2.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[]{AbstractServiceInstance.class.getName(),
- ClassifierProvider.class.getName()},props2)
- .setImplementation(ClassifierService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props3 = new Hashtable<>();
- props3.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.ARP_RESPONDER);
- props3.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[]{AbstractServiceInstance.class.getName(), ArpProvider.class.getName()},
- props3)
- .setImplementation(ArpResponderService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props4 = new Hashtable<>();
- props4.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.INBOUND_NAT);
- props4.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[]{AbstractServiceInstance.class.getName(),
- InboundNatProvider.class.getName()}, props4)
- .setImplementation(InboundNatService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props5 = new Hashtable<>();
- props5.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.INGRESS_ACL);
- props5.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[]{AbstractServiceInstance.class.getName(), IngressAclProvider.class.getName()},
- props5)
- .setImplementation(IngressAclService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props6 = new Hashtable<>();
- props6.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.LOAD_BALANCER);
- props6.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[] {AbstractServiceInstance.class.getName(),
- LoadBalancerProvider.class.getName()}, props6)
- .setImplementation(LoadBalancerService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props7 = new Hashtable<>();
- props7.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.ROUTING);
- props7.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[] {AbstractServiceInstance.class.getName(), RoutingProvider.class.getName()},
- props7)
- .setImplementation(RoutingService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props8 = new Hashtable<>();
- props8.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.L3_FORWARDING);
- props8.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[] {AbstractServiceInstance.class.getName(),
- L3ForwardingProvider.class.getName()}, props8)
- .setImplementation(L3ForwardingService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props9 = new Hashtable<>();
- props9.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.L2_REWRITE);
- props9.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(AbstractServiceInstance.class.getName(), props9)
- .setImplementation(L2RewriteService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props10 = new Hashtable<>();
- props10.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.L2_FORWARDING);
- props10.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[] {AbstractServiceInstance.class.getName(),
- L2ForwardingProvider.class.getName()},
- props10)
- .setImplementation(L2ForwardingService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props11 = new Hashtable<>();
- props11.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.EGRESS_ACL);
- props11.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[]{AbstractServiceInstance.class.getName(), EgressAclProvider.class.getName()},
- props11)
- .setImplementation(EgressAclService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
-
- Dictionary<String, Object> props12 = new Hashtable<>();
- props12.put(AbstractServiceInstance.SERVICE_PROPERTY, Service.OUTBOUND_NAT);
- props12.put(Constants.PROVIDER_NAME_PROPERTY, OF13Provider.NAME);
-
- manager.add(createComponent()
- .setInterface(new String[]{AbstractServiceInstance.class.getName(),
- OutboundNatProvider.class.getName()}, props12)
- .setImplementation(OutboundNatService.class)
- .add(createServiceDependency().setService(PipelineOrchestrator.class).setRequired(true))
- .add(createServiceDependency().setService(MdsalConsumer.class).setRequired(true)));
- }
-
- @Override
- public void destroy(BundleContext context, DependencyManager manager) throws Exception {
- }
-}
+++ /dev/null
-/*
- * Copyright (C) 2013 Red Hat, Inc.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Authors : Madhu Venugopal
- */
-
-package org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
-import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
-
-public interface MdsalConsumer {
- public ConsumerContext getConsumerContext();
- public DataBroker getDataBroker();
- public NotificationProviderService getNotificationService();
-}
+++ /dev/null
-/*
- * Copyright (C) 2013 Red Hat, Inc.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Authors : Madhu Venugopal
- */
-
-package org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13;
-
-import org.apache.felix.dm.Component;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
-import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
-import org.osgi.framework.BundleContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-public class MdsalConsumerImpl implements BindingAwareConsumer, MdsalConsumer, BindingAwareProvider {
-
- private BundleContext ctx = null;
- private volatile BindingAwareBroker broker;
- private ConsumerContext consumerContext = null;
- private DataBroker dataBroker;
- private NotificationProviderService notificationService;
-
- static final Logger logger = LoggerFactory.getLogger(MdsalConsumerImpl.class);
-
- void init(Component c) {
- this.ctx = c.getDependencyManager().getBundleContext();
- logger.info("Open vSwitch OpenFlow 1.3 Neutron Networking Provider Registered with MD-SAL");
- broker.registerConsumer(this, this.ctx);
- broker.registerProvider(this, this.ctx);
- }
-
- void destroy() {
- // Now lets close MDSAL session
- if (this.consumerContext != null) {
- //this.consumerContext.close();
- this.dataBroker = null;
- this.consumerContext = null;
- }
- }
-
- @Override
- public void onSessionInitialized(ConsumerContext session) {
- this.consumerContext = session;
- dataBroker = session.getSALService(DataBroker.class);
- logger.info("OVSDB Neutron Session Initialized with CONSUMER CONTEXT {}", session.toString());
- }
-
- @Override
- public ConsumerContext getConsumerContext() {
- return consumerContext;
- }
- @Override
- public DataBroker getDataBroker() {
- return dataBroker;
- }
- @Override
- public NotificationProviderService getNotificationService() {
- return notificationService;
- }
-
- @Override
- public void onSessionInitiated(ProviderContext session) {
- notificationService = session.getSALService(NotificationProviderService.class);
- }
-}
/* TODO SB_MIGRATION */
//@Mock private OvsdbConnectionService connectionService;
@Mock private PipelineOrchestrator orchestrator;
- @Mock private MdsalConsumer mdsalConsumer;
-
private Service service = Service.L3_FORWARDING;
DataBroker dataBrocker = mock(DataBroker.class);
ReadWriteTransaction transaction = mock(ReadWriteTransaction.class);
when(dataBrocker.newReadWriteTransaction()).thenReturn(transaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBrocker);
+ ///when(mdsalConsumer.getDataBroker()).thenReturn(dataBrocker);
CheckedFuture<Void, TransactionCommitFailedException> commitFuture = mock(CheckedFuture.class);
when(transaction.submit()).thenReturn(commitFuture);
DataBroker dataBrocker = mock(DataBroker.class);
WriteTransaction transaction = mock(WriteTransaction.class);
when(dataBrocker.newWriteOnlyTransaction()).thenReturn(transaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBrocker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBrocker);
CheckedFuture<Void, TransactionCommitFailedException> commitFuture = mock(CheckedFuture.class);
when(transaction.submit()).thenReturn(commitFuture);
DataBroker dataBrocker = mock(DataBroker.class);
ReadOnlyTransaction transaction = mock(ReadOnlyTransaction.class);
when(dataBrocker.newReadOnlyTransaction()).thenReturn(transaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBrocker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBrocker);
NodeBuilder nodeBuilder = mock(NodeBuilder.class);
when(nodeBuilder.getKey()).thenReturn(mock(NodeKey.class));
+++ /dev/null
-/*
- * Copyright (c) 2015 Inocybe Technologies. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.same;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.neutron.spi.INeutronPortCRUD;
-import org.opendaylight.neutron.spi.INeutronSubnetCRUD;
-import org.opendaylight.ovsdb.openstack.netvirt.NeutronCacheUtils;
-import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
-import org.opendaylight.ovsdb.openstack.netvirt.api.NodeCacheManager;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.EventDispatcherImpl;
-import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper;
-
-/**
- * Unit test for {@link MdsalConsumerImpl}
- */
-/* TODO SB_MIGRATION */
-@Ignore
-@RunWith(MockitoJUnitRunner.class)
-public class MdsalConsumerImplTest {
-
- private MdsalConsumerImpl mdsalConsumer;
-
- @Mock
- private DataBroker dataBroker;
-
- @Mock
- private ConsumerContext session;
-
- @Mock
- private ProviderContext providerSession;
-
- @Mock
- private NotificationProviderService notificationService;
-
- @Before
- public void setUp(){
-
- mdsalConsumer = new MdsalConsumerImpl();
- dataBroker = Mockito.mock(DataBroker.class);
- session = Mockito.mock(ConsumerContext.class);
- providerSession = Mockito.mock(ProviderContext.class);
- notificationService = Mockito.mock(NotificationProviderService.class);
-
- when(session.getSALService(DataBroker.class)).thenReturn(dataBroker);
- when(providerSession.getSALService(NotificationProviderService.class)).thenReturn(notificationService);
-
- //Initialize the Mdsal consumer
- mdsalConsumer.onSessionInitialized(session);
- mdsalConsumer.onSessionInitiated(providerSession);
- }
-
- /**
- * Test method for
- * {@link MdsalConsumerImpl#getConsumerContext()}
- * {@link MdsalConsumerImpl#getDataBroker()}
- * {@link MdsalConsumerImpl#getNotificationService()}
- *
- */
- @Test
- public void InitializationsTests(){
-
- assertSame("Error, getConsumerContext - returned context is invalid", session, mdsalConsumer.getConsumerContext());
- assertSame("Error, getDataBroker - returned broker is invalid", dataBroker, mdsalConsumer.getDataBroker());
- assertSame("Error, getNotificationService - returned notification service provider is invalid", notificationService, mdsalConsumer.getNotificationService());
-
- }
-
- /**
- * Get the specified field from MdsalConsumerImpl using reflection
- * @param instance - the class instance
- * @param fieldName - the field to retrieve
- *
- * @return the desired field
- */
- private Object getClassField(MdsalConsumerImpl instance, String fieldName) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{
- Field field = MdsalConsumerImpl.class.getDeclaredField(fieldName);
- field.setAccessible(true);
- return field.get(instance);
- }
-}
@Mock private TenantNetworkManager tenantNetworkManager;
/* TODO SB_MIGRATION */
//@Mock private OvsdbConnectionService connectionService;
- @Mock private MdsalConsumer mdsalConsumer;
@Mock private SecurityServicesManager securityServicesManager;
@Mock private IngressAclProvider ingressAclProvider;
@Mock private EgressAclProvider egressAclProvider;
tenantNetworkManager = Mockito.mock(TenantNetworkManager.class);
/* TODO SB_MIGRATION */
//connectionService = Mockito.mock(OvsdbConnectionService.class);
- mdsalConsumer = Mockito.mock(MdsalConsumer.class);
+ //mdsalConsumer = Mockito.mock(MdsalConsumer.class);
securityServicesManager = Mockito.mock(SecurityServicesManager.class);
ingressAclProvider = Mockito.mock(IngressAclProvider.class);
egressAclProvider = Mockito.mock(EgressAclProvider.class);
/* TODO SB_MIGRATION */
//SeedClassFieldValue(of13Provider, "ovsdbConfigurationService", ovsdbConfigurationService);
//SeedClassFieldValue(of13Provider, "connectionService", connectionService);
- SeedClassFieldValue(of13Provider, "mdsalConsumer", mdsalConsumer);
+ //SeedClassFieldValue(of13Provider, "mdsalConsumer", mdsalConsumer);
SeedClassFieldValue(of13Provider, "securityServicesManager", securityServicesManager);
SeedClassFieldValue(of13Provider, "ingressAclProvider", ingressAclProvider);
SeedClassFieldValue(of13Provider, "egressAclProvider", egressAclProvider);
import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
import org.opendaylight.ovsdb.openstack.netvirt.api.Status;
import org.opendaylight.ovsdb.openstack.netvirt.api.StatusCode;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@InjectMocks private ArpResponderService arpResponderService = new ArpResponderService();
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
private static final String HOST_ADDRESS = "121.0.0.1";
private static final String MAC_ADDRESS = "87:1D:5E:02:40:B7";
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
// test for Action.ADD
assertEquals("Error, did not return the expected StatusCode", new Status(StatusCode.SUCCESS), arpResponderService.programStaticArpEntry(Long.valueOf(12), "2", MAC_ADDRESS, ipAddress, Action.ADD));
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
private static final String MAC_ADDRESS = "87:1D:5E:02:40:B7";
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
}
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.neutron.spi.NeutronSecurityGroup;
import org.opendaylight.neutron.spi.NeutronSecurityRule;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@InjectMocks private EgressAclService egressAclService = new EgressAclService();
@Spy private EgressAclService egressAclServiceSpy;
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
import org.opendaylight.ovsdb.openstack.netvirt.api.Status;
import org.opendaylight.ovsdb.openstack.netvirt.api.StatusCode;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@InjectMocks private InboundNatService inboundNatService = new InboundNatService(Service.ARP_RESPONDER);
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
}
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.neutron.spi.NeutronSecurityGroup;
import org.opendaylight.neutron.spi.NeutronSecurityRule;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@InjectMocks private IngressAclService ingressAclService = new IngressAclService();
@Spy private IngressAclService ingressAclServiceSpy;
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
@InjectMocks private L2ForwardingService l2ForwardingService = new L2ForwardingService(Service.ARP_RESPONDER);
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
Optional<Flow> data = mock(Optional.class);
when(future.get()).thenReturn(data);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
}
import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
import org.opendaylight.ovsdb.openstack.netvirt.api.Status;
import org.opendaylight.ovsdb.openstack.netvirt.api.StatusCode;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@InjectMocks private L3ForwardingService l3ForwardingService = new L3ForwardingService();
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
}
import org.opendaylight.ovsdb.openstack.netvirt.api.StatusCode;
import org.opendaylight.ovsdb.openstack.netvirt.api.LoadBalancerConfiguration;
import org.opendaylight.ovsdb.openstack.netvirt.api.LoadBalancerConfiguration.LoadBalancerPoolMember;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
@InjectMocks private LoadBalancerService loadBalancerService = new LoadBalancerService(Service.ARP_RESPONDER);
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
import org.opendaylight.ovsdb.openstack.netvirt.api.Status;
import org.opendaylight.ovsdb.openstack.netvirt.api.StatusCode;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@InjectMocks private OutboundNatService outboundNatService = new OutboundNatService();
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
}
import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
import org.opendaylight.ovsdb.openstack.netvirt.api.Status;
import org.opendaylight.ovsdb.openstack.netvirt.api.StatusCode;
-import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.MdsalConsumer;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.PipelineOrchestrator;
import org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.Service;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
@InjectMocks private RoutingService routingService = new RoutingService();
- @Mock private MdsalConsumer mdsalConsumer;
+ //@Mock private MdsalConsumer mdsalConsumer;
@Mock private PipelineOrchestrator orchestrator;
@Mock private ReadWriteTransaction readWriteTransaction;
when(dataBroker.newReadWriteTransaction()).thenReturn(readWriteTransaction);
when(dataBroker.newWriteOnlyTransaction()).thenReturn(writeTransaction);
- when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
+ //when(mdsalConsumer.getDataBroker()).thenReturn(dataBroker);
when(orchestrator.getNextServiceInPipeline(any(Service.class))).thenReturn(Service.ARP_RESPONDER);
}
+++ /dev/null
-/*
- * Copyright (C) 2013 Red Hat, Inc.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Authors : Madhu Venugopal, Brent Salisbury, Dave Tucker
- */
-
-package org.opendaylight.ovsdb.openstack.netvirt;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.apache.felix.dm.DependencyActivatorBase;
-import org.apache.felix.dm.DependencyManager;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.neutron.spi.INeutronFirewallAware;
-import org.opendaylight.neutron.spi.INeutronFirewallPolicyAware;
-import org.opendaylight.neutron.spi.INeutronFirewallRuleAware;
-import org.opendaylight.neutron.spi.INeutronFloatingIPAware;
-import org.opendaylight.neutron.spi.INeutronLoadBalancerAware;
-import org.opendaylight.neutron.spi.INeutronLoadBalancerCRUD;
-import org.opendaylight.neutron.spi.INeutronLoadBalancerPoolAware;
-import org.opendaylight.neutron.spi.INeutronLoadBalancerPoolCRUD;
-import org.opendaylight.neutron.spi.INeutronLoadBalancerPoolMemberAware;
-import org.opendaylight.neutron.spi.INeutronNetworkAware;
-import org.opendaylight.neutron.spi.INeutronNetworkCRUD;
-import org.opendaylight.neutron.spi.INeutronPortAware;
-import org.opendaylight.neutron.spi.INeutronPortCRUD;
-import org.opendaylight.neutron.spi.INeutronRouterAware;
-import org.opendaylight.neutron.spi.INeutronSecurityGroupAware;
-import org.opendaylight.neutron.spi.INeutronSecurityRuleAware;
-import org.opendaylight.neutron.spi.INeutronSubnetAware;
-import org.opendaylight.neutron.spi.INeutronSubnetCRUD;
-import org.opendaylight.ovsdb.openstack.netvirt.api.ArpProvider;
-import org.opendaylight.ovsdb.openstack.netvirt.api.BridgeConfigurationManager;
-import org.opendaylight.ovsdb.openstack.netvirt.api.ConfigurationService;
-import org.opendaylight.ovsdb.openstack.netvirt.api.Constants;
-import org.opendaylight.ovsdb.openstack.netvirt.api.EventDispatcher;
-import org.opendaylight.ovsdb.openstack.netvirt.api.InboundNatProvider;
-import org.opendaylight.ovsdb.openstack.netvirt.api.L3ForwardingProvider;
-import org.opendaylight.ovsdb.openstack.netvirt.api.LoadBalancerProvider;
-import org.opendaylight.ovsdb.openstack.netvirt.api.MultiTenantAwareRouter;
-import org.opendaylight.ovsdb.openstack.netvirt.api.NetworkingProvider;
-import org.opendaylight.ovsdb.openstack.netvirt.api.NetworkingProviderManager;
-import org.opendaylight.ovsdb.openstack.netvirt.api.NodeCacheListener;
-import org.opendaylight.ovsdb.openstack.netvirt.api.NodeCacheManager;
-import org.opendaylight.ovsdb.openstack.netvirt.api.OutboundNatProvider;
-import org.opendaylight.ovsdb.openstack.netvirt.api.OvsdbInventoryListener;
-import org.opendaylight.ovsdb.openstack.netvirt.api.OvsdbInventoryService;
-import org.opendaylight.ovsdb.openstack.netvirt.api.RoutingProvider;
-import org.opendaylight.ovsdb.openstack.netvirt.api.SecurityServicesManager;
-import org.opendaylight.ovsdb.openstack.netvirt.api.TenantNetworkManager;
-import org.opendaylight.ovsdb.openstack.netvirt.api.VlanConfigurationCache;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.BridgeConfigurationManagerImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.ConfigurationServiceImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.EventDispatcherImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.OvsdbInventoryServiceImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.NodeCacheManagerImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.OpenstackRouter;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.ProviderNetworkManagerImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.SecurityServicesImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.TenantNetworkManagerImpl;
-import org.opendaylight.ovsdb.openstack.netvirt.impl.VlanConfigurationCacheImpl;
-
-import org.osgi.framework.BundleContext;
-
-/**
- * OSGi bundle activator for the OVSDB Neutron Interface.
- */
-public class Activator extends DependencyActivatorBase {
-
- @Override
- public void init(BundleContext context, DependencyManager manager) throws Exception {
-
- manager.add(createComponent()
- .setInterface(ConfigurationService.class.getName(), null)
- .setImplementation(ConfigurationServiceImpl.class));
-
- manager.add(createComponent()
- .setInterface(BridgeConfigurationManager.class.getName(), null)
- .setImplementation(BridgeConfigurationManagerImpl.class)
- .add(createServiceDependency().setService(ConfigurationService.class).setRequired(true))
- .add(createServiceDependency().setService(NetworkingProviderManager.class)));
-
- manager.add(createComponent()
- .setInterface(TenantNetworkManager.class.getName(), null)
- .setImplementation(TenantNetworkManagerImpl.class)
- .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(VlanConfigurationCache.class)));
-
- manager.add(createComponent()
- .setInterface(VlanConfigurationCache.class.getName(), null)
- .setImplementation(VlanConfigurationCacheImpl.class)
- .add(createServiceDependency().setService(TenantNetworkManager.class)));
-
- Dictionary<String, Object> floatingIPHandlerPorperties = new Hashtable<>();
- floatingIPHandlerPorperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY,
- AbstractEvent.HandlerType.NEUTRON_FLOATING_IP);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronFloatingIPAware.class.getName(), AbstractHandler.class.getName()},
- floatingIPHandlerPorperties)
- .setImplementation(FloatingIPHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true)));
-
- Dictionary<String, Object> networkHandlerProperties = new Hashtable<>();
- networkHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.NEUTRON_NETWORK);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronNetworkAware.class.getName(), AbstractHandler.class.getName()},
- networkHandlerProperties)
- .setImplementation(NetworkHandler.class)
- .add(createServiceDependency().setService(TenantNetworkManager.class).setRequired(true))
- .add(createServiceDependency().setService(BridgeConfigurationManager.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true)));
-
- Dictionary<String, Object> subnetHandlerProperties = new Hashtable<>();
- subnetHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.NEUTRON_SUBNET);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronSubnetAware.class.getName(), AbstractHandler.class.getName()},
- subnetHandlerProperties)
- .setImplementation(SubnetHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true)));
-
- Dictionary<String, Object> portHandlerProperties = new Hashtable<>();
- portHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.NEUTRON_PORT);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronPortAware.class.getName(), AbstractHandler.class.getName()},
- portHandlerProperties)
- .setImplementation(PortHandler.class)
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true))
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true)));
-
- Dictionary<String, Object> routerHandlerProperties = new Hashtable<>();
- routerHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.NEUTRON_ROUTER);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronRouterAware.class.getName(), AbstractHandler.class.getName()},
- routerHandlerProperties)
- .setImplementation(RouterHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true)));
-
- Dictionary<String, Object> southboundHandlerProperties = new Hashtable<>();
- southboundHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.SOUTHBOUND);
-
- manager.add(createComponent()
- .setInterface(new String[]{OvsdbInventoryListener.class.getName(),
- NodeCacheListener.class.getName(),
- AbstractHandler.class.getName()},
- southboundHandlerProperties)
- .setImplementation(SouthboundHandler.class)
- .add(createServiceDependency().setService(ConfigurationService.class).setRequired(true))
- .add(createServiceDependency().setService(BridgeConfigurationManager.class).setRequired(true))
- .add(createServiceDependency().setService(TenantNetworkManager.class).setRequired(true))
- .add(createServiceDependency().setService(NetworkingProviderManager.class).setRequired(true))
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true))
- .add(createServiceDependency().setService(OvsdbInventoryService.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true)));
-
- Dictionary<String, Object> lbaasHandlerProperties = new Hashtable<>();
- lbaasHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY,
- AbstractEvent.HandlerType.NEUTRON_LOAD_BALANCER);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronLoadBalancerAware.class.getName(),
- NodeCacheListener.class.getName(), AbstractHandler.class.getName()},
- lbaasHandlerProperties)
- .setImplementation(LBaaSHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronLoadBalancerCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronLoadBalancerPoolCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(LoadBalancerProvider.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true)));
-
- Dictionary<String, Object> lbaasPoolHandlerProperties = new Hashtable<>();
- lbaasPoolHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY,
- AbstractEvent.HandlerType.NEUTRON_LOAD_BALANCER_POOL);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronLoadBalancerPoolAware.class.getName(),
- AbstractHandler.class.getName()}, lbaasPoolHandlerProperties)
- .setImplementation(LBaaSPoolHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronLoadBalancerCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(LoadBalancerProvider.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true)));
-
- Dictionary<String, Object> lbaasPoolMemberHandlerProperties = new Hashtable<>();
- lbaasPoolMemberHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY,
- AbstractEvent.HandlerType.NEUTRON_LOAD_BALANCER_POOL_MEMBER);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronLoadBalancerPoolMemberAware.class.getName(),
- AbstractHandler.class.getName()}, lbaasPoolMemberHandlerProperties)
- .setImplementation(LBaaSPoolMemberHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronLoadBalancerCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronLoadBalancerPoolCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(LoadBalancerProvider.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true)));
-
- Dictionary<String, Object> portSecurityHandlerProperties = new Hashtable<>();
- portSecurityHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY,
- AbstractEvent.HandlerType.NEUTRON_PORT_SECURITY);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronSecurityRuleAware.class.getName(),
- INeutronSecurityGroupAware.class.getName(), AbstractHandler.class.getName()},
- portSecurityHandlerProperties)
- .setImplementation(PortSecurityHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)));
-
- manager.add(createComponent()
- .setInterface(new String[]{SecurityServicesManager.class.getName()}, null)
- .setImplementation(SecurityServicesImpl.class)
- .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true)));
-
- Dictionary<String, Object> fWaasHandlerProperties = new Hashtable<>();
- fWaasHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.NEUTRON_FWAAS);
-
- manager.add(createComponent()
- .setInterface(new String[]{INeutronFirewallAware.class.getName(),
- INeutronFirewallRuleAware.class.getName(), INeutronFirewallPolicyAware.class.getName(),
- AbstractHandler.class.getName()}, fWaasHandlerProperties)
- .setImplementation(FWaasHandler.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)));
-
- manager.add(createComponent()
- .setInterface(NetworkingProviderManager.class.getName(), null)
- .setImplementation(ProviderNetworkManagerImpl.class)
- .add(createServiceDependency().setService(NetworkingProvider.class)
- .setCallbacks("providerAdded", "providerRemoved")));
-
- manager.add(createComponent()
- .setInterface(EventDispatcher.class.getName(), null)
- .setImplementation(EventDispatcherImpl.class)
- .add(createServiceDependency()
- .setService(AbstractHandler.class)
- .setCallbacks("eventHandlerAdded", "eventHandlerRemoved")));
-
- manager.add(createComponent()
- .setInterface(NeutronL3Adapter.class.getName(), null)
- .setImplementation(NeutronL3Adapter.class)
- .add(createServiceDependency().setService(ConfigurationService.class).setRequired(true))
- .add(createServiceDependency().setService(TenantNetworkManager.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true))
- .add(createServiceDependency().setService(ArpProvider.class).setRequired(false))
- .add(createServiceDependency().setService(InboundNatProvider.class).setRequired(false))
- .add(createServiceDependency().setService(OutboundNatProvider.class).setRequired(false))
- .add(createServiceDependency().setService(RoutingProvider.class).setRequired(false))
- .add(createServiceDependency().setService(L3ForwardingProvider.class).setRequired(false)));
-
- manager.add(createComponent()
- .setInterface(MultiTenantAwareRouter.class.getName(), null)
- .setImplementation(OpenstackRouter.class));
-
- Dictionary<String, Object> nodeCacheManagerProperties = new Hashtable<>();
- nodeCacheManagerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.NODE);
- manager.add(createComponent()
- .setInterface(new String[]{NodeCacheManager.class.getName(), AbstractHandler.class.getName()},
- nodeCacheManagerProperties)
- .setImplementation(NodeCacheManagerImpl.class)
- .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))
- .add(createServiceDependency().setService(NodeCacheListener.class)
- .setCallbacks("cacheListenerAdded", "cacheListenerRemoved")));
-
- manager.add(createComponent()
- .setInterface(new String[] {OvsdbInventoryService.class.getName()}, null)
- .setImplementation(OvsdbInventoryServiceImpl.class)
- .add(createServiceDependency().setService(OvsdbInventoryListener.class)
- .setCallbacks("listenerAdded", "listenerRemoved"))
- .add(createServiceDependency().setService(BindingAwareBroker.class).setRequired(true)));
- }
-
- @Override
- public void destroy(BundleContext context, DependencyManager manager) throws Exception {
- }
-}
package org.opendaylight.ovsdb.openstack.netvirt.api;
/**
- * MdsalConsumer is the interface to the mdsal for netvirt.
+ * OvsdbInventoryService is the interface to the southbound for netvirt.
*
* @author Sam Hague (shague@redhat.com)
*/
private void ovsdbUpdate(Node node, DataObject resourceAugmentationDataChanges,
OvsdbInventoryListener.OvsdbType ovsdbType, Action action) {
- Set<OvsdbInventoryListener> mdsalConsumerListeners = OvsdbInventoryServiceImpl.getMdsalConsumerListeners();
- for (OvsdbInventoryListener mdsalConsumerListener : mdsalConsumerListeners) {
- mdsalConsumerListener.ovsdbUpdate(node, resourceAugmentationDataChanges, ovsdbType, action);
+ Set<OvsdbInventoryListener> ovsdbInventoryListeners = OvsdbInventoryServiceImpl.getOvsdbInventoryListeners();
+ for (OvsdbInventoryListener ovsdbInventoryListener : ovsdbInventoryListeners) {
+ ovsdbInventoryListener.ovsdbUpdate(node, resourceAugmentationDataChanges, ovsdbType, action);
}
}
private void triggerUpdates() {
- Set<OvsdbInventoryListener> mdsalConsumerListeners = OvsdbInventoryServiceImpl.getMdsalConsumerListeners();
- for (OvsdbInventoryListener mdsalConsumerListener : mdsalConsumerListeners) {
- mdsalConsumerListener.triggerUpdates();
+ Set<OvsdbInventoryListener> ovsdbInventoryListeners = OvsdbInventoryServiceImpl.getOvsdbInventoryListeners();
+ for (OvsdbInventoryListener ovsdbInventoryListener : ovsdbInventoryListeners) {
+ ovsdbInventoryListener.triggerUpdates();
}
}
}
import com.google.common.collect.Sets;
import java.util.Set;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
import org.opendaylight.ovsdb.openstack.netvirt.ConfigInterface;
import org.opendaylight.ovsdb.openstack.netvirt.api.OvsdbInventoryService;
import org.slf4j.LoggerFactory;
/**
- * MdsalConsumerImpl is the implementation for {@link OvsdbInventoryService}
+ * OvsdbInventoryServiceImpl is the implementation for {@link OvsdbInventoryService}
*
* @author Sam Hague (shague@redhat.com)
*/
public class OvsdbInventoryServiceImpl implements ConfigInterface, OvsdbInventoryService {
private static final Logger LOG = LoggerFactory.getLogger(OvsdbInventoryServiceImpl.class);
private static DataBroker dataBroker = null;
- private static Set<OvsdbInventoryListener> mdsalConsumerListeners = Sets.newCopyOnWriteArraySet();
+ private static Set<OvsdbInventoryListener> ovsdbInventoryListeners = Sets.newCopyOnWriteArraySet();
private OvsdbDataChangeListener ovsdbDataChangeListener = null;
- //private static SouthboundImpl southboundImpl = null;
- private volatile BindingAwareBroker broker;
public OvsdbInventoryServiceImpl(ProviderContext providerContext) {
dataBroker = providerContext.getSALService(DataBroker.class);
- LOG.info("netvirt MdsalConsumer initialized");
+ LOG.info("OvsdbInventoryServiceImpl initialized");
ovsdbDataChangeListener = new OvsdbDataChangeListener(dataBroker);
- //southboundImpl = new SouthboundImpl(dataBroker);
}
@Override
public void listenerAdded(OvsdbInventoryListener listener) {
- mdsalConsumerListeners.add(listener);
+ ovsdbInventoryListeners.add(listener);
LOG.info("listenerAdded: {}", listener);
}
@Override
public void listenerRemoved(OvsdbInventoryListener listener) {
- mdsalConsumerListeners.remove(listener);
+ ovsdbInventoryListeners.remove(listener);
LOG.info("listenerRemoved: {}", listener);
}
ovsdbDataChangeListener.start();
}
- public static Set<OvsdbInventoryListener> getMdsalConsumerListeners() {
- return mdsalConsumerListeners;
+ public static Set<OvsdbInventoryListener> getOvsdbInventoryListeners() {
+ return ovsdbInventoryListeners;
}
@Override