Add optional 'name' field in BGP speaker config
Change-Id: If6f4567cd1a7c29b0424cc84bef050efe392544c
diff --git a/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpConfig.java b/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpConfig.java
index 19107be..2f1ede7 100644
--- a/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpConfig.java
+++ b/apps/routing-api/src/main/java/org/onosproject/routing/config/BgpConfig.java
@@ -20,9 +20,10 @@
import com.google.common.collect.Sets;
import org.onlab.packet.IpAddress;
import org.onosproject.core.ApplicationId;
-import org.onosproject.net.config.Config;
import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.config.Config;
+import java.util.Optional;
import java.util.Set;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -34,6 +35,7 @@
public static final String SPEAKERS = "bgpSpeakers";
public static final String CONNECT_POINT = "connectPoint";
+ public static final String NAME = "name";
public static final String PEERS = "peers";
// TODO add methods for updating config
@@ -50,9 +52,17 @@
speakersNode.forEach(jsonNode -> {
Set<IpAddress> listenAddresses = Sets.newHashSet();
jsonNode.path(PEERS).forEach(addressNode ->
- listenAddresses.add(IpAddress.valueOf(addressNode.asText()))
+ listenAddresses.add(IpAddress.valueOf(addressNode.asText()))
);
- speakers.add(new BgpSpeakerConfig(
+
+ Optional<String> name;
+ if (jsonNode.get(NAME) == null) {
+ name = Optional.empty();
+ } else {
+ name = Optional.of(jsonNode.get(NAME).asText());
+ }
+
+ speakers.add(new BgpSpeakerConfig(name,
ConnectPoint.deviceConnectPoint(jsonNode.path(CONNECT_POINT).asText()),
listenAddresses));
});
@@ -65,14 +75,21 @@
*/
public static class BgpSpeakerConfig {
+ private Optional<String> name;
private ConnectPoint connectPoint;
private Set<IpAddress> peers;
- public BgpSpeakerConfig(ConnectPoint connectPoint, Set<IpAddress> peers) {
+ public BgpSpeakerConfig(Optional<String> name, ConnectPoint connectPoint,
+ Set<IpAddress> peers) {
+ this.name = checkNotNull(name);
this.connectPoint = checkNotNull(connectPoint);
this.peers = checkNotNull(peers);
}
+ public Optional<String> name() {
+ return name;
+ }
+
public ConnectPoint connectPoint() {
return connectPoint;
}