neutron-mapper:neutron-mapper-impl
</type>
<name>neutron-mapper-impl</name>
-
- <rpc-registry>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
- <name>binding-rpc-broker</name>
- </rpc-registry>
-
- <data-broker>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
- <name>binding-data-broker</name>
- </data-broker>
</module>
</modules>
</data>
--- /dev/null
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. 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.controller.config.yang.config.neutron_mapper.impl;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.groupbasedpolicy.neutron.mapper.NeutronMapper;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService;
+
+public class NeutronMapperInstance implements AutoCloseable{
+
+ private NeutronMapper mapper;
+
+ public NeutronMapperInstance (DataBroker dataBroker, EndpointService epService,
+ BaseEndpointService baseEndpointService) {
+ mapper = new NeutronMapper(dataBroker, epService, baseEndpointService);
+ }
+ @Override
+ public void close() throws Exception {
+ mapper.close();
+ }
+}
package org.opendaylight.controller.config.yang.config.neutron_mapper.impl;
-import org.opendaylight.groupbasedpolicy.neutron.mapper.NeutronMapper;
+import org.opendaylight.controller.sal.common.util.NoopAutoCloseable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Override
public java.lang.AutoCloseable createInstance() {
- final NeutronMapper neutronMapper = new NeutronMapper(getDataBrokerDependency(), getRpcRegistryDependency());
- LOG.info("Neutron mapper started.");
- return neutronMapper;
+ return NoopAutoCloseable.INSTANCE;
}
public static boolean isDebugEnabled() {
import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronAware;
import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronFloatingIpAware;
import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronNetworkAware;
private Neutron neutronBefore;
private Neutron neutronAfter;
- public NeutronMapper(DataBroker dataProvider, RpcProviderRegistry rpcProvider) {
- EndpointService epService = rpcProvider.getRpcService(EndpointService.class);
- BaseEndpointService baseEpService = rpcProvider.getRpcService(BaseEndpointService.class);
+ public NeutronMapper(DataBroker dataProvider, EndpointService epService,
+ BaseEndpointService baseEpService) {
EndpointRegistrator epRegistrator = new EndpointRegistrator(epService, baseEpService);
networkAware = new NeutronNetworkAware(dataProvider);
securityGroupAware = new NeutronSecurityGroupAware(dataProvider);
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
+ odl:use-default-for-reference-types="true">
+
+ <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"/>
+ <odl:rpc-service id="epService" interface="org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.EndpointService"/>
+ <odl:rpc-service id="baseEpService" interface="org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService"/>
+
+ <bean id="neutronMapper" class="org.opendaylight.controller.config.yang.config.neutron_mapper.impl.NeutronMapperInstance"
+ destroy-method="close">
+ <argument ref="dataBroker"/>
+ <argument ref="epService"/>
+ <argument ref="baseEpService"/>
+ </bean>
+</blueprint>
\ No newline at end of file
augment "/config:modules/config:module/config:configuration" {
case neutron-mapper-impl {
when "/config:modules/config:module/config:type = 'neutron-mapper-impl'";
-
- container data-broker {
- uses config:service-ref {
- refine type {
- mandatory true;
- config:required-identity mdsal:binding-async-data-broker;
- }
- }
- }
-
- container rpc-registry {
- uses config:service-ref {
- refine type {
- mandatory true;
- config:required-identity mdsal:binding-rpc-registry;
- }
- }
- }
-
}
}
}
\ No newline at end of file
import java.io.IOException;
import java.util.Set;
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.secgroups.rev150712.security.groups.attributes.security.groups.SecurityGroupBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
public class NeutronMapperTest extends NeutronMapperDataBrokerTest {
private final Uuid tenantUuid = new Uuid("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa");
dataBroker = getDataBroker();
epService = mock(EndpointService.class);
baseEpService = mock(BaseEndpointService.class);
- rpcProvider = mock(RpcProviderRegistry.class);
- when(rpcProvider.getRpcService(EndpointService.class)).thenReturn(epService);
- when(rpcProvider.getRpcService(BaseEndpointService.class)).thenReturn(baseEpService);
- mapper = new NeutronMapper(dataBroker, rpcProvider);
+ mapper = new NeutronMapper(dataBroker, epService, baseEpService);
networkL3Extension = new NetworkL3ExtensionBuilder().setExternal(true).build();
@Test
public void testConstructor() throws IOException {
DataBroker dataBrokerSpy = spy(dataBroker);
- NeutronMapper other = new NeutronMapper(dataBrokerSpy, rpcProvider);
+ NeutronMapper other = new NeutronMapper(dataBrokerSpy, epService, baseEpService);
verify(dataBrokerSpy).registerDataTreeChangeListener(new DataTreeIdentifier<>(
LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.builder(Neutron.class).build()), other);