Make sure mandatory leaf is allways present.
Map RIB module configuration on OpenConfig Bgp top level container.
Change-Id: I5f28a5fa2924ec2ddc721c69f0b2a67fdf374f63
Signed-off-by: Milos Fabian <milfabia@cisco.com>
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.MountPointService;
import org.opendaylight.controller.md.sal.binding.api.MountPointService.MountPointListener;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext;
import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer;
import org.opendaylight.protocol.bgp.openconfig.impl.moduleconfig.BGPOpenConfigListener;
import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenconfigMapper;
import org.opendaylight.protocol.bgp.openconfig.spi.InstanceConfiguration;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf;
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.NodeId;
public BGPOpenConfig() {
configStateHolders = new BGPConfigStateStoreImpl();
- configStateHolders.registerBGPConfigHolder(Global.class);
+ configStateHolders.registerBGPConfigHolder(Bgp.class);
configStateHolders.registerBGPConfigHolder(Neighbor.class);
}
@Override
public void onSessionInitialized(final ConsumerContext session) {
dataBroker = session.getSALService(DataBroker.class);
- try {
- configModuleListener = new BGPConfigModuleMapperProvider(dataBroker, configStateHolders);
- } catch (final TransactionCommitFailedException e) {
- LOG.error("Failed to initialize application.", e);
- throw new IllegalStateException(e);
- }
+ configModuleListener = new BGPConfigModuleMapperProvider(dataBroker, configStateHolders);
mountService = session.getSALService(MountPointService.class);
mpListenerRegistration = mountService.registerListener(CONTROLLER_CONFIG_IID, this);
}
import java.util.Objects;
import org.opendaylight.protocol.bgp.openconfig.impl.spi.OpenConfigComparator;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafi;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
-final class GlobalComparator implements OpenConfigComparator<Global> {
+final class GlobalComparator implements OpenConfigComparator<Bgp> {
@Override
- public boolean isSame(final Global global1, final Global global2) {
- Preconditions.checkNotNull(global1);
- Preconditions.checkNotNull(global2);
+ public boolean isSame(final Bgp bgp1, final Bgp bgp2) {
+ Preconditions.checkNotNull(bgp1);
+ Preconditions.checkNotNull(bgp2);
+ final Global global1 = bgp1.getGlobal();
+ final Global global2 = bgp2.getGlobal();
//do not care about an order of collections' entries
if (global1.getAfiSafis() != null && global2.getAfiSafis() != null) {
final List<AfiSafi> afiSafiA = global1.getAfiSafis().getAfiSafi();
import com.google.common.collect.ImmutableMap;
import org.opendaylight.protocol.bgp.openconfig.impl.spi.OpenConfigComparator;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
import org.opendaylight.yangtools.yang.binding.DataObject;
public final class OpenConfigComparatorFactory {
private static final ImmutableMap<Class<?>, OpenConfigComparator<? extends DataObject>> COMPARATORS = ImmutableMap.<Class<?>, OpenConfigComparator<? extends DataObject>>builder()
- .put(Global.class, new GlobalComparator())
+ .put(Bgp.class, new GlobalComparator())
.put(Neighbor.class, new NeighborComparator())
.build();
import org.opendaylight.protocol.bgp.openconfig.impl.spi.BGPConfigStateStore;
import org.opendaylight.protocol.bgp.openconfig.impl.util.GlobalIdentifier;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.ApplicationRibId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.rib.impl.rev130409.RibInstance;
};
private final BGPConfigHolder<Neighbor> neighborState;
- private final BGPConfigHolder<Global> globalState;
+ private final BGPConfigHolder<Bgp> globalState;
private final BGPConfigModuleProvider configModuleOp;
private final DataBroker dataBroker;
public BGPAppPeerProvider(final BGPConfigStateStore configHolders, final BGPConfigModuleProvider configModuleWriter, final DataBroker dataBroker) {
this.dataBroker = dataBroker;
this.configModuleOp = Preconditions.checkNotNull(configModuleWriter);
- this.globalState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Global.class));
+ this.globalState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Bgp.class));
this.neighborState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Neighbor.class));
}
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.Timers;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbor.group.Transport;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.PeerType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.PeerRole;
};
private final BGPConfigHolder<Neighbor> neighborState;
- private final BGPConfigHolder<Global> globalState;
+ private final BGPConfigHolder<Bgp> globalState;
private final BGPConfigModuleProvider configModuleOp;
private final DataBroker dataBroker;
public BGPPeerProvider(final BGPConfigStateStore configHolders, final BGPConfigModuleProvider configModuleWriter, final DataBroker dataBroker) {
this.dataBroker = dataBroker;
this.configModuleOp = Preconditions.checkNotNull(configModuleWriter);
- this.globalState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Global.class));
+ this.globalState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Bgp.class));
this.neighborState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Neighbor.class));
}
import org.opendaylight.protocol.bgp.openconfig.impl.spi.BGPConfigHolder;
import org.opendaylight.protocol.bgp.openconfig.impl.spi.BGPConfigStateStore;
import org.opendaylight.protocol.bgp.openconfig.impl.util.GlobalIdentifier;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.BgpBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.rib.impl.rev130409.BgpTableType;
}
};
- private final BGPConfigHolder<Global> globalState;
+ private final BGPConfigHolder<Bgp> globalState;
private final BGPConfigModuleProvider configModuleWriter;
private final DataBroker dataBroker;
public BGPRibImplProvider(final BGPConfigStateStore configHolders, final BGPConfigModuleProvider configModuleWriter, final DataBroker dataBroker) {
- this.globalState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Global.class));
+ this.globalState = Preconditions.checkNotNull(configHolders.getBGPConfigHolder(Bgp.class));
this.configModuleWriter = Preconditions.checkNotNull(configModuleWriter);
this.dataBroker = Preconditions.checkNotNull(dataBroker);
}
try {
final ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
final Optional<Module> maybeModule = this.configModuleWriter.readModuleConfiguration(moduleKey, rwTx).get();
- if (maybeModule.isPresent() && globalState.remove(moduleKey, removedGlobal)) {
+ if (maybeModule.isPresent() && globalState.remove(moduleKey, new BgpBuilder().setGlobal(removedGlobal).build())) {
this.configModuleWriter.removeModuleConfiguration(moduleKey, rwTx);
}
} catch (final Exception e) {
public void onGlobalModified(final Global modifiedGlobal) {
final ModuleKey moduleKey = this.globalState.getModuleKey(GlobalIdentifier.GLOBAL_IDENTIFIER);
- if (moduleKey != null && this.globalState.addOrUpdate(moduleKey, GlobalIdentifier.GLOBAL_IDENTIFIER, modifiedGlobal)) {
+ if (moduleKey != null && this.globalState.addOrUpdate(moduleKey, GlobalIdentifier.GLOBAL_IDENTIFIER, new BgpBuilder().setGlobal(modifiedGlobal).build())) {
final ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction();
try {
final Optional<Module> maybeModule = this.configModuleWriter.readModuleConfiguration(moduleKey, rTx).get();
package org.opendaylight.protocol.bgp.openconfig.impl.openconfig;
-import static org.opendaylight.protocol.bgp.openconfig.impl.util.OpenConfigUtil.APPLICATION_PEER_GROUP_NAME;
import static org.opendaylight.protocol.bgp.openconfig.impl.util.OpenConfigUtil.BGP_IID;
+
import com.google.common.base.Preconditions;
-import java.util.Collections;
import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
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.TransactionChain;
import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.protocol.bgp.openconfig.impl.spi.BGPConfigStateStore;
import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenConfigProvider;
import org.opendaylight.protocol.bgp.openconfig.spi.BGPOpenconfigMapper;
import org.opendaylight.protocol.bgp.openconfig.spi.InstanceConfiguration;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroup;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroupBuilder;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroupKey;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.BgpBuilder;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.NeighborsBuilder;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.PeerGroupsBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger LOG = LoggerFactory.getLogger(BGPConfigModuleMapperProvider.class);
- private static final PeerGroup APP_PEER_GROUP = new PeerGroupBuilder().setPeerGroupName(APPLICATION_PEER_GROUP_NAME)
- .setKey(new PeerGroupKey(APPLICATION_PEER_GROUP_NAME)).build();
-
private final BindingTransactionChain txChain;
private final BGPConfigMapperRegistry configMapperRegistry = new BGPConfigMapperRegistry();
- public BGPConfigModuleMapperProvider(final DataBroker dataBroker, final BGPConfigStateStore configStateHolders) throws TransactionCommitFailedException {
+ public BGPConfigModuleMapperProvider(final DataBroker dataBroker, final BGPConfigStateStore configStateHolders) {
Preconditions.checkNotNull(configStateHolders);
this.txChain = Preconditions.checkNotNull(dataBroker).createTransactionChain(this);
- final WriteTransaction wTx = this.txChain.newWriteOnlyTransaction();
- wTx.put(LogicalDatastoreType.CONFIGURATION, BGP_IID,
- new BgpBuilder().setNeighbors(new NeighborsBuilder().build()).setPeerGroups(
- new PeerGroupsBuilder().setPeerGroup(Collections.singletonList(APP_PEER_GROUP)).build()).build());
- wTx.submit().checkedGet();
configMapperRegistry.registerOpenConfigMapper(new BGPGlobalProviderImpl(txChain, configStateHolders));
configMapperRegistry.registerOpenConfigMapper(new BGPNeighborProviderImpl(txChain, configStateHolders));
configMapperRegistry.registerOpenConfigMapper(new BGPAppNeighborProviderImpl(txChain, configStateHolders));
package org.opendaylight.protocol.bgp.openconfig.impl.openconfig;
+import static org.opendaylight.protocol.bgp.openconfig.impl.util.OpenConfigUtil.APPLICATION_PEER_GROUP_NAME;
import static org.opendaylight.protocol.bgp.openconfig.impl.util.OpenConfigUtil.BGP_IID;
+
+import java.util.Collections;
import org.opendaylight.controller.md.sal.binding.api.BindingTransactionChain;
import org.opendaylight.protocol.bgp.openconfig.impl.spi.BGPConfigStateStore;
import org.opendaylight.protocol.bgp.openconfig.impl.util.GlobalIdentifier;
import org.opendaylight.protocol.bgp.openconfig.spi.pojo.BGPRibInstanceConfiguration;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.AfiSafisBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.ConfigBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroup;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroupBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroupKey;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.BgpBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.GlobalBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.NeighborsBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.PeerGroupsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.rib.impl.rev130409.RibImpl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.ModuleKey;
import org.opendaylight.yangtools.concepts.Identifier;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-final class BGPGlobalProviderImpl extends AbstractBGPOpenConfigMapper<BGPRibInstanceConfiguration, Global> {
+final class BGPGlobalProviderImpl extends AbstractBGPOpenConfigMapper<BGPRibInstanceConfiguration, Bgp> {
- private static final InstanceIdentifier<Global> GLOBAL_IID = BGP_IID.child(Global.class);
+ private static final PeerGroup APP_PEER_GROUP = new PeerGroupBuilder().setPeerGroupName(APPLICATION_PEER_GROUP_NAME)
+ .setKey(new PeerGroupKey(APPLICATION_PEER_GROUP_NAME)).build();
public BGPGlobalProviderImpl(final BindingTransactionChain txChain, final BGPConfigStateStore stateHolders) {
- super(txChain, stateHolders, Global.class);
+ super(txChain, stateHolders, Bgp.class);
}
@Override
- public Global apply(final BGPRibInstanceConfiguration configuration) {
+ public Bgp apply(final BGPRibInstanceConfiguration configuration) {
return toGlobalConfiguration(configuration);
}
}
@Override
- protected InstanceIdentifier<Global> getInstanceIdentifier(final Identifier key) {
- return GLOBAL_IID;
+ protected InstanceIdentifier<Bgp> getInstanceIdentifier(final Identifier key) {
+ return BGP_IID;
}
@Override
- public Identifier keyForConfiguration(final Global global) {
+ public Identifier keyForConfiguration(final Bgp bgp) {
return GlobalIdentifier.GLOBAL_IDENTIFIER;
}
return BGPRibInstanceConfiguration.class;
}
- private static Global toGlobalConfiguration(final BGPRibInstanceConfiguration config) {
- return new GlobalBuilder()
- .setAfiSafis(new AfiSafisBuilder().setAfiSafi(OpenConfigUtil.toAfiSafis(config.getTableTypes())).build())
- .setConfig(
- new ConfigBuilder()
+ private static Bgp toGlobalConfiguration(final BGPRibInstanceConfiguration config) {
+ final BgpBuilder bgpBuilder = new BgpBuilder();
+ bgpBuilder.setNeighbors(new NeighborsBuilder().build());
+ bgpBuilder.setPeerGroups(new PeerGroupsBuilder().setPeerGroup(Collections.singletonList(APP_PEER_GROUP)).build());
+ final Global global = new GlobalBuilder()
+ .setAfiSafis(new AfiSafisBuilder().setAfiSafi(OpenConfigUtil.toAfiSafis(config.getTableTypes())).build())
+ .setConfig(new ConfigBuilder()
.setAs(config.getLocalAs())
.setRouterId(config.getBgpRibId()).build()).build();
+ bgpBuilder.setGlobal(global);
+ return bgpBuilder.build();
}
}
import org.opendaylight.protocol.bgp.openconfig.impl.comparator.OpenConfigComparatorFactory;
import org.opendaylight.protocol.bgp.openconfig.impl.util.GlobalIdentifier;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.ConfigBuilder;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.BgpBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.GlobalBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.bgp.openconfig.rev150718.OpenconfigBgp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.rev130405.modules.ModuleKey;
public class BGPConfigHolderImplTest {
- private static final BGPConfigHolderImpl<Global> HOLDER = new BGPConfigHolderImpl<Global>(OpenConfigComparatorFactory.getComparator(Global.class));
+ private static final BGPConfigHolderImpl<Bgp> HOLDER = new BGPConfigHolderImpl<Bgp>(OpenConfigComparatorFactory.getComparator(Bgp.class));
@Test
public void test() {
final ModuleKey moduleKey2 = new ModuleKey("key2", OpenconfigBgp.class);
assertNull(HOLDER.getKey(moduleKey));
- final Global obj1 = new GlobalBuilder().build();
- final Global obj2 = new GlobalBuilder().setConfig(new ConfigBuilder().build()).build();
+ final Bgp obj1 = new BgpBuilder().setGlobal(new GlobalBuilder().build()).build();
+ final Bgp obj2 = new BgpBuilder().setGlobal(new GlobalBuilder().setConfig(new ConfigBuilder().build()).build()).build();
assertTrue(HOLDER.addOrUpdate(moduleKey, GlobalIdentifier.GLOBAL_IDENTIFIER, obj1));
assertFalse(HOLDER.addOrUpdate(moduleKey, GlobalIdentifier.GLOBAL_IDENTIFIER, obj1));
assertEquals(moduleKey, HOLDER.getModuleKey(GlobalIdentifier.GLOBAL_IDENTIFIER));
import org.junit.Test;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafiBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.AfiSafisBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.BgpBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.GlobalBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.types.rev151009.IPV4UNICAST;
@Test
public void testIsSamePositiveSimple() {
+ final BgpBuilder bgpBuilder = new BgpBuilder();
final Global a = new GlobalBuilder().build();
final Global b = new GlobalBuilder().build();
- assertTrue(COMPARATOR.isSame(a, b));
+ assertTrue(COMPARATOR.isSame(bgpBuilder.setGlobal(a).build(), bgpBuilder.setGlobal(b).build()));
}
@Test
public void testIsSamePositiveCollection() {
+ final BgpBuilder bgpBuilder = new BgpBuilder();
final Global a = new GlobalBuilder().setAfiSafis(new AfiSafisBuilder()
.setAfiSafi(Lists.newArrayList(
new AfiSafiBuilder().setAfiSafiName(IPV4UNICAST.class).build(),
new AfiSafiBuilder().setAfiSafiName(IPV6UNICAST.class).build(),
new AfiSafiBuilder().setAfiSafiName(IPV4UNICAST.class).build()))
.build()).build();
- assertTrue(COMPARATOR.isSame(a, b));
+ assertTrue(COMPARATOR.isSame(bgpBuilder.setGlobal(a).build(), bgpBuilder.setGlobal(b).build()));
}
@Test
public void testIsSameNegativeCollectionSize() {
+ final BgpBuilder bgpBuilder = new BgpBuilder();
final Global a = new GlobalBuilder().setAfiSafis(new AfiSafisBuilder()
.setAfiSafi(Lists.newArrayList(
new AfiSafiBuilder().setAfiSafiName(IPV4UNICAST.class).build(),
.setAfiSafi(Lists.newArrayList(
new AfiSafiBuilder().setAfiSafiName(IPV6UNICAST.class).build()))
.build()).build();
- assertFalse(COMPARATOR.isSame(a, b));
+ assertFalse(COMPARATOR.isSame(bgpBuilder.setGlobal(a).build(), bgpBuilder.setGlobal(b).build()));
}
@Test
public void testIsSameNegativeCollectionContent() {
+ final BgpBuilder bgpBuilder = new BgpBuilder();
final Global a = new GlobalBuilder().setAfiSafis(new AfiSafisBuilder()
.setAfiSafi(Lists.newArrayList(
new AfiSafiBuilder().setAfiSafiName(IPV4UNICAST.class).build()))
.setAfiSafi(Lists.newArrayList(
new AfiSafiBuilder().setAfiSafiName(IPV6UNICAST.class).build()))
.build()).build();
- assertFalse(COMPARATOR.isSame(a, b));
+ assertFalse(COMPARATOR.isSame(bgpBuilder.setGlobal(a).build(), bgpBuilder.setGlobal(b).build()));
}
}
import org.junit.Test;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.neighbors.Neighbor;
-import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
import org.opendaylight.yangtools.yang.binding.DataObject;
public class OpenConfigComparatorsTest {
@Test
public void testGetComparatorGlobal() {
- assertNotNull(OpenConfigComparatorFactory.getComparator(Global.class));
+ assertNotNull(OpenConfigComparatorFactory.getComparator(Bgp.class));
}
@Test
package org.opendaylight.protocol.bgp.openconfig.impl.openconfig;
import static org.junit.Assert.assertTrue;
+
import com.google.common.util.concurrent.CheckedFuture;
import org.junit.Before;
import org.junit.Test;
public void testClose() throws Exception {
this.mapperProvider.close();
Mockito.verify(this.myTx).delete(Mockito.any(LogicalDatastoreType.class), Mockito.any(InstanceIdentifier.class));
- Mockito.verify(this.myTx, Mockito.times(2)).submit();
+ Mockito.verify(this.myTx, Mockito.times(1)).submit();
Mockito.verify(this.txChain).close();
}
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.multiprotocol.rev151009.bgp.common.afi.safi.list.AfiSafiBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.AfiSafisBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.global.base.ConfigBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.peer.group.PeerGroupBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.Bgp;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.BgpBuilder;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.Global;
import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.GlobalBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.NeighborsBuilder;
+import org.opendaylight.yang.gen.v1.http.openconfig.net.yang.bgp.rev151009.bgp.top.bgp.PeerGroupsBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateAddressFamily;
@Test
public void testApply() {
- final Global global = this.globalProvider.apply(new BGPRibInstanceConfiguration(new InstanceConfigurationIdentifier("instanceName"), new AsNumber(1L),
+ final Bgp bgp = this.globalProvider.apply(new BGPRibInstanceConfiguration(new InstanceConfigurationIdentifier("instanceName"), new AsNumber(1L),
new Ipv4Address("1.2.3.4"), null,
Lists.<BgpTableType>newArrayList(new BgpTableTypeImpl(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class))));
- final Global expectedGlobal = new GlobalBuilder()
+ final BgpBuilder bgpBuilder = new BgpBuilder();
+ bgpBuilder.setNeighbors(new NeighborsBuilder().build());
+ bgpBuilder.setPeerGroups(new PeerGroupsBuilder().setPeerGroup(
+ Collections.singletonList(new PeerGroupBuilder().setPeerGroupName("application-peers").build())).build());
+ final Global global = new GlobalBuilder()
.setAfiSafis(
new AfiSafisBuilder().setAfiSafi(Collections.singletonList(new AfiSafiBuilder().setAfiSafiName(Linkstate.class).build())).build())
.setConfig(new ConfigBuilder().setRouterId(new Ipv4Address("1.2.3.4")).setAs(new AsNumber(1L)).build())
.build();
- assertEquals(expectedGlobal, global);
+ bgpBuilder.setGlobal(global);
+ assertEquals(bgpBuilder.build(), bgp);
}
@Test
public void testGetInstanceIdentifierString() {
- assertEquals(InstanceIdentifier.create(Bgp.class).child(Global.class), globalProvider.getInstanceIdentifier(null));
+ assertEquals(InstanceIdentifier.create(Bgp.class), globalProvider.getInstanceIdentifier(null));
}
@Test
public void testKeyForConfigurationGlobal() {
- final GlobalIdentifier globalId = (GlobalIdentifier) this.globalProvider.keyForConfiguration(new GlobalBuilder().build());
+ final GlobalIdentifier globalId = (GlobalIdentifier) this.globalProvider.keyForConfiguration(new BgpBuilder().build());
assertEquals(GlobalIdentifier.GLOBAL_IDENTIFIER, globalId);
assertEquals("GLOBAL", globalId.getName());
}