X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openstack%2Fnet-virt%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fovsdb%2Fopenstack%2Fnetvirt%2FActivator.java;h=f4284cee7ef3d9757d10c6720e57b9654aa5349e;hb=2c898dfea9a1af579cd9f6176bc2bdad14fbe1bb;hp=9634fee89e186b936ba3bbfe8364e13ad2f06281;hpb=7dbcae2da5e378ef959766e3415a3bbfb57900c7;p=netvirt.git diff --git a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/Activator.java b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/Activator.java index 9634fee89e..f4284cee7e 100644 --- a/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/Activator.java +++ b/openstack/net-virt/src/main/java/org/opendaylight/ovsdb/openstack/netvirt/Activator.java @@ -15,26 +15,25 @@ import java.util.Hashtable; import org.apache.felix.dm.DependencyActivatorBase; import org.apache.felix.dm.DependencyManager; -import org.opendaylight.controller.networkconfig.neutron.INeutronFirewallAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronFirewallPolicyAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronFirewallRuleAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronFloatingIPAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronLoadBalancerAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronLoadBalancerCRUD; -import org.opendaylight.controller.networkconfig.neutron.INeutronLoadBalancerPoolAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronLoadBalancerPoolCRUD; -import org.opendaylight.controller.networkconfig.neutron.INeutronLoadBalancerPoolMemberAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronNetworkAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronNetworkCRUD; -import org.opendaylight.controller.networkconfig.neutron.INeutronPortAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronPortCRUD; -import org.opendaylight.controller.networkconfig.neutron.INeutronRouterAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronSecurityGroupAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronSecurityRuleAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronSubnetAware; -import org.opendaylight.controller.networkconfig.neutron.INeutronSubnetCRUD; -import org.opendaylight.controller.switchmanager.IInventoryListener; -import org.opendaylight.controller.switchmanager.ISwitchManager; +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; @@ -46,7 +45,11 @@ 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; @@ -54,15 +57,14 @@ 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.opendaylight.ovsdb.plugin.api.OvsdbConfigurationService; -import org.opendaylight.ovsdb.plugin.api.OvsdbConnectionService; -import org.opendaylight.ovsdb.plugin.api.OvsdbInventoryListener; import org.osgi.framework.BundleContext; @@ -76,22 +78,17 @@ public class Activator extends DependencyActivatorBase { manager.add(createComponent() .setInterface(ConfigurationService.class.getName(), null) - .setImplementation(ConfigurationServiceImpl.class) - .add(createServiceDependency().setService(OvsdbConfigurationService.class))); + .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)) - .add(createServiceDependency().setService(OvsdbConfigurationService.class))); + .add(createServiceDependency().setService(NetworkingProviderManager.class))); manager.add(createComponent() .setInterface(TenantNetworkManager.class.getName(), null) .setImplementation(TenantNetworkManagerImpl.class) - .add(createServiceDependency().setService(NetworkingProviderManager.class)) - .add(createServiceDependency().setService(OvsdbConfigurationService.class)) - .add(createServiceDependency().setService(OvsdbConnectionService.class)) .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true)) .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true)) .add(createServiceDependency().setService(VlanConfigurationCache.class))); @@ -99,7 +96,6 @@ public class Activator extends DependencyActivatorBase { manager.add(createComponent() .setInterface(VlanConfigurationCache.class.getName(), null) .setImplementation(VlanConfigurationCacheImpl.class) - .add(createServiceDependency().setService(OvsdbConfigurationService.class)) .add(createServiceDependency().setService(TenantNetworkManager.class))); Dictionary floatingIPHandlerPorperties = new Hashtable<>(); @@ -122,11 +118,8 @@ public class Activator extends DependencyActivatorBase { .setImplementation(NetworkHandler.class) .add(createServiceDependency().setService(TenantNetworkManager.class).setRequired(true)) .add(createServiceDependency().setService(BridgeConfigurationManager.class).setRequired(true)) - .add(createServiceDependency().setService(ConfigurationService.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbConfigurationService.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbConnectionService.class).setRequired(true)) + .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true)) .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbInventoryListener.class).setRequired(true)) .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)) .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true))); @@ -147,9 +140,7 @@ public class Activator extends DependencyActivatorBase { .setInterface(new String[]{INeutronPortAware.class.getName(), AbstractHandler.class.getName()}, portHandlerProperties) .setImplementation(PortHandler.class) - .add(createServiceDependency().setService(OvsdbConfigurationService.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbConnectionService.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbInventoryListener.class).setRequired(true)) + .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true)) .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)) .add(createServiceDependency().setService(NeutronL3Adapter.class).setRequired(true))); @@ -167,7 +158,8 @@ public class Activator extends DependencyActivatorBase { southboundHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, AbstractEvent.HandlerType.SOUTHBOUND); manager.add(createComponent() - .setInterface(new String[]{OvsdbInventoryListener.class.getName(), IInventoryListener.class.getName(), + .setInterface(new String[]{OvsdbInventoryListener.class.getName(), + NodeCacheListener.class.getName(), AbstractHandler.class.getName()}, southboundHandlerProperties) .setImplementation(SouthboundHandler.class) @@ -175,10 +167,10 @@ public class Activator extends DependencyActivatorBase { .add(createServiceDependency().setService(BridgeConfigurationManager.class).setRequired(true)) .add(createServiceDependency().setService(TenantNetworkManager.class).setRequired(true)) .add(createServiceDependency().setService(NetworkingProviderManager.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbConfigurationService.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbConnectionService.class).setRequired(true)) .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)) - .add(createServiceDependency().setService(NeutronL3Adapter.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 lbaasHandlerProperties = new Hashtable<>(); lbaasHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, @@ -186,7 +178,7 @@ public class Activator extends DependencyActivatorBase { manager.add(createComponent() .setInterface(new String[]{INeutronLoadBalancerAware.class.getName(), - IInventoryListener.class.getName(), AbstractHandler.class.getName()}, + NodeCacheListener.class.getName(), AbstractHandler.class.getName()}, lbaasHandlerProperties) .setImplementation(LBaaSHandler.class) .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)) @@ -194,9 +186,9 @@ public class Activator extends DependencyActivatorBase { .add(createServiceDependency().setService(INeutronLoadBalancerCRUD.class).setRequired(true)) .add(createServiceDependency().setService(INeutronLoadBalancerPoolCRUD.class).setRequired(true)) .add(createServiceDependency().setService(LoadBalancerProvider.class).setRequired(true)) - .add(createServiceDependency().setService(ISwitchManager.class).setRequired(true)) .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true)) - .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true))); + .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true)) + .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true))); Dictionary lbaasPoolHandlerProperties = new Hashtable<>(); lbaasPoolHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, @@ -210,16 +202,16 @@ public class Activator extends DependencyActivatorBase { .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true)) .add(createServiceDependency().setService(INeutronLoadBalancerCRUD.class).setRequired(true)) .add(createServiceDependency().setService(LoadBalancerProvider.class).setRequired(true)) - .add(createServiceDependency().setService(ISwitchManager.class).setRequired(true)) .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true)) - .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true))); + .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true)) + .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true))); Dictionary 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(), + .setInterface(new String[]{INeutronLoadBalancerPoolMemberAware.class.getName(), AbstractHandler.class.getName()}, lbaasPoolMemberHandlerProperties) .setImplementation(LBaaSPoolMemberHandler.class) .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)) @@ -227,9 +219,9 @@ public class Activator extends DependencyActivatorBase { .add(createServiceDependency().setService(INeutronLoadBalancerCRUD.class).setRequired(true)) .add(createServiceDependency().setService(INeutronLoadBalancerPoolCRUD.class).setRequired(true)) .add(createServiceDependency().setService(LoadBalancerProvider.class).setRequired(true)) - .add(createServiceDependency().setService(ISwitchManager.class).setRequired(true)) .add(createServiceDependency().setService(INeutronNetworkCRUD.class).setRequired(true)) - .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true))); + .add(createServiceDependency().setService(INeutronSubnetCRUD.class).setRequired(true)) + .add(createServiceDependency().setService(NodeCacheManager.class).setRequired(true))); Dictionary portSecurityHandlerProperties = new Hashtable<>(); portSecurityHandlerProperties.put(Constants.EVENT_HANDLER_TYPE_PROPERTY, @@ -240,27 +232,26 @@ public class Activator extends DependencyActivatorBase { INeutronSecurityGroupAware.class.getName(), AbstractHandler.class.getName()}, portSecurityHandlerProperties) .setImplementation(PortSecurityHandler.class) - .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true)) - .add(createServiceDependency().setService(SecurityServicesManager.class).setRequired(true))); + .add(createServiceDependency().setService(EventDispatcher.class).setRequired(true))); manager.add(createComponent() .setInterface(new String[]{SecurityServicesManager.class.getName()}, null) - .setImplementation(SecurityServicesImpl.class)); + .setImplementation(SecurityServicesImpl.class) + .add(createServiceDependency().setService(INeutronPortCRUD.class).setRequired(true))); Dictionary 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) + .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(ConfigurationService.class).setRequired(true)) .add(createServiceDependency().setService(NetworkingProvider.class) .setCallbacks("providerAdded", "providerRemoved"))); @@ -276,18 +267,10 @@ public class Activator extends DependencyActivatorBase { .setImplementation(NeutronL3Adapter.class) .add(createServiceDependency().setService(ConfigurationService.class).setRequired(true)) .add(createServiceDependency().setService(TenantNetworkManager.class).setRequired(true)) - .add(createServiceDependency().setService(NetworkingProviderManager.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbConfigurationService.class).setRequired(true)) - .add(createServiceDependency().setService(OvsdbConnectionService.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(MultiTenantAwareRouter.class).setRequired(true)) - /* ToDo, we should probably just use the NetworkingProvider interface - * This should provide a way of getting service implementations - * Either that, or we should do service lookup at runtime based on getProvider().getName() - * This is a shortcut as for now there will only be one implementation of these classes. - */ .add(createServiceDependency().setService(ArpProvider.class).setRequired(false)) .add(createServiceDependency().setService(InboundNatProvider.class).setRequired(false)) .add(createServiceDependency().setService(OutboundNatProvider.class).setRequired(false)) @@ -297,6 +280,23 @@ public class Activator extends DependencyActivatorBase { manager.add(createComponent() .setInterface(MultiTenantAwareRouter.class.getName(), null) .setImplementation(OpenstackRouter.class)); + + Dictionary 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