+++ /dev/null
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others. 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.protocol.integration.pcep;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
-import static org.mockito.Mockito.when;
-import static org.ops4j.pax.exam.CoreOptions.frameworkProperty;
-import static org.ops4j.pax.exam.CoreOptions.junitBundles;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.lang.reflect.Method;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.topology.rev140113.NetworkTopologyContext;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.topology.rev140113.NetworkTopologyRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.NetworkTopologyPcepProgrammingService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.SubmitAddLspInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.SubmitAddLspInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.SubmitTriggerSyncInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.SubmitTriggerSyncInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.SubmitTriggerSyncOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.SubmitUpdateLspInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.programming.rev131106.SubmitUpdateLspInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.AddLspInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.AddLspInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.AddLspOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.EnsureLspOperationalInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.EnsureLspOperationalInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.NetworkTopologyPcepService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.TriggerSyncInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.TriggerSyncInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.TriggerSyncOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.programming.rev131030.PcepCreateP2pTunnelInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.programming.rev131030.PcepCreateP2pTunnelInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.programming.rev131030.PcepDestroyTunnelInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.programming.rev131030.PcepDestroyTunnelInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.pcep.programming.rev131030.TopologyTunnelPcepProgrammingService;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.PaxExam;
-import org.ops4j.pax.exam.options.DefaultCompositeOption;
-import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
-import org.ops4j.pax.exam.spi.reactors.PerClass;
-
-@RunWith(PaxExam.class)
-@ExamReactorStrategy(PerClass.class)
-public class PcepRpcServicesRoutingTest extends AbstractPcepOsgiTest {
-
- @Override
- protected Option[] getAdditionalOptions() {
- // register option to provide Mockito as a bundle dependency
- return options(
- new DefaultCompositeOption(
- // Repository required to load harmcrest (OSGi-fied version).
- // Mockito
- mavenBundle("org.mockito", "mockito-core").versionAsInProject(),
- mavenBundle("org.objenesis", "objenesis").versionAsInProject(),
- junitBundles(),
-
- /*
- * Felix has implicit boot delegation enabled by default. It
- * conflicts with Mockito: java.lang.LinkageError: loader
- * constraint violation in interface itable initialization: when
- * resolving method
- * "org.osgi.service.useradmin.User$$EnhancerByMockitoWithCGLIB$$dd2f81dc
- * .
- * newInstance(Lorg/mockito/cglib/proxy/Callback;)Ljava/lang/Object
- * ;" the class loader (instance of
- * org/mockito/internal/creation/jmock/SearchingClassLoader) of
- * the current class, org/osgi/service/useradmin/
- * User$$EnhancerByMockitoWithCGLIB$$dd2f81dc, and the class
- * loader (instance of org/apache/felix/framework/
- * BundleWiringImpl$BundleClassLoaderJava5) for interface
- * org/mockito/cglib/proxy/Factory have different Class objects
- * for the type org/mockito/cglib/ proxy/Callback used in the
- * signature
- *
- * So we disable the bootdelegation. this property has no effect
- * on the other OSGi implementation.
- */
- frameworkProperty("felix.bootdelegation.implicit").value("false"))
- );
- }
-
- private static <T> T getInputForRpc(final InstanceIdentifier<Topology> topology, final Class<?> builderClass, final Class<T> builtObjectClass) {
- try {
- final Object builderInstance = builderClass.newInstance();
- final Method method = builderClass.getMethod("setNetworkTopologyRef", NetworkTopologyRef.class);
- method.invoke(builderInstance, new NetworkTopologyRef(topology));
- return builtObjectClass.cast(builderClass.getMethod("build").invoke(builderInstance));
- } catch (final Exception e) {
- throw new RuntimeException("Unable to create instance from " + builderClass, e);
- }
- }
-
- @Test
- public void testRoutedRpcNetworkTopologyPcepService() throws Exception {
- final NetworkTopologyPcepService pcepService1 = mock(NetworkTopologyPcepService.class, "First pcep Service");
- final NetworkTopologyPcepService pcepService2 = mock(NetworkTopologyPcepService.class, "Second pcep Service");
- initMock(pcepService1);
- initMock(pcepService2);
- assertNotNull(getBroker());
-
- final InstanceIdentifier<Topology> topology = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
- new TopologyKey(getTopologyId("Topo1"))).build();
-
- final BindingAwareProvider provider1 = new AbstractTestProvider() {
-
- @Override
- public void onSessionInitiated(final BindingAwareBroker.ProviderContext session) {
- assertNotNull(session);
- final BindingAwareBroker.RoutedRpcRegistration<NetworkTopologyPcepService> firstReg = session.addRoutedRpcImplementation(
- NetworkTopologyPcepService.class, pcepService1);
- assertNotNull("Registration should not be null", firstReg);
- assertSame(pcepService1, firstReg.getInstance());
-
- firstReg.registerPath(NetworkTopologyContext.class, topology);
- }
- };
-
- this.broker.registerProvider(provider1);
-
- final InstanceIdentifier<Topology> topology2 = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
- new TopologyKey(getTopologyId("Topo2"))).build();
-
- final BindingAwareProvider provider2 = new AbstractTestProvider() {
-
- @Override
- public void onSessionInitiated(final BindingAwareBroker.ProviderContext session) {
- assertNotNull(session);
- final BindingAwareBroker.RoutedRpcRegistration<NetworkTopologyPcepService> secondReg = session.addRoutedRpcImplementation(
- NetworkTopologyPcepService.class, pcepService2);
- secondReg.registerPath(NetworkTopologyContext.class, topology2);
- }
- };
-
- this.broker.registerProvider(provider2);
-
- final BindingAwareConsumer consumer = new BindingAwareConsumer() {
- @Override
- public void onSessionInitialized(final BindingAwareBroker.ConsumerContext session) {
- final NetworkTopologyPcepService consumerPcepService = session.getRpcService(NetworkTopologyPcepService.class);
-
- assertNotNull(consumerPcepService);
- assertNotSame(pcepService1, consumerPcepService);
- assertNotSame(pcepService2, consumerPcepService);
-
- testAddLspRpce(consumerPcepService);
- testEnsureLspRpce(consumerPcepService);
- testTriggerSyncRpce(consumerPcepService);
- }
-
- private void testAddLspRpce(final NetworkTopologyPcepService consumerPcepService) {
- AddLspInput addLspInput = getInputForRpc(topology, AddLspInputBuilder.class, AddLspInput.class);
- consumerPcepService.addLsp(addLspInput);
-
- verify(pcepService1).addLsp(addLspInput);
- verifyZeroInteractions(pcepService2);
-
- addLspInput = getInputForRpc(topology2, AddLspInputBuilder.class, AddLspInput.class);
-
- consumerPcepService.addLsp(addLspInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).addLsp(addLspInput);
- }
-
- private void testTriggerSyncRpce(final NetworkTopologyPcepService consumerPcepService) {
- TriggerSyncInput triggerInput = getInputForRpc(topology, TriggerSyncInputBuilder.class,
- TriggerSyncInput.class);
- consumerPcepService.triggerSync(triggerInput);
-
- verify(pcepService1).triggerSync(triggerInput);
- verifyZeroInteractions(pcepService2);
-
- triggerInput = getInputForRpc(topology2, TriggerSyncInputBuilder.class, TriggerSyncInput.class);
-
- consumerPcepService.triggerSync(triggerInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).triggerSync(triggerInput);
- }
-
- private void testEnsureLspRpce(final NetworkTopologyPcepService consumerPcepService) {
- EnsureLspOperationalInput ensureInput = getInputForRpc(topology, EnsureLspOperationalInputBuilder.class,
- EnsureLspOperationalInput.class);
-
- consumerPcepService.ensureLspOperational(ensureInput);
-
- verify(pcepService1).ensureLspOperational(ensureInput);
- verifyZeroInteractions(pcepService2);
-
- ensureInput = getInputForRpc(topology2, EnsureLspOperationalInputBuilder.class, EnsureLspOperationalInput.class);
-
- consumerPcepService.ensureLspOperational(ensureInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).ensureLspOperational(ensureInput);
- }
- };
- this.broker.registerConsumer(consumer);
- }
-
- @SuppressWarnings("unchecked")
- private static void initMock(final NetworkTopologyPcepService pcepService) {
- @SuppressWarnings("rawtypes")
- final ListenableFuture future = Futures.immediateFuture(RpcResultBuilder.<AddLspOutput>success().build());
- final ListenableFuture<RpcResult<TriggerSyncOutput>> futureSyncTrigger = Futures.immediateFuture(
- RpcResultBuilder.<TriggerSyncOutput>success().build());
-
- when(pcepService.addLsp(Mockito.any())).thenReturn(future);
- when(pcepService.removeLsp(Mockito.any())).thenReturn(future);
- when(pcepService.triggerSync(Mockito.any())).thenReturn(futureSyncTrigger);
- when(pcepService.ensureLspOperational(Mockito.any())).thenReturn(future);
- when(pcepService.updateLsp(Mockito.any())).thenReturn(future);
- }
-
- @Test
- public void testRoutedRpcNetworkTopologyPcepProgrammingService() throws Exception {
- final NetworkTopologyPcepProgrammingService pcepService1 = mock(NetworkTopologyPcepProgrammingService.class,
- "First pcep program Service");
- final NetworkTopologyPcepProgrammingService pcepService2 = mock(NetworkTopologyPcepProgrammingService.class,
- "Second pcep program Service");
- initMock(pcepService1);
- initMock(pcepService2);
- assertNotNull(getBroker());
-
- final InstanceIdentifier<Topology> topology = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
- new TopologyKey(getTopologyId("Topo1"))).build();
-
- final BindingAwareProvider provider1 = new AbstractTestProvider() {
- @Override
- public void onSessionInitiated(final BindingAwareBroker.ProviderContext session) {
- assertNotNull(session);
- final BindingAwareBroker.RoutedRpcRegistration<NetworkTopologyPcepProgrammingService> firstReg = session.addRoutedRpcImplementation(
- NetworkTopologyPcepProgrammingService.class, pcepService1);
- assertNotNull("Registration should not be null", firstReg);
- assertSame(pcepService1, firstReg.getInstance());
-
- firstReg.registerPath(NetworkTopologyContext.class, topology);
- }
- };
-
- this.broker.registerProvider(provider1);
-
- final InstanceIdentifier<Topology> topology2 = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
- new TopologyKey(getTopologyId("Topo2"))).build();
-
- final BindingAwareProvider provider2 = new AbstractTestProvider() {
- @Override
- public void onSessionInitiated(final BindingAwareBroker.ProviderContext session) {
- assertNotNull(session);
- final BindingAwareBroker.RoutedRpcRegistration<NetworkTopologyPcepProgrammingService> secondReg = session.addRoutedRpcImplementation(
- NetworkTopologyPcepProgrammingService.class, pcepService2);
- secondReg.registerPath(NetworkTopologyContext.class, topology2);
- }
- };
-
- this.broker.registerProvider(provider2);
-
- final BindingAwareConsumer consumer = new BindingAwareConsumer() {
- @Override
- public void onSessionInitialized(final BindingAwareBroker.ConsumerContext session) {
- final NetworkTopologyPcepProgrammingService consumerPcepService = session.getRpcService(NetworkTopologyPcepProgrammingService.class);
-
- assertNotNull(consumerPcepService);
- assertNotSame(pcepService1, consumerPcepService);
- assertNotSame(pcepService2, consumerPcepService);
-
- testSubmitAddLspRpc(consumerPcepService);
- testSubmitUpdateLspRpc(consumerPcepService);
- testTriggerSyncRpc(consumerPcepService);
- }
-
- private void testSubmitAddLspRpc(final NetworkTopologyPcepProgrammingService consumerPcepService) {
- SubmitAddLspInput addLspInput = getInputForRpc(topology, SubmitAddLspInputBuilder.class, SubmitAddLspInput.class);
- consumerPcepService.submitAddLsp(addLspInput);
-
- verify(pcepService1).submitAddLsp(addLspInput);
- verifyZeroInteractions(pcepService2);
-
- addLspInput = getInputForRpc(topology2, SubmitAddLspInputBuilder.class, SubmitAddLspInput.class);
-
- consumerPcepService.submitAddLsp(addLspInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).submitAddLsp(addLspInput);
- }
-
- private void testSubmitUpdateLspRpc(final NetworkTopologyPcepProgrammingService consumerPcepService) {
- SubmitUpdateLspInput submitLspInput = getInputForRpc(topology, SubmitUpdateLspInputBuilder.class,
- SubmitUpdateLspInput.class);
- consumerPcepService.submitUpdateLsp(submitLspInput);
-
- verify(pcepService1).submitUpdateLsp(submitLspInput);
- verifyZeroInteractions(pcepService2);
-
- submitLspInput = getInputForRpc(topology2, SubmitUpdateLspInputBuilder.class, SubmitUpdateLspInput.class);
-
- consumerPcepService.submitUpdateLsp(submitLspInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).submitUpdateLsp(submitLspInput);
- }
-
- private void testTriggerSyncRpc(final NetworkTopologyPcepProgrammingService consumerPcepService) {
- SubmitTriggerSyncInput submitTriggerSyncInput = getInputForRpc(topology,
- SubmitTriggerSyncInputBuilder.class,
- SubmitTriggerSyncInput.class);
- consumerPcepService.submitTriggerSync(submitTriggerSyncInput);
-
- verify(pcepService1).submitTriggerSync(submitTriggerSyncInput);
- verifyZeroInteractions(pcepService2);
-
- submitTriggerSyncInput = getInputForRpc(topology2, SubmitTriggerSyncInputBuilder.class,
- SubmitTriggerSyncInput.class);
-
- consumerPcepService.submitTriggerSync(submitTriggerSyncInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).submitTriggerSync(submitTriggerSyncInput);
- }
- };
- this.broker.registerConsumer(consumer);
- }
-
- @SuppressWarnings("unchecked")
- private static void initMock(final NetworkTopologyPcepProgrammingService pcepService) {
- @SuppressWarnings("rawtypes")
- final ListenableFuture future = Futures.immediateFuture(RpcResultBuilder.<AddLspOutput>success().build());
- final ListenableFuture<RpcResult<SubmitTriggerSyncOutput>> futureTriggerSync = Futures.immediateFuture(
- RpcResultBuilder.<SubmitTriggerSyncOutput>success().build());
- when(pcepService.submitAddLsp(Mockito.any())).thenReturn(future);
- when(pcepService.submitRemoveLsp(Mockito.any())).thenReturn(future);
- when(pcepService.submitTriggerSync(Mockito.any())).thenReturn(futureTriggerSync);
- when(pcepService.submitEnsureLspOperational(Mockito.any())).thenReturn(future);
- when(pcepService.submitUpdateLsp(Mockito.any())).thenReturn(future);
- }
-
- @Test
- public void testRoutedRpcTopologyTunnelPcepProgrammingService() throws Exception {
- final TopologyTunnelPcepProgrammingService pcepService1 = mock(TopologyTunnelPcepProgrammingService.class,
- "First pcep program Service");
- final TopologyTunnelPcepProgrammingService pcepService2 = mock(TopologyTunnelPcepProgrammingService.class,
- "Second pcep program Service");
- initMock(pcepService1);
- initMock(pcepService2);
- assertNotNull(getBroker());
-
- final InstanceIdentifier<Topology> topology = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
- new TopologyKey(getTopologyId("Topo1"))).build();
-
- final BindingAwareProvider provider1 = new AbstractTestProvider() {
- @Override
- public void onSessionInitiated(final BindingAwareBroker.ProviderContext session) {
- assertNotNull(session);
- final BindingAwareBroker.RoutedRpcRegistration<TopologyTunnelPcepProgrammingService> firstReg = session.addRoutedRpcImplementation(
- TopologyTunnelPcepProgrammingService.class, pcepService1);
- assertNotNull("Registration should not be null", firstReg);
- assertSame(pcepService1, firstReg.getInstance());
-
- firstReg.registerPath(NetworkTopologyContext.class, topology);
- }
- };
-
- this.broker.registerProvider(provider1);
-
- final InstanceIdentifier<Topology> topology2 = InstanceIdentifier.builder(NetworkTopology.class).child(Topology.class,
- new TopologyKey(getTopologyId("Topo2"))).build();
-
- final BindingAwareProvider provider2 = new AbstractTestProvider() {
- @Override
- public void onSessionInitiated(final BindingAwareBroker.ProviderContext session) {
- assertNotNull(session);
- final BindingAwareBroker.RoutedRpcRegistration<TopologyTunnelPcepProgrammingService> secondReg = session.addRoutedRpcImplementation(
- TopologyTunnelPcepProgrammingService.class, pcepService2);
- secondReg.registerPath(NetworkTopologyContext.class, topology2);
- }
- };
-
- this.broker.registerProvider(provider2);
-
- final BindingAwareConsumer consumer = new BindingAwareConsumer() {
- @Override
- public void onSessionInitialized(final BindingAwareBroker.ConsumerContext session) {
- final TopologyTunnelPcepProgrammingService consumerPcepService = session.getRpcService(TopologyTunnelPcepProgrammingService.class);
-
- assertNotNull(consumerPcepService);
- assertNotSame(pcepService1, consumerPcepService);
- assertNotSame(pcepService2, consumerPcepService);
-
- testCreateP2pTunnel(consumerPcepService);
- testDestroyP2pTunnel(consumerPcepService);
- }
-
- private void testCreateP2pTunnel(final TopologyTunnelPcepProgrammingService consumerPcepService) {
- PcepCreateP2pTunnelInput addLspInput = getInputForRpc(topology, PcepCreateP2pTunnelInputBuilder.class,
- PcepCreateP2pTunnelInput.class);
- consumerPcepService.pcepCreateP2pTunnel(addLspInput);
-
- verify(pcepService1).pcepCreateP2pTunnel(addLspInput);
- verifyZeroInteractions(pcepService2);
-
- addLspInput = getInputForRpc(topology2, PcepCreateP2pTunnelInputBuilder.class, PcepCreateP2pTunnelInput.class);
-
- consumerPcepService.pcepCreateP2pTunnel(addLspInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).pcepCreateP2pTunnel(addLspInput);
- }
-
- private void testDestroyP2pTunnel(final TopologyTunnelPcepProgrammingService consumerPcepService) {
- PcepDestroyTunnelInput addLspInput = getInputForRpc(topology, PcepDestroyTunnelInputBuilder.class,
- PcepDestroyTunnelInput.class);
- consumerPcepService.pcepDestroyTunnel(addLspInput);
-
- verify(pcepService1).pcepDestroyTunnel(addLspInput);
- verifyZeroInteractions(pcepService2);
-
- addLspInput = getInputForRpc(topology2, PcepDestroyTunnelInputBuilder.class, PcepDestroyTunnelInput.class);
-
- consumerPcepService.pcepDestroyTunnel(addLspInput);
-
- verifyZeroInteractions(pcepService1);
- verify(pcepService2).pcepDestroyTunnel(addLspInput);
- }
- };
- this.broker.registerConsumer(consumer);
- }
-
- @SuppressWarnings("rawtypes")
- private static void initMock(final TopologyTunnelPcepProgrammingService pcepService) {
- final ListenableFuture future = Futures.immediateFuture(RpcResultBuilder.<AddLspOutput>success().build());
- when(pcepService.pcepCreateP2pTunnel(Mockito.any())).thenReturn(future);
- when(pcepService.pcepDestroyTunnel(Mockito.any())).thenReturn(future);
- when(pcepService.pcepUpdateTunnel(Mockito.any())).thenReturn(future);
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2013 Cisco Systems, Inc. and others. 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
--->
-<persisted-snapshots>
- <snapshots>
- <snapshot>
- <required-capabilities>
- <capability>urn:opendaylight:l2:types?module=opendaylight-l2-types&revision=2013-08-27</capability>
- <capability>
- urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&revision=2013-10-28
- </capability>
- <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom?module=opendaylight-md-sal-dom&revision=2013-10-28</capability>
- <capability>
- urn:opendaylight:params:xml:ns:yang:controller:config?module=config&revision=2013-04-05
- </capability>
- <capability>urn:ietf:params:xml:ns:yang:rpc-context?module=rpc-context&revision=2013-06-17
- </capability>
- <capability>
- urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl?module=opendaylight-sal-binding-broker-impl&revision=2013-10-28
- </capability>
- <capability>urn:ietf:params:xml:ns:yang:ietf-inet-types?module=ietf-inet-types&revision=2010-09-24
- </capability>
- <capability>urn:ietf:params:xml:ns:yang:ietf-yang-types?module=ietf-yang-types&revision=2010-09-24
- </capability>
- <capability>
- urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl?module=opendaylight-sal-dom-broker-impl&revision=2013-10-28
- </capability>
- <capability>urn:opendaylight:params:xml:ns:yang:controller:logback:config?module=config-logging&revision=2013-07-16</capability>
- <capability>urn:opendaylight:yang:extension:yang-ext?module=yang-ext&revision=2013-07-09
- </capability>
- <capability>
- urn:opendaylight:params:xml:ns:yang:controller:md:sal:common?module=opendaylight-md-sal-common&revision=2013-10-28
- </capability>
-
- </required-capabilities>
- <configuration>
-
- <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
- <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:schema-service-singleton</type>
- <name>yang-schema-service</name>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:runtime-generated-mapping</type>
- <name>runtime-mapping-singleton</name>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-adapter</type>
- <name>binding-notification-adapter</name>
- <binding-notification-adapter xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
- <binding-mapping-service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
- <name>runtime-mapping-singleton</name>
- </binding-mapping-service>
- <dom-async-broker>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
- <name>dom-broker</name>
- </dom-async-broker>
- </binding-notification-adapter>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-publish-adapter</type>
- <name>binding-notification-publish-adapter</name>
- <binding-notification-publish-adapter xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
- <binding-mapping-service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
- <name>runtime-mapping-singleton</name>
- </binding-mapping-service>
- <dom-async-broker>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
- <name>dom-broker</name>
- </dom-async-broker>
- </binding-notification-publish-adapter>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-notification-broker</type>
- <name>binding-notification-broker</name>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-broker-impl</type>
- <name>binding-broker-impl</name>
- <binding-broker-impl xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
- <binding-mapping-service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
- <name>runtime-mapping-singleton</name>
- </binding-mapping-service>
- <dom-async-broker>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
- <name>dom-broker</name>
- </dom-async-broker>
- <notification-service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
- <name>binding-notification-broker</name>
- </notification-service>
- <data-broker>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
- <name>binding-data-broker</name>
- </data-broker>
- <root-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>
- </root-data-broker>
- </binding-broker-impl>
- </module>
-
- <!-- PingPong broker -->
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:pingpong">prefix:pingpong-data-broker</type>
- <name>pingpong-data-broker</name>
- <data-broker>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
- <name>inmemory-data-broker</name>
- </data-broker>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type>
- <name>pingpong-binding-data-broker</name>
- <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
- <dom-async-broker>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
- <name>pingpong-broker</name>
- </dom-async-broker>
- <schema-service>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
- <name>yang-schema-service</name>
- </schema-service>
- <binding-mapping-service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
- <name>runtime-mapping-singleton</name>
- </binding-mapping-service>
- </binding-forwarded-data-broker>
- </module>
-
- <!--
- Tree-based in-memory data store. This is the data store which is currently
- recommended for single-node deployments.
- -->
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-inmemory-data-broker</type>
- <name>inmemory-data-broker</name>
- <schema-service>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
- <name>yang-schema-service</name>
- </schema-service>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:impl">prefix:dom-broker-impl</type>
- <name>inmemory-dom-broker</name>
- <async-data-broker>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
- <name>inmemory-data-broker</name>
- </async-data-broker>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-data-compatible-broker</type>
- <name>inmemory-binding-data-broker</name>
- <binding-data-compatible-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
- <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>
- </binding-data-compatible-broker>
- </module>
- <module>
- <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type>
- <name>binding-async-data-broker</name>
- <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">
- <dom-async-broker>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
- <name>inmemory-data-broker</name>
- </dom-async-broker>
- <schema-service>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
- <name>yang-schema-service</name>
- </schema-service>
- <binding-mapping-service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type>
- <name>runtime-mapping-singleton</name>
- </binding-mapping-service>
- </binding-forwarded-data-broker>
- </module>
- </modules>
-
- <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
- <service>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type>
- <instance>
- <name>yang-schema-service</name>
- <provider>/modules/module[type='schema-service-singleton'][name='yang-schema-service']</provider>
- </instance>
- </service>
-
- <service>
- <type xmlns:config-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:config-dom-store">config-dom-store-spi:config-dom-datastore</type>
- <instance>
- <name>config-store-service</name>
- <provider>/modules/module[type='inmemory-config-datastore-provider'][name='config-store-service']</provider>
- </instance>
- </service>
- <service>
- <type xmlns:operational-dom-store-spi="urn:opendaylight:params:xml:ns:yang:controller:md:sal:core:spi:operational-dom-store">operational-dom-store-spi:operational-dom-datastore</type>
- <instance>
- <name>operational-store-service</name>
- <provider>/modules/module[type='inmemory-operational-datastore-provider'][name='operational-store-service']</provider>
- </instance>
- </service>
- <service>
- <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-dom-mapping-service</type>
- <instance>
- <name>runtime-mapping-singleton</name>
- <provider>/modules/module[type='runtime-generated-mapping'][name='runtime-mapping-singleton']</provider>
- </instance>
- </service>
- <service>
- <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-new-notification-service</type>
- <instance>
- <name>binding-notification-adapter</name>
- <provider>/modules/module[type='binding-notification-adapter'][name='binding-notification-adapter']</provider>
- </instance>
- </service>
- <service>
- <type xmlns:binding-impl="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding-impl:binding-new-notification-publish-service</type>
- <instance>
- <name>binding-notification-publish-adapter</name>
- <provider>/modules/module[type='binding-notification-publish-adapter'][name='binding-notification-publish-adapter']</provider>
- </instance>
- </service>
- <service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-notification-service</type>
- <instance>
- <name>binding-notification-broker</name>
- <provider>/modules/module[type='binding-notification-broker'][name='binding-notification-broker']</provider>
- </instance>
- </service>
- <service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-broker-osgi-registry</type>
- <instance>
- <name>binding-osgi-broker</name>
- <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
- </instance>
- </service>
- <service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
- <instance>
- <name>binding-rpc-broker</name>
- <provider>/modules/module[type='binding-broker-impl'][name='binding-broker-impl']</provider>
- </instance>
- </service>
-
- <service>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-broker-osgi-registry</type>
- <instance>
- <name>dom-broker</name>
- <provider>/modules/module[type='dom-broker-impl'][name='inmemory-dom-broker']</provider>
- </instance>
- </service>
-
- <service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-data-broker</type>
- <instance>
- <name>binding-data-broker</name>
- <provider>/modules/module[type='binding-data-compatible-broker'][name='inmemory-binding-data-broker']</provider>
- </instance>
- </service>
-
- <service>
- <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
- <instance>
- <name>binding-data-broker</name>
- <provider>/modules/module[type='binding-forwarded-data-broker'][name='binding-async-data-broker']</provider>
- </instance>
- <instance>
- <name>pingpong-binding-data-broker</name>
- <provider>/modules/module[type='binding-forwarded-data-broker'][name='pingpong-binding-data-broker']</provider>
- </instance>
- </service>
-
- <service>
- <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type>
- <instance>
- <name>inmemory-data-broker</name>
- <provider>/modules/module[type='dom-inmemory-data-broker'][name='inmemory-data-broker']</provider>
- </instance>
- <instance>
- <name>pingpong-broker</name>
- <provider>/modules/module[type='pingpong-data-broker'][name='pingpong-data-broker']</provider>
- </instance>
- </service>
- </services>
- </data>
-
- </configuration>
- </snapshot>
-
- </snapshots>
-</persisted-snapshots>