import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
-import org.opendaylight.controller.config.yang.bgp.rib.impl.RIBImplRuntimeRegistration;
-import org.opendaylight.controller.config.yang.bgp.rib.impl.RIBImplRuntimeRegistrator;
import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionChain;
final ClusterIdentifier clusterId, final RIBExtensionConsumerContext extensions, final BGPDispatcher dispatcher,
final BindingCodecTreeFactory codecFactory, final DOMDataBroker domDataBroker, final List<BgpTableType> localTables,
@Nonnull final Map<TablesKey, PathSelectionMode> bestPathSelectionStrategies, final GeneratedClassLoadingStrategy classStrategy,
- final BGPConfigModuleTracker moduleTracker, final BGPOpenConfigProvider openConfigProvider, final BgpDeployer.WriteConfiguration configurationWriter) {
+ final BGPConfigModuleTracker moduleTracker, final BGPOpenConfigProvider openConfigProvider,
+ final BgpDeployer.WriteConfiguration configurationWriter) {
super(InstanceIdentifier.create(BgpRib.class).child(Rib.class, new RibKey(Preconditions.checkNotNull(ribId))));
this.domChain = domDataBroker.createTransactionChain(this);
this.serviceGroupIdentifier = ServiceGroupIdentifier.create(this.ribId + "-service-group");
Preconditions.checkNotNull(provider, "ClusterSingletonServiceProvider is null");
this.provider = provider;
+ this.configurationWriter = configurationWriter;
LOG.info("RIB Singleton Service {} registered", this.getIdentifier());
+ //this need to be always the last step
this.registration = registerClusterSingletonService(this);
- this.configurationWriter = configurationWriter;
}
public RIBImpl(final ClusterSingletonServiceProvider provider, final RibId ribId, final AsNumber localAs, final BgpId localBgpId, @Nullable final ClusterIdentifier clusterId,
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
-import java.util.Map.Entry;
import javax.annotation.concurrent.GuardedBy;
import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
private List<PeerBean> closeAllBindedPeers(final InstanceIdentifier<Bgp> rootIdentifier) {
final List<PeerBean> filtered = new ArrayList<>();
- for (final Entry<InstanceIdentifier<Neighbor>, PeerBean> entry : this.peers.entrySet()) {
- if (entry.getKey().contains(rootIdentifier)) {
- final PeerBean peer = entry.getValue();
- peer.close();
- filtered.add(peer);
- }
- }
+ this.peers.entrySet().stream().filter(entry -> entry.getKey().contains(rootIdentifier)).forEach(entry -> {
+ final PeerBean peer = entry.getValue();
+ peer.close();
+ filtered.add(peer);
+ });
return filtered;
}
this.inetAddress = Ipv4Util.toInetSocketAddress(this.neighborAddress, OpenConfigMappingUtil.getPort(neighbor));
this.retryTimer = OpenConfigMappingUtil.getRetryTimer(neighbor);
this.key = Optional.fromNullable(key);
+ this.configurationWriter = configurationWriter;
this.serviceGroupIdentifier = rib.getRibIServiceGroupIdentifier();
LOG.info("Peer Singleton Service {} registered", this.serviceGroupIdentifier);
+ //this need to be always the last step
this.registration = rib.registerClusterSingletonService(this);
- this.configurationWriter = configurationWriter;
}
@Override
@Override
public ListenableFuture<Void> closeServiceInstance() {
- LOG.info("Close RIB Singleton Service {}", this.getIdentifier());
+ LOG.info("Close Peer Singleton Service {}", this.getIdentifier());
if (this.connection != null) {
this.connection.cancel(true);
this.connection = null;